Servidor de verificação

A ideia de um servidor de verificação é reproduzir automaticamente as versões oficiais publicadas pelo f-droid.org (ou qualquer outro servidor). Isso garante que tudo na versão APK veio do código-fonte e nada foi inserido ou incluído durante o processo de compilação. Isso também é útil para verificar se o processo de compilação não está incluindo bibliotecas proprietárias.

O objetivo final é uma instalação simples que qualquer terceiro pode fazer, que verificará continuamente novos pacotes publicados, fará suas próprias compilações e confirmará que os binários correspondem exatamente. Há muitos problemas a serem resolvidos para chegar a esse destino final, mas o conceito básico já está testado e funcionando. (veja o comando “fdroid verify”).

A saída de vários servidores de verificação estará disponível para o cliente F-Droid. A ideia seria configurar o cliente de forma que ele não confie em um binário até que vários servidores de verificação concordem com a correção.

Verificação baseada em assinatura APK

No momento, o processo de verificação funciona criando um novo APK não assinado e, em seguida, copiando a assinatura do APK existente no APK não assinado recém-compilado. Se a assinatura do APK for confirmada, o APK foi reproduzido e marcado como verificado. Se não, um log de diffoscope é gerado para mostrar quais são as diferenças entre as duas compilações. O servidor de verificação não precisa de capacidade de assinatura, apenas de compilação.

Configuração de um

Isso ainda está bem cru, então espere precisar fazer alguns ajustes. Também provavelmente funcionará apenas no Debian, Ubuntu e outros derivados do Debian. O primeiro passo é conseguir as ferramentas do fdroidserver instaladas e funcionando. Execute as ferramentas do fdroidserver diretamente do git (por exemplo, ~/code/fdroidserver/fdroid build org.adaway), isso será o mais fácil por agora, já que o material do servidor de verificação é um alvo em movimento. O servidor base precisa ser no mínimo Debian/jessie, ou haverá alguns ajustes pesados. Se você estiver no Ubuntu ou uma distro derivada, você poderá obter todos os pacotes que faltam na sua versão, como o vagrant-cachier, deste PPA: https://launchpad.net/~fdroid/+archive/ubuntu/buildserver/

Então você pode encontrar mais informações sobre o processo lendo Build Server Setup. Você também pode ver os scripts de Integração Contínua para este processo para ver como a coisa toda pode funcionar:

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