From 1e45baff6bf048e90adcdf00a568b424d7bf1662 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Thu, 15 Aug 2024 07:38:17 +0000 Subject: [PATCH] Add /odm/apex/ support. We now allow APEXes in /odm. Bug: 162049873 Change-Id: I2af97504a8d6159e778f8f833335db49beee6873 --- core/Makefile | 3 +++ tools/releasetools/Android.bp | 1 + tools/releasetools/apex_utils.py | 4 +++- tools/releasetools/check_target_files_vintf.py | 3 ++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index 1e7e3f2b1c..1eb5cab963 100644 --- a/core/Makefile +++ b/core/Makefile @@ -5136,6 +5136,7 @@ apex_dirs := \ $(TARGET_OUT)/apex/% \ $(TARGET_OUT_SYSTEM_EXT)/apex/% \ $(TARGET_OUT_VENDOR)/apex/% \ + $(TARGET_OUT_ODM)/apex/% \ $(TARGET_OUT_PRODUCT)/apex/% \ apex_files := $(sort $(filter $(apex_dirs), $(INTERNAL_ALLIMAGES_FILES))) @@ -5188,6 +5189,7 @@ apex_dirs := \ $(TARGET_OUT_PRODUCT)/apex/% \ $(TARGET_OUT_SYSTEM_EXT)/apex/% \ $(TARGET_OUT_VENDOR)/apex/% \ + $(TARGET_OUT_ODM)/apex/% \ apex_files := $(sort $(filter $(apex_dirs), $(INTERNAL_ALLIMAGES_FILES))) @@ -5206,6 +5208,7 @@ $(APEX_INFO_FILE): $(HOST_OUT_EXECUTABLES)/apexd_host $(apex_files) --system_ext_path $(TARGET_OUT_SYSTEM_EXT) \ --product_path $(TARGET_OUT_PRODUCT) \ --vendor_path $(TARGET_OUT_VENDOR) \ + --odm_path $(TARGET_OUT_ODM) \ --apex_path $(APEX_OUT) apex_files := diff --git a/tools/releasetools/Android.bp b/tools/releasetools/Android.bp index 9b134f22d4..56af60f166 100644 --- a/tools/releasetools/Android.bp +++ b/tools/releasetools/Android.bp @@ -96,6 +96,7 @@ python_defaults { ], libs: [ "apex_manifest", + "releasetools_apex_utils", "releasetools_common", ], required: [ diff --git a/tools/releasetools/apex_utils.py b/tools/releasetools/apex_utils.py index 3abef3bece..54df955e9f 100644 --- a/tools/releasetools/apex_utils.py +++ b/tools/releasetools/apex_utils.py @@ -36,6 +36,8 @@ APEX_PAYLOAD_IMAGE = 'apex_payload.img' APEX_PUBKEY = 'apex_pubkey' +# Partitions supporting APEXes +PARTITIONS = ['system', 'system_ext', 'product', 'vendor', 'odm'] class ApexInfoError(Exception): """An Exception raised during Apex Information command.""" @@ -550,7 +552,7 @@ def GetApexInfoFromTargetFiles(input_file): if not isinstance(input_file, str): raise RuntimeError("must pass filepath to target-files zip or directory") apex_infos = [] - for partition in ['system', 'system_ext', 'product', 'vendor']: + for partition in PARTITIONS: apex_infos.extend(GetApexInfoForPartition(input_file, partition)) return apex_infos diff --git a/tools/releasetools/check_target_files_vintf.py b/tools/releasetools/check_target_files_vintf.py index b8dcd8465c..dc123efb46 100755 --- a/tools/releasetools/check_target_files_vintf.py +++ b/tools/releasetools/check_target_files_vintf.py @@ -30,6 +30,7 @@ import subprocess import sys import zipfile +import apex_utils import common from apex_manifest import ParseApexManifest @@ -229,7 +230,7 @@ def PrepareApexDirectory(inp, dirmap): apex_host = os.path.join(OPTIONS.search_path, 'bin', 'apexd_host') cmd = [apex_host, '--tool_path', OPTIONS.search_path] cmd += ['--apex_path', dirmap['/apex']] - for p in ['system', 'system_ext', 'product', 'vendor']: + for p in apex_utils.PARTITIONS: if '/' + p in dirmap: cmd += ['--' + p + '_path', dirmap['/' + p]] common.RunAndCheckOutput(cmd)