Rename product_services to system_ext
Bug: 134359158
Test: build and check if system_ext.img is created
Change-Id: I67f2e95dd29eac6a28e07e24ea973d3a134c3bfc
diff --git a/tools/fs_config/Android.mk b/tools/fs_config/Android.mk
index af0da46..64fabe6 100644
--- a/tools/fs_config/Android.mk
+++ b/tools/fs_config/Android.mk
@@ -27,13 +27,13 @@
system_android_filesystem_config := system/core/include/private/android_filesystem_config.h
system_capability_header := bionic/libc/kernel/uapi/linux/capability.h
-# List of supported vendor, oem, odm, product and product_services Partitions
+# List of supported vendor, oem, odm, product and system_ext Partitions
fs_config_generate_extra_partition_list := $(strip \
$(if $(BOARD_USES_VENDORIMAGE)$(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE),vendor) \
$(if $(BOARD_USES_OEMIMAGE)$(BOARD_OEMIMAGE_FILE_SYSTEM_TYPE),oem) \
$(if $(BOARD_USES_ODMIMAGE)$(BOARD_ODMIMAGE_FILE_SYSTEM_TYPE),odm) \
$(if $(BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE),product) \
- $(if $(BOARD_PRODUCT_SERVICESIMAGE_FILE_SYSTEM_TYPE),product_services) \
+ $(if $(BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE),system_ext) \
)
##################################
@@ -332,17 +332,17 @@
$(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
endif
-ifneq ($(filter product_services,$(fs_config_generate_extra_partition_list)),)
+ifneq ($(filter system_ext,$(fs_config_generate_extra_partition_list)),)
##################################
-# Generate the product_services/etc/fs_config_dirs binary file for the target
-# Add fs_config_dirs or fs_config_dirs_product_services to PRODUCT_PACKAGES in
+# Generate the system_ext/etc/fs_config_dirs binary file for the target
+# Add fs_config_dirs or fs_config_dirs_system_ext to PRODUCT_PACKAGES in
# the device make file to enable
include $(CLEAR_VARS)
-LOCAL_MODULE := fs_config_dirs_product_services
+LOCAL_MODULE := fs_config_dirs_system_ext
LOCAL_MODULE_CLASS := ETC
LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
-LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_SERVICES)/etc
+LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXT)/etc
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
@@ -352,21 +352,21 @@
$< fsconfig \
--aid-header $(PRIVATE_ANDROID_FS_HDR) \
--capability-header $(PRIVATE_ANDROID_CAP_HDR) \
- --partition product_services \
+ --partition system_ext \
--dirs \
--out_file $@ \
$(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
##################################
-# Generate the product_services/etc/fs_config_files binary file for the target
-# Add fs_config_files of fs_config_files_product_services to PRODUCT_PACKAGES in
+# Generate the system_ext/etc/fs_config_files binary file for the target
+# Add fs_config_files of fs_config_files_system_ext to PRODUCT_PACKAGES in
# the device make file to enable
include $(CLEAR_VARS)
-LOCAL_MODULE := fs_config_files_product_services
+LOCAL_MODULE := fs_config_files_system_ext
LOCAL_MODULE_CLASS := ETC
LOCAL_INSTALLED_MODULE_STEM := fs_config_files
-LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_SERVICES)/etc
+LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXT)/etc
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
@@ -376,7 +376,7 @@
$< fsconfig \
--aid-header $(PRIVATE_ANDROID_FS_HDR) \
--capability-header $(PRIVATE_ANDROID_CAP_HDR) \
- --partition product_services \
+ --partition system_ext \
--files \
--out_file $@ \
$(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py
index 98386a6..e177828 100755
--- a/tools/releasetools/add_img_to_target_files.py
+++ b/tools/releasetools/add_img_to_target_files.py
@@ -222,20 +222,20 @@
return img.name
-def AddProductServices(output_zip):
- """Turn the contents of PRODUCT_SERVICES into a product_services image and
- store it in output_zip."""
+def AddSystemExt(output_zip):
+ """Turn the contents of SYSTEM_EXT into a system_ext image and store it in
+ output_zip."""
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES",
- "product_services.img")
+ "system_ext.img")
if os.path.exists(img.name):
- logger.info("product_services.img already exists; no need to rebuild...")
+ logger.info("system_ext.img already exists; no need to rebuild...")
return img.name
block_list = OutputFile(
- output_zip, OPTIONS.input_tmp, "IMAGES", "product_services.map")
+ output_zip, OPTIONS.input_tmp, "IMAGES", "system_ext.map")
CreateImage(
- OPTIONS.input_tmp, OPTIONS.info_dict, "product_services", img,
+ OPTIONS.input_tmp, OPTIONS.info_dict, "system_ext", img,
block_list=block_list)
return img.name
@@ -734,10 +734,10 @@
has_recovery = OPTIONS.info_dict.get("no_recovery") != "true"
has_boot = OPTIONS.info_dict.get("no_boot") != "true"
- # {vendor,odm,product,product_services}.img are unlike system.img or
+ # {vendor,odm,product,system_ext}.img are unlike system.img or
# system_other.img. Because it could be built from source, or dropped into
# target_files.zip as a prebuilt blob. We consider either of them as
- # {vendor,product,product_services}.img being available, which could be
+ # {vendor,product,system_ext}.img being available, which could be
# used when generating vbmeta.img for AVB.
has_vendor = (os.path.isdir(os.path.join(OPTIONS.input_tmp, "VENDOR")) or
os.path.exists(os.path.join(OPTIONS.input_tmp, "IMAGES",
@@ -748,11 +748,11 @@
has_product = (os.path.isdir(os.path.join(OPTIONS.input_tmp, "PRODUCT")) or
os.path.exists(os.path.join(OPTIONS.input_tmp, "IMAGES",
"product.img")))
- has_product_services = (os.path.isdir(os.path.join(OPTIONS.input_tmp,
- "PRODUCT_SERVICES")) or
- os.path.exists(os.path.join(OPTIONS.input_tmp,
- "IMAGES",
- "product_services.img")))
+ has_system_ext = (os.path.isdir(os.path.join(OPTIONS.input_tmp,
+ "SYSTEM_EXT")) or
+ os.path.exists(os.path.join(OPTIONS.input_tmp,
+ "IMAGES",
+ "system_ext.img")))
has_system = os.path.isdir(os.path.join(OPTIONS.input_tmp, "SYSTEM"))
has_system_other = os.path.isdir(os.path.join(OPTIONS.input_tmp,
"SYSTEM_OTHER"))
@@ -833,9 +833,9 @@
banner("product")
partitions['product'] = AddProduct(output_zip)
- if has_product_services:
- banner("product_services")
- partitions['product_services'] = AddProductServices(output_zip)
+ if has_system_ext:
+ banner("system_ext")
+ partitions['system_ext'] = AddSystemExt(output_zip)
if has_odm:
banner("odm")
diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py
index ba04651..ee05dd5 100755
--- a/tools/releasetools/build_image.py
+++ b/tools/releasetools/build_image.py
@@ -644,30 +644,30 @@
d["extfs_rsv_pct"] = "0"
copy_prop("product_reserved_size", "partition_reserved_size")
copy_prop("product_selinux_fc", "selinux_fc")
- elif mount_point == "product_services":
- copy_prop("avb_product_services_hashtree_enable", "avb_hashtree_enable")
- copy_prop("avb_product_services_add_hashtree_footer_args",
+ elif mount_point == "system_ext":
+ copy_prop("avb_system_ext_hashtree_enable", "avb_hashtree_enable")
+ copy_prop("avb_system_ext_add_hashtree_footer_args",
"avb_add_hashtree_footer_args")
- copy_prop("avb_product_services_key_path", "avb_key_path")
- copy_prop("avb_product_services_algorithm", "avb_algorithm")
- copy_prop("product_services_fs_type", "fs_type")
- copy_prop("product_services_size", "partition_size")
- if not copy_prop("product_services_journal_size", "journal_size"):
+ copy_prop("avb_system_ext_key_path", "avb_key_path")
+ copy_prop("avb_system_ext_algorithm", "avb_algorithm")
+ copy_prop("system_ext_fs_type", "fs_type")
+ copy_prop("system_ext_size", "partition_size")
+ if not copy_prop("system_ext_journal_size", "journal_size"):
d["journal_size"] = "0"
- copy_prop("product_services_verity_block_device", "verity_block_device")
+ copy_prop("system_ext_verity_block_device", "verity_block_device")
copy_prop("ext4_share_dup_blocks", "ext4_share_dup_blocks")
- copy_prop("product_services_squashfs_compressor", "squashfs_compressor")
- copy_prop("product_services_squashfs_compressor_opt",
+ copy_prop("system_ext_squashfs_compressor", "squashfs_compressor")
+ copy_prop("system_ext_squashfs_compressor_opt",
"squashfs_compressor_opt")
- copy_prop("product_services_squashfs_block_size", "squashfs_block_size")
- copy_prop("product_services_squashfs_disable_4k_align",
+ copy_prop("system_ext_squashfs_block_size", "squashfs_block_size")
+ copy_prop("system_ext_squashfs_disable_4k_align",
"squashfs_disable_4k_align")
- copy_prop("product_services_base_fs_file", "base_fs_file")
- copy_prop("product_services_extfs_inode_count", "extfs_inode_count")
- if not copy_prop("product_services_extfs_rsv_pct", "extfs_rsv_pct"):
+ copy_prop("system_ext_base_fs_file", "base_fs_file")
+ copy_prop("system_ext_extfs_inode_count", "extfs_inode_count")
+ if not copy_prop("system_ext_extfs_rsv_pct", "extfs_rsv_pct"):
d["extfs_rsv_pct"] = "0"
- copy_prop("product_services_reserved_size", "partition_reserved_size")
- copy_prop("product_services_selinux_fc", "selinux_fc")
+ copy_prop("system_ext_reserved_size", "partition_reserved_size")
+ copy_prop("system_ext_selinux_fc", "selinux_fc")
elif mount_point == "odm":
copy_prop("avb_odm_hashtree_enable", "avb_hashtree_enable")
copy_prop("avb_odm_add_hashtree_footer_args",
@@ -736,8 +736,8 @@
copy_prop("partition_size", "odm_size")
elif mount_point == "product":
copy_prop("partition_size", "product_size")
- elif mount_point == "product_services":
- copy_prop("partition_size", "product_services_size")
+ elif mount_point == "system_ext":
+ copy_prop("partition_size", "system_ext_size")
return d
@@ -777,8 +777,8 @@
mount_point = "oem"
elif image_filename == "product.img":
mount_point = "product"
- elif image_filename == "product_services.img":
- mount_point = "product_services"
+ elif image_filename == "system_ext.img":
+ mount_point = "system_ext"
else:
logger.error("Unknown image file name %s", image_filename)
sys.exit(1)
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index edde89c..9998cd3 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -98,15 +98,14 @@
# The partitions allowed to be signed by AVB (Android Verified Boot 2.0). Note
# that system_other is not in the list because we don't want to include its
# descriptor into vbmeta.img.
-AVB_PARTITIONS = ('boot', 'dtbo', 'odm', 'product', 'product_services',
- 'recovery', 'system', 'vendor')
+AVB_PARTITIONS = ('boot', 'dtbo', 'odm', 'product', 'recovery', 'system',
+ 'system_ext', 'vendor')
# Chained VBMeta partitions.
AVB_VBMETA_PARTITIONS = ('vbmeta_system', 'vbmeta_vendor')
# Partitions that should have their care_map added to META/care_map.pb
-PARTITIONS_WITH_CARE_MAP = ('system', 'vendor', 'product', 'product_services',
- 'odm')
+PARTITIONS_WITH_CARE_MAP = ('system', 'vendor', 'product', 'system_ext', 'odm')
class ErrorCode(object):
diff --git a/tools/releasetools/merge_target_files.py b/tools/releasetools/merge_target_files.py
index 407ee7e..f73bae1 100755
--- a/tools/releasetools/merge_target_files.py
+++ b/tools/releasetools/merge_target_files.py
@@ -146,8 +146,8 @@
'avb_system_rollback_index_location',
'avb_product_hashtree_enable',
'avb_product_add_hashtree_footer_args',
- 'avb_product_services_hashtree_enable',
- 'avb_product_services_add_hashtree_footer_args',
+ 'avb_system_ext_hashtree_enable',
+ 'avb_system_ext_add_hashtree_footer_args',
'system_root_image',
'root_dir',
'ab_update',
@@ -193,7 +193,7 @@
'DATA/',
'ODM/',
'PRODUCT/',
- 'PRODUCT_SERVICES/',
+ 'SYSTEM_EXT/',
'RADIO/',
'RECOVERY/',
'ROOT/',
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py
index 0e84327..4598317 100755
--- a/tools/releasetools/ota_from_target_files.py
+++ b/tools/releasetools/ota_from_target_files.py
@@ -276,8 +276,8 @@
_RO_PRODUCT_RESOLVE_PROPS = ["ro.product.brand", "ro.product.device",
"ro.product.manufacturer", "ro.product.model",
"ro.product.name"]
- _RO_PRODUCT_PROPS_DEFAULT_SOURCE_ORDER = ["product", "product_services",
- "odm", "vendor", "system"]
+ _RO_PRODUCT_PROPS_DEFAULT_SOURCE_ORDER = ["product", "odm", "vendor",
+ "system_ext", "system"]
def __init__(self, info_dict, oem_dicts):
"""Initializes a BuildInfo instance with the given dicts.
diff --git a/tools/releasetools/sign_target_files_apks.py b/tools/releasetools/sign_target_files_apks.py
index a7e6bb0..04b627b 100755
--- a/tools/releasetools/sign_target_files_apks.py
+++ b/tools/releasetools/sign_target_files_apks.py
@@ -501,8 +501,8 @@
"PRODUCT/build.prop",
"SYSTEM/product/build.prop",
- "PRODUCT_SERVICES/build.prop",
- "SYSTEM/product_services/build.prop",
+ "SYSTEM_EXT/build.prop",
+ "SYSTEM/system_ext/build.prop",
"SYSTEM/etc/prop.default",
"BOOT/RAMDISK/prop.default",
diff --git a/tools/releasetools/test_common.py b/tools/releasetools/test_common.py
index 287cf0a..50fa86f 100644
--- a/tools/releasetools/test_common.py
+++ b/tools/releasetools/test_common.py
@@ -1254,10 +1254,10 @@
def test_incremental(self):
source_info = common.LoadDictionaryFromLines("""
-dynamic_partition_list=system vendor product product_services
+dynamic_partition_list=system vendor product system_ext
super_partition_groups=group_foo
super_group_foo_group_size={group_foo_size}
-super_group_foo_partition_list=system vendor product product_services
+super_group_foo_partition_list=system vendor product system_ext
""".format(group_foo_size=4 * GiB).split("\n"))
target_info = common.LoadDictionaryFromLines("""
dynamic_partition_list=system vendor product odm
@@ -1274,7 +1274,7 @@
src=FakeSparseImage(1024 * MiB)),
MockBlockDifference("product", FakeSparseImage(1024 * MiB),
src=FakeSparseImage(1024 * MiB)),
- MockBlockDifference("product_services", None,
+ MockBlockDifference("system_ext", None,
src=FakeSparseImage(1024 * MiB)),
MockBlockDifference("odm", FakeSparseImage(1024 * MiB),
src=None)]
@@ -1297,11 +1297,11 @@
self.assertLess(patch_idx, verify_idx,
"Should verify {} after patching".format(p))
- self.assertNotIn("patch(product_services);", self.script.lines)
+ self.assertNotIn("patch(system_ext);", self.script.lines)
lines = self.get_op_list(self.output_path)
- remove = lines.index("remove product_services")
+ remove = lines.index("remove system_ext")
move_product_out = lines.index("move product default")
shrink = lines.index("resize vendor 536870912")
shrink_group = lines.index("resize_group group_foo 3221225472")
diff --git a/tools/releasetools/test_sign_target_files_apks.py b/tools/releasetools/test_sign_target_files_apks.py
index 9a1d163..0100729 100644
--- a/tools/releasetools/test_sign_target_files_apks.py
+++ b/tools/releasetools/test_sign_target_files_apks.py
@@ -70,10 +70,10 @@
'ro.product.build.fingerprint=foo/bar/release-keys'),
('ro.product.build.thumbprint=foo/bar/dev-keys',
'ro.product.build.thumbprint=foo/bar/release-keys'),
- ('ro.product_services.build.fingerprint=foo/bar/test-keys',
- 'ro.product_services.build.fingerprint=foo/bar/release-keys'),
- ('ro.product_services.build.thumbprint=foo/bar/test-keys',
- 'ro.product_services.build.thumbprint=foo/bar/release-keys'),
+ ('ro.system_ext.build.fingerprint=foo/bar/test-keys',
+ 'ro.system_ext.build.fingerprint=foo/bar/release-keys'),
+ ('ro.system_ext.build.thumbprint=foo/bar/test-keys',
+ 'ro.system_ext.build.thumbprint=foo/bar/release-keys'),
('# comment line 1', '# comment line 1'),
('ro.bootimage.build.fingerprint=foo/bar/dev-keys',
'ro.bootimage.build.fingerprint=foo/bar/release-keys'),
@@ -91,8 +91,8 @@
'ro.odm.build.tags=release-keys'),
('ro.product.build.tags=dev-keys',
'ro.product.build.tags=release-keys'),
- ('ro.product_services.build.tags=dev-keys',
- 'ro.product_services.build.tags=release-keys'),
+ ('ro.system_ext.build.tags=dev-keys',
+ 'ro.system_ext.build.tags=release-keys'),
('# comment line 2', '# comment line 2'),
('ro.build.display.id=OPR6.170623.012 dev-keys',
'ro.build.display.id=OPR6.170623.012'),