{
  "added_at": "2026-11-02",
  "additional_evidence_urls": [
    "https://github.com/REAndroid/ARSCLib/blob/bd7221b43bc63544e712f3114dac635aa5142519/build.gradle",
    "https://github.com/REAndroid/ARSCLib/blob/bd7221b43bc63544e712f3114dac635aa5142519/.github/workflows/gradle-test.yml",
    "https://github.com/REAndroid/ARSCLib/blob/bd7221b43bc63544e712f3114dac635aa5142519/src/main/java/com/reandroid/dex/README.md",
    "https://github.com/REAndroid/ARSCLib/tree/bd7221b43bc63544e712f3114dac635aa5142519/src/main/java/com/reandroid/apk",
    "https://github.com/REAndroid/ARSCLib/tree/bd7221b43bc63544e712f3114dac635aa5142519/src/main/resources/frameworks/android",
    "https://github.com/REAndroid/ARSCLib/commit/f08adf80672cb7e1a4d1a786e861327fcd3934c5",
    "https://github.com/REAndroid/ARSCLib/blob/bd7221b43bc63544e712f3114dac635aa5142519/LICENSE",
    "https://github.com/REAndroid/ARSCLib/releases/tag/V1.4.0",
    "https://repo1.maven.org/maven2/io/github/reandroid/ARSCLib/maven-metadata.xml",
    "https://github.com/REAndroid/APKEditor/blob/5621fe6750b828ce0bfd99ec7f42ee8b5fe75497/README.md"
  ],
  "category": "android",
  "description_en": "Java library, modeled on AOSP's androidfw ResourceTypes.h and meant to replace aapt/aapt2, that reads, writes, modifies and creates Android resource tables (resources.arsc) and binary XML files such as AndroidManifest.xml. It decodes resources to readable JSON, which also handles obfuscated names, or to XML source when names are intact, and builds either form back into binary resources; APK module classes decode, merge and write whole packages. It also has an experimental DEX read/write package, and the APKEditor command-line tool is built on it.",
  "description_zh": "参照 AOSP androidfw 中 ResourceTypes.h 的结构开发、旨在取代 aapt/aapt2 的 Java 库，可读取、写入、修改和创建 Android 资源表（resources.arsc）以及 AndroidManifest.xml 等二进制 XML 文件。它能将资源解码为可读的 JSON（也适用于名称已混淆的资源），或在名称完好时解码为 XML 源码，并把这两种形式重新构建为二进制资源；APK 模块类可解码、合并并写出整个安装包。库中另有实验性的 DEX 读写组件，命令行工具 APKEditor 即基于该库开发。",
  "entry_url": "https://awesomerea.org/resources/arsclib/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/arsclib/",
  "evidence_url": "https://github.com/REAndroid/ARSCLib/blob/bd7221b43bc63544e712f3114dac635aa5142519/README.md",
  "group": "tools",
  "id": "arsclib",
  "json_url": "https://awesomerea.org/resources/arsclib/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/arsclib/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/arsclib/index.md",
  "name": "ARSCLib",
  "name_zh": "ARSCLib Android 二进制资源读写库",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Latest release at review: V1.4.0, published 2026-07-01 with an attached ARSCLib-1.4.0.jar; the same version is on Maven Central as io.github.reandroid:ARSCLib. The reviewed main commit, from 2026-10-19, is 34 commits ahead, already sets version 1.4.1 in build.gradle and is labeled part 1 of an overhaul of the library core, so its APIs may differ from the release.",
    "Pure Java with no runtime dependencies (JUnit 4.12 for tests); the Gradle build targets Java 8, ./gradlew jar builds the JAR, and CI runs the unit tests and JAR build on JDK 8. The README says it works on Java platforms including Android, Linux, macOS and Windows. It is used as a Maven dependency or a JAR, not as a standalone command-line tool; the README points to APKEditor for that.",
    "Works on APKs and resource files the user supplies. The README says decoding to XML needs un-obfuscated, valid resource names, so obfuscated tables are decoded to JSON instead, and that building validates far less than aapt/aapt2, leaving the user to know which values Android accepts. The dex package's README calls it experimental and not fully implemented.",
    "src/main/resources/frameworks bundles Android framework resource tables for API levels 23 to 37, each a small APK holding only resources.arsc and AndroidManifest.xml, used to resolve framework references; the commit adding API 37 names Google's platform-37.2-beta3 SDK package as its source. The tests include one small type_id_offset.apk fixture.",
    "Apache-2.0."
  ],
  "requirements_zh": [
    "审阅时最新版本为 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 许可。"
  ],
  "targets": [
    "app"
  ],
  "url": "https://github.com/REAndroid/ARSCLib",
  "verification": "source-reviewed",
  "verified_at": "2026-10-20"
}
