-
Notifications
You must be signed in to change notification settings - Fork 2
PRoot Binaries
platform/terminal/src/main/jniLibs/里的每个二进制都登记了来源、版本、许可与 SHA-256。 来源docs/proot-binary-provenance.md。
nativeLibraryDir 是 Android 上唯一保证可执行的 app 可控目录(SELinux 对 apk-lib 文件授予 execute)。
这是 Termux / UserLAnd / Andronix 分发 PRoot 的标准模型。
| jniLibs 文件 | Termux 包 | 版本 | 源 |
|---|---|---|---|
libproot.so |
proot |
5.1.107.92 | packages.termux.dev/apt/termux-main/pool/main/p/proot/ |
libproot-loader.so |
proot(libexec/proot/loader) |
5.1.107.92 | 同上 |
libproot-loader32.so |
proot(libexec/proot/loader32) |
5.1.107.92 | 同上(仅 64-bit ABI,用于运行 32-bit guest) |
libtalloc.so |
libtalloc |
2.4.3 | pool/main/libt/libtalloc/ |
libandroid-shmem.so |
libandroid-shmem |
0.7 | pool/main/liba/libandroid-shmem/ |
打包 ABI:arm64-v8a / armeabi-v7a / x86_64(与模块 ndk.abiFilters 一致)。
构建方:Termux 用 NDK r29、minSdk 24 构建(兼容本 App 的 minSdk 26),动态链接 Android bionic libc.so 及上述两个自带库。
- 清单:
platform/terminal/proot-binaries.sha256(14 项); - CI 的
static-analysisjob 每次构建复核全部摘要(P71); - 实际指纹(节选):
| ABI | 文件 | SHA-256 前 16 位 |
|---|---|---|
| arm64-v8a | libproot.so |
ea47e17da8e6ff48… |
| arm64-v8a | libproot-loader.so |
44ef39c1e1a18c09… |
| arm64-v8a | libproot-loader32.so |
25f6bd90bc5a3d30… |
| arm64-v8a | libtalloc.so |
3c9b207c0a6ea289… |
| arm64-v8a | libandroid-shmem.so |
84475798e07c8174… |
| armeabi-v7a | libproot.so |
efb41b19b15aaa13… |
| x86_64 | libproot.so |
5c6b99c48ebb8758… |
(armeabi-v7a 下没有 loader32,与"仅 64-bit ABI 提供"一致。)
libproot.so 的 DT_NEEDED 声明的是 libtalloc.so.2 与 libandroid-shmem.so,
但 Android 打包要求 jniLibs 条目命名为 lib*.so:
打包名:libtalloc.so
首次使用时:PRootHostEnvironment 在 app 自有 staging 目录创建符号链接
libtalloc.so.2 -> <nativeLibraryDir>/libtalloc.so
PRoot 进程的 LD_LIBRARY_PATH 指向该 staging 目录
guest loader 通过环境变量 PROOT_LOADER / PROOT_LOADER_32 显式传入,
因此其在磁盘上的文件名无关紧要。
| 组件 | 许可 | 义务 |
|---|---|---|
| proot | GPLv2+ | 分发二进制需提供对应源码(本 app README 链接 proot-me 与 termux/proot;二进制与官方构建字节一致,可用校验和验证) |
| talloc | LGPL-3.0 | 动态链接,要求库源码可得且可重链接 |
| libandroid-shmem | MIT | — |
Caution
二进制只能通过同一 commit 内同时更新 docs/proot-binary-provenance.md + 校验和清单来替换;
禁止原地修改二进制。
v2 计划:在 CI 中从源码静态构建 proot + talloc,去掉 Termux 运行时依赖集并收缩为单个自包含二进制。 v1 仍发 Termux 构建,因为它在目标 ABI 矩阵上久经考验。
-
MCP 生态总览
新 - (沙箱 MCP · 官方 Hub · 逆向 Host · 门控语义)
- 终端运行时
- 终端 API 契约
- SDK 边界
- Termux 能力矩阵
- Ubuntu rootfs 供给
- Ubuntu 生命周期
- PRoot 二进制溯源
- VT100/ANSI 模拟器
- 终端性能
- 终端迁移
- 原生层 C++/JNI