我正在使用ApkTool在 APK 文件中进行解码AndroidManifest.xml
,它可以完美运行,但是在应用一些更改之后,如何再次对其进行编码,就像之前的编码方式一样?例如(在我的情况下)更改应用程序标签。
问问题
45790 次
2 回答
36
您可以再次使用 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
选项来指定可执行文件的位置。否则在重建 APK 时 apktool 将失败。
注意:重建的 APK 既没有签名也没有zipaligned,只是重新打包。查看此网站,了解有关签署和调整新 APK 的详细信息。
于 2013-06-17T19:42:16.827 回答
3
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”谷歌源链接的另一个工具https://code.google.com/archive/p/android4me/downloads
java -jar ./AXMLPrinter2.jar ./debug.apk_FILES/AndroidManifest.xml
于 2018-09-08T02:34:22.043 回答