参考文档:http://blog.csdn.net/xbalien29/article/details/22661479

本文以2.3.3版本系统为目标。

一 准备工作

首先我们需要准备3样工具:su , superuser.apk, busybox , mkfs.yaffs2.arm。这三个工具可以在:下载。

二 开始root

1 由于我们需要将su和busybox,push到/system/文件目录下,而此文件默认是以Read_Only模式挂载的,所以我们首先需要将该文件的挂载模式该为可读可写模式:

abd shell mount -o remount,rw /dev/block/mtdblock0 /system

2 push文件到合适目录

使用如下命令:

adb push su /system/bin

adb shell chmod 6755 /system/bin/su   #一定是6755,这里使用了suid的特性!

adb push busybox /system/xbin

adb shell chmod 755 /system/xbin/busybox

可能会出现的问题:

1、在执行adb push su /system/bin的时候可能会报错: out of memery。出现这个问题原因很多,如使用eclipse启动模拟器等。

解决方法:首先去~/.android/avd/yourEmulatorName.avd  中查看hardware-qemu.ini文件中的配置条目:

disk.systemPartition.size = 238m  (大小根据自己实际情况不定,这表示系统启动后原本/system目录的整体大小),由于我们要向该目录中写入文件,

所以我们必须将这个值扩大,所以需要使用如下命令启动模拟器:

emulator -avd yourAvdName -partition-size 300     //这表示启动后的模拟器的/system目录占300M ,这样就不会报错了。

3 安装superuser.apk

4 检验

现在我们就可以在adb shell中 使用busybox + CMD来使用busybox提供的命令了

三 保存root状态

要想保存模拟器的root状态,我们需要替换该模拟器的system.img文件。这个文件在sdk/system-image/android-*/arm/目录下。

1 生成当前模拟器的镜像文件

这里,我们在/data目录下新建文件夹filename:

adb shell mkdir /data/filename

然后push文件:

adb push mkfs.yaffs2.arm  /data/filename

改变执行权限:

adb shell chmod 777 /data/filename/mkfs.yaffs2.arm

执行:

./mkfs.yaffs2.arm /system   /data/filename/my_system.img

等待执行完毕,会提示build ok.

最后把它提取出来

adb pull  /data/filename/my_system.img (需要等一会)

2 替换镜像文件

进入sdk/system-image/android-*/arm/目录,使用my_system.img替换原来的system.img

至此完美收工!!

root Android 模拟器的更多相关文章

  1. 【Android】Android模拟器快速root

    启动Android模拟器,开始-运行-输入cmd,运行命令行 adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system ...

  2. 第三方Android 模拟器流畅速度快,适合开发人员

    “工欲善其事,必先利其器.” 使用Android模拟器开发和调试应用肯定比使用真机方便.但相比XCODE的IOS模拟器,Android SDK自带的AVD实在不争气,不过一些第三方的模拟器却表现不俗! ...

  3. Android模拟器访问本地的apache tomcat服务

    1. 在官网http://tomcat.apache.org/上下载tomcat,根据自己的电脑下载相应的文件 2.将apache-tomcat-6.0.37-windows-x64.zip包解压到本 ...

  4. 【转】使用命令行方式创建和启动android模拟器

    原文网址:http://blog.csdn.net/tiandinilv/article/details/8953001 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的 ...

  5. 在Hyper-V上安装RemixOS 的Android模拟器

    不想用实体机,想不想弄个快速的Android虚拟环境,今天我们就来说说把Android模拟器(RemixOS)安到Hyper-v上的办法. 1. 下载RemixOs  或者直接去 论坛获得下载地址 2 ...

  6. 【Android Studio安装部署系列】三十二、Android模拟器Genymotion安装使用教程详解

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 一.注册\登录 打开Genymotion官网,https://www.genymotion.com/ ,首先点击右上角的Sign in进行 ...

  7. Android模拟器基本使用和常用工具介绍

    注:其中部分内容参考网上资源 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的移动设备.Android的模拟器是基于QEMU开发的,QEMU是一个有名的开源虚拟机项目(详 ...

  8. 通过CMD命令行创建和使用Android 模拟器 AVD

    进行Android APP测试时,若手持android手机设备稀少的情况下,我们可以通过创建Android模拟器AVD来代替模拟android手机设备,本文就具体介绍如何创建和使用AVD. 1.创建A ...

  9. 使用Fiddler抓取Android模拟器中的Android_APP请求

    对Fiddler的设置:在https://www.telerik.com/download/fiddler网站上下载Fiddler,输入内容后点击下面按钮进行下载: 下载成功后,打开Fiddler进行 ...

随机推荐

  1. ubuntu install oracle jdk

    .Download the required tarball from here .unzip this tarball using "tar -zxvf tarball_name .cre ...

  2. 漫谈Ajax在.Net中的使用

    引用地址:http://birdshover.cnblogs.com/archive/2006/07/03/441439.html AJAX出来的时间也不短了.虽然它在某些方面很受争议,但是瑕不掩瑜. ...

  3. c++ 循环程序的作业,2017年10月10日作业题。

    作业1: 需求:输出一个由 * 符号所组成的矩形,要求每行有50个 * ,一共需要有60行.使用双重for循环完成. 作业2: 需求:输出一个由 * 符号所组成的三角形,要求第一行一个 * ,第二行 ...

  4. Oracle问题分析采集数据的方法

    1.背景: 运维人员或多或少都会遇到分析问题.分析故障的时候,往往在碰到一些棘手的问题事,我们都会往更深层次的专家进行求助.不管是二线专家还是Oracle全球服务工程师(后文称GCS工程师),往往都会 ...

  5. Linux IO调度方法

    目录 I/O调度的4种算法 I/O调度程序的测试 ionice IO调度器的总体目标是希望让磁头能够总是往一个方向移动,移动到底了再往反方向走,这恰恰就是现实生活中的电梯模型,所以IO调度器也被叫做电 ...

  6. ethtool查看网卡以及修改网卡配置

    ethtool 命令详解 命令描述: ethtool 是用于查询及设置网卡参数的命令. 使用概要:ethtool ethx       //查询ethx网口基本设置,其中 x 是对应网卡的编号,如et ...

  7. java util - Hex转换工具

    测试代码 package cn.java.codec.hex; public class Test { public static void main(String[] args) { String ...

  8. php+croppic.js实现剪切上传图片

    最近需要实现裁剪图片上传,想起之前公司用到的一个插件,却不知道叫什么名字了. 在网上找了有些时间,最终找到了这个网站. http://www.croppic.net/ 因为官网文档全部都是英文,所以看 ...

  9. configParser模块详谈

    前言 使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是configParser configPars ...

  10. HDU 6053 ( TrickGCD ) 分块+容斥

    TrickGCD Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...