手动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删除

相关文章
相关标签/搜索