2011-02-02 69 views
3

我需要将文件修补到Android模拟器使用的system.img文件中,具体而言,我想将ARM二进制文件添加到/ system/bin目录。将文件修补到system.img中以便与android模拟器一起使用

我有这个二进制预编译,它完全在我的模拟器中工作,但我不能简单地重新挂载system.img作为rw和adb推它,因为更改是非持久的跨重新启动。我在system.img的副本上尝试了这一点,并将其传递给带有system的模拟器,但是这是非常难以执行的。

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

如果这是不可能的,是否有手动将它修补到图像中?

非常感谢。

回答

0

system.imgsystem.img 用原来的替换,所以你需要给你的补丁每当你的模拟器引导检查logcat &然后使用ADB推你手动推送补丁。

3

我对永久修改/ system文件夹感兴趣,并尝试解包system.img文件,但是我无法创建仿真器满意的新img(使用mkyaffs2和unyaffs2工具来提取和创建一个新的system.img)。

相反,我发现了一个更简单的解决方案:

  1. 从/ data /目录删除一切(除了的lost + found)
  2. 复制/系统的内容到你的/ data文件夹
  3. 制作您想要更改/数据/
  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文件夹是在用户数据,qemu.img文件被安装。 它在仿真器第一次运行时被创建,并且如果删除它将被重新创建。 (尽管您安装的应用程序将消失)。 通过填充/ system文件夹的内容,然后进行所需的修改,您已创建system.img文件的替代文件。

相关问题