Update deapexer extract call
BUG: b/255963179, b/240288941
Test: art/build/apex/runtests.sh
Change-Id: I1bca2baf0aa43d092f75dad5d5b1ead9d7b55455
diff --git a/build/apex/art_apex_test.py b/build/apex/art_apex_test.py
index 3f98903..900ada7 100755
--- a/build/apex/art_apex_test.py
+++ b/build/apex/art_apex_test.py
@@ -65,12 +65,14 @@
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 @@
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 @@
# 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 @@
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 @@
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)