有没有办法提取apk文件的启动器图标,即使它是自适应图标(矢量可绘制)? 我找不到单个批处理或 python 脚本来实现此目的。
有很多使用 aapt 的脚本,但它们都只适用于 png 文件。
注意:我不想在 Android 设备本身上运行它。
我找到了一种使用 aapt 甚至从混淆的 apk 中获取位图的方法(其中所有重命名的图像都位于根“res”文件夹中):
aapt 转储徽章 [apk] | grep“应用程序:”
application: label='Total Commander' icon='res/2r.xml' banner='res/BO.png'
如果是xml,那么我们需要更深入。
aapt dump --values 资源 [apk] | grep“res/2r.xml”-B1
resource 0x7f0b0000 com.ghisler.android.TotalCommander:mipmap/icon: t=0x03 d=0x00000322 (s=0x0008 r=0x00)
(string8) "res/2r.xml"
因此,资源 ID 为 0x7f0b0000。
aapt dump --values 资源 [apk] | grep "0x7f0b0000" -A1
spec resource 0x7f0b0000 com.ghisler.android.TotalCommander:mipmap/icon: flags=0x00000500
spec resource 0x7f0b0001 com.ghisler.android.TotalCommander:mipmap/icon_launcher_foreground: flags=0x00000500
--
resource 0x7f0b0000 com.ghisler.android.TotalCommander:mipmap/icon: t=0x03 d=0x00000169 (s=0x0008 r=0x00)
(string8) "res/vI.png"
--
resource 0x7f0b0000 com.ghisler.android.TotalCommander:mipmap/icon: t=0x03 d=0x00000196 (s=0x0008 r=0x00)
(string8) "res/0n.png"
--
resource 0x7f0b0000 com.ghisler.android.TotalCommander:mipmap/icon: t=0x03 d=0x00000230 (s=0x0008 r=0x00)
(string8) "res/cH.png"
--
resource 0x7f0b0000 com.ghisler.android.TotalCommander:mipmap/icon: t=0x03 d=0x00000260 (s=0x0008 r=0x00)
(string8) "res/_J.png"
--
resource 0x7f0b0000 com.ghisler.android.TotalCommander:mipmap/icon: t=0x03 d=0x0000027a (s=0x0008 r=0x00)
(string8) "res/PN.png"
--
resource 0x7f0b0000 com.ghisler.android.TotalCommander:mipmap/icon: t=0x03 d=0x000002cb (s=0x0008 r=0x00)
(string8) "res/41.png"
--
resource 0x7f0b0000 com.ghisler.android.TotalCommander:mipmap/icon: t=0x03 d=0x000002fd (s=0x0008 r=0x00)
(string8) "res/S2.png"
--
resource 0x7f0b0000 com.ghisler.android.TotalCommander:mipmap/icon: t=0x03 d=0x00000322 (s=0x0008 r=0x00)
(string8) "res/2r.xml"