diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index 8571d74683..bde152ff91 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -821,7 +821,6 @@ def ImagePropFromGlobalDict(glob_dict, mount_point): d["mount_point"] = mount_point if mount_point == "system": copy_prop("system_headroom", "partition_headroom") - copy_prop("system_root_image", "system_root_image") copy_prop("root_dir", "root_dir") copy_prop("root_fs_config", "root_fs_config") elif mount_point == "data": diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 8ce6083f44..63fd85447e 100644 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -1156,8 +1156,7 @@ class PartitionBuildProps(object): return self.build_props.get(prop) -def LoadRecoveryFSTab(read_helper, fstab_version, recovery_fstab_path, - system_root_image=False): +def LoadRecoveryFSTab(read_helper, fstab_version, recovery_fstab_path): class Partition(object): def __init__(self, mount_point, fs_type, device, length, context, slotselect): self.mount_point = mount_point @@ -1216,12 +1215,6 @@ def LoadRecoveryFSTab(read_helper, fstab_version, recovery_fstab_path, device=pieces[0], length=length, context=context, slotselect=slotselect) - # / is used for the system mount point when the root directory is included in - # system. Other areas assume system is always at "/system" so point /system - # at /. - if system_root_image: - assert '/system' not in d and '/' in d - d["/system"] = d["/"] return d @@ -1237,22 +1230,19 @@ def _FindAndLoadRecoveryFstab(info_dict, input_file, read_helper): # ../RAMDISK/system/etc/recovery.fstab. This function has to handle both # cases, since it may load the info_dict from an old build (e.g. when # generating incremental OTAs from that build). - system_root_image = info_dict.get('system_root_image') == 'true' if info_dict.get('no_recovery') != 'true': recovery_fstab_path = 'RECOVERY/RAMDISK/system/etc/recovery.fstab' if not DoesInputFileContain(input_file, recovery_fstab_path): recovery_fstab_path = 'RECOVERY/RAMDISK/etc/recovery.fstab' return LoadRecoveryFSTab( - read_helper, info_dict['fstab_version'], recovery_fstab_path, - system_root_image) + read_helper, info_dict['fstab_version'], recovery_fstab_path) if info_dict.get('recovery_as_boot') == 'true': recovery_fstab_path = 'BOOT/RAMDISK/system/etc/recovery.fstab' if not DoesInputFileContain(input_file, recovery_fstab_path): recovery_fstab_path = 'BOOT/RAMDISK/etc/recovery.fstab' return LoadRecoveryFSTab( - read_helper, info_dict['fstab_version'], recovery_fstab_path, - system_root_image) + read_helper, info_dict['fstab_version'], recovery_fstab_path) return None @@ -1980,11 +1970,6 @@ def HasRamdisk(partition_name, info_dict=None): if info_dict.get("gki_boot_image_without_ramdisk") == "true": return False # A GKI boot.img has no ramdisk since Android-13. - if info_dict.get("system_root_image") == "true": - # The ramdisk content is merged into the system.img, so there is NO - # ramdisk in the boot.img or boot-.img. - return False - if info_dict.get("init_boot") == "true": # The ramdisk is moved to the init_boot.img, so there is NO # ramdisk in the boot.img or boot-.img. @@ -3853,14 +3838,11 @@ def MakeRecoveryPatch(input_dir, output_sink, recovery_img, boot_img, output_sink(recovery_img_path, recovery_img.data) else: - system_root_image = info_dict.get("system_root_image") == "true" include_recovery_dtbo = info_dict.get("include_recovery_dtbo") == "true" include_recovery_acpio = info_dict.get("include_recovery_acpio") == "true" path = os.path.join(input_dir, recovery_resource_dat_path) - # With system-root-image, boot and recovery images will have mismatching - # entries (only recovery has the ramdisk entry) (Bug: 72731506). Use bsdiff - # to handle such a case. - if system_root_image or include_recovery_dtbo or include_recovery_acpio: + # Use bsdiff to handle mismatching entries (Bug: 72731506) + if include_recovery_dtbo or include_recovery_acpio: diff_program = ["bsdiff"] bonus_args = "" assert not os.path.exists(path) diff --git a/tools/releasetools/sign_target_files_apks.py b/tools/releasetools/sign_target_files_apks.py index 2b45825ae5..5867c6fd2d 100755 --- a/tools/releasetools/sign_target_files_apks.py +++ b/tools/releasetools/sign_target_files_apks.py @@ -83,9 +83,8 @@ Usage: sign_target_files_apks [flags] input_target_files output_target_files --replace_verity_public_key Replace the certificate (public key) used for verity verification. The - key file replaces the one at BOOT/RAMDISK/verity_key (or ROOT/verity_key - for devices using system_root_image). It expects the key filename WITH - the extension (e.g. verity_key.pub). + key file replaces the one at BOOT/RAMDISK/verity_key. It expects the key + filename WITH the extension (e.g. verity_key.pub). --replace_verity_keyid Replace the veritykeyid in BOOT/cmdline of input_target_file_zip @@ -555,8 +554,6 @@ def ProcessTargetFiles(input_tf_zip, output_tf_zip, misc_info, # Sets this to zero for targets without APK files, e.g., gki_arm64. maxsize = 0 - system_root_image = misc_info.get("system_root_image") == "true" - for info in input_tf_zip.infolist(): filename = info.filename if filename.startswith("IMAGES/"): diff --git a/tools/releasetools/test_build_image.py b/tools/releasetools/test_build_image.py index cfae7a5236..d4f7ccc98f 100644 --- a/tools/releasetools/test_build_image.py +++ b/tools/releasetools/test_build_image.py @@ -99,11 +99,10 @@ class BuildImageTest(test_utils.ReleaseToolsTestCase): } self.assertRaises(BuildImageError, CheckHeadroom, ext4fs_output, prop_dict) - def test_SetUpInDirAndFsConfig_SystemRootImageTrue_NonSystem(self): + def test_SetUpInDirAndFsConfig_NonSystem(self): prop_dict = { 'fs_config': 'fs-config', 'mount_point': 'vendor', - 'system_root_image': 'true', } in_dir, fs_config = SetUpInDirAndFsConfig('/path/to/in_dir', prop_dict) self.assertEqual('/path/to/in_dir', in_dir) diff --git a/tools/releasetools/test_common.py b/tools/releasetools/test_common.py index 14f0e88f91..9b2e66791d 100644 --- a/tools/releasetools/test_common.py +++ b/tools/releasetools/test_common.py @@ -1348,7 +1348,6 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): INFO_DICT_DEFAULT = { 'recovery_api_version': 3, 'fstab_version': 2, - 'system_root_image': 'true', 'no_recovery': 'true', 'recovery_as_boot': 'true', } @@ -1377,14 +1376,8 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): info_values = ''.join( ['{}={}\n'.format(k, v) for k, v in sorted(info_dict.items())]) common.ZipWriteStr(target_files_zip, 'META/misc_info.txt', info_values) - - FSTAB_TEMPLATE = "/dev/block/system {} ext4 ro,barrier=1 defaults" - if info_dict.get('system_root_image') == 'true': - fstab_values = FSTAB_TEMPLATE.format('/') - else: - fstab_values = FSTAB_TEMPLATE.format('/system') - common.ZipWriteStr(target_files_zip, fstab_path, fstab_values) - + common.ZipWriteStr(target_files_zip, fstab_path, + "/dev/block/system /system ext4 ro,barrier=1 defaults") common.ZipWriteStr( target_files_zip, 'META/file_contexts', 'file-contexts') return target_files @@ -1397,7 +1390,6 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): loaded_dict = common.LoadInfoDict(target_files_zip) self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(2, loaded_dict['fstab_version']) - self.assertIn('/', loaded_dict['fstab']) self.assertIn('/system', loaded_dict['fstab']) def test_LoadInfoDict_legacyRecoveryFstabPath(self): @@ -1408,7 +1400,6 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): loaded_dict = common.LoadInfoDict(target_files_zip) self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(2, loaded_dict['fstab_version']) - self.assertIn('/', loaded_dict['fstab']) self.assertIn('/system', loaded_dict['fstab']) @test_utils.SkipIfExternalToolsUnavailable() @@ -1420,7 +1411,6 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): loaded_dict = common.LoadInfoDict(unzipped) self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(2, loaded_dict['fstab_version']) - self.assertIn('/', loaded_dict['fstab']) self.assertIn('/system', loaded_dict['fstab']) @test_utils.SkipIfExternalToolsUnavailable() @@ -1432,15 +1422,11 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): loaded_dict = common.LoadInfoDict(unzipped) self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(2, loaded_dict['fstab_version']) - self.assertIn('/', loaded_dict['fstab']) self.assertIn('/system', loaded_dict['fstab']) - def test_LoadInfoDict_systemRootImageFalse(self): - # Devices not using system-as-root nor recovery-as-boot. Non-A/B devices - # launched prior to P will likely have this config. + def test_LoadInfoDict_recoveryAsBootFalse(self): info_dict = copy.copy(self.INFO_DICT_DEFAULT) del info_dict['no_recovery'] - del info_dict['system_root_image'] del info_dict['recovery_as_boot'] target_files = self._test_LoadInfoDict_createTargetFiles( info_dict, @@ -1452,22 +1438,6 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): self.assertNotIn('/', loaded_dict['fstab']) self.assertIn('/system', loaded_dict['fstab']) - def test_LoadInfoDict_recoveryAsBootFalse(self): - # Devices using system-as-root, but with standalone recovery image. Non-A/B - # devices launched since P will likely have this config. - info_dict = copy.copy(self.INFO_DICT_DEFAULT) - del info_dict['no_recovery'] - del info_dict['recovery_as_boot'] - target_files = self._test_LoadInfoDict_createTargetFiles( - info_dict, - 'RECOVERY/RAMDISK/system/etc/recovery.fstab') - with zipfile.ZipFile(target_files, 'r', allowZip64=True) as target_files_zip: - loaded_dict = common.LoadInfoDict(target_files_zip) - self.assertEqual(3, loaded_dict['recovery_api_version']) - self.assertEqual(2, loaded_dict['fstab_version']) - self.assertIn('/', loaded_dict['fstab']) - self.assertIn('/system', loaded_dict['fstab']) - def test_LoadInfoDict_noRecoveryTrue(self): # Device doesn't have a recovery partition at all. info_dict = copy.copy(self.INFO_DICT_DEFAULT) @@ -1499,7 +1469,6 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): loaded_dict = common.LoadInfoDict(unzipped, True) self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(2, loaded_dict['fstab_version']) - self.assertIn('/', loaded_dict['fstab']) self.assertIn('/system', loaded_dict['fstab']) self.assertEqual( os.path.join(unzipped, 'ROOT'), loaded_dict['root_dir']) diff --git a/tools/releasetools/test_validate_target_files.py b/tools/releasetools/test_validate_target_files.py index 48b563d7b0..4d4b9e51e7 100644 --- a/tools/releasetools/test_validate_target_files.py +++ b/tools/releasetools/test_validate_target_files.py @@ -156,7 +156,6 @@ class ValidateTargetFilesTest(test_utils.ReleaseToolsTestCase): verity_key_mincrypt) info_dict = { - 'system_root_image' : 'true', 'verity' : 'true', } options = { diff --git a/tools/releasetools/validate_target_files.py b/tools/releasetools/validate_target_files.py index 82b31076f7..8da4fa2e8a 100755 --- a/tools/releasetools/validate_target_files.py +++ b/tools/releasetools/validate_target_files.py @@ -361,18 +361,15 @@ def ValidateVerifiedBootImages(input_tmp, info_dict, options): "Mismatching mincrypt verity key files" logging.info('Verified the content of /verity_key') - # For devices with a separate ramdisk (i.e. non-system-as-root), there must - # be a copy in ramdisk. - if info_dict.get("system_root_image") != "true": - verity_key_ramdisk = os.path.join( - input_tmp, 'BOOT', 'RAMDISK', 'verity_key') - assert os.path.exists( - verity_key_ramdisk), 'Missing verity_key in ramdisk' + verity_key_ramdisk = os.path.join( + input_tmp, 'BOOT', 'RAMDISK', 'verity_key') + assert os.path.exists( + verity_key_ramdisk), 'Missing verity_key in ramdisk' - assert filecmp.cmp( - verity_key_mincrypt, verity_key_ramdisk, shallow=False), \ - 'Mismatching verity_key files in root and ramdisk' - logging.info('Verified the content of /verity_key in ramdisk') + assert filecmp.cmp( + verity_key_mincrypt, verity_key_ramdisk, shallow=False), \ + 'Mismatching verity_key files in root and ramdisk' + logging.info('Verified the content of /verity_key in ramdisk') # Then verify the verity signed system/vendor/product images, against the # verity pubkey in mincrypt format.