高效地构建Android系统服务组件

我正在尝试扩展Android的PackageManager功能,以修改this file

frameworks/base/services/core/java/com/android/server/pm/SELinuxMMAC.java

当我进行清洁&&编辑文件后执行并启动仿真器,所做的更改就在那里,但是即使启用了缓存,这也花费了很长时间.我尝试使用mmm framework / base,但它似乎无法重建services.core模块.

有谁知道一种可靠的方法来修改系统服务然后有效地进行重建?

解决方法:

mmm和子模块

>为services.core模块创建新的classes.dex:

mmm frameworks/base/services/core

>创建包含我们刚刚重建的services.core模块的services.jar文件:

mmm frameworks/base/services

>为模拟器创建新的system.img:

make snod

如果仿真器(或设备)已经在运行,则可以将新的services.jar用于:

adb remount && adb sync && adb shell stop && adb shell start

实际上,mm和mmm不会检查已修改的子模块,因此仅重建服务模块(步骤2)而不预先重建services.core(步骤1)模块是不够的.

敏捷

如果您看到以下消息:

Warning: with dexpreopt enabled, you may need a full rebuild.

您必须关闭dex预优化以进行清洁,然后在make和mm中使用以下标志:WITH_DEXPREOPT = false和DISABLE_DEXPREOPT = true.

上一篇:Java原始类型声明


下一篇:*如何在苹果电脑(Mac)上使用