从创建一个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删除

本文原创,转载请注明出处:http://blog.csdn.net/feifei454498130/archive/2011/06/10/6537274.aspx

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. 读取android手机流量信息
  4. android 使用html5作布局文件: webview跟javascript交互
  5. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  6. android“设置”里的版本号
  7. Android开发环境搭建
  8. Android(安卓)Resource介绍和使用
  9. 2014.01.21 ——— android 关联android-support源码

随机推荐

  1. SQL实现LeetCode(185.系里前三高薪水)
  2. SQL实现LeetCode(184.系里最高薪水)
  3. SQL实现LeetCode(183.从未下单订购的顾客
  4. SQL实现LeetCode(182.重复的邮箱)
  5. SQL实现LeetCode(181.员工挣得比经理多)
  6. mysql表分区的使用与底层原理详解
  7. Mysql纵表转换为横表的方法及优化教程
  8. MYSQL使用Union将两张表的数据合并显示
  9. 一次mysql迁移的方案与踩坑实战记录
  10. SQL实现LeetCode(180.连续的数字)