从创建一个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. Android导航栏资源总结,单纯防丢!
  2. 学习Android 必备 实例大集合
  3. 【Android游戏开发二十一】Android os设
  4. android 网络 post get
  5. Android消息处理系统
  6. android 界面应用锦集
  7. Android(安卓)学习笔记 Contacts Content
  8. Android中解决手机屏幕横竖屏切换问题
  9. android SDK与ADT版本更新问题
  10. 基于 eclipse 的 android 工程如何使用 j