PIXNET Logo登入

AlanKao's Blog

跳到主文

我的Blog

部落格全站分類:心情日記

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 4月 18 週日 201006:33
  • Tattoo 刷機過程 (推)


2010年2月28日  (取自http://abev66.blogspot.com/2010/02/rooting-tattoo.html)




Rooting Tattoo




就如標題所述,這篇文章的內容主要是解釋如何取得 HTC Tattoo 的 root 權限。 在經過幾翻努力後, xda-developers 上的高手群終於有人在 2 月 19 號正式取得 root 。 由於 Tattoo 沒辦法用刷降的方式取得 root 權限,所以取得 root 的方式和之前的其他機種完全不同,這次流出來的方法是利用 Linux 2.6.29 的一項安全性漏洞,很幸運(?)的是 HTC (或 Google) 並沒有把它們修掉,於是我們就可以利用這項安全漏洞拿到一個 root shell 。


其實在 2 月 21 號的時候我就已經依照 xda-developers 上的方法首次成功取得了 root shell ,不過還卡在一個問題那就是 HTC 把 Tattoo 的 /system 封印住了,因此當時還沒有辦法在 /system 寫入任何東西,即使你重新以 rw 的模式掛載 /system ,你會發現可用空間是 0 ,你還是沒辦法動任何東西! Tattoo 的分割區裏面,具有 SUID 權限的也只有 /system ,也就是說如果你沒辦法把可用的 su 寫到 /system/bin 裏面的話,一切都是白搭! 不但一般需 root 的程式沒辦法應用,在手機重開機以後你的 root 權限也就隨之喪失。 所以基本上當時就算拿到了 root shell 也一樣不能做任何事情,因為不能動 /system 分割區一切就沒有意義,而且當時的破解工具 m6 效率不是很好,我整整花了大概一個半小時的時間才拿到 root shell ,當時版上也有很多人反應沒辦法使用。


一直等到大約 26 號左右, xda-developers 的高手群裡又有人丟出了個核心模組,掛上這個模組後就可以順利解開 /system 的封印了! 因此我在昨天,也就是 2 月 27 號晚間終於正式取得 root 權限並把 su 放到 /system/bin 底下了!


好了,接著進入正題。 所以如果要利用此法取得 root 權限的話,必須至少確定 HTC Tattoo 的 Linux 核心版本是 2.6.29 ,這在「設定」中的「關於手機」裏面可以看到。


因為此法是利用 Linux 核心漏洞的緣故,所以到時只要 HTC 放出 Tattoo 專用的 Android 2.1 ROM , Linux 核心一升級,這個方法就不再可用了!


除了確定系統核心版本以外,還需要一些工具才能順利取得 root 權限,你需要:



  1. Android SDK
  2. 一些破解工具 - MD5: 6d7f954201039bfdb16393fffcfd8772
  3. HTC Tattoo 專用的 USB 傳輸線一條以及電腦一台

接著是必要的警告: 任何 Hack 的動作都是有風險的! 而且以下步驟若操作不當確實有可能讓你的 HTC Tattoo 變成磚塊(就是死給你看)和喪失保固! 請你謹慎評估是否進行接下來的操作! 建議你至少應該熟悉 Android SDK 的使用方式、操作 Linux 指令的基本能力、對 Android 的目錄架構有基本認知以及有不成功便成仁的決悟再進行以下操作! 此外小的撰本文的目的僅止於記錄以及分享,我沒有能力也沒有義務擔保你手機的性命! 更無法承擔任何後果! 所以如果你連 root 是什麼鬼都不知道的話,請你立刻離開! 謝謝配合!


真是令人不蘇湖的鮮紅色,如果你確定沒有問題並且執意要繼續的話,就接著往下看吧! XD


由於小弟是慣用 Kubuntu 作業系統,因此以下操做一律以 Linux 為基準! 當然 Android SDK 也同時有 Mac OSX 以及 Windows 的專用版本。


首先請打開 USB 除錯模式:


接著請連上 USB 傳輸線,要開始囉! 為了避免不必要的權限問題來干擾我,我都會先換成(電腦的) root 來操作,接著把破解工具解開將裏面的東西 push 到 /data/local/bin 底下:
$ sudo -s
# adb push m7 /data/local/bin/
# adb push su /data/local/bin/
# adb push tattoo-hack.ko /data/local/bin/


通通都 push 好以後接下來開個 shell 把權限處理好,準備開始破解了:
# adb shell
$ chmod 755 /data/local/bin/m7
$ while do /data/local/bin/m7 ; done


然後你會看到 shell 噴出一大堆 像大便一樣的 東西,幸運的話,你應該就可以看到系統已經丟出一個 root shell 給你! 這個步驟就是主要取得 root 的關鍵,之前的破解工具 m6 跑這段要跑很久,但我自己試用的結果是 m7 都只要一下子就好了。 拿到 root shell 以後要先定義一下 PATH 環境變數:
# export LD_LIBRARY_PATH=/system/lib
# export PATH=/system/bin


好的接下來我們要來解除 /system 的封印。 首先先把 tattoo-hack.ko 掛上,再以 rw 模式重掛 /system ,接著 /system 應該就可以被寫入了。
# insmod /data/local/bin/tattoo-hack.ko
# mount -o rw,remount /dev/block/mtdblock3 /system


接下來我們要把關鍵指令 su 給安上去,先把原本的 su 移除,以破解工具裡頭確實可用的 su 代替:
# rm /system/bin/su
# cat /data/local/bin/su > /system/bin/su


因為 Android 內建沒有 cp 這個指令,用 mv 的話他又會丟一個跨裝置移動錯誤的訊息給你,因此利用 cat 和管線功能把 su 寫進 /system/bin 裏面。 接著不要忘記要幫 su 標上 suid ,這樣才能順利運作:
# chmod 4755 /system/bin/su


基本上做到這邊 root 的工作可以算是大功告成啦! 不過依據我自己的試驗結果,並不是每一次掛上 tattoo-hack.ko 都可以讓 /system/ 進入可被寫入的情況,好像必須要重新跑一次上面的破解程序才可以,因此如果你想把台灣大哥大內建的東西幹掉或者是安裝 busybox 這類東西的話最好趁現在免得麻煩! 此外, /system 是一個很重要的系統目錄,所以說千萬別把它搞壞了,砍東西前務必小心謹慎!砍錯東西造成的傷害很有可能是不可逆的。


好,當確定一切沒有問題以後,可以重開了:
# reboot


這個指令下去後手機應該就會開始重新開機,如果不裡你的話就自己按電源吧! 重開機完以後,你可以利用 ConnectBot 或是一些需 root 的程式測試看看,你應該已經可以成功 root 囉!


恭喜你! now you're free!


最後附上我參考的討論串: http://forum.xda-developers.com/showthread.php?t=635961

(繼續閱讀...)
文章標籤

chenlen 發表在 痞客邦 留言(0) 人氣(324)

  • 個人分類:電腦和網際網路
▲top
  • 7月 09 週三 200803:39
  • 使用 Windows bootloader 來 load Linux


使用 Windows bootloader 來 load Linux


上回提到如何重建 GRUB,這次講一下不使用 GRUB 作為主要 bootloader,而用 Windows 本身的 bootloader 來建立多系統的電腦。

使用 Windows NT/2000/2003/XP 本身的 bootloader 來 dual boot 需要一個叫 bootpart 的程式,在這裡下載。另外要注意安裝 linux 時要把 GRUB 裝在 linux 的分區,而不是裝在 MBR。

bootpart 執行後可以看到類似下面的資料,是所有硬碟的 partition 列表,
C:\>bootpart
Boot Partition 2.60 for WinNT/2K/XP (c)1995-2005 G. Vollant (info@winimage.com)
WEB : http://www.winimage.com and http://www.winimage.com/bootpart.htm
Add partition in the Windows NT/2000/XP Multi-boot loader
Run "bootpart /?" for more information
 
Physical number of disk 0 : 96e096d
0 : C:* type=7  (HPFS/NTFS), size= 15358108 KB, Lba Pos=63
1 : C:  type=5  (Extended), size= 145476607 KB, Lba Pos=30716280
2 : C:  type=7   (HPFS/NTFS), size= 145476576 KB, Lba Pos=30716343
Physical number of disk 1 : f6568938
3 : D:* type=83  (Linux native), size= 19535008 KB, Lba Pos=63
4 : D:  type=5  (Extended), size= 2000092 KB, Lba Pos=39070080
5 : D:  type=82   (Linux swap), size= 2000061 KB, Lba Pos=39070143

找到裝有 linux 的 partition,如上面的 3,執行下面的命令:
C:\>bootpart 3 bootlnx.sec ubuntu
意思是建立一個叫 bootlnx.sec 檔名的檔案,用第三個 partition boot,並用 “ubuntu” 的名字加入 Windows bootloader 的選單。執行完了之後,產生一個 bootlnx.sec 檔案,並在 boot.ini 中加了最後一行:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Media Center Edition" /noexecute=optin /fastdetect
C:\bootlnx.sec="ubuntu"

這樣就 ok 了,重開機會看到上面的兩個選項 “Windows XP Media Center Edition” 及 “ubuntu”。

如果是使用 Windows Vista,則上面的方法方不適用,但有個更方便的程式可用,有漂亮的 UI,叫 EasyBCD (免費軟體),在這裡下載。

(繼續閱讀...)
文章標籤

chenlen 發表在 痞客邦 留言(0) 人氣(73)

  • 個人分類:電腦和網際網路
▲top
  • 6月 15 週日 200815:17
  • Ubuntu 筆記

Ubuntu 安裝
0. 改變成 3D 效果
--> 桌面背景 --> 3D 效果
1. 軟體更新, 及
到 http://lazybuntu.openfoundry.org/ 下載最新的懶人包
    --> 應用程式-->添加/刪除
(繼續閱讀...)
文章標籤

chenlen 發表在 痞客邦 留言(0) 人氣(151)

  • 個人分類:電腦和網際網路
▲top
1

個人資訊

chenlen
暱稱:
chenlen
分類:
心情日記
好友:
累積中
地區:

熱門文章

  • (3,400)如何八字十神應用
  • (1,010)文公尺(俗稱魯班尺)
  • (3,768)高雄地名知多少
  • (416)八字心理學
  • (158)燒餅歌 (轉載)

文章分類

  • 電腦和網際網路 (3)
  • 組織 (1)
  • 圖書 (3)
  • Hobbies (0)
  • 新聞與政治 (0)
  • 娛樂 (1)
  • 嗜好 (2)
  • Travel (1)
  • Entertainment (0)
  • Organizations (0)
  • Health and wellness (0)
  • 旅行 (2)
  • 未分類文章 (1)

最新文章

  • 如何八字十神應用
  • Tattoo 刷機過程 (推)
  • 搬家大事紀
  • 文公尺(俗稱魯班尺)
  • 高雄地名知多少
  • 重裝Ubuntu
  • 使用 Windows bootloader 來 load Linux
  • 八字心理學
  • 中華姓氏千字文統一輩序
  • Ubuntu 筆記

動態訂閱

文章精選

文章搜尋

誰來我家

參觀人氣

  • 本日人氣:
  • 累積人氣: