Сервер верификации

Идея сервера проверки заключается в автоматическом воспроизведении официальных релизов, опубликованных f-droid.org (или любым другим сервером). Это гарантирует, что все в выпуске APK получено из исходного кода, и ничего не было вставлено или включено в процессе сборки. Это также полезно для проверки того, что процесс сборки не включает проприетарные библиотеки.

Конечной целью является простая установка, которую может сделать любой сторонний производитель, и которая будет постоянно проверять наличие новых опубликованных пакетов, создавать собственные сборки и подтверждать точное соответствие двоичных файлов. Для достижения этой конечной цели необходимо решить множество вопросов, но основная концепция уже протестирована и работает. (см. команду ‘fdroid verify’).

Результаты работы нескольких серверов верификации будут доступны клиенту F-Droid. Идея заключается в том, чтобы настроить клиент таким образом, чтобы он не доверял двоичному файлу, пока несколько серверов проверки не согласятся с тем, что он правильный.

Проверка на основе подписи APK

В настоящее время процесс проверки работает путем создания нового неподписанного APK, затем копирования подписи APK из существующего APK во вновь созданный неподписанный APK. Если подпись APK подтверждается, то APK воспроизводится и помечается как проверенный. Если нет, то создается журнал diffoscope, показывающий различия между двумя сборками. Серверу верификации не нужна возможность подписи, только сборка.

Настройка одного

Это еще довольно сырая версия, поэтому ожидайте некоторых доработок. Также, скорее всего, он будет работать только на Debian, Ubuntu и других производных Debian. Первым шагом будет установка fdroidserver tools и их работа. Запустите инструменты fdroidserver прямо из git (например, ~/code/fdroidserver/fdroid build org.adaway), это будет проще всего, так как сервер проверки - движущаяся цель. Базовый сервер должен быть как минимум Debian/jessie, иначе потребуется серьезная доработка. Если вы используете Ubuntu или производный дистрибутив, вы можете получить все пакеты, отсутствующие в вашей версии, например vagrant-cachier, из этого PPA: https://launchpad.net/~fdroid/+archive/ubuntu/buildserver/

Затем вы можете узнать больше об этом процессе, прочитав Build Server Setup. Вы также можете посмотреть скрипты непрерывной интеграции для этого процесса, чтобы увидеть, как все это может работать:

- https://gitlab.com/fdroid/fdroidserver/blob/master/jenkins-build-makebuildserver - https://jenkins.debian.net/job/reproducible_setup_fdroid_build_environment_profitbricks7/