store filesystem config info in target files at build time
Store a dump of the desired uid/gid/mode for every system file in the
target_files zip. Modify ota_from_target_files to use this stored
information when it is available, instead of running fs_config from
the current client (which might be out of sync from the one where the
target_files zip was built).
b/2516887 - New android_filesystem_config.h needed
Change-Id: I8409a0265d1d50daad9c2bc033c99b74b8931b20
diff --git a/core/Makefile b/core/Makefile
index a59159d..a89c120 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -869,6 +869,7 @@
$(INSTALLED_ANDROID_INFO_TXT_TARGET) \
$(built_ota_tools) \
$(APKCERTS_FILE) \
+ $(HOST_OUT_EXECUTABLES)/fs_config \
| $(ACP)
@echo "Package target files: $@"
$(hide) rm -rf $@ $(zip_root)
@@ -934,6 +935,10 @@
$(hide) echo "$(tool_extensions)" > $(zip_root)/META/tool-extensions.txt
@# Zip everything up, preserving symlinks
$(hide) (cd $(zip_root) && zip -qry ../$(notdir $@) .)
+ @# Run fs_config on all the system files in the zip, and save the output
+ $(hide) zipinfo -1 $@ | awk -F/ 'BEGIN { OFS="/" } /^SYSTEM\// {$$1 = "system"; print}' | $(HOST_OUT_EXECUTABLES)/fs_config > $(zip_root)/META/filesystem_config.txt
+ $(hide) (cd $(zip_root) && zip -q ../$(notdir $@) META/filesystem_config.txt)
+
target-files-package: $(BUILT_TARGET_FILES_PACKAGE)