在构建Android AOSP并在模拟器上运行时,如何重置用户数据图像?

时间:2019-01-30 17:54:03

标签: android android-source

我从源代码构建了AOSP 8.1.0_r60,并按照https://stackoverflow.com/revisions/48310014/9

的说明启动了它
. build/envsetup.sh
lunch aosp_x86_64-eng
emulator -show-kernel

然后,我用adb install安装了一个应用,并进行了试用。

现在,我想在安装应用程序之前将系统还原到初始状态。

通过printing the QEMU command line options并在设备中使用find,我注意到该应用已安装在内部:

/data

这似乎来自userdata-qemu.img.qcow2图片:

-drive if=none,index=2,id=userdata,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/userdata-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576

在安装我的应用之前,将映像重置为原始状态的最佳方法是什么?

我什至尝试进行全面重建:

make

但是此应用仍然存在。

我在How to just build Android system image处学会了如何使用/system快速清理make snod,但是找不到用户图像的类似选项。

1 个答案:

答案 0 :(得分:0)

in this answer所述,我注意到所有可写图像都是基本图像的qcow2叠加层。

我找不到通过构建系统还原它们的方法,这是理想的选择,但是由于qcow2覆盖非常简单,因此作为解决方法手动进行是合理的:

rm system-qemu.img.qcow2
qemu-img create -b system-qemu.img -f qcow2 system-qemu.img.qcow2 1T

请注意,make snod仅重置.img文件,而不重置.img.qcow使用的-writable-system