假设你的资源包叫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
然后在随后的$(R_file_stamp)中增加my_framework_res_package_export_deps,在PRIVATE_AAPT_INCLUDES中增加my_framework_res_package_export。
然后修改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");