fdroidserver config.yml 配置全解:如何正确配置 SDK、NDK、Java 与 GPG 密钥

fdroidserver config.yml 配置全解:如何正确配置 SDK、NDK、Java 与 GPG 密钥
fdroidserver config.yml 配置全解如何正确配置 SDK、NDK、Java 与 GPG 密钥【免费下载链接】fdroidserverF-Droid server and build tools.项目地址: https://gitcode.com/gh_mirrors/fd/fdroidserverfdroidserver 是 F-Droid 的服务器与构建工具集用于从源码构建、签名并分发 Android 应用。它的核心配置文件config.yml决定了构建环境SDK、NDK、Java与签名体系keystore、GPG 密钥的行为。本文带你从零读懂config.yml的每个关键配置项一次配好不再踩坑。config.yml 在哪里它如何生效fdroid命令启动时会读取仓库根目录下的config.yml并用代码中的默认值补齐你未写的选项。默认值定义在 fdroidserver/common.py 的default_config中例如配置项默认值说明sdk_path$ANDROID_HOMEAndroid SDK 根目录keystorekeystore.p12构建签名使用的密钥库文件repo_urlhttps://example.com/fdroid/repo仓库的正式 URL必须以/repo结尾scan_binaryfalse构建后是否扫描 APK 中的非自由代码官方提供了一份注释完整的模板建议直接复制它作为起点模板文件examples/config.yml完整示例含密钥配置tests/config.yml构建服务器模板examples/Vagrantfile.yaml 官方建议config.yml适合用版本管理工具跟踪但不要把敏感密码写进去参考 fdroidserver/common.py 的注释。一键配置构建环境SDK、NDK 与 Javasdk_path指向 Android SDK默认使用环境变量$ANDROID_HOME如果你把 SDK 放在别处就显式写出来sdk_path: /home/fdroid/Android/Sdk构建服务器 VM 会在 buildserver/setup-env-vars 中自动导出ANDROID_HOME并配置PATH本地自建环境时请确保该变量已设置。ndk_paths手动指定各版本 NDK大多数情况无需配置——fdroidserver 会自动从$ANDROID_HOME/ndk-bundle和$ANDROID_HOME/ndk/下探测已安装的 NDK缺失的版本也会在构建服务器中自动下载。只有 NDK 放在非标准位置时才需要手动指定键可以是发布名如r21e或修订号ndk_paths: r10e: $ANDROID_HOME/android-ndk-r10e 21.4.7075529: ~/Android/Ndk r22b: null # 删除该版本NDK 版本的探测逻辑见 fdroidserver/common.py。java_paths支持多版本 Javafdroid 支持自动发现系统上已安装的多版本 JDKDebian、Arch、macOS、Windows 布局均支持发现逻辑在 fdroidserver/common.py。若自动发现不符合预期可手动映射主版本号到路径java_paths: 8: /usr/lib/jvm/java-8-openjdk 17: /usr/lib/jvm/java-17-openjdk自动选择到的 JDK 还会决定jarsigner与keytool的位置fdroidserver/common.py。其他构建工具cachedir: cache # 下载工具如 gradle的缓存目录默认 ~/.cache/fdroidserver ant: ant # Ant 命令或路径 mvn3: mvn # Maven 3 命令或路径 gradle: gradle # 默认使用内置的 gradlew-fdroid 包装器签名体系keystore 与 GPG 密钥配置仓库签名密钥keystore签名仓库索引index-v1.json 等需要一组密钥库配置keystore: ~/.local/share/fdroidserver/keystore.jks # 密钥库路径 keystorepass: 你的密钥库密码 # 至少 6 位 keypass: 你的密钥密码 # 建议不要明文写入文件 keydname: CNMyRepo, OUF-Droid # 所有密钥的区分名 repo_keyalias: fdroidrepo # 仓库密钥的别名几点安全提示️ 官方推荐把敏感密钥放在智能卡上把keystore设为NONE再通过smartcardoptions指向 PKCS11 配置模板见examples/opensc-fdroid.cfg密钥导出工具可参考examples/fdroid_exportkeystore.py、examples/fdroid_nitrokeyimport.pyrepo_keyalias、keystore、keystorepass、keypass四项在签名流程中是必填的缺失会直接报错见 fdroidserver/common.py。GPG 密钥为 APK 做分离式签名GPG 用于给仓库内每个 APK 生成.sig签名文件gpghome: /home/fdroid/.gnupg # 可选覆盖 GPG 主目录 gpgkey: 1DBA2E89 # 可选用于分离签名的 GPG 密钥 ID实际示例见 tests/config.yml其中gpgkey配置了完整的 40 位指纹。多应用共享密钥别名keyaliases: com.example.app: example # 指定应用使用固定别名 com.example.another.plugin: com.example.another # 强制与另一应用共用别名一般情况留空即可fdroidserver 会自动为每个应用生成独立密钥。仓库信息与镜像配置repo_url: https://example.com/fdroid/repo # 必须以此结尾 repo_name: My First F-Droid Repo Demo repo_description: - 这个仓库存放通过 F-Droid 使用的应用…… archive_older: 3 # 主仓库保留 3 个版本更旧的进归档 archive_url: https://example.com/fdroid/archive mirrors: - https://foo.bar/fdroid - http://foobarfoobarfoobar.onion/fdroidrepo_url是客户端识别仓库的正式地址同时也会显示在应用页面上archive_older设为 0 表示不建归档仓库镜像列表也可单独维护在config/mirrors.yml文件中此时应从config.yml中删掉mirrors。部署与同步让 fdroid deploy 找到目标serverwebroot: userexample:/var/www/fdroid # rsync/ssh 格式须以 /fdroid 结尾 servergitmirrors: https://git.example.com/user/repo # 可选 git 镜像 local_copy_dir: /media/MyUSBThumbDrive/fdroid # 离线签名机经 U 盘同步 sync_from_local_copy_dir: true deploy_process_logs: true # 发布构建日志与状态支持用{}或列表同时同步到多台服务器云端对象存储可通过awsbucket与rclone_config配置Rclone 支持几乎所有云盘仓库图标默认取repo/icons/icon.png可自定义repo_icon。进阶选项速查表配置项作用scan_binary: true每次构建后扫描 APK 中的已知非自由类repo_maxage客户端可接受的最大索引年龄天0 为关闭make_current_version_link: true为当前版本生成固定路径链接build_server_always: true始终使用构建服务器免去--server参数char_limits限制元数据字段长度如name: 50install_list/uninstall_list推送安装/卸载应用清单受签名保护scanner_signature_sources扫描器签名库默认suss可加exodus完整清单请对照 examples/config.yml 的逐项注释。配置检查清单发布前最后确认 ✅sdk_path可访问且ndk_paths缺失版本能被自动下载java_paths覆盖项目所需的 Java 大版本keystore路径正确keystorepass/keypass已安全注入repo_keyalias与keydname已设置gpgkey指纹与gpghome中实际密钥一致repo_url以/repo结尾与serverwebroot域名一致敏感密码未以明文长期留在config.yml中。配好以上各项后运行fdroid update验证签名与索引生成再用fdroid deploy推送到服务器你的 F-Droid 仓库就正式跑起来了。【免费下载链接】fdroidserverF-Droid server and build tools.项目地址: https://gitcode.com/gh_mirrors/fd/fdroidserver创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

最新新闻

日新闻

周新闻

月新闻