avd 模拟器root过程

centos中修改虚拟机这里要把emulator-user.ini里面的system路径改成我们复制出来的system.img的路径
然后再adb remount进行修改,删除SdkSetup.apk就不会恢复成原来的样子了。

emulator -avd MyAndroidVirtualDeviceName -partition-size 256

mksdcard -l sdcard 512M d:/android/mysdcard/sdcard.img

emulator -avd test -sdcard d:/android/mysdcard/sdcard.img
创建xposed需要sd卡

root步骤,基本上放个可执行的su文件就行了。不过模拟器有个恢复状态的apk需要删除一下。
rem %adb% shell mount -o remount,rw /system
adb root
adb remount

adb shell setenforce 0
adb shell rm /system/app/SdkSetup.apk
adb install Superuser.apk
adb push su /system/bin/su
adb shell chmod 0755 /system/bin/su
adb push su /system/xbin/su
adb shell chmod 0755 /system/xbin/su
adb shell su --install
adb shell “su --daemon&”

以上是root的核心

avd目录里面有个hardware-qemu.ini可以配置system.img的加载位置

xshell
rz上传文件
sz下载文件

emulator.exe -avd testavd -no-snapshot-load
-writable-system

-no-snapshot-load 不从快照启动
-no-snapshot-save 所有操作将不保存在快照里

android create avd -n testavd -k system-images;android-19;google_apis;x86 -c 100M

emulator -avd testavd -writable-system -no-snapshot-save

以上操作在x86的img中修改正常保留,但在arm架构的模拟器中,-system指定img后 -writable-system 并不能把修改写进system.img。而是保存在了临时文件夹tmp/andorid-XXX/emulator-xxxxx文件中。我们需要把emulator-xxxxx文件复制出来,重命名成为system.img然后利用他启动avd就可知达到修改system.img的目的了。

以上root的过程在4.4 5.0 等版本实现了

但到了4.1和其他一些版本 就不好用了。

经过不懈的努力,利用https://bbs.pediy.com/thread-226115.html文章中的编译su文件的方式实现了root。

当然如果要实现开机root还要更改init.rc。

结论不同版本的android系统同在 源码、system/extra/su.c的实现上差别还是比较大的。网上下载的su可能一定能实现。所以可以根据上面那篇文章适当的修改。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值