Loading core/Makefile +43 −3 Original line number Diff line number Diff line Loading @@ -1206,16 +1206,53 @@ systemtarball-nodeps: $(FS_GET_STATS) \ .PHONY: stnod stnod: systemtarball-nodeps ####### # ----------------------------------------------------------------- ## platform.zip: system, plus other files to be used in PDK fusion build, ## in a zip file ## ## PDK_PLATFORM_ZIP_PRODUCT_BINARIES is used to store specified files to platform.zip. ## The variable will be typically set from BoardConfig.mk. ## Files under out dir will be rejected to prevent possible conflicts with other rules. pdk_odex_javalibs := $(strip $(foreach m,$(DEXPREOPT.MODULES.JAVA_LIBRARIES),\ $(if $(filter $(DEXPREOPT.$(m).INSTALLED),$(ALL_DEFAULT_INSTALLED_MODULES)),$(m)))) pdk_odex_apps := $(strip $(foreach m,$(DEXPREOPT.MODULES.APPS),\ $(if $(filter $(DEXPREOPT.$(m).INSTALLED),$(ALL_DEFAULT_INSTALLED_MODULES)),$(m)))) pdk_classes_dex := $(strip \ $(foreach m,$(pdk_odex_javalibs),$(call intermediates-dir-for,JAVA_LIBRARIES,$(m),,COMMON)/javalib.jar) \ $(foreach m,$(pdk_odex_apps),$(call intermediates-dir-for,APPS,$(m))/package.dex.apk)) pdk_odex_config_mk := $(PRODUCT_OUT)/pdk_dexpreopt_config.mk $(pdk_odex_config_mk): PRIVATE_JAVA_LIBRARIES := $(pdk_odex_javalibs) $(pdk_odex_config_mk): PRIVATE_APPS := $(pdk_odex_apps) $(pdk_odex_config_mk) : @echo "PDK odex config makefile: $@" $(hide) mkdir -p $(dir $@) $(hide) echo "# Auto-generated. Do not modify." > $@ $(hide) echo "PDK.DEXPREOPT.JAVA_LIBRARIES:=$(PRIVATE_JAVA_LIBRARIES)" >> $@ $(hide) echo "PDK.DEXPREOPT.APPS:=$(PRIVATE_APPS)" >> $@ $(foreach m,$(PRIVATE_JAVA_LIBRARIES),\ $(hide) echo "PDK.DEXPREOPT.$(m).SRC:=$(patsubst $(OUT_DIR)/%,%,$(call intermediates-dir-for,JAVA_LIBRARIES,$(m),,COMMON)/javalib.jar)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT:=$(DEXPREOPT.$(m).DEX_PREOPT)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).MULTILIB:=$(DEXPREOPT.$(m).MULTILIB)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT_FLAGS:=$(DEXPREOPT.$(m).DEX_PREOPT_FLAGS)" >> $@$(newline)\ ) $(foreach m,$(PRIVATE_APPS),\ $(hide) echo "PDK.DEXPREOPT.$(m).SRC:=$(patsubst $(OUT_DIR)/%,%,$(call intermediates-dir-for,APPS,$(m))/package.dex.apk)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT:=$(DEXPREOPT.$(m).DEX_PREOPT)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).MULTILIB:=$(DEXPREOPT.$(m).MULTILIB)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT_FLAGS:=$(DEXPREOPT.$(m).DEX_PREOPT_FLAGS)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).PRIVILEGED_MODULE:=$(DEXPREOPT.$(m).PRIVILEGED_MODULE)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).PROPRIETARY_MODULE:=$(DEXPREOPT.$(m).PROPRIETARY_MODULE)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).TARGET_ARCH:=$(DEXPREOPT.$(m).TARGET_ARCH)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).STRIPPED_SRC:=$(patsubst $(PRODUCT_OUT)/%,%,$(DEXPREOPT.$(m).INSTALLED_STRIPPED))" >> $@$(newline)\ ) PDK_PLATFORM_ZIP_PRODUCT_BINARIES := $(filter-out $(OUT_DIR)/%,$(PDK_PLATFORM_ZIP_PRODUCT_BINARIES)) INSTALLED_PLATFORM_ZIP := $(PRODUCT_OUT)/platform.zip $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_SYSTEMIMAGE_FILES) $(INSTALLED_PLATFORM_ZIP): PRIVATE_DEX_FILES := $(pdk_classes_dex) $(INSTALLED_PLATFORM_ZIP): PRIVATE_ODEX_CONFIG := $(pdk_odex_config_mk) $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_SYSTEMIMAGE_FILES) $(pdk_odex_config_mk) $(call pretty,"Platform zip package: $(INSTALLED_PLATFORM_ZIP)") $(hide) rm -f $@ $(hide) cd $(dir $@) && zip -qryX $(notdir $@) \ Loading @@ -1232,6 +1269,9 @@ endif ifneq ($(PDK_PLATFORM_ZIP_PRODUCT_BINARIES),) $(hide) zip -qryX $@ $(PDK_PLATFORM_ZIP_PRODUCT_BINARIES) endif @# Add dex-preopt files and config. $(if $(PRIVATE_DEX_FILES),$(hide) cd $(OUT_DIR) && zip -qryX $(patsubst $(OUT_DIR)/%,%,$@ $(PRIVATE_DEX_FILES))) $(hide) zip -qryXj $@ $(PRIVATE_ODEX_CONFIG) .PHONY: platform platform: $(INSTALLED_PLATFORM_ZIP) Loading @@ -1244,7 +1284,7 @@ ifneq (,$(filter platform platform-java, $(MAKECMDGOALS))) $(call dist-for-goals, platform platform-java, $(INSTALLED_PLATFORM_ZIP)) endif ####### # ----------------------------------------------------------------- ## boot tarball define build-boottarball-target $(hide) echo "Target boot fs tarball: $(INSTALLED_BOOTTARBALL_TARGET)" Loading core/clear_vars.mk +3 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,9 @@ LOCAL_NOTICE_FILE:= LOCAL_USE_AAPT2:=$(USE_AAPT2) LOCAL_STATIC_ANDROID_LIBRARIES:= 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:= # arch specific variables LOCAL_SRC_FILES_$(TARGET_ARCH):= Loading core/config.mk +2 −0 Original line number Diff line number Diff line Loading @@ -449,6 +449,8 @@ ifeq (,$(wildcard $(PDK_FUSION_PLATFORM_ZIP))) endif endif BUILD_PLATFORM_ZIP := $(filter platform platform-java,$(MAKECMDGOALS)) # # Tools that are prebuilts for TARGET_BUILD_APPS # Loading core/definitions.mk +14 −4 Original line number Diff line number Diff line Loading @@ -2357,7 +2357,12 @@ endef #TODO: update the manifest to point to the dex file define add-dex-to-package $(hide) find $(dir $(PRIVATE_DEX_FILE)) -maxdepth 1 -name "classes*.dex" | sort | xargs zip -qjX $@ $(call add-dex-to-package-arg,$@) endef # $(1): the package file. define add-dex-to-package-arg $(hide) find $(dir $(PRIVATE_DEX_FILE)) -maxdepth 1 -name "classes*.dex" | sort | xargs zip -qjX $(1) endef # Add java resources added by the current module. Loading Loading @@ -2396,12 +2401,17 @@ endef # Sign a package using the specified key/cert. # define sign-package $(hide) mv $@ $@.unsigned $(call sign-package-arg,$@) endef # $(1): the package file we are signing. define sign-package-arg $(hide) mv $(1) $(1).unsigned $(hide) java -Djava.library.path=$(SIGNAPK_JNI_LIBRARY_PATH) -jar $(SIGNAPK_JAR) \ --min-sdk-version $(call get-package-min-sdk-version-int,$@.unsigned) \ $(PRIVATE_CERTIFICATE) $(PRIVATE_PRIVATE_KEY) \ $(PRIVATE_ADDITIONAL_CERTIFICATES) $@.unsigned $@.signed $(hide) mv $@.signed $@ $(PRIVATE_ADDITIONAL_CERTIFICATES) $(1).unsigned $(1).signed $(hide) mv $(1).signed $(1) endef # Align STORED entries of a package on 4-byte boundaries to make them easier to mmap. Loading core/dex_preopt.mk +6 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,12 @@ ifeq ($(HOST_OS),linux) endif endif GLOBAL_DEXPREOPT_FLAGS := ifeq ($(WITH_DEXPREOPT_PIC),true) # Compile boot.oat as position-independent code if WITH_DEXPREOPT_PIC=true GLOBAL_DEXPREOPT_FLAGS += --compile-pic endif # $(1): the .jar or .apk to remove classes.dex define dexpreopt-remove-classes.dex $(hide) zip --quiet --delete $(1) classes.dex; \ Loading Loading
core/Makefile +43 −3 Original line number Diff line number Diff line Loading @@ -1206,16 +1206,53 @@ systemtarball-nodeps: $(FS_GET_STATS) \ .PHONY: stnod stnod: systemtarball-nodeps ####### # ----------------------------------------------------------------- ## platform.zip: system, plus other files to be used in PDK fusion build, ## in a zip file ## ## PDK_PLATFORM_ZIP_PRODUCT_BINARIES is used to store specified files to platform.zip. ## The variable will be typically set from BoardConfig.mk. ## Files under out dir will be rejected to prevent possible conflicts with other rules. pdk_odex_javalibs := $(strip $(foreach m,$(DEXPREOPT.MODULES.JAVA_LIBRARIES),\ $(if $(filter $(DEXPREOPT.$(m).INSTALLED),$(ALL_DEFAULT_INSTALLED_MODULES)),$(m)))) pdk_odex_apps := $(strip $(foreach m,$(DEXPREOPT.MODULES.APPS),\ $(if $(filter $(DEXPREOPT.$(m).INSTALLED),$(ALL_DEFAULT_INSTALLED_MODULES)),$(m)))) pdk_classes_dex := $(strip \ $(foreach m,$(pdk_odex_javalibs),$(call intermediates-dir-for,JAVA_LIBRARIES,$(m),,COMMON)/javalib.jar) \ $(foreach m,$(pdk_odex_apps),$(call intermediates-dir-for,APPS,$(m))/package.dex.apk)) pdk_odex_config_mk := $(PRODUCT_OUT)/pdk_dexpreopt_config.mk $(pdk_odex_config_mk): PRIVATE_JAVA_LIBRARIES := $(pdk_odex_javalibs) $(pdk_odex_config_mk): PRIVATE_APPS := $(pdk_odex_apps) $(pdk_odex_config_mk) : @echo "PDK odex config makefile: $@" $(hide) mkdir -p $(dir $@) $(hide) echo "# Auto-generated. Do not modify." > $@ $(hide) echo "PDK.DEXPREOPT.JAVA_LIBRARIES:=$(PRIVATE_JAVA_LIBRARIES)" >> $@ $(hide) echo "PDK.DEXPREOPT.APPS:=$(PRIVATE_APPS)" >> $@ $(foreach m,$(PRIVATE_JAVA_LIBRARIES),\ $(hide) echo "PDK.DEXPREOPT.$(m).SRC:=$(patsubst $(OUT_DIR)/%,%,$(call intermediates-dir-for,JAVA_LIBRARIES,$(m),,COMMON)/javalib.jar)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT:=$(DEXPREOPT.$(m).DEX_PREOPT)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).MULTILIB:=$(DEXPREOPT.$(m).MULTILIB)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT_FLAGS:=$(DEXPREOPT.$(m).DEX_PREOPT_FLAGS)" >> $@$(newline)\ ) $(foreach m,$(PRIVATE_APPS),\ $(hide) echo "PDK.DEXPREOPT.$(m).SRC:=$(patsubst $(OUT_DIR)/%,%,$(call intermediates-dir-for,APPS,$(m))/package.dex.apk)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT:=$(DEXPREOPT.$(m).DEX_PREOPT)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).MULTILIB:=$(DEXPREOPT.$(m).MULTILIB)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).DEX_PREOPT_FLAGS:=$(DEXPREOPT.$(m).DEX_PREOPT_FLAGS)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).PRIVILEGED_MODULE:=$(DEXPREOPT.$(m).PRIVILEGED_MODULE)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).PROPRIETARY_MODULE:=$(DEXPREOPT.$(m).PROPRIETARY_MODULE)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).TARGET_ARCH:=$(DEXPREOPT.$(m).TARGET_ARCH)" >> $@$(newline)\ $(hide) echo "PDK.DEXPREOPT.$(m).STRIPPED_SRC:=$(patsubst $(PRODUCT_OUT)/%,%,$(DEXPREOPT.$(m).INSTALLED_STRIPPED))" >> $@$(newline)\ ) PDK_PLATFORM_ZIP_PRODUCT_BINARIES := $(filter-out $(OUT_DIR)/%,$(PDK_PLATFORM_ZIP_PRODUCT_BINARIES)) INSTALLED_PLATFORM_ZIP := $(PRODUCT_OUT)/platform.zip $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_SYSTEMIMAGE_FILES) $(INSTALLED_PLATFORM_ZIP): PRIVATE_DEX_FILES := $(pdk_classes_dex) $(INSTALLED_PLATFORM_ZIP): PRIVATE_ODEX_CONFIG := $(pdk_odex_config_mk) $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_SYSTEMIMAGE_FILES) $(pdk_odex_config_mk) $(call pretty,"Platform zip package: $(INSTALLED_PLATFORM_ZIP)") $(hide) rm -f $@ $(hide) cd $(dir $@) && zip -qryX $(notdir $@) \ Loading @@ -1232,6 +1269,9 @@ endif ifneq ($(PDK_PLATFORM_ZIP_PRODUCT_BINARIES),) $(hide) zip -qryX $@ $(PDK_PLATFORM_ZIP_PRODUCT_BINARIES) endif @# Add dex-preopt files and config. $(if $(PRIVATE_DEX_FILES),$(hide) cd $(OUT_DIR) && zip -qryX $(patsubst $(OUT_DIR)/%,%,$@ $(PRIVATE_DEX_FILES))) $(hide) zip -qryXj $@ $(PRIVATE_ODEX_CONFIG) .PHONY: platform platform: $(INSTALLED_PLATFORM_ZIP) Loading @@ -1244,7 +1284,7 @@ ifneq (,$(filter platform platform-java, $(MAKECMDGOALS))) $(call dist-for-goals, platform platform-java, $(INSTALLED_PLATFORM_ZIP)) endif ####### # ----------------------------------------------------------------- ## boot tarball define build-boottarball-target $(hide) echo "Target boot fs tarball: $(INSTALLED_BOOTTARBALL_TARGET)" Loading
core/clear_vars.mk +3 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,9 @@ LOCAL_NOTICE_FILE:= LOCAL_USE_AAPT2:=$(USE_AAPT2) LOCAL_STATIC_ANDROID_LIBRARIES:= 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:= # arch specific variables LOCAL_SRC_FILES_$(TARGET_ARCH):= Loading
core/config.mk +2 −0 Original line number Diff line number Diff line Loading @@ -449,6 +449,8 @@ ifeq (,$(wildcard $(PDK_FUSION_PLATFORM_ZIP))) endif endif BUILD_PLATFORM_ZIP := $(filter platform platform-java,$(MAKECMDGOALS)) # # Tools that are prebuilts for TARGET_BUILD_APPS # Loading
core/definitions.mk +14 −4 Original line number Diff line number Diff line Loading @@ -2357,7 +2357,12 @@ endef #TODO: update the manifest to point to the dex file define add-dex-to-package $(hide) find $(dir $(PRIVATE_DEX_FILE)) -maxdepth 1 -name "classes*.dex" | sort | xargs zip -qjX $@ $(call add-dex-to-package-arg,$@) endef # $(1): the package file. define add-dex-to-package-arg $(hide) find $(dir $(PRIVATE_DEX_FILE)) -maxdepth 1 -name "classes*.dex" | sort | xargs zip -qjX $(1) endef # Add java resources added by the current module. Loading Loading @@ -2396,12 +2401,17 @@ endef # Sign a package using the specified key/cert. # define sign-package $(hide) mv $@ $@.unsigned $(call sign-package-arg,$@) endef # $(1): the package file we are signing. define sign-package-arg $(hide) mv $(1) $(1).unsigned $(hide) java -Djava.library.path=$(SIGNAPK_JNI_LIBRARY_PATH) -jar $(SIGNAPK_JAR) \ --min-sdk-version $(call get-package-min-sdk-version-int,$@.unsigned) \ $(PRIVATE_CERTIFICATE) $(PRIVATE_PRIVATE_KEY) \ $(PRIVATE_ADDITIONAL_CERTIFICATES) $@.unsigned $@.signed $(hide) mv $@.signed $@ $(PRIVATE_ADDITIONAL_CERTIFICATES) $(1).unsigned $(1).signed $(hide) mv $(1).signed $(1) endef # Align STORED entries of a package on 4-byte boundaries to make them easier to mmap. Loading
core/dex_preopt.mk +6 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,12 @@ ifeq ($(HOST_OS),linux) endif endif GLOBAL_DEXPREOPT_FLAGS := ifeq ($(WITH_DEXPREOPT_PIC),true) # Compile boot.oat as position-independent code if WITH_DEXPREOPT_PIC=true GLOBAL_DEXPREOPT_FLAGS += --compile-pic endif # $(1): the .jar or .apk to remove classes.dex define dexpreopt-remove-classes.dex $(hide) zip --quiet --delete $(1) classes.dex; \ Loading