從創建一個emulator開始,逐步到root了它。
在文章結尾,我會將大家一些可以遇到的問題與解決方法寫出來。
一, 新建一個模擬器。
在終端輸入:android
就會彈出sdk and avd manager
new ->name: Android2.2
Target:Android 2.2 -API Level 8
Size: 256
Built-in: HVGA
Hardware:
Abstracted LCD density 160
Device ram size 256
然后點擊Create AVD,這樣就簡單創建一個emulator。
接下來,要做的就是將你的sdk中-->platforms-->android-8-->images-->system.img 拷貝到 /home/user/.android/avd/Android2.2.avd/目錄下(windows用戶是放在X:/Users/user/.android/avd/Android2.2.avd,X:代表你的系統盤)。
二,運行模擬器。
在終端里輸入 : emulator -avd Android2.2 -partition-size 128
三,將su與superuser.apk文件拷貝到android系統中。
1,先將emulator文件系統賦予讀寫權限(rw)
打開另一個終端,輸入 :adb shell
進入了emulator的終端
然后輸入 :mount
會出現一堆東西,但我們只關注這個
/dev/block/mtdblock0 /system yaffs2 ro 0 0
現在我們要將它掛載為讀寫,
輸入:mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
這樣就掛載成功了。
輸入 : exit
退出emulator的終端
2, 將su 與 superuser.apk文件 拷貝到android系統中
su與superuser.apk文件在很多刷機包里也有,為了方便大家,我上傳一份。
下載地址為:http://download.csdn.net/source/3355218
在終端輸入(不是emulator的終端): adb push /.../.../su /system/bin/ 注意,su位置根據你自己的輸入
在終端輸入: adb push /..../..../superuser.apk /system/app/
這樣就可以把這兩個文件拷貝到emulator系統中。
3, 修改文件權限
在終端輸入: adb shell
在emulator終端輸入: cd /system/bin
在emulator終端輸入: ls -l 可以看到每個文件的權限和所屬用戶與所在組
現在要修改su的所屬用戶與所在級和它的權限, 這一步很重要
在emulator終端輸入: chown root.shell /system/bin/su
在emulator終端輸入: chmod 4755 /system/bin/su
大家 可以再次輸入: ls -l 查看權限和所屬用戶與所在組是否已經更改。
以下是修改superuser.apk的權限
在emulator終端輸入: cd /system/app
在emulator終端輸入: ls -l
在emulator終端輸入: chown root.root /system/app/superuser.apk
在emulator終端輸入: chmod 644 /system/app/superuser.apk
4, 刪除SdkSetup.apk
這一步要刪除/system/app/SdkSetup.apk這個文件,不刪除的話,我們之前所做的就白費了,它會將系統文件還原。
在emulator終端輸入: rm /system/app/SdkSetup.apk
然后就將emulator(模擬器)關掉。
四, 刪除/home/user/.android/avd/Android.avd/目錄下的cache.img userdata.imp和userdata-qemu.img刪除
好了,這樣就將emulator root了,再次打開emulator試試看。測試有沒有root成功的方法就是在emulator有個程序Dev Tools里的一個Terminal emulator工具,打開它,然后輸入 su命令,就是彈出授權的東西,選擇 allow,這時會發覺終端里的$變成了#,這就證明我們root成功了。
五,請注意的問題
1:找不到android, adb , emulator等命令。
這些命令在sdk的platforms-tools與tools文件夾下可以找到,大家可以將它們寫入path環境變量里,方便使用。
2:輸入adb push su /system/bin/ 時可能會出現Read-only file system 錯誤。
出現這個問題的原因是沒有掛載system,請根據文章的步驟去掛載就行了。
3:輸入 adb push su /system/bin/ 時可以會出現Out of memory 的錯誤。
出現這個問題的原因是可能你打開emulator的方法有誤,請用這個命令打開emulator -avd Android2.2 -partition-size 128
通常在eclipse里打開或者在android中打開都可能會出現這種錯誤。
4,沒有root成功。
請檢查有沒有將system.img放到指定目錄
請檢查有沒有將SdkSetup.apk刪除
請檢查有沒有將cache.img userdata.imp和userdata-qemu.img刪除