AndroidManifest.xml 是 APK 里的清单文件,用来声明包名、权限、四大组件和应用级配置。静态分析的第一个落点基本都在这里,因为这个文件在,它就能告诉你这个应用大概有哪些入口。
用法简单:APK 就是个 zip,先确认清单在里面;但它在包内是编译后的二进制 AXML,用文本编辑器打开只会看到乱码,得用工具转回可读格式。要快速浏览,就用 aapt 直接输出节点树;要拿到能改的明文 XML,就用 apktool 解包。
# 1. 确认 APK 里存在清单文件
unzip -l app.apk | grep AndroidManifest
# 2. 直接把二进制清单打印成可读的节点树
aapt dump xmltree app.apk AndroidManifest.xml
# 3. 解包成明文 XML,输出到 app_out 目录
apktool d app.apk -o app_out
cat app_out/AndroidManifest.xml
第一个坑:拿文本编辑器点开 APK 内部的 AndroidManifest.xml,得到一堆乱码就以为文件坏了,其实它是 AXML 二进制格式,必须先用工具反编译再查看。
第二个坑:aapt dump 输出的是缩进节点树,不是标准 XML,不要直接拿去做 XML 解析或当成配置文件去编辑。如果需要明文 XML,就用 apktool 解包后的结果。另外,执行 aapt 需要确认环境里已经配好 Android SDK 的相关路径,否则会提示找不到命令。