Merge "aconfig: change Map.of to Map.ofEntries in FakeFeatureFlagsImp" into main
diff --git a/core/soong_config.mk b/core/soong_config.mk
index b172ec2..d50ba8e 100644
--- a/core/soong_config.mk
+++ b/core/soong_config.mk
@@ -40,7 +40,9 @@
$(call add_json_str, Platform_base_os, $(PLATFORM_BASE_OS))
$(call add_json_str, Platform_version_last_stable, $(PLATFORM_VERSION_LAST_STABLE))
$(call add_json_str, Platform_version_known_codenames, $(PLATFORM_VERSION_KNOWN_CODENAMES))
+
$(call add_json_bool, Release_aidl_use_unfrozen, $(RELEASE_AIDL_USE_UNFROZEN))
+$(call add_json_bool, Release_expose_flagged_api, $(RELEASE_EXPOSE_FLAGGED_API))
$(call add_json_str, Platform_min_supported_target_sdk_version, $(PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION))
diff --git a/target/product/gsi/Android.bp b/target/product/gsi/Android.bp
index a8af9c4..45ba143 100644
--- a/target/product/gsi/Android.bp
+++ b/target/product/gsi/Android.bp
@@ -23,3 +23,26 @@
"*.txt",
],
}
+
+prebuilt_etc {
+ name: "gsi_skip_mount.cfg",
+ filename: "skip_mount.cfg",
+ src: "gsi_skip_mount.cfg",
+
+ system_ext_specific: true,
+ relative_install_path: "init/config",
+
+ required: ["gsi_skip_mount_compat_symlink"],
+}
+
+// Adds a symlink under /system/etc/init/config pointing to /system/system_ext/etc/init/config
+// because first-stage init in Android 10.0 will read the skip_mount.cfg from /system/etc/* after
+// chroot /system.
+// TODO: remove this symlink when no need to support new GSI on Android 10.
+// The actual file needs to be under /system/system_ext because it's GSI-specific and does not
+// belong to core CSI.
+install_symlink {
+ name: "gsi_skip_mount_compat_symlink",
+ installed_location: "etc/init/config",
+ symlink_target: "/system/system_ext/etc/init/config",
+}
diff --git a/target/product/gsi/Android.mk b/target/product/gsi/Android.mk
index 563712a..70ee78d 100644
--- a/target/product/gsi/Android.mk
+++ b/target/product/gsi/Android.mk
@@ -240,32 +240,6 @@
include $(BUILD_PHONY_PACKAGE)
#####################################################################
-# skip_mount.cfg, read by init to skip mounting some partitions when GSI is used.
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := gsi_skip_mount.cfg
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS := notice
-LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
-LOCAL_MODULE_STEM := skip_mount.cfg
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-LOCAL_MODULE_CLASS := ETC
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_MODULE_RELATIVE_PATH := init/config
-
-# Adds a symlink under /system/etc/init/config pointing to /system/system_ext/etc/init/config
-# because first-stage init in Android 10.0 will read the skip_mount.cfg from /system/etc/* after
-# chroot /system.
-# TODO: remove this symlink when no need to support new GSI on Android 10.
-# The actual file needs to be under /system/system_ext because it's GSI-specific and does not
-# belong to core CSI.
-LOCAL_POST_INSTALL_CMD := \
- mkdir -p $(TARGET_OUT)/etc/init; \
- ln -sf /system/system_ext/etc/init/config $(TARGET_OUT)/etc/init/config
-
-include $(BUILD_PREBUILT)
-
-#####################################################################
# init.gsi.rc, GSI-specific init script.
include $(CLEAR_VARS)
diff --git a/target/product/gsi_release.mk b/target/product/gsi_release.mk
index bd85b9f..23eb534 100644
--- a/target/product/gsi_release.mk
+++ b/target/product/gsi_release.mk
@@ -28,9 +28,8 @@
BUILDING_GSI := true
-# Exclude all files under system/product and system/system_ext,
-# and the vndk apex's compat symlinks
PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \
+ system/etc/init/config \
system/product/% \
system/system_ext/% \
system/lib/vndk-29 \
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index a3daca5..c5a3fe7 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -20,7 +20,6 @@
import datetime
import errno
import fnmatch
-from genericpath import isdir
import getopt
import getpass
import gzip
@@ -34,12 +33,13 @@
import shlex
import shutil
import subprocess
-import sys
import stat
+import sys
import tempfile
import threading
import time
import zipfile
+from genericpath import isdir
from hashlib import sha1, sha256
import images
@@ -112,13 +112,18 @@
# descriptor into vbmeta.img. When adding a new entry here, the
# AVB_FOOTER_ARGS_BY_PARTITION in sign_target_files_apks need to be updated
# accordingly.
-AVB_PARTITIONS = ('boot', 'init_boot', 'dtbo', 'odm', 'product', 'pvmfw', 'recovery',
- 'system', 'system_ext', 'vendor', 'vendor_boot', 'vendor_kernel_boot',
- 'vendor_dlkm', 'odm_dlkm', 'system_dlkm')
+AVB_PARTITIONS = ('boot', 'init_boot', 'dtbo', 'odm', 'product', 'pvmfw',
+ 'recovery', 'system', 'system_ext', 'vendor', 'vendor_boot',
+ 'vendor_kernel_boot', 'vendor_dlkm', 'odm_dlkm',
+ 'system_dlkm')
# Chained VBMeta partitions.
AVB_VBMETA_PARTITIONS = ('vbmeta_system', 'vbmeta_vendor')
+# avbtool arguments name
+AVB_ARG_NAME_INCLUDE_DESC_FROM_IMG = '--include_descriptors_from_image'
+AVB_ARG_NAME_CHAIN_PARTITION = '--chain_partition'
+
# Partitions that should have their care_map added to META/care_map.pb
PARTITIONS_WITH_CARE_MAP = [
'system',
@@ -1467,7 +1472,7 @@
# Check if chain partition is used.
key_path = info_dict.get("avb_" + partition + "_key_path")
if not key_path:
- return ["--include_descriptors_from_image", image]
+ return [AVB_ARG_NAME_INCLUDE_DESC_FROM_IMG, image]
# For a non-A/B device, we don't chain /recovery nor include its descriptor
# into vbmeta.img. The recovery image will be configured on an independent
@@ -1479,7 +1484,7 @@
# Otherwise chain the partition into vbmeta.
chained_partition_arg = GetAvbChainedPartitionArg(partition, info_dict)
- return ["--chain_partition", chained_partition_arg]
+ return [AVB_ARG_NAME_CHAIN_PARTITION, chained_partition_arg]
def GetAvbChainedPartitionArg(partition, info_dict, key=None):
@@ -1598,7 +1603,7 @@
# same location when running this script (we have the input target_files
# zip only). For such cases, we additionally scan other locations (e.g.
# IMAGES/, RADIO/, etc) before bailing out.
- if arg == '--include_descriptors_from_image':
+ if arg == AVB_ARG_NAME_INCLUDE_DESC_FROM_IMG:
chained_image = split_args[index + 1]
if os.path.exists(chained_image):
continue
diff --git a/tools/releasetools/test_common.py b/tools/releasetools/test_common.py
index c69a13d..2bd4f36 100644
--- a/tools/releasetools/test_common.py
+++ b/tools/releasetools/test_common.py
@@ -1585,7 +1585,8 @@
info_dict = {}
cmd = common.GetAvbPartitionArg('system', '/path/to/system.img', info_dict)
self.assertEqual(
- ['--include_descriptors_from_image', '/path/to/system.img'], cmd)
+ [common.AVB_ARG_NAME_INCLUDE_DESC_FROM_IMG, '/path/to/system.img'],
+ cmd)
@test_utils.SkipIfExternalToolsUnavailable()
def test_AppendVBMetaArgsForPartition_vendorAsChainedPartition(self):
@@ -1598,7 +1599,7 @@
}
cmd = common.GetAvbPartitionArg('vendor', '/path/to/vendor.img', info_dict)
self.assertEqual(2, len(cmd))
- self.assertEqual('--chain_partition', cmd[0])
+ self.assertEqual(common.AVB_ARG_NAME_CHAIN_PARTITION, cmd[0])
chained_partition_args = cmd[1].split(':')
self.assertEqual(3, len(chained_partition_args))
self.assertEqual('vendor', chained_partition_args[0])
@@ -1631,7 +1632,7 @@
cmd = common.GetAvbPartitionArg(
'recovery', '/path/to/recovery.img', info_dict)
self.assertEqual(2, len(cmd))
- self.assertEqual('--chain_partition', cmd[0])
+ self.assertEqual(common.AVB_ARG_NAME_CHAIN_PARTITION, cmd[0])
chained_partition_args = cmd[1].split(':')
self.assertEqual(3, len(chained_partition_args))
self.assertEqual('recovery', chained_partition_args[0])