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可能一定能实现。所以可以根据上面那篇文章适当的修改。