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

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

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

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

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

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

Настройка такового

Сервер проверки управляется с помощью Ansible Playbook, который устанавливается на сервер с Debian/stable, настроенный для запуска контейнеров с Podman без привилегий root. Именно так это устроено в https://verification.f-droid.org, но проект пока находится на ранней стадии, поэтому, возможно потребуется некоторая доработка с вашей стороны. Мы приветствуем любой возможный вклад в этот проект. Цель — сделать этот набор инструментов достаточно универсальным, чтобы сопровождающий любого совместимый с F-Droid репозиторий мог использовать его в качестве пересборщика.