|
來自http://apk.tw/thread-18277-1-1.html
一台android終端(可能是手機、可能是平板,也可能是其它),很多功能是要取得Root權限後才能使用的。那我們就來Root它。
取得root權限只要在機器裡放兩個文件就可以了
/system/bin/su(取得root權限的命令)
/system/xbin/su(同上,只不過是有些軟件只認這個路徑)
/system/app/SuperUser.apk(Root權限管理器)
上面明明是三個文件,為什麼說兩個呢?其實前面兩個文件就是同一個文件,熟悉linux等系統的就知道,用ln做個軟連接就可以了。
說實在的Android就是Linux的一個分支。不信就看看你機器的內核版本就懂了。
ln -s /system/bin/su /system/xbin/su
在android設備上運行以上命令可以在/system/xbin路徑中生成/system/bin/su的軟連接文件(可以理解為windows下的「快捷方式」)
除了放上面講的兩個文件,即:
/system/bin/su
/system/app/SuperUser.apk
還需要設置/system/bin/su可以讓任意用戶可運行,有set uid和set gid的權限。即要在android機器上運行下面的命令:
chmod 4755 /system/bin/su
貌似做到這些都比較簡單。在android市場中安裝一個connectbot,把su和SuperUser.apk拷貝到SD卡上,然後用ConnectBot在本機上開命令窗口,cp ln chmod一下就可以了。但實際是不行的。
為什麼呢?原因有三:
1、/system路徑是只讀權限,不能簡單寫入
2、 chmod需要Root權才能運行(死循環了)
3、有些系統在啟動時會自動將su的4755權限設成755,甚至直接刪除su
那怎麼辦呢?
本層要部分解決的就是上面遺留的三個問題。
既然走正常程序,行不通,就要換個思路,走走後門了。
後門在哪裡呢?
Google還是很厚道的,Android有個用於開發的後門,供Android系統和應用軟件的開發者調試程序用的。
如何打開後門?有三項工作:
1、用數據線連接android設備到PC
2、在PC上安裝android設備的驅動程序。
3、在android設備上設打開發調試模式(settings->applications->development->USB debugging)
怎麼用?
google的android SDK包裡面有兩個小程序:1、adb 2、fastboot。fastboot用來刷機,adb可以以Root的身份讓android設備執行一些命令。
用法:
把附件下載到電腦。
解壓附件到電腦
參考上文,打開android設備的後門
用資源管理器打開附件數據包解壓出來的文件夾
不要選擇任何文件或文件夾,按住Shift鍵鼠標右擊資源管理器空白部分,在彈出菜單中選擇「在此處打來命令窗口」。
(也可以先大開命令窗口,用cd等命令將當前路徑切換到附件數據包解壓出來的文件夾)
在命令窗口敲命令,然後重啟android完成Root
adb remount
adb push su /system/bin
adb push SuperUser.apk /system/app
adb shell ln -s /system/bin/su /system/xbin/su
adb shell chmod 4755 /system/bin/su
部分遺留問題:
1、少數Android設備運行adb remount時會報錯,顯示/system不能被remount成可讀寫模式
2、重啟後/system/bin/su文件的權限被改寫,失去setuid setgid的權限(即重啟後不能正常取得Root權),甚至/system/bin/su直接被刪除
該怎麼解決呢?呵呵,我還留了一層備用,大家知道會怎樣了吧?!
現在要解決重啟丟失Root權和 adb remount不能讓/system目錄轉成可讀寫的問題。
造成這些問題基本都是系統在啟動內核的時候設置的鎖。
如何解鎖呢?我們先要說說Android終端的啟動。
一般來說Android終端能啟動到三種不同的模式
1、正常啟動
2、bootloader模式
3、revocery模式
正常啟動Android終端,系統會自動調用boot鏡像中的內核,然後是到system中加載配置和啟動預定程序,最後到userdata中繼續加載用戶配置和用戶預裝的程序。
一般一個新的Android終端拿來,第一次啟動時,只有boot和system中有數據,userdata中是空的,我們安裝軟件、修改配置等操作只能影響userdata。所以沒有ROOT的Android終端是很安全的,實在是系統裝的很亂、軟件衝突、死機,只要清除userdata中的數據(回出廠狀態)就好了。(內置的用戶存儲空間和外加存儲都屬於userdata的一部分)
既然boot中有鎖,不能取得Root權,我們就只好放棄原版boot,去尋找第三方開發的boot(簡單的用「一鍵root」之類的軟件是解決不了問題的),然後刷機...
bootloader模式就提供了通過USB線刷機的接口。用android SDK中提供的小工具fastboot就可以完成刷機(線刷)
recovery模式也提供了通過Android終端上的數據存儲刷機的辦法(卡刷),只是原版Andriod終端自帶的recovery會識別刷機包的數字簽名,非官方發佈的刷機數據包是不太可能通過這種辦法刷機的。所以玩Android終端的老鳥是不會用原版的Recovery的。
第三方開發的recovery基本上是採用文本菜單方式操作,識幾個E文的應該操作起來不會有問題,只要找到自己機器型號對應的刷機包就可以了。本樓主就不多廢話了。
重點講bootloader模式刷機
【如何進入bootloader】
大家還記得頂層的adb嗎? 不記得就上樓複習。
命令窗輸入
adb reboot bootloader
可進入重啟系統進入bootloader模式
(附:命令窗輸入adb reboot recovery 可中起進入recovery模式)
注意複習頂樓課程,輸入adb命令前必須的幾部操作(接數據線、裝驅動、andriod終端設為usb debug模式、在adb文件夾開命令窗口)
當然還有其他方法:比如已經Root的機器可以裝個小軟件,一鍵重啟切換到bootloader或者recovery
還有一種方法很重要,掌握了可以讓你的機器永遠不會因為刷機變磚,或者將磚機救回來。
1、關機
2、按住特定鍵(大部分是「上」鍵,不同的機型不一樣)開機,或者開機,按特定鍵
進入bootloader以後用fastboot刷機,當然首先要找到自己Android終端對應的刷機數據包(boot.img,revocery.img,system.img )
當然要把刷機數據*.img放在fastboot同一文件夾(除非你喜歡敲很多相對或絕對路徑)
fastboot flash boot boot.img
(刷boot)
fastboot flash recovery recovery.img
(刷recovery)
fastboot flash system system.img
(刷Android系統)
fastboot flash userdata data.img
(刷用戶數據)
fastboot reboot
(重啟到正常模式)
各位刷成磚機的,只要能進bootloader磚機就能救回來
現在google、百度這麼強,相信各位找個自己設備對應的*.img不是什麼難事。
寫到這裡該結束了,為了方便新同學,請大家跟帖,說一說自己機器進bootloader的方法。
或者哪位大俠開個集合貼,討論各種機型進bootloader的方法,造福四方
apk.tw_磚機自救方法abdshell.zip
(685.74 KB, 下載次數: 437)
。
|
評分
-
7
查看全部評分
-
|