forked from openkylin/platform_build
Extract prebuilt APKs from zip files
Since APKs are zip files, embedded APKs in other APKs can be extracted, installed, then optimized. DPI-based filenames can be used if LOCAL_DPI_VARIANTS is set. Bug: 29179775 Change-Id: Iab6388111522114ce9dc07057d59e3a89394cd6f
This commit is contained in:
parent
9cbe37e723
commit
048f56dfce
|
@ -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):=
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue