Add /odm/apex/ support.

We now allow APEXes in /odm.

Bug: 162049873
Change-Id: I2af97504a8d6159e778f8f833335db49beee6873
This commit is contained in:
Jooyung Han
2024-08-15 07:38:17 +00:00
parent f55902f65f
commit 1e45baff6b
4 changed files with 9 additions and 2 deletions

View File

@@ -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 :=

View File

@@ -96,6 +96,7 @@ python_defaults {
],
libs: [
"apex_manifest",
"releasetools_apex_utils",
"releasetools_common",
],
required: [

View File

@@ -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

View File

@@ -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)