From 18dcd046ad91c4a11267969529add509b44bde9a Mon Sep 17 00:00:00 2001 From: Andrew Wheeler Date: Tue, 12 Jan 2021 21:02:03 -0600 Subject: [PATCH] manifest_fixer: Set targetSdkVersion to '16' for libraries manifest_fixer.py sets a lib's targetSdkVersion to '15' if it is not explicitly set. But ManifestMerger will add dangerous permissions CALL_LOG_READ/CALL_LOG_WRITE if the following conditions are met: - The app's targetSdkVersion is >16 - A linked lib's targetSdkVersion is <16 - The app has CONTACTS_READ/CONTACTS_WRITE permissions This condition is triggered for some (OEM) app builds (of Settings). Update manifest_fixer.py to use '16' as its default targetSdkVersion so that manifest_merge doesn't add these dangerous permissions. Change-Id: Id5f41f7da98c190c8d145fceba0085cf473f4c7a --- scripts/manifest_fixer.py | 2 +- scripts/manifest_fixer_test.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/manifest_fixer.py b/scripts/manifest_fixer.py index c59732bb9..55d0fd158 100755 --- a/scripts/manifest_fixer.py +++ b/scripts/manifest_fixer.py @@ -121,7 +121,7 @@ def raise_min_sdk_version(doc, min_sdk_version, target_sdk_version, library): # is empty. Set it to something low so that it will be overriden by the # main manifest, but high enough that it doesn't cause implicit # permissions grants. - target_attr.value = '15' + target_attr.value = '16' else: target_attr.value = target_sdk_version element.setAttributeNode(target_attr) diff --git a/scripts/manifest_fixer_test.py b/scripts/manifest_fixer_test.py index d6e7f2674..3a0a25d1c 100755 --- a/scripts/manifest_fixer_test.py +++ b/scripts/manifest_fixer_test.py @@ -173,7 +173,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): """Tests inserting targetSdkVersion when minSdkVersion exists.""" manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') - expected = self.manifest_tmpl % self.uses_sdk(min='28', target='15') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='16') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', True) self.assertEqual(output, expected) @@ -189,7 +189,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): """Tests inserting targetSdkVersion when minSdkVersion does not exist.""" manifest_input = self.manifest_tmpl % '' - expected = self.manifest_tmpl % self.uses_sdk(min='28', target='15') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='16') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', True) self.assertEqual(output, expected)