Clean up noisy error log in find-shareduid-violation.py

The script makes noisy error although fallback cmd succeed.

So make the script writes error log only if both of commands fail.

Bug: 124470143
Bug: 123664116
Test: m -j out/target/product/$(get_build_var TARGET_DEVICE)/shareduid_violation_modules.json
Test: And there is no error log in stderr
Change-Id: I3d4756066ee6904826c18754969fd4190bd02e1e
This commit is contained in:
Jeongik Cha
2019-02-15 15:21:00 +09:00
parent 8f4e0f2939
commit b806c44326

View File

@@ -28,14 +28,26 @@ else:
product_out = sys.argv[1]
aapt = sys.argv[2]
def make_aapt_cmd(file):
cmds = [aapt + ' dump ' + file + ' --file AndroidManifest.xml',
def execute(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = map(lambda b: b.decode('utf-8'), p.communicate())
return p.returncode == 0, out, err
def make_aapt_cmds(file):
return [aapt + ' dump ' + file + ' --file AndroidManifest.xml',
aapt + ' dump xmltree ' + file + ' --file AndroidManifest.xml']
return " || ".join(cmds)
def extract_shared_uid(file):
manifest = subprocess.check_output(make_aapt_cmd(file), shell=True).decode().split('\n')
for l in manifest:
for cmd in make_aapt_cmds(file):
success, manifest, error_msg = execute(cmd)
if success:
break
else:
print(error_msg, file=sys.stderr)
sys.exit()
return None
for l in manifest.split('\n'):
if "sharedUserId" in l:
return l.split('"')[-2]
return None