尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Provision跨平台编译指南:dub、CMake与树莓派工具链的完整配置教程

Provision跨平台编译指南:dub、CMake与树莓派工具链的完整配置教程 Provision跨平台编译指南dub、CMake与树莓派工具链的完整配置教程【免费下载链接】ProvisionSet of tools interracting with Apple servers. Dont hesitate to leave a star if you appreciate it.项目地址: https://gitcode.com/gh_mirrors/pr/ProvisionProvision 是一套运行在 Linux 上、与 Apple 服务器交互的工具集包含设备注册库 libprovision、Anisette 配给服务 anisette_server 以及请求头获取工具 retrieve_headers。本文将从零讲清 Provision 的三种构建路径dub 快速编译、CMake Ninja 完整构建以及树莓派 2/4 工具链的交叉编译配置帮助你在任何平台上顺利跑起来。⚠️安全提示请勿使用你的主力 Apple 账号官方建议使用备用账号ADI 数据保存在~/.adi/adi.pb切勿泄露。一、Provision 有什么先认识 3 个核心组件组件类型作用libprovision静态库在 Apple 服务器上注册设备获取 ADI 数据anisette_server可执行文件为 AltServer-Linux 等第三方软件提供 Anisette 配给服务retrieve_headers可执行文件注册设备后在终端输出 JSON 格式的识别请求头mkcassette可执行文件可选构建的辅助工具运行时依赖除二进制本身外还需要把 Apple Music APKAndroid 版中的lib/文件夹解包到可执行文件旁边可只保留libstoreservicescore.so和libCoreADI.so两个库以减小体积。二、编译前置一键安装 D 语言开发环境编译 Provision 需要D SDK编译器 dub 包管理器可选安装 libplist# Debian / Ubuntu 示例 sudo apt install ldc dub ninja-build # 或使用 GDC 编译器 sudo apt install gdc-12Dockerfile 中使用的构建依赖可作为参考ldc、git、clang、dub、libz-dev见 Dockerfile。三、dub 快速编译三步出可执行文件最简单的方式是用 dub 构建三个命令即可git clone https://gitcode.com/gh_mirrors/pr/Provision --recursive cd Provision dub build -b release--recursive会拉取 cmake/cmake-d 等子模块不要省略产物统一输出到bin/目录在 dub.sdl 中通过targetPath bin配置dub.sdl 定义了 4 个包主库provision和 3 个子包retrieve-headers、mkcassette、anisette-server静态链接 anisette-serverDocker 镜像同款命令dub build -c static -b release --compilerldc2 :anisette-server四、CMake Ninja 完整构建树莓派工具链配置详解4.1 标准构建流程mkdir build cd build cmake -G Ninja .. -DCMAKE_BUILD_TYPERelease ninjaCMakeLists.txt 中的关键选项选项默认值说明build_anisetteserverON是否构建 Anisette 服务build_mkcassetteOFF是否构建 mkcassetteuse_native_plistOFF改用 D 语言原生 plist 解析器link_libplist_dynamicOFF运行时动态加载 libplistplist 解析有三级回退优先用系统libplist-2.0pkg-config 探测其次静态链接 libplist-d最后警告并使用内置 fallback 解析器。第三方依赖requests ~2.0.9、slf4d ~2.1.1、handy-httpd ~5.2.1由 cmake/dependencies.cmake 通过 dub 自动拉取无需手动安装。4.2 树莓派 4 交叉编译aarch64项目自带 toolchains/ 目录为树莓派 4 准备了完整工具链文件。以 toolchains/rpi-4.cmake 为例它指定了aarch64-linux-gnu-gcc-12/g-12/gdc-12编译器组合并将 sysroot 指向/usr/aarch64-linux-gnu/sys-rootmkdir build-rpi4 cd build-rpi4 cmake -G Ninja .. -DCMAKE_BUILD_TYPERelease \ -DCMAKE_TOOLCHAIN_FILE../toolchains/rpi-4.cmake ninja4.3 树莓派 2 交叉编译ARMv7 32 位老款树莓派 2 是 32 位 ARM 架构使用 toolchains/rpi-2.cmake编译器前缀为arm-linux-gnueabihf-其余流程与 4 相同。若你的交叉编译器没有-12版本后缀可用无后缀版本toolchains/rpi-4-no-suffix.cmake。工具链文件还设置了-defaultlib:libgphobos.a -fall-instantiations等 D 编译标志专供 gdc 编译器交叉链接使用。4.4 Windows 交叉编译项目同时支持面向 Windows 的交叉编译toolchains/windows.cmake 仅两行核心是告诉 LDC 目标三元组SET(CMAKE_SYSTEM_NAME Windows) SET(CMAKE_D_COMPILER ldc2;-mtriplex86_64-windows-msvc)配置方式与树莓派一致-DCMAKE_TOOLCHAIN_FILE../toolchains/windows.cmake。五、常见问题排查清单找不到 libplist系统没装 libplist 时会打印Using fallback Property list parser警告属正常降级不影响出包想彻底避免可安装libplist-2.0-devdub 报错子模块缺失重新 clone 时务必带--recursivegdc 交叉编译链接失败确认使用了带-defaultlib:libgphobos.a的工具链文件toolchains/rpi-4.cmake 第 30 行已内置运行时缺少 .so把 Apple Music APK 里的lib/文件夹放到可执行文件旁六、源码导航快速定位关键文件项目总览与下载说明README.md构建入口CMakeLists.txt、dub.sdl依赖声明cmake/dependencies.cmake核心库源码lib/provision/adi.d、lib/provision/compat/linux.dADI 技术原理文档docs/ADI.md树莓派/Windows 工具链toolchains/容器化部署定义Dockerfile✅ 到这里Provision 的 dub、CMake 与树莓派工具链三大构建路径就全部掌握了。建议先从 dub 快速编译验证环境再按需切换到 CMake 交叉编译部署到树莓派等目标设备。【免费下载链接】ProvisionSet of tools interracting with Apple servers. Dont hesitate to leave a star if you appreciate it.项目地址: https://gitcode.com/gh_mirrors/pr/Provision创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表