android模拟器重启防止恢复重置,永久删除系统应用apk

来源:互联网 发布:淘宝卖家温馨寄语 编辑:程序博客网 时间:2024/06/07 02:56

别看步骤多,我只是细分了下,还没图,认真看完,绝对有用

1.拷贝system.img到模拟器目录下

cp sdk目录下的system.img avd目录下

system.img一般位于这两个位置:

sdk根目录下的system-images/android-X/default/armeabi-v7a/

或者sdk根目录下的platforms/android-X/images/

avd目录一般是用户主目录下的~/.android/avd/x.x.x.avd

2.修改disk.systemPartition.initPath

disk.systemPartition.initPath位于avd目录下的hardware-qemu.ini文件,用vim或gedit打开修改为

disk.systemPartition.initPath =avd目录下的/system.img

3.打开模拟器:emulator -avd 你的模拟器名称 -partition-size 512 &

4.adb remount把android文件系统从只读变成可读写,adb remount执行不了的,可以换这个adb shell mount -o rw,remount /system或者这个 mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system

5.移除SdkSetup.apk

adb shell //进入模拟器

cd system/app

rm SdkSetup.apk

这一个apk是一定要移除的,否则又会被还原

6.这一步就做你想对模拟器做的,比如移除系统应用等等,比如我们rm Phome.apk,如果成功,重启模拟器之后再到system/app下是看不到Phone.apk的

7.备份system.img

拷贝system.img的临时文件到avd目录下

这边解释一下为什么模拟器重启会被还原:第2步中的disk.systemPartition.initPath原本是指向sdk原来的镜像,模拟器开启的时候会拷贝一份镜像到临时文件夹中,这一份拷贝的镜像就是你模拟器运行的时候用到的镜像,所以你对模拟器所做的改变都是在这一份拷贝中,当模拟器重启的时候又根据disk.systemPartition.initPath指向到最原始的镜像,所以对模拟器的system目录所做的修改会被还原,所以我们才要修改disk.systemPartition.initPath

回到主线:cp 临时文件夹/android-XXX/emulator-xxx avd目录,3个大X是用户名,emulator-xxx就是system.img的临时拷贝镜像

windows的临时文件夹一般使这个:C:\Users\UserName\AppData\Local\Temp\AndroidEmulator\

linux的是这个:/tmp/

8.关闭模拟器

9.删除avd目录下的cache.img和usrdata-qemu.img

rm avd目录/cache.img

10.给avd目录下的临时镜像改名

mv emulator-xxx system.img

sudo chmod 755 system.img

11.重启看效果吧。

以后还还要改,重复3-10

0 0
原创粉丝点击