工具
ARSCLib Android 二进制资源读写库
参照 AOSP androidfw 中 ResourceTypes.h 的结构开发、旨在取代 aapt/aapt2 的 Java 库,可读取、写入、修改和创建 Android 资源表(resources.arsc)以及 AndroidManifest.xml 等二进制 XML 文件。它能将资源解码为可读的 JSON(也适用于名称已混淆的资源),或在名称完好时解码为 XML 源码,并把这两种形式重新构建为二进制资源;APK 模块类可解码、合并并写出整个安装包。库中另有实验性的 DEX 读写组件,命令行工具 APKEditor 即基于该库开发。
使用条件与局限
- 审阅时最新版本为 V1.4.0,发布于 2026-07-01,附带 ARSCLib-1.4.0.jar;Maven Central 上的 io.github.reandroid:ARSCLib 也是该版本。所审阅的 main 提交日期为 2026-10-19,比该版本多 34 个提交,build.gradle 已将版本设为 1.4.1,且该提交被标为库核心重构的第一部分,因此其 API 可能与发布版不同。
- 纯 Java 实现,没有运行时依赖(测试使用 JUnit 4.12);Gradle 构建以 Java 8 为目标,./gradlew jar 生成 JAR,CI 在 JDK 8 上运行单元测试并构建 JAR。README 称其可在 Android、Linux、macOS 和 Windows 等 Java 平台上运行。它以 Maven 依赖或 JAR 的形式使用,并非独立的命令行工具;README 指向 APKEditor 作为命令行用法。
- 处理对象为使用者提供的 APK 与资源文件。README 指出,解码为 XML 需要资源名称未经混淆且合法,因此混淆过的资源表应改为解码成 JSON;构建时的校验也远少于 aapt/aapt2,使用者需自行了解 Android 接受哪些取值。dex 组件的 README 称其仍属实验性质,尚未完整实现。
- src/main/resources/frameworks 附带 API 级别 23 至 37 的 Android 框架资源表,每个都是只含 resources.arsc 和 AndroidManifest.xml 的小型 APK,用于解析对框架资源的引用;加入 API 37 的提交注明其来源为 Google 的 platform-37.2-beta3 SDK 包。测试中另有一个小型 type_id_offset.apk 夹具。
- 采用 Apache-2.0 许可。所审来源未提及 REA 的使用,本收录未构建该库,也未处理任何 APK。
关于此条目
- 类型
- 工具
- 类别
- Android 工具
- 关联
- 基础工具
- 目标
- 应用
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · REAndroid/ARSCLib · 修订 bd7221b
- build.gradle GitHub · REAndroid/ARSCLib · 修订 bd7221b
- .github/workflows/gradle-test.yml GitHub · REAndroid/ARSCLib · 修订 bd7221b
- src/main/java/com/reandroid/dex/README.md GitHub · REAndroid/ARSCLib · 修订 bd7221b
- src/main/java/com/reandroid/apk GitHub · REAndroid/ARSCLib · 修订 bd7221b
- src/main/resources/frameworks/android GitHub · REAndroid/ARSCLib · 修订 bd7221b
- https://github.com/REAndroid/ARSCLib/commit/f08adf80672cb7e1a4d1a786e861327fcd3934c5
- LICENSE GitHub · REAndroid/ARSCLib · 修订 bd7221b
- https://github.com/REAndroid/ARSCLib/releases/tag/V1.4.0
- https://repo1.maven.org/maven2/io/github/reandroid/ARSCLib/maven-metadata.xml
- README.md GitHub · REAndroid/APKEditor · 修订 5621fe6