Android Q单编替换framework.jar方法
程序员文章站
2022-05-23 17:37:06
...
Android Q单编替换framework.jar方法
Android Q中按照以往方法修改frameworks/base/core/目录,然后将make framework编译出的framework.jar,直接adb push到手机system/framework/目录下,重启机器会出现无法启动现象,循环报出boot image异常,导致system server无法启动。
解决方法
修改build/make/core目录下的board_config.mk和dex_preopt_config.mk文件。
1.board_config.mk文件,修改:
WITH_DEXPREOPT := ture
为
WITH_DEXPREOPT := false
- dex_preopt_config.mk文件,修改:
WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= ture
为
WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= false
注释如下逻辑:
ifeq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
ifneq (true,$(WITH_DEXPREOPT))
ifneq (true,$(WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY))
$(call pretty-error, DEXPREOPT must be enabled for user and userdebug builds)
endif
endif
endif
修改如下:
修改完之后,全编代码,刷编译完成后的版本,后面就可以在修改完frameworks/base/后直接make framework单编,然后将生成的framework.jar push到手机system/framework/验证修改。