Narzędzia fdroidserver zapewniają wszystko, czego potrzeba do skonfigurowania i utrzymania własnych repozytoriów, uruchomienia serwera budowania fdroid, a nawet hostowania własnej strony internetowej, takiej jak f-droid.org. Programiści F-Droid pracują głównie nad Debianem, Archem i Ubuntu, więc są to obecnie najlepiej obsługiwane platformy.
Aby skonfigurować i utrzymywać własną kolekcję aplikacji i multimediów z poziomu wiersza poleceń, skonfiguruj repozytorium F-Droid za pomocą narzędzi z fdroidserver. Aby uruchomić pełną konfigurację serwera budowania F-Droid, zobacz Tworzenie konfiguracji serwera.
- Debian/Ubuntu/Mint/etc
- Fedora/Archlinux
- Guix
- Homebrew
- Windows Subsystem for Linux
- Cygwin
- Okno dokowane pliku wykonywalnego obrazu (wszystkie platformy)
- Instalowanie najnowszego kodu (dowolnej platformy)
- Tworzenie aplikacji
- Tworzenie wszystkich aplikacji z f-droid.org
- Własnościowe, niewolne biblioteki
Debian/Ubuntu/Mint/etc
Narzędzia F-Droid, znane również jako fdroidserver, mogą zostać zainstalowane ze standardowego repozytorium pakietów systemu operacyjnego. W systemach operacyjnych opartych na Debianie powinno to wystarczyć do zainstalowania podstawowej konfiguracji F-Droid:
sudo apt-get install fdroidserver
Jednak często okazuje się, że wersja fdroidserver dostępna w standardowym repozytorium pakietów systemu operacyjnego jest nieaktualna.
Uzyskiwanie nowszej wersji
Nowszą wersję fdroidserver można znaleźć w F-Droid PPA lub repozytorium twojego systemu operacyjnego backports.
-
Ubuntu/Mint: użyj aplikacji F-Droid PPA (odcisk palca:
9AAC 2531 93B6 5D4D F1D0 A13E EC46 32C7 9C5E 0151):sudo add-apt-repository ppa:fdroid/fdroidserver sudo apt-get update sudo apt-get install fdroidserver -
Debian: first setup backports, then, substituting your Debian release for ‘bookworm’:
apt-get install -t bookworm-backports fdroidserver
Fedora/Archlinux
Ponieważ pakiety w tych dystrybucjach mogą być nowsze niż oficjalne pakiety na pypi, instalacja zależności w oddzielnym środowisku wirtualnym pozwala obejść problemy z rozwiązywaniem zależności:
python3 -m venv env
source env/bin/activate
pip install -e .
Guix
Narzędzia są również dostępne w głównym kanale Guix. Aby zainstalować:
guix install fdroidserver
Homebrew
Check the Homebrew formula for more details.
brew install fdroidserver
Windows Subsystem for Linux
Począwszy od Windows 10 “Anniversary Update”, można włączyć środowisko Ubuntu, które działa w systemie Windows, znane jest “Bash w systemie Windows”, “Ubuntu w systemie Windows” lub “Podsystem Windows dla systemu Linux”.
- Instalacja Podsystemu Windows dla systemu Linux
- zainstaluj fdroidserver z F-Droid
PPA
(fingerprint:
9AAC 2531 93B6 5D4D F1D0 A13E EC46 32C7 9C5E 0151) poprzez wpisanie tego w oknie konsoli Bash:
sudo add-apt-repository ppa:fdroid/fdroidserver
sudo apt-get update
sudo apt-get install fdroidserver
Cygwin
- dodaj Javę do swojej ŚCIEŻKI: http://www.kingluddite.com/tools/how-do-i-add-java-to-my-windows-path
- Zainstaluj Cygwin https://www.sourceware.org/cygwin/
- in Cygwin, install these packages: gcc-core git openssh python3 python3-imaging python3-paramiko python3-requests python3-setuptools rsync wget
- open a Cygwin bash shell and run:
pip install fdroidserver
Oto konfiguracja repozytorium:
export ANDROID_HOME=/cygdrive/c/path/to/android-sdk
fdroid init # wygenerowanie keystore nie powiedzie się
Po uruchomieniu fdroid init, musisz ustawić ścieżkę Windows do pliku
kluczy w config.yml. Możliwe jest również zainstalowanie fdroidserver w
środowisku wirtualnym za pomocą virtualenv i pip.
Okno dokowane pliku wykonywalnego obrazu (wszystkie platformy)
Jeśli już uruchomiłeś Docker “Executable Images”, najprostszym sposobem na uruchomienie fdroidserver jest użycie naszego wykonywalnego obrazu
Instalowanie najnowszego kodu (dowolnej platformy)
The easiest way to install the fdroidserver tools from source is to use virtualenv and pip. First, make sure you have the Python3 version of virtualenv or venv installed, it should be included in your OS’s Python distribution or via other mechanisms like dnf/yum/pacman/emerge/Fink/MacPorts/Brew. Then here’s how to install fdroidserver into a Python “virtual env”:
python -m venv fdroidserver-env
. fdroidserver-env/bin/activate
pip install git+https://gitlab.com/fdroid/fdroidserver.git
Możesz znaleźć odmiany na temat tego użytego w testach CI: https://gitlab.com/fdroid/fdroidserver/blob/master/.gitlab-ci.yml
Tworzenie aplikacji
Do tworzenia aplikacji za pomocą F-Droid musi być zainstalowana Java i cały zestaw Android SDK. Proces ten jest obecnie rozwijany tylko w systemie GNU/Linux, ale chcielibyśmy, aby poprawki działały w systemie macOS i Windows. Jeśli chcesz tylko stworzyć repozytoria F-Droid z plików APK, które już posiadasz, lub nie wiesz, co to oznacza, możesz pominąć tę sekcję.
Aby tworzyć aplikacje dla systemu Android za pomocą łańcucha narzędziowego fdroidserver, należy zainstalować Javę, zestaw SDK systemu Android i kilka innych niezbędnych narzędzi. Tylko części Androida SDK są dostępne w Debianie, więc pakiet SDK Androida musi być instalowane ręcznie, a także pakiety, których wymaga (narzędzia Android SDK zawierają niektóre 32-bitowe pliki binarne, więc nawet systemy 64-bitowe potrzebują tych pakietów biblioteki i386). Narzędzia F-Droid korzystają z zestawu Android SDK do tworzenia i sprawdzania aplikacji, więc przed użyciem fdroidserver musisz zainstalować i skonfigurować zestaw SDK systemu Android.
Install the Android
SDK and make sure
the ANDROID_HOME environment variable is properly set. Be sure to verify
the file you downloaded, you can double-check the SHA-1 checksum on Google’s
download page.
$ sudo apt-get install fdroidserver
$ mkdir ~/android-sdk-linux
$ cd ~/android-sdk-linux
$ wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
$ echo "87f6dcf41d4e642e37ba03cb2e387a542aa0bd73cb689a9e7152aad40a6e7a08 commandlinetools-linux-6858069_latest.zip" | sha256sum -c
commandlinetools-linux-6858069_latest.zip: OK
$ unzip commandlinetools-linux-6858069_latest.zip
$ export ANDROID_HOME="$HOME/android-sdk-linux"
$ ./cmdline-tools/bin/sdkmanager --sdk_root="$ANDROID_HOME" platform-tools "build-tools;30.0.3"
Uwaga: Jeśli masz zainstalowany Android Studio, masz zainstalowany zestaw
SDK systemu Android. Powinien znajdować się w ~/Android/Sdk zamiast
~/android-sdk-linux. Możesz znaleźć lokalizację w Android Studio po
otwarciu menu Narzędzia→Menedżer SDK.
Aby na stałe dodać te ustawienia do powłoki:
$ echo export ANDROID_HOME=$ANDROID_HOME >> .bashrc
Tworzenie wszystkich aplikacji z f-droid.org
Aby tworzyć wszystkie aplikacje wchodzące w skład f-droid.org, wymagane jest dużo więcej pakietów oprogramowania:
- wszystkie platformy SDK wymagane przez aplikacje, które chcesz zbudować
- wszystkie pakiety Debiana wymagane przez każdy proces kompilacji aplikacji (maven, ant itp.)
- każde narzędzie do zarządzania kodu źródłowego (git, subversion, mercurial, itp)
- każda wersja Android NDK, która jest używana w aplikacjach
Oprócz tego, aby tworzyć aplikacje podobne do tych, które są zbudowane na platformie f-droid.org, wymagany jest cały Tworzenie konfiguracji serwera. To bezpieczniejsza, gotowa do produkcji konfiguracja, która wymaga nieco więcej konfiguracji i zasobów. Skrypty Tworzenie konfiguracji skryptów serwera stanowią przydatne odniesienie dla wszystkich potrzebnych bitów.
Jeśli chcesz tworzyć własne oficjalne wersje za pomocą narzędzi F-Droid, musisz także skonfigurować Proces podpisywania.
Własnościowe, niewolne biblioteki
Pakiet SDK systemu Android jest udostępniany przez Google na podstawie zastrzeżonej licencji. W tym celu podstawowe narzędzia do tworzenia, platformy SDK, biblioteka wsparcia i niektóre inne komponenty są objęte licencją Apache i dostarczany jest kod źródłowy.
Google APIs, used for building apps using Google Maps, are free to the extent that the library comes pre-installed on the device. Google Play Services, Google Admob, GCM, and many other third party libraries are proprietary and cannot be included in the main F-Droid repository. The microG project is developing free software replacements for some of the most used proprietary Google libraries
