{
  "added_at": "2026-11-03",
  "additional_evidence_urls": [
    "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/NOTICE",
    "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/build.gradle#L34",
    "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/build.gradle#L88-L91",
    "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/gradle/wrapper/gradle-wrapper.properties",
    "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/baksmali/src/main/java/org/jf/baksmali/DisassembleCommand.java",
    "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/baksmali/src/main/java/org/jf/baksmali/DeodexCommand.java",
    "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/baksmali/src/main/java/org/jf/baksmali/AnalysisArguments.java#L54-L74",
    "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/smali/src/main/java/org/jf/smali/AssembleCommand.java",
    "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/dexlib2/src/main/java/org/jf/dexlib2/VersionMap.java",
    "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/deodexerant/README",
    "https://github.com/JesusFreke/smali/tree/2771eae0a11f07bd892732232e6ee4e32437230d/baksmali/src/test/resources",
    "https://github.com/JesusFreke/smali/compare/v2.5.2...2771eae0a11f07bd892732232e6ee4e32437230d",
    "https://repo1.maven.org/maven2/org/smali/baksmali/2.5.2/",
    "https://github.com/google/smali/blob/1a36aa30d18d92e63994f4b1e67a055931f5a707/README.md"
  ],
  "category": "android",
  "description_en": "Assembler and disassembler for the dex format used by Android's Dalvik VM: baksmali turns dex, APK, odex and oat files into smali text, and smali assembles that text back into a dex file. The README says the syntax, loosely based on Jasmin's and dedexer's, supports the full dex format, including annotations and debug and line information. baksmali can also deodex odex and oat files and list a dex file's classes, methods, fields, strings and references, while the dexlib2 library reads and writes dex files from Java.",
  "description_zh": "面向 Android Dalvik 虚拟机 dex 格式的汇编器与反汇编器：baksmali 将 dex、APK、odex 和 oat 文件反汇编为 smali 文本，smali 再把这些文本汇编回 dex 文件。README 称其语法大致参照 Jasmin 和 dedexer，支持 dex 格式的全部功能，包括注解、调试信息和行号信息。baksmali 还能对 odex 和 oat 文件做去优化（deodex），并列出 dex 文件中的类、方法、字段、字符串和引用；dexlib2 库则供 Java 程序读写 dex 文件。",
  "entry_url": "https://awesomerea.org/resources/smali-baksmali/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/smali-baksmali/",
  "evidence_url": "https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/README.md",
  "group": "tools",
  "id": "smali-baksmali",
  "json_url": "https://awesomerea.org/resources/smali-baksmali/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/smali-baksmali/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/smali-baksmali/index.md",
  "name": "smali/baksmali",
  "name_zh": "smali/baksmali Dalvik dex 汇编与反汇编器",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "GitHub lists the repository as archived; its last push was on 2024-01-17, and the reviewed master head of 2022-03-08 is ten commits past v2.5.2, the last version, published as org.smali artifacts on Maven Central on 2021-03-03. The README still points downloads to the author's Bitbucket page. Google maintains a fork whose README says it exists because the original is not maintained; it renames the namespace to com.android.tools.smali and publishes 3.x releases (3.0.7 at review) on Google Maven.",
    "Java command-line tools and libraries compiled for Java 8 and built with the bundled Gradle 6.8.2 wrapper; scripts/smali and scripts/baksmali are launcher wrappers for the jars. Users supply their own dex, APK, odex or oat files and can set the API level; analyzing or deodexing optimized files needs a matching boot classpath, which for oat files can be the device's boot.oat. dexlib2's version map at this commit stops at dex 039 (API 28) and maps newer ART versions to API 29.",
    "The repository includes small test-fixture dex files under baksmali/src/test/resources and dexlib2/src/test/resources, hand-written smali examples, and deodexerant, a device-side C helper built in an AOSP tree that dumps Dalvik's inline method table for baksmali's -T option. No other dex, APK or system images are committed.",
    "There is no LICENSE file, so GitHub detects none; NOTICE releases Ben Gruver's code and Google-copyrighted changes under BSD-style three-clause licenses and says portions taken from the Android Open Source Project are used under Apache-2.0."
  ],
  "requirements_zh": [
    "GitHub 已将该仓库标为归档；最后一次推送在 2024-01-17，所审阅的 master 头提交日期为 2022-03-08，比最后一个版本 v2.5.2 多十个提交，该版本于 2021-03-03 以 org.smali 构件发布到 Maven Central。README 仍将下载地址指向作者的 Bitbucket 页面。Google 维护着一个分支，其 README 说明该分支因原仓库不再维护而设立；它将命名空间改为 com.android.tools.smali，并在 Google Maven 上发布 3.x 版本（审阅时为 3.0.7）。",
    "以 Java 命令行工具和库的形式提供，编译目标为 Java 8，使用仓库自带的 Gradle 6.8.2 wrapper 构建；scripts/smali 和 scripts/baksmali 是调用 jar 的启动脚本。使用者需自备 dex、APK、odex 或 oat 文件，并可指定 API 级别；分析或去优化已优化的文件需要相匹配的启动类路径，对 oat 文件可直接使用设备上的 boot.oat。该提交中 dexlib2 的版本映射止于 dex 039（API 28），较新的 ART 版本一律映射为 API 29。",
    "仓库包含 baksmali/src/test/resources 和 dexlib2/src/test/resources 下体积很小的测试用 dex 文件、手写的 smali 示例，以及 deodexerant——一个需在 AOSP 源码树中构建、在设备端运行的 C 辅助程序，用于导出 Dalvik 的内联方法表，供 baksmali 的 -T 选项使用。仓库未提交其他 dex、APK 或系统镜像。",
    "仓库没有 LICENSE 文件，因此 GitHub 未识别出许可证；NOTICE 说明 Ben Gruver 编写的代码和 Google 版权的修改均采用 BSD 风格的三条款许可，取自 Android 开源项目的部分按 Apache-2.0 使用。"
  ],
  "targets": [
    "app"
  ],
  "url": "https://github.com/JesusFreke/smali",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
