工具

axmlprinter Android 二进制 XML 解析器

用于解析 Android 二进制 XML(例如 APK 中编译后的 AndroidManifest.xml)并输出为可读 XML 的 Java 库和命令行工具。它是 Red Naga 对 Android4ME AXMLPrinter 几乎全部重写的版本,能够处理实际样本中被篡改的文件,包括字符串表乱序和起始标签被改写等情况,并可重新写出传统 AXML 格式。自 v2.0.0 起,它还能读取 Android App Bundle 使用的 protobuf 格式 XML,并自动识别输入格式。

目标
应用
类别
Android 工具
关联
基础工具
来源复核于

使用条件与局限

  • 最新发布版本 v2.0.1 于 2026-03-25 发布并附预编译 jar,其标签正对应所审阅的 master 分支提交 5a8d3e5。2026-01-16 发布的 v2.0.0 通过外部贡献的拉取请求加入了只读的 protobuf 支持;不支持在 AXML 与 protobuf 之间转换。
  • 用 Gradle wrapper(./gradlew jar)构建为自包含 jar,以 java -jar axmlprinter-*.jar 加二进制 XML 文件运行,可选的输出路径只适用于 AXML。CI 在 JDK 17 上构建和测试,JitPack 也使用 OpenJDK 17;依赖 protobuf-java 4.34.1,并收录 AOSP 采用 Apache-2.0 的 aapt2 Resources.proto。框架资源 ID 只能解析常见的 Android 资源。
  • 输入是分析者已从 APK 或 App Bundle 中取出的单个编译后 XML 文件,而非安装包本身。测试附带名为 large_from_malware.xml 和 qihoo_jiagu_issue8.xml 的二进制清单文件,后者来自一个关于清单无法解析的问题报告,另有较小的 test.xml。
  • 采用 Apache-2.0 许可,同时署名 Android4ME 2008 年的代码与 Red Naga。未提及使用 REA,本次审阅未解码任何文件。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · rednaga/axmlprinter · 修订 5a8d3e5
  2. build.gradle GitHub · rednaga/axmlprinter · 修订 5a8d3e5
  3. .github/workflows/gradle.yml GitHub · rednaga/axmlprinter · 修订 5a8d3e5
  4. src/test/resources GitHub · rednaga/axmlprinter · 修订 5a8d3e5
  5. src/main/proto/Resources.proto GitHub · rednaga/axmlprinter · 修订 5a8d3e5
  6. LICENSE GitHub · rednaga/axmlprinter · 修订 5a8d3e5
  7. https://github.com/rednaga/axmlprinter/releases/tag/v2.0.1
  8. https://github.com/rednaga/axmlprinter/pull/13
  9. https://github.com/rednaga/axmlprinter/issues/8

同分区更多条目:应用

应用分区全部 136 项资源