Кодировать/Декодировать AndroidManifest.XML внутри АПК

Я использую ApkTool раскодировать AndroidManifest.xml внутри файла APK, и он работает отлично, но как я могу кодировать его снова, так же, как он был закодирован раньше, после применения некоторых изменений? Например (в моем случае) изменение метки приложения.

2 ответов


вы можете снова использовать apktool для создания нового файла APK, включая измененный AndroidManifest.xml.

во-первых, декомпилировать файл APK:

java -jar apktool.jar decode app.apk app

затем измените файлы, которые вы хотите в app каталог и перекомпилировать его обратно в новый APK:

java -jar apktool.jar build app app_new.apk

aapt должны PATH или использовать --aapt опция для указания местоположения исполняемого файла. В противном случае apktool потерпит неудачу при восстановлении APK.

Примечание: в перестроенный APK не подписан ни zipaligned, только в новой упаковке. Взгляните на этот сайт подробнее о подписании и выравнивании вашего нового APK.


Use appt for android-sdk (ex:- /build-tools/27.0.3/aapt )

./aapt d xmltree ./debug.apk  AndroidManifest.xml

N: android=http://schemas.android.com/apk/res/android
  E: manifest (line=1)
    A: android:versionCode(0x0101021b)=(type 0x10)0x1
    A: android:versionName(0x0101021c)="1.0" (Raw: "1.0")
    A: package="com.example.activity" (Raw: "com.example.activity")
    E: uses-sdk (line=6)
      A: android:minSdkVersion(0x0101020c)=(type 0x10)0x8
      A: android:targetSdkVersion(0x01010270)=(type 0x10)0xf
    E: application (line=8)
      A: android:label(0x01010001)=@0x7f030000
      A: android:icon(0x01010002)=@0x7f020000
      E: activity (line=10)
        A: android:label(0x01010001)=@0x7f030000
        A: android:name(0x01010003)=".SampleActivity" (Raw: ".SampleActivity")
        E: intent-filter (line=12)
          E: action (line=13)
            A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
          E: category (line=14)
            A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")

эта ссылка может помочь http://elinux.org/Android_aapt

еще один инструмент для "AXMLPrinter" Google source link https://code.google.com/archive/p/android4me/downloads

java-jar ./ AXMLPrinter2.сосуд./отлаживать.apk_FILES / AndroidManifest.в XML