我一直在修改Dalvik VM,我想知道是否有一种方法可以从android源代码只构建Dalvik VM。
如果我可以单独构建Dalvik VM,那么如何将修改后的Dalvik VM添加到Android系统?
提前致谢
答案 0 :(得分: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的库)。 out路径的最后一部分是预期安装文件的位置,在本例中为/system/lib/libdvm.so
。要安装新VM,首先要确保您是root用户,然后重新安装系统分区
$ adb root
adbd is already running as root
$ adb remount
remount succeeded
您现在可以将新VM推送到系统:
$ adb push out/target/product/generic/system/lib/libdvm.so /system/lib/libdvm.so
请注意,如果您运行模拟器,则此更改不是永久性的,因为模拟器每次启动时都会重新加载system.img
。但是,在设备上,更改将是永久性的。此外,由于Android预加载了一个名为Zygote的进程,该进程稍后用于分叉应用程序进程,因此需要重新引导系统以使新VM在应用程序中使用
$ adb reboot
您实际上可以通过这种方式重建几乎所有Android组件。一般步骤是
Android.mk
LOCAL_MODULE := libdvm
make
模块名称,即Dalvik VM的libdvm
Install:
开头。对于Dalvik VM,这是Install: out/target/product/generic/system/lib/libdvm.so
adb root
和adb remount
,然后将adb push
构建的文件发送到正在运行的Android系统。目标路径是输出文件路径的最后一部分,在dalvik的情况下是/system/lib/libdvm.so