Col-E/dex-translator

GitHub: Col-E/dex-translator

Col-E/dex-translator:DEX与JVM字节码转换库

Stars: 44 | Forks: 3

# Dex 翻译器 一个用于在 JVM 和 Dalvik 字节码之间进行转换的翻译库和命令行界面工具。 ## 命令行工具使用方法 顶层: ``` Usage: dex-translator [-hV] [COMMAND] See the sub-commands for available operations -h, --help Show this help message and exit. -V, --version Print version information and exit. Commands: d2j Convert one or more DEX files to a JAR file j2d Convert one or more JAR files to an DEX file d2j: Usage: d2j [-fl] [-o=] ... Convert one or more DEX files to a JAR file ... Path to one or more DEX files. -f, --force Flag to enable force emitting output, even if some method bodies are invalid. Invalid methods will be replaced with no-op behavior. -l, --lenient Flag to enable options that allow more leniency in the conversion process. Some input validation will be skipped. -o, --out= Path to JAR file to write to. jd2: Usage: j2d [-fl] [-o=] ... Convert one or more JAR files to an DEX file ... Path to one or more JAR files. -f, --force Flag to enable force emitting output, even if some method bodies are invalid. Invalid methods will be replaced with no-op behavior. -l, --lenient Flag to enable options that allow more leniency in the conversion process. Some input validation will be skipped. -o, --out= Path to DEX file to write to. ``` ## 库使用方法 Maven 依赖: ``` software.coley dex-translator ${dexVersion} ``` Gradle 依赖: ``` implementation group: 'software.coley', name: 'dex-translator', version: dexVersion implementation "software.coley:dex-translator:${dexVersion}" ``` 对于大多数基本使用,您可以在类型包中使用 `Converter` 和 `Loader` 类型。使用方法如下: ``` Inputs inputs = new Inputs(); for (File inputFile : inputFiles) inputs.addJarArchive(inputFile.toPath()); Options options = new Options() .setReplaceInvalidMethodBodies(replaceInvalid) .setLenient(lenient) .setDexFileOutput(outputFile.toPath()); new Converter() .setInputs(inputs) .setOptions(options) .run() ``` 对于更深入的使用,您可能需要直接与 `ApplicationData` 类进行工作。 您可以在测试类中找到它的示例用法。 ## 构建 目前,Dex Translator 假设 `R8` 工件已存在于本地 Maven 仓库中。 为了满足这一假设,请克隆我们的 [R8 分支](https://github.com/Col-E/r8) 并运行 `gradlew publishToMavenLocal`。
标签:Android, Dalvik, DEX文件, DSL, JAR文件, JS文件枚举, JVM, Maven依赖, 后台面板检测, 域名枚举, 字节码转换, 工具库, 编程语言, 编译器, 翻译库, 软件开发