Merge "Clean up noisy error log in find-shareduid-violation.py"
diff --git a/core/tasks/find-shareduid-violation.py b/core/tasks/find-shareduid-violation.py
index 0fe6ffa..1f8e4df 100755
--- a/core/tasks/find-shareduid-violation.py
+++ b/core/tasks/find-shareduid-violation.py
@@ -28,14 +28,26 @@
     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