有效构建Android系统服务组件

时间:2015-04-09 12:41:41

标签: android build compilation makefile android-source

我试图扩展Android修改this file PackageManager 功能:

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

当我在编辑文件后执行make clean && make并启动模拟器时,会有更改,但即使启用了缓存,这也需要很长时间。我尝试使用mmm framework/base但似乎没有重建 services.core 模块。

有没有人知道修改系统服务然后有效重建的可靠方法?

1 个答案:

答案 0 :(得分:3)

mmm和子模块

  1. services.core 模块创建新的 classes.dex

    mmm frameworks/base/services/core
    
  2. 创建 services.jar 文件,包括我们刚刚重建的 services.core 模块:

    mmm frameworks/base/services
    
  3. 为模拟器创建新的 system.img

    make snod
    

    如果模拟器(或设备)已在运行,您可以使用新的 services.jar

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

  4. 实际上mmmmm不检查已修改的子模块,因此重建服务模块(步骤 2 )而不事先重建 services.core (步骤 1 )模块是不够的。


    DEXPREOPT

    如果您看到消息:

      

    警告:启用dexpreopt后,您可能需要完全重建。

    您必须关闭执行make clean dex preoptimization ,然后在makemmWITH_DEXPREOPT=false中使用以下标记, DISABLE_DEXPREOPT=true