我需要在APK文件中提取应用程序图标。我正在使用aapt来了解APK文件中的图标位置。我正在运行aapt dump badgeging com.example.app.apk:此命令返回我:
(...)
application-icon-120:'res/drawable-anydpi-v26/ic_launcher.xml'
application-icon-160:'res/drawable-anydpi-v26/ic_launcher.xml'
application-icon-240:'res/drawable-anydpi-v26/ic_launcher.xml'
application-icon-320:'res/drawable-anydpi-v26/ic_launcher.xml'
application-icon-480:'res/drawable-anydpi-v26/ic_launcher.xml'
application-icon-640:'res/drawable-anydpi-v26/ic_launcher.xml'
application-icon-65534:'res/drawable-anydpi-v26/ic_launcher.xml'
(...)
但正如你所看到的,它向我返回了一个XML文件的位置,该文件以某种方式被加密。我知道这个XML文件有PNG文件图标的真实路径,但我不知道如何获得该真实路径(或者如何解密XML然后解析它)。
有没有办法获取APK文件中应用程序图标的真实路径,XML指向其他位置?
谢谢!
看看这个项目,
https://github.com/iBotPeaches/Apktool
它可用于取消归档 APK,包括资产。
apktool d <your>.apk
尝试使用7-zip提取您的apk文件,您将获得res foulder
使用apk在文件夹中运行此小脚本,它将为您提取图标。
#!/bin/bash
APK_FILE="$(find . -name *.apk)"
eval ICON_PATH="$(aapt d --values badging "${APK_FILE}" | grep "application:" | awk -F "icon=" '{print $2}')"
unzip -j "$APK_FILE" $ICON_PATH