假设你的资源包叫my-framework-res.apk
请修改build/core/clear_var.mk,增加一个变量,类似LOCAL_USE_MY_FRAMEWORK_RES:=true,默认为true.
修改你的资源包的build脚本,设置LOCAL_USE_MY_FRAMEWORK_RES为false
请修改你的build/core/package.mk,在LOCAL_SDK_RES_VERSION中的合适位置增加
ifeq ($(LOCAL_USE_MY_FRAMEWORK_RES),true)
my_framework_res_package_export := \
$(call intermediates-dir-for,APPS,my-framework-res,,COMMON)/package-export.apk
my_framework_res_package_export_deps := \
$(dir $(my_framework_res_package_export))src/R.stamp
else
my_framework_res_package_export :=
my_framework_res_package_export_deps :=
endif # LOCAL_USE_MY_FRAMEWORK_RES
然后修改build/target/product/core.mk,在PRODUCT_PACKAGES增加my-framework-res
好,大功告成。
最后修改framework/base/core/java/android/content/res/AssetManager.java,在init()函数中增加
addAssertPath("/path/to/my-framework-res.apk");