我试图扩展Android修改this file的 PackageManager 功能:
frameworks/base/services/core/java/com/android/server/pm/SELinuxMMAC.java
当我在编辑文件后执行make clean && make
并启动模拟器时,会有更改,但即使启用了缓存,这也需要很长时间。我尝试使用mmm framework/base
但似乎没有重建 services.core 模块。
有没有人知道修改系统服务然后有效重建的可靠方法?
答案 0 :(得分:3)
mmm
和子模块为 services.core 模块创建新的 classes.dex :
mmm frameworks/base/services/core
创建 services.jar 文件,包括我们刚刚重建的 services.core 模块:
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 )模块是不够的。
如果您看到消息:
警告:启用dexpreopt后,您可能需要完全重建。
您必须关闭执行make clean
的 dex preoptimization ,然后在make
和mm
:WITH_DEXPREOPT=false
中使用以下标记, DISABLE_DEXPREOPT=true
。