本文转载自:http://quantoubao.blog.163.com/blog/static/2083211702013870501987/

安装Android SDK安卓模拟器的方法很简单,网上大把,傻瓜式的。不过对其root的方法,网上的版本就不那么好使了。网上的方法从方向性来说是没错的,就是细节没给讲清楚,或者讲错,或者没提到这样root方式对高低不同版本API的区别,导致不少人跟着所谓教程去做都root失败。

  我这里以Android4.0.4(API15)为蓝本讲讲适合高版API的Android SDK虚拟机的root方法,很简单的。

  没有root之前是这样的,帧缓冲无内容。

  Root的第一步,准备工具。就两个文件。①上网搜一个叫做《YAFFS2IMG》的镜像浏览器,暂时建议用1.5版,2.0版我下载几款(当然不是Z版)似乎都有问题。②上这个网址,就是Superuser设计者的网站androidsu.com,下载对应自己模拟器版本的超级授权用户文件(该页面下方有其压缩包)。所谓对应版本,一方面是对应模拟器模拟的CPU版本,是ARM的还是x86的,不能选错。如果你模拟时选了MIP的CPU,那就死了root这条心吧。目前互联网上铺天盖地的教程都没讲清楚这点,还在文中引用第三方下载点的文件,是导致新手操作失败的罪魁祸首!另一方面就是选适合自己模拟器模拟系统的版本,以目前androidsu.com提供的最新正式版破解文件来看,适合Android2.0-4.1的。对于更旧版的(好像没什么root的意义了)可找它的历史版本;对于更新版的可以考虑它的测试版或再等一段时间。下载的话,只要下那个Superuser包即可,已经含有齐全的文件。

  Root的第二步,用《YAFFS2IMG》将虚拟机子目录“system-images”内对应目标模拟器使用的系统镜像目录(我这里是“android-15\armeabi-v7a”)内的“system.img”打开。将其根目录下的“build.prop”文件提取到硬盘,用文本编辑工具(如记事本)打开,将其“ro.config.nocheckin=yes”一行删掉。当然,行头加“#”号注释掉也可以,似乎多余。再把改完的“build.prop”导入回镜像中的原来位置替换原文件。记住,把文件权限设为“0644”。必须记住,这里只能是“0644”,别依据其它教程讲的其它权限!

  Root的第三步,把第一步下载的Superuser压缩包解开,把里头的一个叫做“su”(无扩展名)的文件导入第二步打开的镜像“bin”目录里,把权限设为“6755”。再把这个“su”导到“xbin”目录中,如果遇到已存在旧文件,直接覆盖,且把权限设为“0755”。记住,前一个是“6755”,后一个是“0755”。别弄错了!网上害人的教程,要么把权限说错(可能它设的权限适合旧旧旧版本的SDK模拟器),要么讲漏了“xbin”这个目录!然后把解压缩包中的“Superuser.apk”导入到镜像的“app”目录中,设权限为“0644”,也不能错!

  Root的最后一步,把修改的镜像保存,选择“无ECC/没有FFFF标志”这组参数组合。

  得了,这就是Root后的景况。一劳永逸。

  上面提到的文件修改别指望在虚拟机中完成,一重启虚拟机就没了。就算用了快照,对其它引用同镜像的AVD也无效。还是这样改镜像最妥当,改一下就全部同镜像的AVD都生效。本方法对安卓 SDK模拟的4.0/4.1可用,至于4.2/4.3,等有新版su再试吧。

请看后续文段《Android SDK模拟器Root方法进阶

前文再续,书接上一回(《Android SDK模拟器对4.0.4等高版API的简易Root方法》)。话说目前讲的Android SDK模拟器虚拟机Root的话,大多用androidsu.com的Superuser方案。事实上用其它su也未尝不可,方法很简单。

  准备工夫除了前文提到通用的《YAFFS2IMG》浏览器外,就是每个权限管理工具的apk文件与对应的su文件。

  通用的处理手法就是(实机同样Root方法,实机系统用RE工具或连电脑跑adb命令,虚拟机系统用YAFFS2IMG):

  ⑴参照我旧文第2步。

  ⑵将apk文件主文件名改为其原始完整包名,可用幸运破解器看对应包的“Package name”。

  ⑶将改名后的apk文件塞到目标系统的“system\app”里,权限取0644。

  ⑷将apk文件用解压缩工具解包,看里头有没有lib目录,有的话,将里头对应cpu目录(armeabi或x86或mip)里的所有文件塞到目标系统的“system\lib”里,权限全取0644。

  ⑸把su文件放相应位置,并修改权限。根据不同的Root工具,这有几样情况——

   ①只放“system\bin”,权限是0755,“system\xbin”不得有su。

   ②只放“system\bin”,权限是6755,“system\xbin”不得有su。

   ③只放“system\xbin”,权限是0755,“system\bin”不得有su。

   ④只放“system\xbin”,权限是6755,“system\bin”不得有su。

   ⑤既放“system\bin”,权限是0755;又放“system\xbin”,权限是0755。

   ⑥既放“system\bin”,权限是6755;又放“system\xbin”,权限是0755。

   ⑦既放“system\bin”,权限是0755;又放“system\xbin”,权限是6755。

   ⑧既放“system\bin”,权限是6755;又放“system\xbin”,权限是6755。

   例如,对于androidsu.com的方案,要采用情况⑥;对于eu.chainfire.supersu的方案,必须采用情况④。其它Root方案类似。上面讲的不得有su的状态是指虚拟机,因为虚拟机是写镜像,与系统虚拟操作无关,而实机会在重启时自动处理掉这多余的su。

  ⑹重启目标系统验收成果。

