[Android Software Development] oF2pks:
[MENTION=3924617]iBotPeaches[/MENTION] , while debugging my android/apk

androidManifest.xml

explorer, I noticed coincidental bug/misses with Apktool on few apps, for <manifest tag/header> only: xda/BBS, Webview or (fdroid open source) BackgroundRestrictor.

versionCode

versionName

<uses-sdk minSdkVersion ... targetSdkVersion

com.pavelsikun.runinbackgroundpermissionsetter
<manifest
[B]versionCode="8"
versionName="1.5.0"[/B]
package="com.pavelsikun.runinbackgroundpermissionsetter">
[B] <uses-sdk
minSdkVersion="24"
targetSdkVersion="26">
</uses-sdk>[/B]
<application
theme="style/AppTheme"
label="BackgroundRestrictor"
icon="res/mipmap-anydpi-v26/ic_launcher.xml"
allowBackup="true"
supportsRtl="true">
<activity
name="com.pavelsikun.runinbackgroundpermissionsetter.MainActivity">
<intent-filter>
<action
name="android.intent.action.MAIN">
</action>
<category
name="android.intent.category.LAUNCHER">
</category>
</intent-filter>
</activity>
<meta-data
name="android.support.VERSION"
value="26.1.0">
</meta-data>
<meta-data
name="android.arch.lifecycle.VERSION"
value="27.0.0-SNAPSHOT">
</meta-data>
</application>
</manifest>

Since both seem to use similar old [Dmitry Skiba/Binary xml files parser], I thought the working patch (for my app) could be somehow useful to you :

https://bitbucket.org/oF2pks/fdroid...mits/7c3203a112703c9a1538116373893fa92cae3bab

prim-origin: https://github.com/WindySha/Xpatch/commit/a5680fd61ce8574b63c9adc75aa560fc28ee534f

I also couldn't access to tricky/buggy (missing decoded descriptions) androidManifest.xml for TitaniumBackup & TBpro, so I dubbed the static parser on zip/compiled manifest, with a regular dynamic android parser createPackageContext().getAssets.openXmlResourceParser("AndroidManifest.xml").

app_PackagesInfo-debug15.apk is attached to https://xdaforums.com/android/software-hacking/dexdump-xodus-trackers-apk-static-t3833391 :

- longclick on app brings dynamic parser (with better understanding of references),

- 2ndScreenDetails has menu /viewManifestFile for zip/static.

