我需要将文件修补到Android模拟器使用的system.img文件中,特别是我想将一个ARM二进制文件添加到/ system / bin目录。
我预先编译了这个二进制文件,它在我的模拟器中完美运行,但我不能简单地将system.img重新安装为rw和adb推送它,因为更改在重新启动时是非持久的。我在system.img的副本上尝试了这个,然后用-system将它传递给模拟器,但这很遗憾。
在理想世界中,我想修改“make sdk”进程,以便sdk构建过程在生成system.img时自动包含我的二进制文件。可以这样做吗?
如果无法做到这一点,是否还要手动将其修补到图像中?
非常感谢。
答案 0 :(得分:3)
我有兴趣永久修改/ system文件夹并尝试解压缩system.img文件,但是我没能创建一个模拟器很满意的新img(使用mkyaffs2和unyaffs2工具来提取和创建一个新的system.img)。
相反,我找到了一个更简单的解决方案:
您现在将〜/ .android / avd / MYANDROID.avd / userdata-qemu.img移动到〜/ system.img(或任何地方) 并使用新的系统映像启动您的模拟器:
emulator -debug all -show-kernel -verbose -avd MYANDROID -no-boot-anim \
-gpu on -partition-size 800 -system [path to your new system.img]
/ data文件夹是userdata-qemu.img文件的挂载位置。 它在第一次运行模拟器时创建,如果删除它将重新创建。 (虽然您安装的应用程序将消失)。 通过使用/ system文件夹的内容填充它,然后进行所需的修改,您已经创建了system.img文件的替换。
答案 1 :(得分:0)
system.img
替换为原始版本,因此您需要在模拟器启动时提供补丁检查logcat&然后使用ADB推送您手动推送补丁。