diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 59e907b946..5886610588 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -204,6 +204,8 @@ LOCAL_SHARED_ANDROID_LIBRARIES:= # Used to replace the installed file of a presigned prebuilt apk in PDK fusion build, # to avoid installing the presigned apks with classes.dex unstripped. LOCAL_REPLACE_PREBUILT_APK_INSTALLED:= +LOCAL_EXTRACT_APK:= +LOCAL_EXTRACT_DPI_APK:= # arch specific variables LOCAL_SRC_FILES_$(TARGET_ARCH):= diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index ee68427541..d4503738d0 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk @@ -152,6 +152,8 @@ endif # my_strip_module not true ifeq ($(LOCAL_MODULE_CLASS),APPS) PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES)) +my_extract_apk := $(strip $(LOCAL_EXTRACT_APK)) + # Select dpi-specific source ifdef LOCAL_DPI_VARIANTS my_dpi := $(firstword $(filter $(LOCAL_DPI_VARIANTS),$(PRODUCT_AAPT_PREF_CONFIG) $(PRODUCT_AAPT_PREBUILT_DPI))) @@ -162,9 +164,27 @@ else my_prebuilt_dpi_file_stem := $(LOCAL_MODULE)_%.apk endif my_prebuilt_src_file := $(dir $(my_prebuilt_src_file))$(subst %,$(my_dpi),$(my_prebuilt_dpi_file_stem)) + +ifneq ($(strip $(LOCAL_EXTRACT_DPI_APK)),) +my_extract_apk := $(subst %,$(my_dpi),$(LOCAL_EXTRACT_DPI_APK)) +endif # LOCAL_EXTRACT_DPI_APK endif # my_dpi endif # LOCAL_DPI_VARIANTS +ifdef my_extract_apk +my_extracted_apk := $(intermediates)/extracted.apk + +$(my_extracted_apk): PRIVATE_EXTRACT := $(my_extract_apk) +$(my_extracted_apk): $(my_prebuilt_src_file) + @echo Extract APK: $@ + $(hide) mkdir -p $(dir $@) && rm -f $@ + $(hide) unzip -p $< $(PRIVATE_EXTRACT) >$@ + +my_prebuilt_src_file := $(my_extracted_apk) +my_extracted_apk := +my_extract_apk := +endif + rs_compatibility_jni_libs := include $(BUILD_SYSTEM)/install_jni_libs.mk