手動root android 模擬器(emulator)詳細過程

從建立一個emulator開始,逐步到root了它。 android

在文章結尾,我會將你們一些能夠遇到的問題與解決方法寫出來。 shell

 

一, 新建一個模擬器。 windows

   

[c-sharp] view plain copy print ?
  1. 在終端輸入:android  
在終端輸入:android 

就會彈出sdk and avd manager app

    new -> name: Android2.2 eclipse

        Target:Android 2.2 -API Level 8 工具

Size: 256 測試

Built-in: HVGA ui

Hardware: spa

Abstracted LCD density 160 .net

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:表明你的系統盤)。

 

二,運行模擬器。

     

[c-sharp] view plain copy print ?
  1. 在終端裏輸入 : emulator -avd Android2.2 -partition-size 128  
在終端裏輸入 : emulator -avd Android2.2 -partition-size 128 

 

 

 

三,將su與superuser.apk文件拷貝到android系統中。

1,先將emulator文件系統賦予讀寫權限(rw)

[c-sharp] view plain copy print ?
  1. 打開另外一個終端,輸入 :adb shell  
打開另外一個終端,輸入 :adb shell   

進入了emulator的終端

[c-sharp] view plain copy print ?
  1. 而後輸入 :mount  
而後輸入 :mount 

 會出現一堆東西,但咱們只關注這個

/dev/block/mtdblock0 /system yaffs2 ro 0 0

如今咱們要將它掛載爲讀寫,

[c-sharp] view plain copy print ?
  1. 輸入:mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system  
輸入:mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system

這樣就掛載成功了。

[c-sharp] view plain copy print ?
  1. 輸入 : exit  
輸入 : exit

  退出emulator的終端

 

        2, 將su 與 superuser.apk文件 拷貝到android系統中

su與superuser.apk文件在不少刷機包裏也有,爲了方便你們,我上傳一份。

下載地址爲:http://download.csdn.net/source/3355218

         

[c-sharp] view plain copy print ?
  1. 在終端輸入(不是emulator的終端): adb push /.../.../su /system/bin/   注意,su位置根據你本身的輸入  
  2.       在終端輸入: adb push /..../..../superuser.apk /system/app/  
在終端輸入(不是emulator的終端): adb push /.../.../su /system/bin/ 注意,su位置根據你本身的輸入 在終端輸入: adb push /..../..../superuser.apk /system/app/ 

push failed: xxxxxxxx Out of memory

emulator -avd avd文件名 -partition-size 256

adb remount

adb push xxxx

      這樣就能夠把這兩個文件拷貝到emulator系統中。

 

       3, 修改文件權限

       

[c-sharp] view plain copy print ?
  1. 在終端輸入: adb shell  
  2.     在emulator終端輸入: cd /system/bin  
  3.     在emulator終端輸入: ls -l 能夠看到每一個文件的權限和所屬用戶與所在組  
  4.     如今要修改su的所屬用戶與所在級和它的權限, 這一步很重要  
  5.     在emulator終端輸入: chown root.shell /system/bin/su  
  6.         在emulator終端輸入: chmod 4755 /system/bin/su  
在終端輸入: 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的權限

[c-sharp] view plain copy print ?
  1. 在emulator終端輸入: cd /system/app  
  2.     在emulator終端輸入: ls -l  
  3.     在emulator終端輸入: chown  root.root /system/app/superuser.apk  
  4.         在emulator終端輸入: chmod 644 /system/app/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這個文件,不刪除的話,咱們以前所作的就白費了,它會將系統文件還原。

 

[c-sharp] view plain copy print ?
  1. 在emulator終端輸入: rm /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刪除

相關文章
相關標籤/搜索