Android 如何使用APKTool增加versionCode?

Android 如何使用APKTool增加versionCode?,android,reverse-engineering,apktool,Android,Reverse Engineering,Apktool,我需要在签名的APK文件中增加versionCode 我谨此陈辞: apktool d myapk.apk 打开apktool.yml,递增版本代码并保存 apktool b jarsigner和zipalign Apk在手机上运行良好,但versionCode尚未更改。 下面是apktool.yml: version: 2.0.0 apkFileName: iVet.apk isFrameworkApk: false usesFramework: ids: - 1 sdkInfo:

我需要在签名的APK文件中增加
versionCode

我谨此陈辞:

  • apktool d myapk.apk

  • 打开apktool.yml,递增版本代码并保存

  • apktool b

  • jarsigner
    zipalign

  • Apk在手机上运行良好,但
    versionCode
    尚未更改。 下面是apktool.yml:

    version: 2.0.0
    apkFileName: iVet.apk
    isFrameworkApk: false
    usesFramework:
      ids:
      - 1
    sdkInfo:
      minSdkVersion: '16'
      targetSdkVersion: '21'
    packageInfo:
      forced-package-id: '127'
    versionInfo:
      versionCode: '3'
      versionName: '1.1'
    compressionType: false
    sharedLibrary: false
    unknownFiles:
      VERSION: '8'
    
    <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">
    
    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]
    

    警告:您所做的操作将使签名无效。您必须在安装之后放弃它,而且它看起来不像是最初的开发人员制作的。除了利用漏洞,这是没办法的

    您只需将
    versionCode
    放在
    AndroidManifest.xml
    中,它将覆盖
    apktool.yml
    中提供给
    aapt
    的参数,并发出警告。我自己刚刚证实了这一点

    对AndroidManifest.xml的更改示例:

    version: 2.0.0
    apkFileName: iVet.apk
    isFrameworkApk: false
    usesFramework:
      ids:
      - 1
    sdkInfo:
      minSdkVersion: '16'
      targetSdkVersion: '21'
    packageInfo:
      forced-package-id: '127'
    versionInfo:
      versionCode: '3'
      versionName: '1.1'
    compressionType: false
    sharedLibrary: false
    unknownFiles:
      VERSION: '8'
    
    <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">
    
    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
    中提取的:


    由于某些原因,它们不包括在解码的
    属性中。这可能是一个bug。

    您是否尝试改为修改AndroidManifest.xml?@Michael nope,AndroidManifest包含名为platformBuildVersionCode的奇怪值,该值不是我需要递增的“2”