apkcerts: Add information about the compressed state of the APK.

We add a compressed="$extension" attribute to an APK's entry if it's
compressed.

Bug: 64531948
Test: make dist

Change-Id: Ic3f95ed77f0bb16dec825bae944c70ee2d130657
diff --git a/core/Makefile b/core/Makefile
index d180ef5..7c54fdb 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -419,8 +419,10 @@
 # -----------------------------------------------------------------
 # Cert-to-package mapping.  Used by the post-build signing tools.
 # Use a macro to add newline to each echo command
-define _apkcerts_echo_with_newline
-$(hide) echo $(1)
+define _apkcerts_write_line
+$(hide) echo -n 'name="$(1).apk" certificate="$2" private_key="$3"' >> $5
+$(if $(4), $(hide) echo -n ' compressed="$4"' >> $5)
+$(hide) echo '' >> $5
 
 endef
 
@@ -440,12 +442,8 @@
 	@rm -f $@
 	$(foreach p,$(PACKAGES),\
 	  $(if $(PACKAGES.$(p).EXTERNAL_KEY),\
-	    $(call _apkcerts_echo_with_newline,\
-	      'name="$(p).apk" certificate="EXTERNAL" \
-	      private_key=""' >> $@),\
-	    $(call _apkcerts_echo_with_newline,\
-	      'name="$(p).apk" certificate="$(PACKAGES.$(p).CERTIFICATE)" \
-	      private_key="$(PACKAGES.$(p).PRIVATE_KEY)"' >> $@)))
+	    $(call _apkcerts_write_line,$(p),"EXTERNAL","",$(PACKAGES.$(p).COMPRESSED),$@),\
+	    $(call _apkcerts_write_line,$(p),$(PACKAGES.$(p).CERTIFICATE),$(PACKAGES.$(p).PRIVATE_KEY),$(PACKAGES.$(p).COMPRESSED),$@)))
 	# In case value of PACKAGES is empty.
 	$(hide) touch $@
 
diff --git a/core/package_internal.mk b/core/package_internal.mk
index 28c3a08..2eb806c 100644
--- a/core/package_internal.mk
+++ b/core/package_internal.mk
@@ -222,6 +222,7 @@
 endif
 
 ifdef LOCAL_COMPRESSED_MODULE
+PACKAGES.$(LOCAL_PACKAGE_NAME).COMPRESSED := gz
 LOCAL_BUILT_MODULE_STEM := package.apk.gz
 LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE).apk.gz
 else  # !LOCAL_COMPRESSED_MODULE
diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk
index edda97e..48593a5 100644
--- a/core/prebuilt_internal.mk
+++ b/core/prebuilt_internal.mk
@@ -120,6 +120,7 @@
 
 ifndef LOCAL_INSTALLED_MODULE_STEM
 ifdef LOCAL_COMPRESSED_MODULE
+PACKAGES.$(LOCAL_MODULE).COMPRESSED := gz
 LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE).apk.gz
 else
 LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE).apk