# ndkprootloader **Repository Path**: droidvm/ndkprootloader ## Basic Information - **Project Name**: ndkprootloader - **Description**: 使用musl-libc重写的可平替原版的proot-loader程序 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-26 - **Last Updated**: 2025-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ndkprootloader #### 介绍 proot原版中的loader使用GPLv2许可协议开源发布,不好集成到高sdk-level(>29)的闭源apk中, 所以使用MIT许可协议 [重写] 了一个可以平替原版loader的项目。 此项目使用musl-libc库重写, 加上了printf, 体积从原版的约7kb,变成17kb左右。 #### 软件架构 arm64,arm32,amd64,amd32 #### 安装教程 1. 编译: make c 2. 输出: ./build/ #### 笔记 1. 只有 arm64 定义了 HAS_POKEDATA_WORKAROUND 2. 只有 arm64 才需要 loader-info.c 3. proot本体依赖这个数据: 4. readelf -s loader|grep pokedata_workaround 5. readelf -s loader|grep start 6. const ssize_t offset_to_pokedata_workaround=(pokedata_workaround-loader) 7. OBJIFY: => _binary_loader_exe_start, 用于把编译好的loader以二进制数据的形式嵌入到proot主程序中 8. objdump -f ../cli/cli.o|grep 'file format' 9. objcopy --input-target=binary --output-target='elf64-x86-64' --binary-architecture='i386:x86-64' loader.exe loader-wrapped.oo #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request