Adjust some behaviors for --rebuild-sepolicy
1. system_ext or product may not be a standalone partition,
2. keep symbolic links in vendor image,
3. target-files package may not contain IMAGES folder.
Bug: 192422274
Change-Id: I77867408cc764abb975319a23c387ec63fcf87c3
(cherry picked from commit 0e4403e846
)
This commit is contained in:
parent
7d807fa484
commit
737b4c1e09
|
@ -1001,8 +1001,15 @@ def rebuild_image_with_sepolicy(target_files_dir,
|
|||
# Copy the combined SEPolicy file and framework hashes to the image that is
|
||||
# being rebuilt.
|
||||
def copy_selinux_file(input_path, output_filename):
|
||||
input_filename = os.path.join(target_files_dir, input_path)
|
||||
if not os.path.exists(input_filename):
|
||||
input_filename = input_filename.replace('SYSTEM_EXT/', 'SYSTEM/system_ext/') \
|
||||
.replace('PRODUCT/', 'SYSTEM/product/')
|
||||
if not os.path.exists(input_filename):
|
||||
logger.info('Skipping copy_selinux_file for %s', input_filename)
|
||||
return
|
||||
shutil.copy(
|
||||
os.path.join(target_files_dir, input_path),
|
||||
input_filename,
|
||||
os.path.join(target_files_dir, partition.upper(), 'etc/selinux',
|
||||
output_filename))
|
||||
|
||||
|
@ -1042,7 +1049,8 @@ def rebuild_image_with_sepolicy(target_files_dir,
|
|||
shutil.rmtree(os.path.join(vendor_target_files_dir, partition.upper()))
|
||||
shutil.copytree(
|
||||
os.path.join(target_files_dir, partition.upper()),
|
||||
os.path.join(vendor_target_files_dir, partition.upper()))
|
||||
os.path.join(vendor_target_files_dir, partition.upper()),
|
||||
symlinks=True)
|
||||
|
||||
# Delete then rebuild the partition.
|
||||
os.remove(os.path.join(vendor_target_files_dir, 'IMAGES', partition_img))
|
||||
|
@ -1057,6 +1065,8 @@ def rebuild_image_with_sepolicy(target_files_dir,
|
|||
common.RunAndCheckOutput(rebuild_partition_command, verbose=True)
|
||||
|
||||
# Move the newly-created image to the merged target files dir.
|
||||
if not os.path.exists(os.path.join(target_files_dir, 'IMAGES')):
|
||||
os.makedirs(os.path.join(target_files_dir, 'IMAGES'))
|
||||
shutil.move(
|
||||
os.path.join(vendor_target_files_dir, 'IMAGES', partition_img),
|
||||
os.path.join(target_files_dir, 'IMAGES', partition_img))
|
||||
|
|
Loading…
Reference in New Issue