aapt 26.0.0 is required to properly parse permissions and label
#236 closes #395 aapt 26.0.0 outputs the permissions correctly closes #306 aapt 26.0.0 now outputs: application-label:'K-9 Mail'
This commit is contained in:
parent
01f3d071ee
commit
109eb928e8
|
@ -57,6 +57,9 @@ from fdroidserver.exception import FDroidException, VCSException, NoSubmodulesEx
|
|||
BuildException, VerificationException
|
||||
from .asynchronousfilereader import AsynchronousFileReader
|
||||
|
||||
# this is the build-tools version, aapt has a separate version that
|
||||
# has to be manually set in test_aapt_version()
|
||||
MINIMUM_AAPT_VERSION = '26.0.0'
|
||||
|
||||
# A signature block file with a .DSA, .RSA, or .EC extension
|
||||
CERT_PATH_REGEX = re.compile(r'^META-INF/.*\.(DSA|EC|RSA)$')
|
||||
|
@ -84,7 +87,7 @@ default_config = {
|
|||
'r16': None,
|
||||
},
|
||||
'qt_sdk_path': None,
|
||||
'build_tools': "25.0.2",
|
||||
'build_tools': MINIMUM_AAPT_VERSION,
|
||||
'force_build_tools': False,
|
||||
'java_paths': None,
|
||||
'ant': "ant",
|
||||
|
@ -397,13 +400,13 @@ def test_aapt_version(aapt):
|
|||
# the Debian package has the version string like "v0.2-23.0.2"
|
||||
too_old = False
|
||||
if '.' in bugfix:
|
||||
if LooseVersion(bugfix) < LooseVersion('24.0.0'):
|
||||
if LooseVersion(bugfix) < LooseVersion(MINIMUM_AAPT_VERSION):
|
||||
too_old = True
|
||||
elif LooseVersion('.'.join((major, minor, bugfix))) < LooseVersion('0.2.2964546'):
|
||||
elif LooseVersion('.'.join((major, minor, bugfix))) < LooseVersion('0.2.4062713'):
|
||||
too_old = True
|
||||
if too_old:
|
||||
logging.warning(_("'{aapt}' is too old, fdroid requires build-tools-24.0.0 or newer!")
|
||||
.format(aapt=aapt))
|
||||
logging.warning(_("'{aapt}' is too old, fdroid requires build-tools-{version} or newer!")
|
||||
.format(aapt=aapt, version=MINIMUM_AAPT_VERSION))
|
||||
else:
|
||||
logging.warning(_('Unknown version of aapt, might cause problems: ') + output)
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
Categories:
|
||||
- tests
|
||||
Name: Duplicate Permisssions
|
||||
Summary: 'Test app for all possible <uses-permissions>'
|
Binary file not shown.
|
@ -21,6 +21,19 @@
|
|||
]
|
||||
},
|
||||
"apps": [
|
||||
{
|
||||
"categories": [
|
||||
"tests"
|
||||
],
|
||||
"suggestedVersionCode": "9999999",
|
||||
"license": "Unknown",
|
||||
"name": "Duplicate Permisssions",
|
||||
"summary": "Test app for all possible <uses-permissions>",
|
||||
"added": 1513900800000,
|
||||
"icon": "duplicate.permisssions.9999999.png",
|
||||
"packageName": "duplicate.permisssions",
|
||||
"lastUpdated": 1513900800000
|
||||
},
|
||||
{
|
||||
"categories": [
|
||||
"System"
|
||||
|
@ -271,6 +284,62 @@
|
|||
"versionName": "1.2"
|
||||
}
|
||||
],
|
||||
"duplicate.permisssions": [
|
||||
{
|
||||
"added": 1513900800000,
|
||||
"apkName": "duplicate.permisssions_9999999.apk",
|
||||
"hash": "9ffc7e9b2740ce664059194805b2fbfc08b7970c8448a22b8bd828dfd6ad161c",
|
||||
"hashType": "sha256",
|
||||
"minSdkVersion": "18",
|
||||
"packageName": "duplicate.permisssions",
|
||||
"sig": "2d337e40aef77564bf62781ac424595c",
|
||||
"signer": "f49af3f11efddf20dffd70f5e3117b9976674167adca280e6b1932a0601b26f6",
|
||||
"size": 11988,
|
||||
"targetSdkVersion": "27",
|
||||
"uses-permission": [
|
||||
[
|
||||
"android.permission.INTERNET",
|
||||
null
|
||||
],
|
||||
[
|
||||
"android.permission.ACCESS_NETWORK_STATE",
|
||||
null
|
||||
],
|
||||
[
|
||||
"android.permission.ACCESS_WIFI_STATE",
|
||||
null
|
||||
],
|
||||
[
|
||||
"android.permission.CHANGE_WIFI_MULTICAST_STATE",
|
||||
null
|
||||
],
|
||||
[
|
||||
"android.permission.INTERNET",
|
||||
null
|
||||
],
|
||||
[
|
||||
"android.permission.WRITE_EXTERNAL_STORAGE",
|
||||
18
|
||||
],
|
||||
[
|
||||
"android.permission.READ_EXTERNAL_STORAGE",
|
||||
18
|
||||
]
|
||||
],
|
||||
"uses-permission-sdk-23": [
|
||||
[
|
||||
"android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS",
|
||||
27
|
||||
],
|
||||
[
|
||||
"android.permission.REQUEST_INSTALL_PACKAGES",
|
||||
null
|
||||
]
|
||||
],
|
||||
"versionCode": 9999999,
|
||||
"versionName": "0.3-7-gb817ac8"
|
||||
}
|
||||
],
|
||||
"fake.ota.update": [
|
||||
{
|
||||
"added": 1457568000000,
|
||||
|
|
|
@ -8,6 +8,38 @@
|
|||
<install packageName="org.adaway"/>
|
||||
<uninstall packageName="com.android.vending"/>
|
||||
<uninstall packageName="com.facebook.orca"/>
|
||||
<application id="duplicate.permisssions">
|
||||
<id>duplicate.permisssions</id>
|
||||
<added>2017-12-22</added>
|
||||
<lastupdated>2017-12-22</lastupdated>
|
||||
<name>Duplicate Permisssions</name>
|
||||
<summary>Test app for all possible <uses-permissions></summary>
|
||||
<icon>duplicate.permisssions.9999999.png</icon>
|
||||
<desc><p>No description available</p></desc>
|
||||
<license>Unknown</license>
|
||||
<categories>tests</categories>
|
||||
<category>tests</category>
|
||||
<web></web>
|
||||
<source></source>
|
||||
<tracker></tracker>
|
||||
<marketversion></marketversion>
|
||||
<marketvercode>9999999</marketvercode>
|
||||
<package>
|
||||
<version>0.3-7-gb817ac8</version>
|
||||
<versioncode>9999999</versioncode>
|
||||
<apkname>duplicate.permisssions_9999999.apk</apkname>
|
||||
<hash type="sha256">9ffc7e9b2740ce664059194805b2fbfc08b7970c8448a22b8bd828dfd6ad161c</hash>
|
||||
<size>11988</size>
|
||||
<sdkver>18</sdkver>
|
||||
<targetSdkVersion>27</targetSdkVersion>
|
||||
<added>2017-12-22</added>
|
||||
<sig>2d337e40aef77564bf62781ac424595c</sig>
|
||||
<permissions>ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE,CHANGE_WIFI_MULTICAST_STATE,INTERNET,READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE</permissions>
|
||||
<uses-permission maxSdkVersion="18" name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission maxSdkVersion="18" name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission-sdk-23 maxSdkVersion="27" name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
||||
</package>
|
||||
</application>
|
||||
<application id="fake.ota.update">
|
||||
<id>fake.ota.update</id>
|
||||
<added>2016-03-10</added>
|
||||
|
|
|
@ -2,6 +2,7 @@ com.politedroid_3.apk repo/com.politedroid 2017-06-23
|
|||
com.politedroid_4.apk repo/com.politedroid 2017-06-23
|
||||
com.politedroid_5.apk repo/com.politedroid 2017-06-23
|
||||
com.politedroid_6.apk repo/com.politedroid 2017-06-23
|
||||
duplicate.permisssions_9999999.apk duplicate.permisssions 2017-12-22
|
||||
fake.ota.update_1234.zip fake.ota.update 2016-03-10
|
||||
obb.main.oldversion_1444412523.apk obb.main.oldversion 2013-12-31
|
||||
obb.main.twoversions_1101613.apk obb.main.twoversions 2015-10-12
|
||||
|
|
|
@ -253,14 +253,14 @@ class UpdateTest(unittest.TestCase):
|
|||
apps = fdroidserver.metadata.read_metadata(xref=True)
|
||||
knownapks = fdroidserver.common.KnownApks()
|
||||
apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False)
|
||||
self.assertEqual(len(apks), 11)
|
||||
self.assertEqual(len(apks), 12)
|
||||
apk = apks[0]
|
||||
self.assertEqual(apk['packageName'], 'com.politedroid')
|
||||
self.assertEqual(apk['versionCode'], 3)
|
||||
self.assertEqual(apk['minSdkVersion'], '3')
|
||||
self.assertEqual(apk['targetSdkVersion'], '3')
|
||||
self.assertFalse('maxSdkVersion' in apk)
|
||||
apk = apks[4]
|
||||
apk = apks[5]
|
||||
self.assertEqual(apk['packageName'], 'obb.main.oldversion')
|
||||
self.assertEqual(apk['versionCode'], 1444412523)
|
||||
self.assertEqual(apk['minSdkVersion'], '4')
|
||||
|
@ -527,7 +527,7 @@ class UpdateTest(unittest.TestCase):
|
|||
knownapks = fdroidserver.common.KnownApks()
|
||||
apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False)
|
||||
fdroidserver.update.translate_per_build_anti_features(apps, apks)
|
||||
self.assertEqual(len(apks), 11)
|
||||
self.assertEqual(len(apks), 12)
|
||||
foundtest = False
|
||||
for apk in apks:
|
||||
if apk['packageName'] == 'com.politedroid' and apk['versionCode'] == 3:
|
||||
|
|
Loading…
Reference in New Issue