2 个稳定版本
1.5.0 | 2021 年 11 月 1 日 |
---|---|
1.4.0 | 2021 年 9 月 24 日 |
#382 in 构建工具
36KB
825 行
从 APK 生成 AOSP 构建系统文件
⚠️ 该库仍在开发中!⚠️
一个命令行工具,可以从 Android APK 中自动生成 Android.mk
或 Android.bp
。
genapkbuild 工具将分析 APK 的架构,找到其中的 NDK 生成的库,并为其生成 makefile (Android.mk
) 或 soong (Android.bp
) 文件。默认情况下,它将生成 make 文件,但可以通过传递不同的标志来将其更改为生成 soong 文件 (Android.bp)。
此工具还支持预先 Kit-Kat 风格的 makefile 生成,通过从 APK 中提取 .so 库并将其自动链接到 makefile 中来实现。
有关更多信息,请参阅下方的 标志。
受 northbright 编写的工具启发,该工具是用 Go 编写的,并将其移植到 Rust 中,构建在它之上,与该工具不兼容(大部分情况下)。
二进制文件
如果您已安装 Cargo,可以通过运行 cargo install genapkbuild
来安装此工具。要从源代码构建,您需要 Rust 编译器,克隆此仓库并运行 cargo build --release
。二进制文件 genapkbuild
将在 target/release/
中生成。
如果您没有安装编译器,可以从 发布标签 下载二进制文件。
标志
输入标志 [必需]
-i--输入<APK 路径>
此标志是必需的,它提供了我们想要生成 makefile 或蓝图所需的 APK 路径。
Soong (Android.bp) 标志
-s--soong
此标志将创建 Android.bp
而不是 Android.mk
。
提取标志
-e--extract
此标志将创建 Android 5.0 之前的风格的 makefile,通过提取/复制 APK 外部的本地库到 /lib/<abi>/lib<name>.so
并将其链接到 makefile。默认情况下禁用。
架构(ABI)标志
-a--arch<ABI>
此标志允许您为在 BSP 中捆绑的 APK 设置默认架构。当发现多个架构且工具不知道选择哪个时,这是必要的。如果只支持一个架构,则将自动选择该架构。
特权标志
-p--privileged
此标志将使 apk 成为位于 priv-app 中的特权系统应用。
Dex 预优化
-d--dex<true或false>
也可以通过指定此标志在单个应用程序的基础上启用或禁用预优化。
名称标志
-n--name<APKname>
如果 apk 名称与 -i --input
标志提供的名称不同,您可以使用此标志更改它。如果没有提供,它将获取输入标志中传递的内容。
详细标志
-v--verbose<APKname>
启用详细调试日志,默认情况下禁用。
版本标志
-V--version
打印版本信息。
帮助标志
-h--help
打印有关工具的用法信息。
许可证
许可方式为以下之一
- Apache 许可证 2.0 版(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
许可
除非您明确表示,否则根据 Apache-2.0 许可证定义的,您提交的旨在包含在作品中的任何有意贡献,将如上所述双许可,不附加任何额外条款或条件。
依赖项
~5–7MB
~116K SLoC