您的位置:首页 > 移动开发 > Android开发

android root

2014-04-03 02:51 176 查看
一、背景

1、安装安卓虚拟机后可以在虚拟机中对软件进行杀毒检测、功能验证,检验软件是否符合个人预期

2、杀毒软件需要系统的root权限

二、问题界定

1、取得虚拟机root权限

2、接触安卓时间不长,只能参照网络的方法进行

三、解决方案

1、参照http://bbs.hiapk.com/thread-763853-1-1.html

2、参照http://blog.csdn.net/feifei454498130/article/details/6537274

四、准备

su

Superuser.apk

五、验证方案

1、昨晚参照方案1进行了到中间无法进行了,直接采用的后半部分,结果可以取得root权限,但是重启后丢失root,无奈!

2、方案2对于我这种小白,有点高深,未验证。感觉方案1和方案2有相通之处。

六、分析

继续分析发现方案1中曾提到system.img,联想到修改ROM教程中有提到这个,能否通过修改system.img取得root权限?

七、再验证

1、复制一份system.img到虚拟机路径用于修改,防止原始文件修改失败还得重新下载

2、用yaffs2img浏览器添加su和Superuser.apk到system.img,并修改权限为4755(右单击添加文件、修改权限)

3、修改虚拟机的system.img路径(不修改原始system.img防止修改失败,修改前要养成备份的好习惯)

八、说明

1、保存思路,便于以后查询

2、我的环境XP SP3,安卓2.3

3、软件路径请视个人情况而定

android-8\images 安卓2.2

android-10\images 安卓2.3

android-16\images 安卓4.1

九、扩展

1、能通过修改system.img取得权限,也能删除系统软件(谨慎操作)

2、修改android-sdk中的原始system.img,新建虚拟机全部修改

附录

===============================================================================
http://bbs.hiapk.com/thread-763853-1-1.html
[原创] 赋予android模拟器_root权限

starduster发表于 2010-12-20 19:24:25

我的环境:XP

1.安装模拟器,网上很多,我就不啰嗦了。

2.建一个模拟器,我建的名字是android2.2。内存卡512M

启动完成后关闭。

3.使模拟器拥有root权限。

需su 和 Superuser.apk (已提供,另cmwrap.apk为测试是否拥有root权限)

3.1 首先把\android-sdk-windows\platforms\android-8\images下的system.img拷贝到模拟器安装目录下

这是我的路径D:\android-sdk_r08-windows\android-sdk\.android\avd\android2.2.avd

(你的可能在C:\Documents and Settings\Administrator\.android\avd\android2.2.avd等位置,实在找不到你搜索下)

开始----运行----输入cmd 确定

cd D:\android-sdk_r08-windows\android-sdk\tools 回车 (注:你的路径可能不一样,找到tools文件夹就行)

3.2. 找到emulator.exe,创建快捷方式目标里输入D:\android-sdk_r08-windows\android-sdk\tools\emulator.exe -avd android2.2 -partition-size 256 -sdcard D:\android-sdk_r08-windows\android-sdk\.android\avd\android2.2.avd\sdcard.img保存。双击执行。会运行模拟器。(注:自行修改,其中D:\android-sdk_r08-windows\android-sdk\tools\emulator.exe为emulator.exe路径,android2.2为名字,256为内存大小,D:\android-sdk_r08-windows\android-sdk\.android\avd\android2.2.avd\sdcard.img为sdcard.img路径)

3.3 模拟器启动好后。在cmd.exe命令行里的D:\android-sdk_r08-windows\android-sdk\tools后面输入

Adb pull /system/build.prop 回车。进入D:\android-sdk_r08-windows\android-sdk\tools,用文本编辑器打开build.prop文件,用”#”注释掉ro.config.nocheckin=yes行。(注:我不知道这干啥用,我是给模拟器加菜市场,找到的教程里有这个,教程地址忘了望作者见谅)

3.4 然后输入命令行:Adb remount 回车 (注:设置/system为可写。重要)

再输入命令行:Adb push build.prop /system/build.prop 回车(注:把修改后的重新写入原处)

3.5 解压附件中的su 、Superuser.apk ,cmwrap.apk 到D:\android-sdk_r08-windows\android-sdk\tools文件夹 (同上 修改为你的路径)

3.6 输入命令行:

adb push su /system/bin/ 回车 (复制su到/system/bin/下)

adb shell chmod 4755 /system/bin/su 回车 (赋予权限)

adb push Superuser.apk /system/app/ 回车 (安装superuser到/system/下)

adb push cmwrap.apk /system/app/ 回车 (可选,安装cmwrap.apk)

adb shell rm /system/app/SdkSetup.apk 回车 (删除sdksetup,你也可以用adb shell rm /system/app/删除里面不想要的东西,前提是运行不出错)

3.7 关闭模拟器,把产生的image文件: .android\avd\V_Android2.2.avd\下的userdata-qemu.img, userdata.img, cache.img删除掉。

3.8 双击刚才建的快捷方式打开模拟器。此时 已经有root权限了。cmwrap.apk会提示你是否赋予它权限。

如果没有root权限,重新在命令行输入 adb shell chmod 4755 /system/bin/su 回车,关闭模拟器,重新打开,就有root权限了。

(本人业余玩android,也比较懒,就不编辑了,)

2010.12.20

===============================================================================

验证失败记录(图片已删除有兴趣的去照片里看)

一、准备

su

Superuser.apk

二、步骤

1、打开安卓虚拟机

2、将su和Superuser.apk放到E:\Program Files\Android\android-sdk\tools路径下(每个人的安装路径不同,请视情况而定)

3、打开CMD进入E:\Program Files\Android\android-sdk\tools输入以下命令

Adb pull /system/build.prop

4、进入E:\Program Files\Android\android-sdk\tools,用文本编辑器打开build.prop文件,用”#”注释掉ro.config.nocheckin=yes行

5、在CMD中依次输入以下命令

Adb remount

Adb push build.prop /system/build.prop

adb push su /system/bin

adb shell chmod 4755 /system/bin/su

adb push Superuser.apk /system/app/

adb shell chmod 4755 /system/app/Superuser.apk

6、打开Superuser有root权限

7、重启虚拟机(哦,丢失权限)

===============================================================================































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

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

Android SDK
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”,也不能错!也可以把豌豆荚的app软件导进去,设权限为“0644”(好像不行,进去就是豌豆荚停止运行)!试过欧鹏浏览器可以!

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

镜像文件都下过!修改下,很简单!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: