summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jooyung Han <jooyung@google.com> 2024-08-15 07:38:17 +0000
committer Jooyung Han <jooyung@google.com> 2024-08-15 07:38:17 +0000
commit1e45baff6bf048e90adcdf00a568b424d7bf1662 (patch)
tree63b6bfd189593e1a1755d584f4bdb2d0bf493f3c
parentf55902f65fe2289dc69024f39753df8782560f13 (diff)
Add /odm/apex/ support.
We now allow APEXes in /odm. Bug: 162049873 Change-Id: I2af97504a8d6159e778f8f833335db49beee6873
-rw-r--r--core/Makefile3
-rw-r--r--tools/releasetools/Android.bp1
-rw-r--r--tools/releasetools/apex_utils.py4
-rwxr-xr-xtools/releasetools/check_target_files_vintf.py3
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)