Merge "Optimized project selection for getProjectMetadata"
diff --git a/Changes.md b/Changes.md
index 3ad2641..8979e30 100644
--- a/Changes.md
+++ b/Changes.md
@@ -860,6 +860,39 @@
the makefile system. If you need one of them, you'll have to set up your own
version.
+## Soong config variables
+
+### Soong config string variables must list all values they can be set to
+
+In order to facilitate the transition to bazel, all soong_config_string_variables
+must only be set to a value listed in their `values` property, or an empty string.
+It is a build error otherwise.
+
+Example Android.bp:
+```
+soong_config_string_variable {
+ name: "my_string_variable",
+ values: [
+ "foo",
+ "bar",
+ ],
+}
+
+soong_config_module_type {
+ name: "my_cc_defaults",
+ module_type: "cc_defaults",
+ config_namespace: "my_namespace",
+ variables: ["my_string_variable"],
+ properties: [
+ "shared_libs",
+ "static_libs",
+ ],
+}
+```
+Product config:
+```
+$(call soong_config_set,my_namespace,my_string_variable,baz) # Will be an error as baz is not listed in my_string_variable's values.
+```
[build/soong/Changes.md]: https://android.googlesource.com/platform/build/soong/+/master/Changes.md
[build/soong/docs/best_practices.md#headers]: https://android.googlesource.com/platform/build/soong/+/master/docs/best_practices.md#headers
diff --git a/core/BUILD b/core/BUILD
new file mode 100644
index 0000000..3e69e62
--- /dev/null
+++ b/core/BUILD
@@ -0,0 +1,4 @@
+# Export tradefed templates for tests.
+exports_files(
+ glob(["*.xml"]),
+)
diff --git a/core/Makefile b/core/Makefile
index dc8856b..955b360 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -5011,9 +5011,11 @@
INTERNAL_OTATOOLS_MODULES += \
apexer \
apex_compression_tool \
+ blkid \
deapexer \
debugfs_static \
dump_apex_info \
+ fsck.erofs \
merge_zips \
resize2fs \
soong_zip \
diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk
index 593ad66..d7a00d0 100644
--- a/core/dex_preopt.mk
+++ b/core/dex_preopt.mk
@@ -62,6 +62,8 @@
boot_zip := $(PRODUCT_OUT)/boot.zip
bootclasspath_jars := $(DEXPREOPT_BOOTCLASSPATH_DEX_FILES)
+
+# TODO remove system_server_jars usages from boot.zip and depend directly on system_server.zip file.
system_server_jars := \
$(foreach m,$(PRODUCT_SYSTEM_SERVER_JARS),\
$(PRODUCT_OUT)/system/framework/$(call word-colon,2,$(m)).jar)
@@ -79,5 +81,34 @@
$(call dist-for-goals, droidcore, $(boot_zip))
+# Build the system_server.zip which contains the Apex system server jars and standalone system server jars
+system_server_zip := $(PRODUCT_OUT)/system_server.zip
+apex_system_server_jars := \
+ $(foreach m,$(PRODUCT_APEX_SYSTEM_SERVER_JARS),\
+ $(PRODUCT_OUT)/apex/$(call word-colon,1,$(m))/javalib/$(call word-colon,2,$(m)).jar)
+
+apex_standalone_system_server_jars := \
+ $(foreach m,$(PRODUCT_APEX_STANDALONE_SYSTEM_SERVER_JARS),\
+ $(PRODUCT_OUT)/apex/$(call word-colon,1,$(m))/javalib/$(call word-colon,2,$(m)).jar)
+
+standalone_system_server_jars := \
+ $(foreach m,$(PRODUCT_STANDALONE_SYSTEM_SERVER_JARS),\
+ $(PRODUCT_OUT)/apex/$(call word-colon,1,$(m))/javalib/$(call word-colon,2,$(m)).jar)
+
+$(system_server_zip): PRIVATE_SYSTEM_SERVER_JARS := $(system_server_jars)
+$(system_server_zip): PRIVATE_APEX_SYSTEM_SERVER_JARS := $(apex_system_server_jars)
+$(system_server_zip): PRIVATE_APEX_STANDALONE_SYSTEM_SERVER_JARS := $(apex_standalone_system_server_jars)
+$(system_server_zip): PRIVATE_STANDALONE_SYSTEM_SERVER_JARS := $(standalone_system_server_jars)
+$(system_server_zip): $(system_server_jars) $(apex_system_server_jars) $(apex_standalone_system_server_jars) $(standalone_system_server_jars) $(SOONG_ZIP)
+ @echo "Create system server package: $@"
+ rm -f $@
+ $(SOONG_ZIP) -o $@ \
+ -C $(PRODUCT_OUT) $(addprefix -f ,$(PRIVATE_SYSTEM_SERVER_JARS)) \
+ -C $(PRODUCT_OUT) $(addprefix -f ,$(PRIVATE_APEX_SYSTEM_SERVER_JARS)) \
+ -C $(PRODUCT_OUT) $(addprefix -f ,$(PRIVATE_APEX_STANDALONE_SYSTEM_SERVER_JARS)) \
+ -C $(PRODUCT_OUT) $(addprefix -f ,$(PRIVATE_STANDALONE_SYSTEM_SERVER_JARS))
+
+$(call dist-for-goals, droidcore, $(system_server_zip))
+
endif #PRODUCT_USES_DEFAULT_ART_CONFIG
endif #WITH_DEXPREOPT
diff --git a/core/envsetup.mk b/core/envsetup.mk
index fc4afd9..7dd9b12 100644
--- a/core/envsetup.mk
+++ b/core/envsetup.mk
@@ -135,15 +135,17 @@
HOST_OS := darwin
endif
-HOST_OS_EXTRA := $(shell uname -rsm)
-ifeq ($(HOST_OS),linux)
- ifneq ($(wildcard /etc/os-release),)
- HOST_OS_EXTRA += $(shell source /etc/os-release; echo $$PRETTY_NAME)
+ifeq ($(CALLED_FROM_SETUP),true)
+ HOST_OS_EXTRA := $(shell uname -rsm)
+ ifeq ($(HOST_OS),linux)
+ ifneq ($(wildcard /etc/os-release),)
+ HOST_OS_EXTRA += $(shell source /etc/os-release; echo $$PRETTY_NAME)
+ endif
+ else ifeq ($(HOST_OS),darwin)
+ HOST_OS_EXTRA += $(shell sw_vers -productVersion)
endif
-else ifeq ($(HOST_OS),darwin)
- HOST_OS_EXTRA += $(shell sw_vers -productVersion)
+ HOST_OS_EXTRA := $(subst $(space),-,$(HOST_OS_EXTRA))
endif
-HOST_OS_EXTRA := $(subst $(space),-,$(HOST_OS_EXTRA))
# BUILD_OS is the real host doing the build.
BUILD_OS := $(HOST_OS)
diff --git a/core/version_defaults.mk b/core/version_defaults.mk
index a7d023f..60c0f67 100644
--- a/core/version_defaults.mk
+++ b/core/version_defaults.mk
@@ -103,7 +103,7 @@
# It must be of the form "YYYY-MM-DD" on production devices.
# It must match one of the Android Security Patch Level strings of the Public Security Bulletins.
# If there is no $PLATFORM_SECURITY_PATCH set, keep it empty.
- PLATFORM_SECURITY_PATCH := 2022-10-05
+ PLATFORM_SECURITY_PATCH := 2022-11-05
endif
include $(BUILD_SYSTEM)/version_util.mk
diff --git a/finalize-cleanup.sh b/finalize-cleanup.sh
index efa2707..c62a97c 100755
--- a/finalize-cleanup.sh
+++ b/finalize-cleanup.sh
@@ -9,8 +9,8 @@
repo selfupdate
repo forall -c '\
- git checkout . ; git clean -fdx ;\
- git checkout @ ; git b fina-step1 -D ; git reset --hard; \
+ git checkout . ; git revert --abort ; git clean -fdx ;\
+ git checkout @ ; git branch fina-step1 -D ; git reset --hard; \
repo start fina-step1 ; git checkout @ ; git b fina-step1 -D ;'
}
diff --git a/finalize-step-1.sh b/finalize-step-1.sh
index 4e3e0c4..1ca98d4 100755
--- a/finalize-step-1.sh
+++ b/finalize-step-1.sh
@@ -6,13 +6,18 @@
# set -ex
-function revert_local_changes() {
+function revert_to_unfinalized_state() {
repo forall -c '\
- git checkout . ; git clean -fdx ;\
- git checkout @ ; git b fina-step1 -D ; git reset --hard; \
+ git checkout . ; git revert --abort ; git clean -fdx ;\
+ git checkout @ ; git branch fina-step1 -D ; git reset --hard; \
repo start fina-step1 ; git checkout @ ; git b fina-step1 -D ;\
- previousHash="$(git log --format=%H --no-merges --max-count=100 --grep ^FINALIZATION_STEP_1_SCRIPT_COMMIT | tr \n \040)" ;\
- if [[ $previousHash ]]; then git revert --no-commit $previousHash ; fi ;'
+ baselineHash="$(git log --format=%H --no-merges --max-count=1 --grep ^FINALIZATION_STEP_1_BASELINE_COMMIT)" ;\
+ if [[ $baselineHash ]]; then
+ previousHash="$(git log --format=%H --no-merges --max-count=100 --grep ^FINALIZATION_STEP_1_SCRIPT_COMMIT $baselineHash..HEAD | tr \n \040)" ;\
+ else
+ previousHash="$(git log --format=%H --no-merges --max-count=100 --grep ^FINALIZATION_STEP_1_SCRIPT_COMMIT | tr \n \040)" ;\
+ fi ; \
+ if [[ $previousHash ]]; then git revert --no-commit --strategy=ort --strategy-option=ours $previousHash ; fi ;'
}
function commit_changes() {
@@ -31,7 +36,7 @@
repo selfupdate
- revert_local_changes
+ revert_to_unfinalized_state
# vndk etc finalization
source $top/build/make/finalize-aidl-vndk-sdk-resources.sh
diff --git a/finalize_branch_for_release.sh b/finalize_branch_for_release.sh
index b46390d..9e9d6a1 100755
--- a/finalize_branch_for_release.sh
+++ b/finalize_branch_for_release.sh
@@ -17,7 +17,7 @@
# Resource/SDK finalization.
# In the future, we would want to actually turn the branch into the REL
# state and test with that.
- AIDL_FROZEN_REL=true $m droidcore
+ AIDL_FROZEN_REL=true $m
# Build SDK (TODO)
# lunch sdk...
diff --git a/target/board/BoardConfigGsiCommon.mk b/target/board/BoardConfigGsiCommon.mk
index 8c634f6..4d95b33 100644
--- a/target/board/BoardConfigGsiCommon.mk
+++ b/target/board/BoardConfigGsiCommon.mk
@@ -3,6 +3,8 @@
# Common compile-time definitions for GSI
# Builds upon the mainline config.
#
+# See device/generic/common/README.md for more details.
+#
include build/make/target/board/BoardConfigMainlineCommon.mk
@@ -17,6 +19,12 @@
TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
TARGET_USERIMAGES_SPARSE_EROFS_DISABLED := true
+# Enable system_dlkm image for creating a symlink in GSI to support
+# the devices with system_dlkm partition
+BOARD_USES_SYSTEM_DLKMIMAGE := true
+BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
+TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm
+
# GSI also includes make_f2fs to support userdata parition in f2fs
# for some devices
TARGET_USERIMAGES_USE_F2FS := true
diff --git a/target/product/aosp_arm.mk b/target/product/aosp_arm.mk
index 90acc17..5f200aa 100644
--- a/target/product/aosp_arm.mk
+++ b/target/product/aosp_arm.mk
@@ -49,7 +49,7 @@
#
# All components inherited here go to vendor image
#
-$(call inherit-product-if-exists, device/generic/goldfish/arm32-vendor.mk)
+$(call inherit-product-if-exists, build/make/target/product/ramdisk_stub.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator_vendor.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/board/generic_x86/device.mk)
diff --git a/target/product/aosp_riscv64.mk b/target/product/aosp_riscv64.mk
index e9de7c8..023317b 100644
--- a/target/product/aosp_riscv64.mk
+++ b/target/product/aosp_riscv64.mk
@@ -36,32 +36,33 @@
#
# All components inherited here go to system_ext image
#
-#$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_system_ext.mk)
-#$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_system_ext.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_system_ext.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_system_ext.mk)
#
# All components inherited here go to product image
#
-#$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_product.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_product.mk)
#
# All components inherited here go to vendor image
#
-#$(call inherit-product-if-exists, device/generic/goldfish/riscv64-vendor.mk)
-#$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator_vendor.mk)
+$(call inherit-product-if-exists, device/generic/goldfish/riscv64-vendor.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator_vendor.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/board/generic_riscv64/device.mk)
#
# Special settings for GSI releasing
#
ifeq (aosp_riscv64,$(TARGET_PRODUCT))
-#$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_release.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_release.mk)
endif
# TODO: this list should come via mainline_system.mk, but for now list
# just the modules that work for riscv64.
PRODUCT_PACKAGES := \
- init \
+ init.environ.rc \
+ init_system \
linker \
shell_and_utilities \
diff --git a/target/product/full.mk b/target/product/full.mk
index 782280d..945957f 100644
--- a/target/product/full.mk
+++ b/target/product/full.mk
@@ -19,7 +19,7 @@
# build quite specifically for the emulator, and might not be
# entirely appropriate to inherit from for on-device configurations.
-$(call inherit-product-if-exists, device/generic/goldfish/arm32-vendor.mk)
+$(call inherit-product-if-exists, build/make/target/product/ramdisk_stub.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator_vendor.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/board/generic/device.mk)
diff --git a/target/product/gsi/current.txt b/target/product/gsi/current.txt
index 94892dc..56a9d8a 100644
--- a/target/product/gsi/current.txt
+++ b/target/product/gsi/current.txt
@@ -7,6 +7,7 @@
LLNDK: libbinder_ndk.so
LLNDK: libc.so
LLNDK: libcgrouprc.so
+LLNDK: libcom.android.tethering.connectivity_native.so
LLNDK: libdl.so
LLNDK: libft2.so
LLNDK: liblog.so
diff --git a/target/product/gsi_release.mk b/target/product/gsi_release.mk
index 3705a50..09d4bc9 100644
--- a/target/product/gsi_release.mk
+++ b/target/product/gsi_release.mk
@@ -85,6 +85,7 @@
PRODUCT_BUILD_VENDOR_IMAGE := false
PRODUCT_BUILD_SUPER_PARTITION := false
PRODUCT_BUILD_SUPER_EMPTY_IMAGE := false
+PRODUCT_BUILD_SYSTEM_DLKM_IMAGE := false
PRODUCT_EXPORT_BOOT_IMAGE_TO_DIST := true
# Always build modules from source
diff --git a/target/product/ramdisk_stub.mk b/target/product/ramdisk_stub.mk
new file mode 100644
index 0000000..2a0b752
--- /dev/null
+++ b/target/product/ramdisk_stub.mk
@@ -0,0 +1,18 @@
+#
+# Copyright 2022 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+PRODUCT_COPY_FILES += \
+ build/make/target/product/ramdisk_stub.mk:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/nonempty
diff --git a/target/product/sdk_phone_armv7.mk b/target/product/sdk_phone_armv7.mk
index 6c88b44..888505b 100644
--- a/target/product/sdk_phone_armv7.mk
+++ b/target/product/sdk_phone_armv7.mk
@@ -45,7 +45,7 @@
#
# All components inherited here go to vendor image
#
-$(call inherit-product-if-exists, device/generic/goldfish/arm32-vendor.mk)
+$(call inherit-product-if-exists, build/make/target/product/ramdisk_stub.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator_vendor.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/board/emulator_arm/device.mk)
diff --git a/tools/check_elf_file.py b/tools/check_elf_file.py
index eaa1854..51ec23b 100755
--- a/tools/check_elf_file.py
+++ b/tools/check_elf_file.py
@@ -407,8 +407,7 @@
# Chech whether all DT_NEEDED entries are specified.
for lib in self._file_under_test.dt_needed:
if lib not in specified_sonames:
- self._error('DT_NEEDED "{}" is not specified in shared_libs.'
- .format(lib.decode('utf-8')))
+ self._error(f'DT_NEEDED "{lib}" is not specified in shared_libs.')
missing_shared_libs = True
if missing_shared_libs:
@@ -471,16 +470,14 @@
if missing_symbols:
for sym, ver in sorted(missing_symbols):
- sym = sym.decode('utf-8')
if ver:
- sym += '@' + ver.decode('utf-8')
- self._error('Unresolved symbol: {}'.format(sym))
+ sym += '@' + ver
+ self._error(f'Unresolved symbol: {sym}')
self._note()
self._note('Some dependencies might be changed, thus the symbol(s) '
'above cannot be resolved.')
- self._note('Please re-build the prebuilt file: "{}".'
- .format(self._file_path))
+ self._note(f'Please re-build the prebuilt file: "{self._file_path}".')
self._note()
self._note('If this is a new prebuilt file and it is designed to have '
diff --git a/tools/compliance/noticeindex.go b/tools/compliance/noticeindex.go
index cb95b76..dbfede6 100644
--- a/tools/compliance/noticeindex.go
+++ b/tools/compliance/noticeindex.go
@@ -231,14 +231,12 @@
// InputFiles returns the complete list of files read during indexing.
func (ni *NoticeIndex) InputFiles() []string {
- licenseMeta := []string(nil)
- for f := range ni.lg.targets {
- licenseMeta = append(licenseMeta, f)
- }
projectMeta := ni.pmix.AllMetadataFiles()
- files := make([]string, 0, len(ni.files) + len(licenseMeta) + len(projectMeta))
+ files := make([]string, 0, len(ni.files) + len(ni.lg.targets) + len(projectMeta))
files = append(files, ni.files...)
- files = append(files, licenseMeta...)
+ for f := range ni.lg.targets {
+ files = append(files, f)
+ }
files = append(files, projectMeta...)
return files
}
diff --git a/tools/compliance/projectmetadata/projectmetadata.go b/tools/compliance/projectmetadata/projectmetadata.go
index 1d7da56..b137a12 100644
--- a/tools/compliance/projectmetadata/projectmetadata.go
+++ b/tools/compliance/projectmetadata/projectmetadata.go
@@ -238,7 +238,7 @@
// AllMetadataFiles returns the sorted list of all METADATA files read thus far.
func (ix *Index) AllMetadataFiles() []string {
- files := []string(nil)
+ var files []string
ix.projects.Range(func(key, value any) bool {
pi := value.(*projectIndex)
if pi.path != "" {
diff --git a/tools/releasetools/apex_utils.py b/tools/releasetools/apex_utils.py
index 22992e8..194ff58 100644
--- a/tools/releasetools/apex_utils.py
+++ b/tools/releasetools/apex_utils.py
@@ -63,6 +63,10 @@
self.codename_to_api_level_map = codename_to_api_level_map
self.debugfs_path = os.path.join(
OPTIONS.search_path, "bin", "debugfs_static")
+ self.fsckerofs_path = os.path.join(
+ OPTIONS.search_path, "bin", "fsck.erofs")
+ self.blkid_path = os.path.join(
+ OPTIONS.search_path, "bin", "blkid")
self.avbtool = avbtool if avbtool else "avbtool"
self.sign_tool = sign_tool
@@ -80,8 +84,8 @@
"Couldn't find location of debugfs_static: " +
"Path {} does not exist. ".format(self.debugfs_path) +
"Make sure bin/debugfs_static can be found in -p <path>")
- list_cmd = ['deapexer', '--debugfs_path',
- self.debugfs_path, 'list', self.apex_path]
+ list_cmd = ['deapexer', '--debugfs_path', self.debugfs_path,
+ 'list', self.apex_path]
entries_names = common.RunAndCheckOutput(list_cmd).split()
apk_entries = [name for name in entries_names if name.endswith('.apk')]
sepolicy_entries = []
@@ -120,9 +124,21 @@
"Couldn't find location of debugfs_static: " +
"Path {} does not exist. ".format(self.debugfs_path) +
"Make sure bin/debugfs_static can be found in -p <path>")
+ if not os.path.exists(self.fsckerofs_path):
+ raise ApexSigningError(
+ "Couldn't find location of fsck.erofs: " +
+ "Path {} does not exist. ".format(self.fsckerofs_path) +
+ "Make sure bin/fsck.erofs can be found in -p <path>")
+ if not os.path.exists(self.blkid_path):
+ raise ApexSigningError(
+ "Couldn't find location of blkid: " +
+ "Path {} does not exist. ".format(self.blkid_path) +
+ "Make sure bin/blkid can be found in -p <path>")
payload_dir = common.MakeTempDir()
- extract_cmd = ['deapexer', '--debugfs_path',
- self.debugfs_path, 'extract', self.apex_path, payload_dir]
+ extract_cmd = ['deapexer', '--debugfs_path', self.debugfs_path,
+ '--fsckerofs_path', self.fsckerofs_path,
+ '--blkid_path', self.blkid_path, 'extract',
+ self.apex_path, payload_dir]
common.RunAndCheckOutput(extract_cmd)
assert os.path.exists(self.apex_path)
@@ -603,11 +619,13 @@
debugfs_path = "debugfs"
if OPTIONS.search_path:
debugfs_path = os.path.join(OPTIONS.search_path, "bin", "debugfs_static")
+
deapexer = 'deapexer'
if OPTIONS.search_path:
deapexer_path = os.path.join(OPTIONS.search_path, "bin", "deapexer")
if os.path.isfile(deapexer_path):
deapexer = deapexer_path
+
for apex_filename in os.listdir(target_dir):
apex_filepath = os.path.join(target_dir, apex_filename)
if not os.path.isfile(apex_filepath) or \
diff --git a/tools/releasetools/check_target_files_vintf.py b/tools/releasetools/check_target_files_vintf.py
index 8f61eac..b32b85c 100755
--- a/tools/releasetools/check_target_files_vintf.py
+++ b/tools/releasetools/check_target_files_vintf.py
@@ -229,11 +229,15 @@
apex-info-list.xml file
"""
- debugfs_path = 'debugfs'
deapexer = 'deapexer'
+ debugfs_path = 'debugfs'
+ blkid_path = 'blkid'
+ fsckerofs_path = 'fsck.erofs'
if OPTIONS.search_path:
debugfs_path = os.path.join(OPTIONS.search_path, 'bin', 'debugfs_static')
deapexer_path = os.path.join(OPTIONS.search_path, 'bin', 'deapexer')
+ blkid_path = os.path.join(OPTIONS.search_path, 'bin', 'blkid')
+ fsckerofs_path = os.path.join(OPTIONS.search_path, 'bin', 'fsck.erofs')
if os.path.isfile(deapexer_path):
deapexer = deapexer_path
@@ -257,6 +261,8 @@
cmd = [deapexer,
'--debugfs_path', debugfs_path,
+ '--fsckerofs_path', fsckerofs_path,
+ '--blkid_path', blkid_path,
'extract',
apex,
os.path.join(outp, info['name'])]
diff --git a/tools/releasetools/merge/merge_dexopt.py b/tools/releasetools/merge/merge_dexopt.py
index 7bf9bd4..16182b5 100644
--- a/tools/releasetools/merge/merge_dexopt.py
+++ b/tools/releasetools/merge/merge_dexopt.py
@@ -164,6 +164,10 @@
'deapexer',
'--debugfs_path',
'debugfs_static',
+ '--blkid_path',
+ 'blkid',
+ '--fsckerofs_path',
+ 'fsck.erofs',
'extract',
apex,
apex_extract_dir,
diff --git a/tools/releasetools/sign_target_files_apks.py b/tools/releasetools/sign_target_files_apks.py
index 4e7274f..5f48dd0 100755
--- a/tools/releasetools/sign_target_files_apks.py
+++ b/tools/releasetools/sign_target_files_apks.py
@@ -99,14 +99,14 @@
The second dir will be used for lookup if BOARD_USES_RECOVERY_AS_BOOT is
set to true.
- --avb_{boot,recovery,system,system_other,vendor,dtbo,vbmeta,vbmeta_system,
- vbmeta_vendor}_algorithm <algorithm>
- --avb_{boot,recovery,system,system_other,vendor,dtbo,vbmeta,vbmeta_system,
- vbmeta_vendor}_key <key>
+ --avb_{boot,init_boot,recovery,system,system_other,vendor,dtbo,vbmeta,
+ vbmeta_system,vbmeta_vendor}_algorithm <algorithm>
+ --avb_{boot,init_boot,recovery,system,system_other,vendor,dtbo,vbmeta,
+ vbmeta_system,vbmeta_vendor}_key <key>
Use the specified algorithm (e.g. SHA256_RSA4096) and the key to AVB-sign
the specified image. Otherwise it uses the existing values in info dict.
- --avb_{apex,boot,recovery,system,system_other,vendor,dtbo,vbmeta,
+ --avb_{apex,init_boot,boot,recovery,system,system_other,vendor,dtbo,vbmeta,
vbmeta_system,vbmeta_vendor}_extra_args <args>
Specify any additional args that are needed to AVB-sign the image
(e.g. "--signing_helper /path/to/helper"). The args will be appended to
@@ -1363,6 +1363,12 @@
OPTIONS.avb_algorithms['dtbo'] = a
elif o == "--avb_dtbo_extra_args":
OPTIONS.avb_extra_args['dtbo'] = a
+ elif o == "--avb_init_boot_key":
+ OPTIONS.avb_keys['init_boot'] = a
+ elif o == "--avb_init_boot_algorithm":
+ OPTIONS.avb_algorithms['init_boot'] = a
+ elif o == "--avb_init_boot_extra_args":
+ OPTIONS.avb_extra_args['init_boot'] = a
elif o == "--avb_recovery_key":
OPTIONS.avb_keys['recovery'] = a
elif o == "--avb_recovery_algorithm":
@@ -1458,6 +1464,9 @@
"avb_dtbo_algorithm=",
"avb_dtbo_key=",
"avb_dtbo_extra_args=",
+ "avb_init_boot_algorithm=",
+ "avb_init_boot_key=",
+ "avb_init_boot_extra_args=",
"avb_recovery_algorithm=",
"avb_recovery_key=",
"avb_recovery_extra_args=",
diff --git a/tools/soong_to_convert.py b/tools/soong_to_convert.py
index 949131b..649829f 100755
--- a/tools/soong_to_convert.py
+++ b/tools/soong_to_convert.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# Copyright (C) 2016 The Android Open Source Project
#
@@ -50,9 +50,6 @@
Not all problems can be discovered, but this is a starting point.
"""
-
-from __future__ import print_function
-
import csv
import sys
@@ -113,7 +110,7 @@
def main(filename):
"""Read the CSV file, print the results"""
- with open(filename, 'rb') as csvfile:
+ with open(filename, 'r') as csvfile:
results = process(csv.reader(csvfile))
native_results = filter(results, "native")