警告:您所做的将使签名无效。之后你必须辞职才能安装它,而且它看起来不像原来的开发者所做的那样。没有办法解决这个问题,除了漏洞利用。
你可以把它放进去versionCode
,它会用警告AndroidManifest.xml
覆盖给aapt
from的参数。apktool.yml
我自己也证实了这一点。
示例更改为AndroidManifest.xml
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.example.someApp" android:versionCode="12345" android:versionName="1.2.3.4.5">
设置版本信息:https ://developer.android.com/tools/publishing/versioning.html#appversioning
如果你改变了aapt
命令会是什么样子apktool.yml
:
Aug 11, 2015 12:56:52 PM brut.androlib.res.AndrolibResources aaptPackage
INFO: [/var/folders/5m/jph9d7q573b5yl5ybnhhx4000000gn/T/brut_util_Jar_5616282982200298928.tmp, p, -v, --forced-package-id, 127, --min-sdk-version, 5, --version-code, 12345, --version-name, 1.2.3.4.5, -F, /Users/caleb/example/someApp.apk, -0, arsc, -A, /Users/caleb/example/./assets, /Users/caleb/example/./build/apk]
很明显,其中的值apktool.yml
来自AndroidManifest.xml
:
https ://github.com/iBotPeaches/Apktool/blob/0370416d9029d01f210556ab3662e3fa0f80c239/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/XmlPullStreamDecoder.java #L96
由于某种原因,它们不包含在解码<manifest>
属性中。这可能是一个错误。