繁体   English   中英

将文件修补到system.img以与android模拟器一起使用

[英]Patching a file into system.img for use with android emulator

我需要将文件修补到Android模拟器使用的system.img文件中,特别是我想将一个ARM二进制文件添加到/ system / bin目录。

我有这个二进制预编译,它完美地在我的模拟器中工作,但我不能简单地将system.img重新安装为rw和adb推送它,因为更改在重新启动时是非持久的。 我在system.img的副本上尝试了这个并将其传递给带有-system的模拟器,但遗憾的是它是非持久性的。

在理想的世界中,我想修改“make sdk”进程,以便sdk构建过程在生成system.img时自动包含我的二进制文件。 可以这样做吗?

如果无法做到这一点,无论如何都要手动将其修补到图像中?

非常感谢。

我有兴趣永久修改/ system文件夹并尝试解压缩system.img文件,但是我没能创建一个模拟器很满意的新img(使用mkyaffs2和unyaffs2工具来提取和创建一个新系统) .IMG)。

相反,我找到了一个更容易的解决方

  1. 从/ data /目录中删除所有内容(lost + found除外)
  2. 将/ system的内容复制到/ data文件夹中
  3. 对/ data /进行所需的更改
  4. 杀死模拟器

您现在将〜/ .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文件的替换。

system.img替换为原始版本,因此您需要在模拟器启动时检查logcat并在使用ADB推送时手动推送补丁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM