在真机上获取root权限,可以很方便的通过第三方的一键root工具来实现,缺点是会安装不少广告apk。
即使可以忍受,但无法解决在虚拟机里拿到root。尝试一键root工具,百度、360的root工具无法识别虚拟机,卓大师可以获取root但无法正常进行权限管理,也就达不到获得su的效果。
下面是网上找到的可行方法
===============================================================================
一、准备
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、重启虚拟机(会丢失权限,暂时没找到办法禁止初始化,求指点)
===============================================================================
注意事项:
第一、如果虚拟机是基于x86内核,则上诉命令中的“bin”需要修改为:xbin
第二、如果发现无法正常修改su的权限,或者修改后在虚拟机的Terminal仍然无法su,可参照下面方案解决:
root@generic_x86:/system/bin # cat sh > /system/xbin/su
cat sh > /system/xbin/su
root@generic_x86:/system/bin # cd /system/xbin/
cd /system/xbin/
root@generic_x86:/system/xbin # chmod 777 su
chmod 777 su
root@generic_x86:/system/xbin #
遗留问题:
第一、目前项目中有款软件运行初能拿到su权限,而执行过程中需要修改system/bin内容,则无法使用mount和cp命令。已经是su却不能mount,不知运行时是什么权限?或者哪里问题
第二、虚拟机重启后,所有与root相关权限及安装的apk都会丢失,怀疑虚拟机有初始化操作。