From c232049c9980e6a80baf91f135baf89f23d9075d Mon Sep 17 00:00:00 2001 From: Dennis Shen Date: Wed, 2 Nov 2022 16:03:42 +0000 Subject: Update deapexer extract call BUG: b/255963179, b/240288941 Test: art/build/apex/runtests.sh Change-Id: I1bca2baf0aa43d092f75dad5d5b1ead9d7b55455 --- build/apex/art_apex_test.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'build/apex/art_apex_test.py') diff --git a/build/apex/art_apex_test.py b/build/apex/art_apex_test.py index 3f98903244..900ada7926 100755 --- a/build/apex/art_apex_test.py +++ b/build/apex/art_apex_test.py @@ -65,12 +65,14 @@ def isEnvTrue(var): return var in os.environ and os.environ[var] == 'true' -def extract_apex(apex_path, deapexer_path, debugfs_path, tmpdir): +def extract_apex(apex_path, deapexer_path, debugfs_path, fsckerofs_path, + blkid_path, tmpdir): _, apex_name = os.path.split(apex_path) extract_path = os.path.join(tmpdir, apex_name) if os.path.exists(extract_path): shutil.rmtree(extract_path) subprocess.check_call([deapexer_path, '--debugfs', debugfs_path, + '--fsckerofs', fsckerofs_path, '--blkid', blkid_path, 'extract', apex_path, extract_path], stdout=subprocess.DEVNULL) return extract_path @@ -898,6 +900,12 @@ def art_apex_test_main(test_args): if not test_args.debugfs: logging.error("Need debugfs.") return 1 + if not test_args.fsckerofs: + logging.error("Need fsck.erofs.") + return 1 + if not test_args.blkid: + logging.error("Need blkid.") + return 1 if test_args.host: # Host APEX. @@ -937,7 +945,7 @@ def art_apex_test_main(test_args): # Extract the apex. It would be nice to use the output from "deapexer list" # to avoid this work, but it doesn't provide info about executable bits. apex_dir = extract_apex(test_args.apex, test_args.deapexer, test_args.debugfs, - test_args.tmpdir) + test_args.fsckerofs, test_args.blkid, test_args.tmpdir) apex_provider = TargetApexProvider(apex_dir) except (zipfile.BadZipFile, zipfile.LargeZipFile) as e: logging.error('Failed to create provider: %s', e) @@ -1023,6 +1031,8 @@ def art_apex_test_default(test_parser): test_args = test_parser.parse_args(['unused']) # For consistency. test_args.debugfs = '%s/bin/debugfs' % host_out + test_args.fsckerofs = '%s/bin/fsck.erofs' % host_out + test_args.blkid = '%s/bin/blkid' % host_out test_args.tmpdir = '.' test_args.tree = False test_args.list = False @@ -1078,6 +1088,8 @@ if __name__ == "__main__": parser.add_argument('--tmpdir', help='Directory for temp files') parser.add_argument('--deapexer', help='Path to deapexer') parser.add_argument('--debugfs', help='Path to debugfs') + parser.add_argument('--fsckerofs', help='Path to fsck.erofs') + parser.add_argument('--blkid', help='Path to blkid') parser.add_argument('--bitness', help='Bitness to check', choices=BITNESS_ALL, default=BITNESS_AUTO) -- cgit v1.2.3-59-g8ed1b