From 64445520b0a0c456876a8623cac1eb0d95ae4584 Mon Sep 17 00:00:00 2001 From: Francesco Cervigni Date: Tue, 13 Nov 2018 02:33:11 +0000 Subject: [PATCH 1/2] update.py: Still aapt output parsing, setting regex to catch 'name=' without prefixes, needed for build-tools 28.0.3 build-tools 28.0.3 added a new field in the end 'compileSdkVersionCodename=', which also accidentally ends with the string 'name='. The purpose of this regex was to catch the 'packageName' field, which is in ht eaapt ouput the exact ' name=', therefore added whe non-caracter \W prefix match. sample aapt output (28.0.3): package: name='com.a.b.app' versionCode='1' versionName='1.0' compileSdkVersion='28' compileSdkVersionCodename='9' previously, regex was catching second occurence, so '9' See merge request !582 --- fdroidserver/update.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 97a69b89f2..1a331c835b 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -55,7 +55,7 @@ METADATA_VERSION = 21 # less than the valid range of versionCode, i.e. Java's Integer.MIN_VALUE UNSET_VERSION_CODE = -0x100000000 -APK_NAME_PAT = re.compile(".*name='([a-zA-Z0-9._]*)'.*") +APK_NAME_PAT = re.compile(".*\Wname='([a-zA-Z0-9._]*)'.*") APK_VERCODE_PAT = re.compile(".*versionCode='([0-9]*)'.*") APK_VERNAME_PAT = re.compile(".*versionName='([^']*)'.*") APK_LABEL_ICON_PAT = re.compile(r".*\s+label='(.*)'\s+icon='(.*?)'") -- GitLab From 984d276c1b297124f856e6100fde6dee86c46ba5 Mon Sep 17 00:00:00 2001 From: Francesco Cervigni Date: Wed, 9 Jan 2019 22:41:59 +0100 Subject: [PATCH 2/2] Added test aapt output files for build-tools 28.0.3 --- fdroidserver/update.py | 2 +- ...t-output-com.example.test.helloworld_1.txt | 14 ++++++++ .../28.0.3/aapt-output-com.politedroid_3.txt | 26 +++++++++++++++ .../28.0.3/aapt-output-com.politedroid_4.txt | 26 +++++++++++++++ .../28.0.3/aapt-output-com.politedroid_5.txt | 21 ++++++++++++ .../28.0.3/aapt-output-com.politedroid_6.txt | 21 ++++++++++++ ...-output-duplicate.permisssions_9999999.txt | 30 +++++++++++++++++ ...-output-info.guardianproject.urzip_100.txt | 16 +++++++++ ...-output-info.zwanenburg.caffeinetile_4.txt | 16 +++++++++ .../aapt-output-no.min.target.sdk_987.txt | 20 +++++++++++ ...-output-obb.main.oldversion_1444412523.txt | 31 ++++++++++++++++++ ...pt-output-obb.main.twoversions_1101613.txt | 16 +++++++++ ...pt-output-obb.main.twoversions_1101615.txt | 16 +++++++++ ...pt-output-obb.main.twoversions_1101617.txt | 16 +++++++++ ...aapt-output-obb.mainpatch.current_1619.txt | 16 +++++++++ .../28.0.3/aapt-output-souch.smsbypass_9.txt | 31 ++++++++++++++++++ tests/repo/com.example.test.helloworld_1.apk | Bin 0 -> 14236 bytes tests/update.TestCase | 10 +++--- 18 files changed, 322 insertions(+), 6 deletions(-) create mode 100644 tests/build-tools/28.0.3/aapt-output-com.example.test.helloworld_1.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-com.politedroid_3.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-com.politedroid_4.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-com.politedroid_5.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-com.politedroid_6.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-duplicate.permisssions_9999999.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-info.guardianproject.urzip_100.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-info.zwanenburg.caffeinetile_4.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-no.min.target.sdk_987.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-obb.main.oldversion_1444412523.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101613.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101615.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101617.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-obb.mainpatch.current_1619.txt create mode 100644 tests/build-tools/28.0.3/aapt-output-souch.smsbypass_9.txt create mode 100644 tests/repo/com.example.test.helloworld_1.apk diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 1a331c835b..0dc6918954 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -55,7 +55,7 @@ METADATA_VERSION = 21 # less than the valid range of versionCode, i.e. Java's Integer.MIN_VALUE UNSET_VERSION_CODE = -0x100000000 -APK_NAME_PAT = re.compile(".*\Wname='([a-zA-Z0-9._]*)'.*") +APK_NAME_PAT = re.compile(r".*\Wname='([a-zA-Z0-9._]*)'.*") APK_VERCODE_PAT = re.compile(".*versionCode='([0-9]*)'.*") APK_VERNAME_PAT = re.compile(".*versionName='([^']*)'.*") APK_LABEL_ICON_PAT = re.compile(r".*\s+label='(.*)'\s+icon='(.*?)'") diff --git a/tests/build-tools/28.0.3/aapt-output-com.example.test.helloworld_1.txt b/tests/build-tools/28.0.3/aapt-output-com.example.test.helloworld_1.txt new file mode 100644 index 0000000000..61076c7260 --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-com.example.test.helloworld_1.txt @@ -0,0 +1,14 @@ +package: name='com.example.test.helloworld' versionCode='1' versionName='1.0' compileSdkVersion='28' compileSdkVersionCodename='9' +sdkVersion:'18' +targetSdkVersion:'28' +application-label:'HelloWorld' +application: label='HelloWorld' icon='' +launchable-activity: name='com.example.test.helloworld.MainActivity' label='' icon='' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '120' '160' '240' '320' '480' '640' '65534' diff --git a/tests/build-tools/28.0.3/aapt-output-com.politedroid_3.txt b/tests/build-tools/28.0.3/aapt-output-com.politedroid_3.txt new file mode 100644 index 0000000000..6d4ce3a2c3 --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-com.politedroid_3.txt @@ -0,0 +1,26 @@ +package: name='com.politedroid' versionCode='3' versionName='1.2' +sdkVersion:'3' +uses-permission: name='android.permission.READ_CALENDAR' +uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED' +application-label:'Polite Droid' +application-icon-120:'res/drawable-ldpi/icon.png' +application-icon-160:'res/drawable-mdpi/icon.png' +application-icon-240:'res/drawable-hdpi/icon.png' +application-icon-320:'res/drawable-xhdpi/icon.png' +application: label='Polite Droid' icon='res/drawable-mdpi/icon.png' +launchable-activity: name='com.politedroid.Preferences' label='Polite Droid' icon='' +uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' +uses-implied-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' reason='targetSdkVersion < 4' +uses-permission: name='android.permission.READ_PHONE_STATE' +uses-implied-permission: name='android.permission.READ_PHONE_STATE' reason='targetSdkVersion < 4' +uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' +uses-implied-permission: name='android.permission.READ_EXTERNAL_STORAGE' reason='requested WRITE_EXTERNAL_STORAGE' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +other-receivers +supports-screens: 'normal' +supports-any-density: 'false' +locales: '--_--' +densities: '120' '160' '240' '320' diff --git a/tests/build-tools/28.0.3/aapt-output-com.politedroid_4.txt b/tests/build-tools/28.0.3/aapt-output-com.politedroid_4.txt new file mode 100644 index 0000000000..46c421767f --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-com.politedroid_4.txt @@ -0,0 +1,26 @@ +package: name='com.politedroid' versionCode='4' versionName='1.3' +sdkVersion:'3' +uses-permission: name='android.permission.READ_CALENDAR' +uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED' +application-label:'Polite Droid' +application-icon-120:'res/drawable-ldpi/icon.png' +application-icon-160:'res/drawable-mdpi/icon.png' +application-icon-240:'res/drawable-hdpi/icon.png' +application-icon-320:'res/drawable-xhdpi/icon.png' +application: label='Polite Droid' icon='res/drawable-mdpi/icon.png' +launchable-activity: name='com.politedroid.Preferences' label='Polite Droid' icon='' +uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' +uses-implied-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' reason='targetSdkVersion < 4' +uses-permission: name='android.permission.READ_PHONE_STATE' +uses-implied-permission: name='android.permission.READ_PHONE_STATE' reason='targetSdkVersion < 4' +uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' +uses-implied-permission: name='android.permission.READ_EXTERNAL_STORAGE' reason='requested WRITE_EXTERNAL_STORAGE' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +other-receivers +supports-screens: 'normal' +supports-any-density: 'false' +locales: '--_--' +densities: '120' '160' '240' '320' diff --git a/tests/build-tools/28.0.3/aapt-output-com.politedroid_5.txt b/tests/build-tools/28.0.3/aapt-output-com.politedroid_5.txt new file mode 100644 index 0000000000..12362fffbb --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-com.politedroid_5.txt @@ -0,0 +1,21 @@ +package: name='com.politedroid' versionCode='5' versionName='1.4' +sdkVersion:'3' +targetSdkVersion:'10' +uses-permission: name='android.permission.READ_CALENDAR' +uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED' +application-label:'Polite Droid' +application-icon-120:'res/drawable-ldpi/icon.png' +application-icon-160:'res/drawable-mdpi/icon.png' +application-icon-240:'res/drawable-hdpi/icon.png' +application-icon-320:'res/drawable-xhdpi/icon.png' +application: label='Polite Droid' icon='res/drawable-mdpi/icon.png' +launchable-activity: name='com.politedroid.Preferences' label='Polite Droid' icon='' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +other-receivers +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '120' '160' '240' '320' diff --git a/tests/build-tools/28.0.3/aapt-output-com.politedroid_6.txt b/tests/build-tools/28.0.3/aapt-output-com.politedroid_6.txt new file mode 100644 index 0000000000..3858b8a5cf --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-com.politedroid_6.txt @@ -0,0 +1,21 @@ +package: name='com.politedroid' versionCode='6' versionName='1.5' platformBuildVersionName='5.0.1-1624448' +sdkVersion:'14' +targetSdkVersion:'21' +uses-permission: name='android.permission.READ_CALENDAR' +uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED' +application-label:'Polite Droid' +application-icon-120:'res/drawable-ldpi-v4/icon.png' +application-icon-160:'res/drawable-mdpi-v4/icon.png' +application-icon-240:'res/drawable-hdpi-v4/icon.png' +application-icon-320:'res/drawable-xhdpi-v4/icon.png' +application: label='Polite Droid' icon='res/drawable-mdpi-v4/icon.png' +launchable-activity: name='com.politedroid.Preferences' label='Polite Droid' icon='' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +other-receivers +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '120' '160' '240' '320' diff --git a/tests/build-tools/28.0.3/aapt-output-duplicate.permisssions_9999999.txt b/tests/build-tools/28.0.3/aapt-output-duplicate.permisssions_9999999.txt new file mode 100644 index 0000000000..3694da6b21 --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-duplicate.permisssions_9999999.txt @@ -0,0 +1,30 @@ +package: name='duplicate.permisssions' versionCode='9999999' versionName='' platformBuildVersionName='6.0-2704002' +sdkVersion:'18' +targetSdkVersion:'27' +uses-permission: name='android.permission.INTERNET' +uses-permission: name='android.permission.ACCESS_NETWORK_STATE' +uses-permission: name='android.permission.ACCESS_WIFI_STATE' +uses-permission: name='android.permission.CHANGE_WIFI_MULTICAST_STATE' +uses-permission: name='android.permission.INTERNET' +uses-permission-sdk-23: name='android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS' maxSdkVersion='27' +uses-permission-sdk-23: name='android.permission.REQUEST_INSTALL_PACKAGES' +uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' maxSdkVersion='18' +application-label:'Duplicate Permisssions' +application-label-ar:'أذونات مكررة' +application-icon-160:'res/drawable/ic_launcher.png' +application: label='Duplicate Permisssions' icon='res/drawable/ic_launcher.png' banner='res/drawable/banner.png' +application-debuggable +launchable-activity: name='info.guardianproject.urzip.MainActivity' label='Duplicate Permisssions' icon='' +uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' maxSdkVersion='18' +uses-implied-permission: name='android.permission.READ_EXTERNAL_STORAGE' maxSdkVersion='18' reason='requested WRITE_EXTERNAL_STORAGE' +feature-group: label='' + uses-feature-not-required: name='android.hardware.touchscreen' + uses-feature-not-required: name='android.software.leanback' + uses-feature: name='android.hardware.wifi' + uses-implied-feature: name='android.hardware.wifi' reason='requested android.permission.ACCESS_WIFI_STATE permission, and requested android.permission.CHANGE_WIFI_MULTICAST_STATE permission' +main +other-activities +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' 'ar' +densities: '160' diff --git a/tests/build-tools/28.0.3/aapt-output-info.guardianproject.urzip_100.txt b/tests/build-tools/28.0.3/aapt-output-info.guardianproject.urzip_100.txt new file mode 100644 index 0000000000..ce154b5fda --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-info.guardianproject.urzip_100.txt @@ -0,0 +1,16 @@ +package: name='info.guardianproject.urzip' versionCode='100' versionName='0.1' platformBuildVersionName='4.3.1-1425645' +sdkVersion:'4' +targetSdkVersion:'18' +application-label:'urzip-πÇÇπÇÇ现代汉语通用字-български-عربي1234' +application-icon-160:'res/drawable/ic_launcher.png' +application: label='urzip-πÇÇπÇÇ现代汉语通用字-български-عربي1234' icon='res/drawable/ic_launcher.png' +launchable-activity: name='info.guardianproject.urzip.MainActivity' label='urzip-πÇÇπÇÇ现代汉语通用字-български-عربي1234' icon='' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +other-activities +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '160' diff --git a/tests/build-tools/28.0.3/aapt-output-info.zwanenburg.caffeinetile_4.txt b/tests/build-tools/28.0.3/aapt-output-info.zwanenburg.caffeinetile_4.txt new file mode 100644 index 0000000000..61f23e642f --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-info.zwanenburg.caffeinetile_4.txt @@ -0,0 +1,16 @@ +package: name='info.zwanenburg.caffeinetile' versionCode='4' versionName='1.3' platformBuildVersionName='7.1.1' +sdkVersion:'24' +targetSdkVersion:'25' +uses-permission: name='android.permission.WAKE_LOCK' +application-label:'Caffeine Tile' +application-icon-160:'res/drawable/ic_coffee_on.xml' +application: label='Caffeine Tile' icon='res/drawable/ic_coffee_on.xml' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +other-activities +other-services +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '160' diff --git a/tests/build-tools/28.0.3/aapt-output-no.min.target.sdk_987.txt b/tests/build-tools/28.0.3/aapt-output-no.min.target.sdk_987.txt new file mode 100644 index 0000000000..68bb1a55a8 --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-no.min.target.sdk_987.txt @@ -0,0 +1,20 @@ +package: name='no.min.target.sdk' versionCode='987' versionName='1.2-fake' platformBuildVersionName='6.0-2704002' +application-label:'No minSdkVersion or targetSdkVersion' +application-icon-160:'res/drawable/ic_launcher.png' +application: label='No minSdkVersion or targetSdkVersion' icon='res/drawable/ic_launcher.png' +launchable-activity: name='info.guardianproject.urzip.MainActivity' label='No minSdkVersion or targetSdkVersion' icon='' +uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' +uses-implied-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' reason='targetSdkVersion < 4' +uses-permission: name='android.permission.READ_PHONE_STATE' +uses-implied-permission: name='android.permission.READ_PHONE_STATE' reason='targetSdkVersion < 4' +uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' +uses-implied-permission: name='android.permission.READ_EXTERNAL_STORAGE' reason='requested WRITE_EXTERNAL_STORAGE' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +other-activities +supports-screens: 'normal' +supports-any-density: 'false' +locales: '--_--' +densities: '160' diff --git a/tests/build-tools/28.0.3/aapt-output-obb.main.oldversion_1444412523.txt b/tests/build-tools/28.0.3/aapt-output-obb.main.oldversion_1444412523.txt new file mode 100644 index 0000000000..384623f8bd --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-obb.main.oldversion_1444412523.txt @@ -0,0 +1,31 @@ +package: name='obb.main.oldversion' versionCode='1444412523' versionName='0.1' platformBuildVersionName='7.0.0' +sdkVersion:'4' +targetSdkVersion:'18' +uses-permission: name='android.permission.INTERNET' +uses-permission: name='android.permission.ACCESS_NETWORK_STATE' maxSdkVersion='22' +uses-permission: name='android.permission.ACCESS_WIFI_STATE' +uses-permission: name='android.permission.CHANGE_WIFI_MULTICAST_STATE' +uses-permission: name='android.permission.CHANGE_NETWORK_STATE' +uses-permission: name='android.permission.CHANGE_WIFI_STATE' +uses-permission: name='android.permission.BLUETOOTH' +uses-permission: name='android.permission.BLUETOOTH_ADMIN' maxSdkVersion='18' +uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED' +uses-permission-sdk-23: name='android.permission.WRITE_EXTERNAL_STORAGE' +uses-permission-sdk-23: name='android.permission.WRITE_SETTINGS' maxSdkVersion='25' +uses-permission: name='android.permission.NFC' +application-label:'OBB Main Old Version' +application-icon-160:'res/drawable/ic_launcher.png' +application: label='OBB Main Old Version' icon='res/drawable/ic_launcher.png' +launchable-activity: name='info.guardianproject.urzip.MainActivity' label='OBB Main Old Version' icon='' +feature-group: label='' + uses-feature-not-required: name='android.hardware.bluetooth' + uses-feature-not-required: name='android.hardware.nfc' + uses-feature-not-required: name='android.hardware.telephony' + uses-feature-not-required: name='android.hardware.touchscreen' + uses-feature-not-required: name='android.hardware.wifi' +main +other-activities +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '160' diff --git a/tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101613.txt b/tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101613.txt new file mode 100644 index 0000000000..5cdfc3c2a9 --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101613.txt @@ -0,0 +1,16 @@ +package: name='obb.main.twoversions' versionCode='1101613' versionName='0.1' platformBuildVersionName='4.3.1-1425645' +sdkVersion:'4' +targetSdkVersion:'18' +application-label:'OBB Main Two Versions' +application-icon-160:'res/drawable/ic_launcher.png' +application: label='OBB Main Two Versions' icon='res/drawable/ic_launcher.png' +launchable-activity: name='info.guardianproject.urzip.MainActivity' label='OBB Main Two Versions' icon='' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +other-activities +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '160' diff --git a/tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101615.txt b/tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101615.txt new file mode 100644 index 0000000000..bf80eed6c1 --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101615.txt @@ -0,0 +1,16 @@ +package: name='obb.main.twoversions' versionCode='1101615' versionName='0.1' platformBuildVersionName='4.3.1-1425645' +sdkVersion:'4' +targetSdkVersion:'18' +application-label:'OBB Main Two Versions' +application-icon-160:'res/drawable/ic_launcher.png' +application: label='OBB Main Two Versions' icon='res/drawable/ic_launcher.png' +launchable-activity: name='info.guardianproject.urzip.MainActivity' label='OBB Main Two Versions' icon='' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +other-activities +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '160' diff --git a/tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101617.txt b/tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101617.txt new file mode 100644 index 0000000000..93fc4a0c5e --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-obb.main.twoversions_1101617.txt @@ -0,0 +1,16 @@ +package: name='obb.main.twoversions' versionCode='1101617' versionName='0.1' platformBuildVersionName='4.3.1-1425645' +sdkVersion:'4' +targetSdkVersion:'18' +application-label:'OBB Main Two Versions' +application-icon-160:'res/drawable/ic_launcher.png' +application: label='OBB Main Two Versions' icon='res/drawable/ic_launcher.png' +launchable-activity: name='info.guardianproject.urzip.MainActivity' label='OBB Main Two Versions' icon='' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +other-activities +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '160' diff --git a/tests/build-tools/28.0.3/aapt-output-obb.mainpatch.current_1619.txt b/tests/build-tools/28.0.3/aapt-output-obb.mainpatch.current_1619.txt new file mode 100644 index 0000000000..a848e85b95 --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-obb.mainpatch.current_1619.txt @@ -0,0 +1,16 @@ +package: name='obb.mainpatch.current' versionCode='1619' versionName='0.1' platformBuildVersionName='4.3.1-1425645' +sdkVersion:'4' +targetSdkVersion:'18' +application-label:'urzip' +application-icon-160:'res/drawable/ic_launcher.png' +application: label='urzip' icon='res/drawable/ic_launcher.png' +launchable-activity: name='info.guardianproject.urzip.MainActivity' label='urzip' icon='' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' +main +other-activities +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '160' diff --git a/tests/build-tools/28.0.3/aapt-output-souch.smsbypass_9.txt b/tests/build-tools/28.0.3/aapt-output-souch.smsbypass_9.txt new file mode 100644 index 0000000000..c71e00e661 --- /dev/null +++ b/tests/build-tools/28.0.3/aapt-output-souch.smsbypass_9.txt @@ -0,0 +1,31 @@ +package: name='souch.smsbypass' versionCode='9' versionName='0.9' +install-location:'internalOnly' +sdkVersion:'8' +targetSdkVersion:'18' +uses-permission: name='android.permission.RECEIVE_SMS' +uses-permission: name='android.permission.SEND_SMS' +uses-permission: name='android.permission.READ_CONTACTS' +uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' +uses-permission: name='android.permission.VIBRATE' +application-label:'Battery level' +application-icon-160:'res/drawable-mdpi-v4/ic_launcher.png' +application-icon-213:'res/drawable-tvdpi-v4/ic_launcher.png' +application-icon-240:'res/drawable-hdpi-v4/ic_launcher.png' +application-icon-320:'res/drawable-xhdpi-v4/ic_launcher.png' +application-icon-480:'res/drawable-xxhdpi-v4/ic_launcher.png' +application: label='Battery level' icon='res/drawable-mdpi-v4/ic_launcher.png' +launchable-activity: name='souch.smsbypass.BatteryFacade' label='' icon='' +uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' +uses-implied-permission: name='android.permission.READ_EXTERNAL_STORAGE' reason='requested WRITE_EXTERNAL_STORAGE' +feature-group: label='' + uses-feature: name='android.hardware.faketouch' + uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' + uses-feature: name='android.hardware.telephony' + uses-implied-feature: name='android.hardware.telephony' reason='requested a telephony permission' +main +other-activities +other-receivers +supports-screens: 'small' 'normal' 'large' 'xlarge' +supports-any-density: 'true' +locales: '--_--' +densities: '160' '213' '240' '320' '480' diff --git a/tests/repo/com.example.test.helloworld_1.apk b/tests/repo/com.example.test.helloworld_1.apk new file mode 100644 index 0000000000000000000000000000000000000000..1860398c788830e30b14c1027772ddd4233128f8 GIT binary patch literal 14236 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