如何部分构建Android源代码?

6

我一直在修改Dalvik虚拟机,想知道是否有办法只从Android源代码中构建Dalvik虚拟机。

如果可以单独构建Dalvik虚拟机,那么如何将修改后的Dalvik虚拟机添加到Android系统中呢?

1个回答

12

假设您已经完成了初始构建(我假设您已经遵循了这里描述的步骤:http://source.android.com/source/building.html),那么您可以通过以下方式仅构建Dalvik VM:

$ make libdvm
当编译完成后,你会看到附近一些输出,类似于:
Install: out/target/product/generic/system/lib/libdvm.so

这是新构建的Dalvik VM(或更具体地说,实现Dalvik VM的库)。输出路径的最后一部分是期望安装文件的位置,在本例中为/system/lib/libdvm.so。要安装您的新VM,请首先确保您是root用户,然后重新挂载系统分区。

$ adb root
adbd is already running as root
$ adb remount
remount succeeded

现在,您可以将新的虚拟机推送到系统中:

$ adb push out/target/product/generic/system/lib/libdvm.so /system/lib/libdvm.so

请注意,如果您运行模拟器,则此更改不是永久性的,因为模拟器每次启动时都会重新加载system.img。 但是,在设备上,更改将是永久性的。另外,由于Android预加载一个名为Zygote的进程,该进程后来用于分叉应用程序进程,因此需要重新启动系统以使新的VM在应用程序中使用。

$ adb reboot

实际上,您可以通过以下步骤重建几乎所有的Android组件:

  1. 在要重新构建的组件源代码树中找到Android.mk
  2. 找到模块名称,在Dalvik VM的情况下,该行看起来像这样:LOCAL_MODULE := libdvm
  3. make 模块名称,对于Dalvik VM来说是 libdvm
  4. 构建完成后,文件将在构建输出中以Install:开头进行公告。对于Dalvik VM来说,这是Install: out/target/product/generic/system/lib/libdvm.so
  5. 执行adb rootadb remount命令,然后使用adb push命令将构建好的文件推送到正在运行的Android系统。目标路径是输出文件路径的最后部分,在dalvik的情况下是/system/lib/libdvm.so

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接