From efbb6ffa0032a56cba465a3cd47000d6ae01300d Mon Sep 17 00:00:00 2001 From: Jiyong Park Date: Mon, 10 Jan 2022 17:14:30 +0900 Subject: [PATCH] Add min_sdk_version to BuildManifest.apk sign_target_files_apks demands it. Bug: 213823227 Test: run com.google.android.tradefed.ota.SigningToolTest#Testcase1_Signingtest Change-Id: I1bba2b25a71449a57d284024e77fb76d1b79a0ee --- core/Makefile | 7 ++++++- tools/releasetools/fsverity_manifest_generator.py | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index ea5fc491c5..27dcdcad5a 100644 --- a/core/Makefile +++ b/core/Makefile @@ -2782,18 +2782,23 @@ FSVERITY_APK_OUT := $(TARGET_OUT)/etc/security/fsverity/BuildManifest.apk FSVERITY_APK_MANIFEST_PATH := system/security/fsverity/AndroidManifest.xml $(FSVERITY_APK_OUT): PRIVATE_FSVERITY := $(HOST_OUT_EXECUTABLES)/fsverity $(FSVERITY_APK_OUT): PRIVATE_AAPT2 := $(HOST_OUT_EXECUTABLES)/aapt2 +$(FSVERITY_APK_OUT): PRIVATE_MIN_SDK_VERSION := $(DEFAULT_APP_TARGET_SDK) $(FSVERITY_APK_OUT): PRIVATE_APKSIGNER := $(HOST_OUT_EXECUTABLES)/apksigner $(FSVERITY_APK_OUT): PRIVATE_MANIFEST := $(FSVERITY_APK_MANIFEST_PATH) +$(FSVERITY_APK_OUT): PRIVATE_FRAMEWORK_RES := $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk $(FSVERITY_APK_OUT): PRIVATE_KEY := $(FSVERITY_APK_KEY_PATH) $(FSVERITY_APK_OUT): PRIVATE_INPUTS := $(fsverity-metadata-targets) $(FSVERITY_APK_OUT): $(HOST_OUT_EXECUTABLES)/fsverity_manifest_generator \ $(HOST_OUT_EXECUTABLES)/fsverity $(HOST_OUT_EXECUTABLES)/aapt2 \ $(HOST_OUT_EXECUTABLES)/apksigner $(FSVERITY_APK_MANIFEST_PATH) \ $(FSVERITY_APK_KEY_PATH).x509.pem $(FSVERITY_APK_KEY_PATH).pk8 \ + $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk \ $(fsverity-metadata-targets) $< --fsverity-path $(PRIVATE_FSVERITY) --aapt2-path $(PRIVATE_AAPT2) \ + --min-sdk-version $(PRIVATE_MIN_SDK_VERSION) \ --apksigner-path $(PRIVATE_APKSIGNER) --apk-key-path $(PRIVATE_KEY) \ - --apk-manifest-path $(PRIVATE_MANIFEST) --output $@ \ + --apk-manifest-path $(PRIVATE_MANIFEST) --framework-res $(PRIVATE_FRAMEWORK_RES) \ + --output $@ \ --base-dir $(PRODUCT_OUT) $(PRIVATE_INPUTS) ALL_DEFAULT_INSTALLED_MODULES += $(FSVERITY_APK_OUT) diff --git a/tools/releasetools/fsverity_manifest_generator.py b/tools/releasetools/fsverity_manifest_generator.py index e61e2573d2..527cddb940 100644 --- a/tools/releasetools/fsverity_manifest_generator.py +++ b/tools/releasetools/fsverity_manifest_generator.py @@ -50,6 +50,14 @@ if __name__ == '__main__': '--aapt2-path', help='path to the aapt2 program', required=True) + p.add_argument( + '--min-sdk-version', + help='minimum supported sdk version of the generated manifest apk', + required=True) + p.add_argument( + '--framework-res', + help='path to framework-res.apk', + required=True) p.add_argument( '--apksigner-path', help='path to the apksigner program', @@ -89,6 +97,8 @@ if __name__ == '__main__': common.RunAndCheckOutput([args.aapt2_path, "link", "-A", os.path.join(temp_dir, "assets"), "-o", args.output, + "--min-sdk-version", args.min_sdk_version, + "-I", args.framework_res, "--manifest", args.apk_manifest_path]) common.RunAndCheckOutput([args.apksigner_path, "sign", "--in", args.output, "--cert", args.apk_key_path + ".x509.pem",