com.keramidas.TitaniumBackup
<manifest
[B]versionCode="414"
CDATA101021c="8.3.3"[/B]
installLocation="0"
package="com.keramidas.TitaniumBackup"
platformBuildVersionCode="26"
platformBuildVersionName="8.0.0">
[B] <uses-sdk
CDATA101020c="3"
CDATA1010270="26">
</uses-sdk>[/B]
<supports-screens
CDATA101026c="true"
CDATA1010284="true"
CDATA1010285="true"
CDATA1010286="true"
CDATA10102bf="true">
</supports-screens>
<uses-permission
CDATA1010003="android.permission.READ_EXTERNAL_STORAGE">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.READ_MEDIA_STORAGE">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.WRITE_MEDIA_STORAGE">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.WAKE_LOCK">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.INTERNET">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.RECEIVE_BOOT_COMPLETED">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.VIBRATE">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.READ_PHONE_STATE">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.GET_ACCOUNTS">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.USE_CREDENTIALS">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.ACCESS_NETWORK_STATE">
</uses-permission>
<uses-permission
CDATA1010003="com.android.browser.permission.READ_HISTORY_BOOKMARKS">
</uses-permission>
<uses-permission
CDATA1010003="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.READ_CONTACTS">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.WRITE_CONTACTS">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.ACCESS_WIFI_STATE">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.CHANGE_WIFI_STATE">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.ACCESS_SUPERUSER">
</uses-permission>
<uses-permission
CDATA1010003="android.permission.REQUEST_INSTALL_PACKAGES">
</uses-permission>
<uses-permission
CDATA1010003="com.keramidas.TitaniumBackupAddon.USE_CP">
</uses-permission>
<uses-permission
CDATA1010003="com.android.voicemail.permission.ADD_VOICEMAIL">
</uses-permission>
<uses-permission
CDATA1010003="com.android.voicemail.permission.READ_WRITE_ALL_VOICEMAIL">
</uses-permission>
<uses-feature
CDATA1010003="android.hardware.touchscreen"
CDATA101028e="false">
</uses-feature>
<uses-feature
CDATA1010003="android.hardware.telephony"
CDATA101028e="false">
</uses-feature>
<uses-feature
CDATA1010003="android.hardware.wifi"
CDATA101028e="false">
</uses-feature>
<application
CDATA1010000="@2131230727"
CDATA1010001="Titanium Backup"
CDATA1010002="be.png"
CDATA1010003="o.ᐴ"
CDATA10102d3="true">
<activity
CDATA1010001="Titanium Backup"
CDATA1010003=".MainActivity"
CDATA101001d="2"
CDATA101001f="0xcb0">
<intent-filter>
<action
name="android.intent.action.MAIN">
</action>
<category
name="android.intent.category.LAUNCHER">
</category>
<category
name="android.intent.category.MULTIWINDOW_LAUNCHER">
</category>
</intent-filter>
</activity>
<activity
CDATA1010001="Preferences"
CDATA1010003="o.ｓ">
</activity>
<activity
CDATA1010001="Batch actions"
CDATA1010003="o.ｃ"
CDATA101001f="0xcb0">
</activity>
<activity
CDATA1010001="Journal Viewer"
CDATA1010003="o.ӵ">
</activity>
<activity
CDATA1010003="o.ᒬ">
</activity>
<activity
CDATA1010003="o.Ⅱ">
</activity>
<activity
CDATA1010003=".MyWidgetConfigure">
<intent-filter>
<action
name="android.appwidget.action.APPWIDGET_CONFIGURE">
</action>
</intent-filter>
</activity>
<activity
CDATA1010003=".MyDataProfileWidgetConfigure">
<intent-filter>
<action
name="android.appwidget.action.APPWIDGET_CONFIGURE">
</action>
</intent-filter>
</activity>
<activity
CDATA1010000="@2131230725"
CDATA1010003="o.ث"
CDATA1010017="true"
CDATA101001d="3"
CDATA101022d="true">
</activity>
<activity
CDATA1010003="o.ｎ"
CDATA101022d="true">
</activity>
<activity
CDATA1010001="Select data profile"
CDATA1010003="o.ḟ"
CDATA1010017="true"
CDATA101001d="3"
CDATA101022d="true">
</activity>
<activity
CDATA1010003="o.df"
CDATA101001f="0xcb0"
CDATA101022d="true">
</activity>
<activity
CDATA1010001="Recovery-mode "update.zip" creator"
CDATA1010003="o.ѵ"
CDATA101001f="0xcb0">
</activity>
<activity
CDATA1010001="Enter passphrase"
CDATA1010003="o.bd"
CDATA1010017="true"
CDATA101001d="3"
CDATA101022d="true">
</activity>
<activity
CDATA1010001="View ChangeLog"
CDATA1010003="o.Ӵ"
CDATA101022d="true">
</activity>
<activity
CDATA1010001="Market Auto Updates Manager"
CDATA1010003="o.ᒎ"
CDATA101001f="0xcb0">
</activity>
<activity
CDATA1010001="Extract from Nandroid backup ..."
CDATA1010003="o.々"
CDATA101001f="0xcb0">
</activity>
<activity
CDATA1010001="Extract from ADB backup ..."
CDATA1010003="o.ᔹ"
CDATA101001f="0xcb0">
</activity>
<activity
CDATA1010001="Manage TB Web server"
CDATA1010003="o.cd"
CDATA101001d="3"
CDATA101001f="0xcb0">
</activity>
<activity
CDATA1010000="@2131230725"
CDATA1010001="Import backup"
CDATA1010003=".ImportBackupActivity">
<intent-filter>
<action
name="android.intent.action.VIEW">
</action>
<category
name="android.intent.category.DEFAULT">
</category>
<category
name="android.intent.category.BROWSABLE">
</category>
<data
CDATA1010026="application/vnd.titaniumbackup.archive">
</data>
</intent-filter>
<intent-filter>
<action
name="android.intent.action.VIEW">
</action>
<category
name="android.intent.category.DEFAULT">
</category>
<category
name="android.intent.category.BROWSABLE">
</category>
<data
CDATA1010026="*/*"
CDATA1010027="file"
CDATA1010028="*">
</data>
<data
CDATA101002c=".*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\..*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\..*\..*\..*\..*\..*\.TiBkp">
</data>
</intent-filter>
<intent-filter>
<action
name="android.intent.action.VIEW">
</action>
<category
name="android.intent.category.DEFAULT">
</category>
<category
name="android.intent.category.BROWSABLE">
</category>
<data
CDATA1010027="http"
CDATA1010028="*">
</data>
<data
CDATA1010027="https"
CDATA1010028="*">
</data>
<data
CDATA101002c=".*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\..*\..*\..*\..*\.TiBkp">
</data>
<data
CDATA101002c=".*\..*\..*\..*\..*\..*\..*\..*\..*\..*\.TiBkp">
</data>
</intent-filter>
</activity>
<activity
CDATA1010000="@16973835"
CDATA1010003="o.eW"
CDATA101001f="0xcb0">
</activity>
<activity
CDATA1010003=".cloud.OAuth2ResponseHandler"
CDATA101001d="2"
CDATA101001f="0xcb0">
<intent-filter>
<data
CDATA1010027="com.keramidas.titaniumbackup">
</data>
<action
name="android.intent.action.VIEW">
</action>
<category
name="android.intent.category.BROWSABLE">
</category>
<category
name="android.intent.category.DEFAULT">
</category>
</intent-filter>
</activity>
<activity
CDATA1010003="com.dropbox.core.android.AuthActivity"
CDATA101001d="2"
CDATA101001f="0xcb0">
<intent-filter>
<data
CDATA1010027="db-pflv2wm5i1gixnb">
</data>
<action
name="android.intent.action.VIEW">
</action>
<category
name="android.intent.category.BROWSABLE">
</category>
<category
name="android.intent.category.DEFAULT">
</category>
</intent-filter>
</activity>
<activity
CDATA1010003="o.ﹶ">
</activity>
<receiver
CDATA1010001="Titanium Backup (Actions)"
CDATA1010003=".MyWidget">
<intent-filter>
<action
name="android.appwidget.action.APPWIDGET_UPDATE">
</action>
</intent-filter>
<meta-data
CDATA1010003="android.appwidget.provider"
CDATA1010025="h.xml">
</meta-data>
</receiver>
<receiver
CDATA1010001="Titanium Backup (Data Profiles)"
CDATA1010003=".MyDataProfileWidget">
<intent-filter>
<action
name="android.appwidget.action.APPWIDGET_UPDATE">
</action>
</intent-filter>
<meta-data
CDATA1010003="android.appwidget.provider"
CDATA1010025="i.xml">
</meta-data>
</receiver>
<receiver
CDATA1010003=".schedules.BootReceiver">
<intent-filter>
<action
name="android.intent.action.BOOT_COMPLETED">
</action>
<action
name="android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE">
</action>
<action
name="android.intent.action.EXTERNAL_APPLICATIONS_UNAVAILABLE">
</action>
</intent-filter>
<intent-filter>
<action
name="android.intent.action.PACKAGE_REPLACED">
</action>
<data
CDATA1010027="package"
CDATA101002a="com.keramidas.TitaniumBackup">
</data>
</intent-filter>
</receiver>
<receiver
CDATA1010003=".PackageEventsReceiver">
<intent-filter>
<action
name="android.intent.action.PACKAGE_ADDED">
</action>
<action
name="android.intent.action.PACKAGE_REMOVED">
</action>
<action
name="android.intent.action.PACKAGE_CHANGED">
</action>
<data
CDATA1010027="package">
</data>
</intent-filter>
</receiver>
<receiver
CDATA1010003="o.dq"
CDATA1010010="false">
<intent-filter>
<action
name="com.keramidas.intent.action.SCHEDULE_NEXT_WAKE_UP">
</action>
</intent-filter>
</receiver>
<service
CDATA1010003="o.dC">
</service>
<service
CDATA1010003="o.dn">
</service>
<service
CDATA1010003="o.ca">
</service>
<uses-library
CDATA101028e="false"
name="com.sec.android.app.multiwindow">
</uses-library>
<meta-data
CDATA1010003="com.sec.android.support.multiwindow"
CDATA1010024="true">
</meta-data>
<meta-data
CDATA1010003="android.max_aspect"
CDATA1010024="4.0">
</meta-data>
</application>
</manifest>

https://bitbucket.org/oF2pks/fdroid...android/activities/View2ManifestActivity.java

prim-origin: https://github.com/iSECPartners/man...src/com/isecpartners/android/manifestexplorer