Python如何提取APK图标
程序员文章站
2022-08-31 19:26:55
有个需求,需要提取1000个APK的图标,最开始的想法通过Apktools对APK进行解压,再获取图标,由于Apktools解压APK比较耗时,这个办法就被弃用。通过分析找到一个快...
有个需求,需要提取1000个APK的图标,最开始的想法通过Apktools对APK进行解压,再获取图标,由于Apktools解压APK比较耗时,这个办法就被弃用。通过分析找到一个快的方法,步骤如下(window系统):
1、通过aapt工具,提取图标在APK中路径**
aapt工具在android_sdk的build-tools\27.0.2目录
然后随便找一个APK命令为test.apk,执行aapt dump badging test.apk命令,会发现输出有一部分内容如下:
接下来通过findstr命令提取application-icon-120这一行,图标的路径为r/a6/icon.png
2、通过Python zipfile提取图标
步骤1已经获取了图标在APK中的路径,通过Python的zipfile库,将APK的图标保存到本地。
代码实现
将aapt.exe拷贝到H:\Python\temp\目录
#coding=utf-8 import os import zipfile def parse_icon(filePath): cmd = "H:\\Python\\temp\\aapt.exe dump badging %s | findstr application-icon-120" % filePath output = os.popen(cmd).read() print output iconPath = output[22:len(output) - 2] print iconPath zip = zipfile.ZipFile(filePath) iconData = zip.read(iconPath) saveIconName = "H:\\Python\\temp\\icon.png"; with open(saveIconName,'w+b') as saveIconFile: saveIconFile.write(iconData) parse_icon("H:\\Python\\appstore\\test.apk")
执行完就会发现,在H:\Python\temp\目录下生成了图标文件icon.png
上一篇: php高级教程