aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2018-10-01 15:15:51 -0700
committerColin Cross <ccross@android.com>2018-10-02 12:39:38 -0700
commit4b176069c3efbb6e8a9793fc7c689e4e1f89075e (patch)
tree8f1aad55b2e55126122c0fe56d5a4dab0c54ebee /scripts
parent16d387c970421be7060d74ac1957f6047478afaf (diff)
downloadbuild_soong-4b176069c3efbb6e8a9793fc7c689e4e1f89075e.tar.gz
build_soong-4b176069c3efbb6e8a9793fc7c689e4e1f89075e.tar.bz2
build_soong-4b176069c3efbb6e8a9793fc7c689e4e1f89075e.zip
Don't set targetSdkVersion to '1' for libraries
Setting targetSdkVersion to '1' causes ManifestMerger to add implicit permissions when merging to a higher targetSdkVersion. It should really be unset, but ManifestMerger treats unset targetSdkVersion as 'Q' if minSdkVersion is 'Q' (but not if minSdkVersion is '28'). 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. Bug: 115415671 Bug: 117122200 Test: m checkbuild Change-Id: I1d2d031a21314f6b55d8ea1cc7c4c8e3ecae7f06
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/manifest_fixer.py7
-rwxr-xr-xscripts/manifest_fixer_test.py4
2 files changed, 8 insertions, 3 deletions
diff --git a/scripts/manifest_fixer.py b/scripts/manifest_fixer.py
index b6fe34e6..80a398b5 100755
--- a/scripts/manifest_fixer.py
+++ b/scripts/manifest_fixer.py
@@ -179,7 +179,12 @@ def raise_min_sdk_version(doc, min_sdk_version, target_sdk_version, library):
if target_attr is None:
target_attr = doc.createAttributeNS(android_ns, 'android:targetSdkVersion')
if library:
- target_attr.value = '1'
+ # TODO(b/117122200): libraries shouldn't set targetSdkVersion at all, but
+ # ManifestMerger treats minSdkVersion="Q" as targetSdkVersion="Q" if it
+ # 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'
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 66a2317f..d1d401a7 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='1')
+ expected = self.manifest_tmpl % self.uses_sdk(min='28', target='15')
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='1')
+ expected = self.manifest_tmpl % self.uses_sdk(min='28', target='15')
output = self.raise_min_sdk_version_test(manifest_input, '28', '29', True)
self.assertEqual(output, expected)