附上IntelX86的su文件:Superuser-3.1.3-x86-signed.zip

附上yaffs2img浏览器:yaffs2img浏览器

超简单,安卓模拟器手动root的更多相关文章

  1. 安卓模拟器研究-root

    http://www.bluestacks.cn/index.asp 下载最新的 BlueStacks 尝试了很久都没有root成功. 百度搜索  找到经验文档 http://jingyan.baid ...

  2. adb连接安卓模拟器

    为了在电脑上玩手机游戏,国内推出了很多安卓模拟器,mumu.夜神.itools.海马等等.我们也可以用他们来做安卓开发,相对genymotion或者android studio自带的模拟器而言,国产模 ...

  3. 超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本

    超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本 前言 上一篇自动化测试,全面且详细的介绍了从零开始到发布版本的步骤,这是传统的方式,本次为大家带来的是如何在5分钟内使用上d ...

  4. 使用fiddler和安卓模拟器抓取安卓客户端数据包

    安卓模拟器要选可以桥接网络的,本文中用的是雷电模拟器. 软件的安装都很简单,在此不再赘述. fiddler中的设置 首先,打开fiddler,点击Tools选项卡下的Options. 切换到https ...

  5. 超简单的CDH6部署和体验(单机版)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. 超简单的JNI——NDK开发教程

    不好意思各位,我按照网上一些教程进行JNI开发,折腾了半天也没成功,最后自己瞎搞搞定了,其实超简单的,网上的教程应该过时了,最新版的AS就包含了NDK编译的功能,完全不用手动javah,各种包名路径的 ...

  7. Android Studio 1.0.1 + Genymotion安卓模拟器打造高效安卓开发环境

    我们开发安卓大多是使用Eclipse和安卓SDK中自带的安卓模拟器.当然,Google早就推出了自己的安卓开发环境——Android studio,在不久前,Google发布了Android Stud ...

  8. mysql主从复制(超简单)

      mysql主从复制(超简单) 怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1.主从服务器分别作以下操作:  1.1.版本一致  1.2.初始化表,并在后台启动mysql  ...

  9. 超简单的NDK单步调试方法

    令人兴奋的是,ADTr20已经支持JNI单步调试,再也不需要如上这么麻烦的步骤了 你现在需要做的只需以下2步: 1.使用ndk-build编译时,加上如下参数NDK_DEBUG=1,之后生成so文件之 ...

随机推荐

  1. NYOJ 205

    大数取模算法: 这个又不同于幂取模算法,对于几百万位的数字取模,直接的方法是行不通的.最好利用数论的知识 (a*b)%c = ((a%c)*b)%c ;利用这个公式我们只要从n的一次方开始不断计算,乘 ...

  2. 嵌入式Linux驱动学习之路(十一)按键驱动-中断机制

    轮询方式: 和led驱动不同的是在配置IO引脚的时候,把LED的输出引脚换成输入,在read函数中向外发送io的状态.必须由应用程序不断的来查询当前IO口的状态来判断. 中断方式: /* file n ...

  3. 重写Oracle的wm_concat函数,自定义分隔符、排序

    oracle中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似,不过group_concat函数比较强大,可以定义分隔符和排序,当然所谓强大是相对的,这里假使我 ...

  4. git使用札记

    #1,本地推送到远程 查看本地关联的远程分支:git remote -v 添加远程分支:git remote add 推送本地到远程分支:git push URLOFYOURGIT #2,远程获取一个 ...

  5. VMware三种上网模型

    今天捣鼓了一会虚拟机,对上网方式又学习了一遍,之前摆弄过,现在又捡起来了,主要自己整理一下,方面后面复习.主要有三种网络模型:桥接.仅主机(Host-Only).NAT.自己亲测了这三种方式,都可以上 ...

  6. 解决win8 下 eclipse 中文字体太小的问题

    一.把字体设置为Courier New  操作步骤:打开Elcipse,点击菜单栏上的“Windows”——点击“Preferences”——点击“Genneral”——点击“Appearance”— ...

  7. HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) {    ...

  8. NOSQL数据模型和CAP原理

    NOSQL数据模型和CAP原理 http://blog.sina.com.cn/s/blog_7800d9210100t33v.html 我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoS ...

  9. 【转】解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介

    ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦.为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一个.NET Core的东 ...

  10. 使用属性动画 — Property Animation

    属性动画,就是通过控制对象中的属性值产生的动画.属性动画是目前最高级的2D动画系统. 在API Level 11中添加.Property Animation号称能控制一切对象的动画,包括可见的和不可见 ...