Skonfiguruj do programowania AOSP (w wersji 9.0 lub nowszej)

Zanim pobierzesz i skompilujesz gałąź main źródła Androida, upewnij się, że sprzęt spełnia niezbędne wymagania i że wymagane oprogramowanie jest prawidłowo zainstalowane. Musisz też znać następujące terminy:

Git
Git to bezpłatny, rozproszony system kontroli wersji typu open source. Android używa Gita do operacji lokalnych, takich jak rozgałęzianie, zatwierdzenia, różnice i zmiany. Jeśli potrzebujesz pomocy w nauce Git, zapoznaj się z dokumentacją Gita.
Repozytorium
Repo to otoka w języku Python wokół Git, która upraszcza wykonywanie złożonych operacji w kilku repozytoriach Git. Repozytorium nie zastępuje Gita w przypadku wszystkich operacji kontroli wersji, a jedynie ułatwia wykonywanie złożonych operacji Git. Repo używa plików manifestu do agregowania projektów Git w superprojekcie Androida.
Plik manifestu
Plik manifestu to plik XML określający, gdzie w drzewie źródłowym AOSP znajdują się różne projekty Git ze źródła Androida.

Spełnij wymagania sprzętowe

Stacja robocza do programowania powinna spełniać lub przewyższać te wymagania sprzętowe:

  • System 64-bitowy.

  • Co najmniej 400 GB wolnego miejsca na dysku na sprawdzenie i stworzenie kodu (250 GB na zakupy + 150 GB na kompilację).

  • Co najmniej 64 GB pamięci RAM. Do tworzenia Androida Google używa 72-rdzeniowych komputerów i 64 GB pamięci RAM. Przy takiej konfiguracji sprzętowej pełnej kompilacji Androida zajmuje około 40 minut, a przyrostowa kompilacja Androida – zaledwie kilka minut. Z kolei pełna kompilacja na 6-rdzeniowym komputerze i 64 GB pamięci RAM zajmuje około 6 godzin.

Wymagania systemowe Meet

Programowa stacja robocza musi obsługiwać dowolną 64-bitową dystrybucję Linuksa z biblioteką GNU C Library (glibc) w wersji 2.17 lub nowszej.

Zainstaluj wymagane pakiety

Aby utworzyć Androida 11 lub nowszego, musisz korzystać z Ubuntu w wersji 18.04 lub nowszej. Aby zainstalować wymagane pakiety dla systemu Ubuntu 18.04 lub nowszego, uruchom to polecenie:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

Wśród zainstalowanych pakietów to polecenie instaluje Gita, który służy do pobierania źródła AOSP.

Zainstaluj wymagane oprogramowanie

Aby móc korzystać z AOSP, musisz mieć zainstalowane oprogramowanie OpenJDK, Make, Python 3 i Repo. Główna gałąź Androida AOSP ma gotowe wersje OpenJDK, Make i Pythona 3, więc nie trzeba wykonywać dodatkowych czynności instalacyjnych. W tej sekcji dowiesz się, jak zainstalować Repo.

Zainstaluj repozytorium

Aby zainstalować Repo:

  1. Pobierz informacje o aktualnym pakiecie:

    sudo apt-get update
    
  2. Uruchom to polecenie, aby zainstalować program uruchamiający repozytorium:

    sudo apt-get install repo
    

    Program uruchamiający repozytorium zawiera skrypt Pythona, który inicjuje proces płatności i pobiera pełne narzędzie Repo.

    Jeśli operacja się uda, przejdź do kroku 4.

  3. (Opcjonalnie) Zainstaluj ręcznie Repo, używając tych poleceń:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
    

    Pierwsze 3 polecenia konfiguruje plik tymczasowy, pobierają do niego repozytorium i sprawdzają, czy podany klucz pasuje do wymaganego klucza. Jeśli wykonanie tych poleceń zadziała, zainstaluje program uruchamiający repozytorium.

  4. Sprawdź wersję programu uruchamiającego repozytorium:

    repo version
    

    Dane wyjściowe powinny wskazywać wersję 2.5 lub nowszą, na przykład:

    repo launcher version 2.40

Ustaw alternatywny katalog wyjściowy

Dane wyjściowe każdej kompilacji są domyślnie przechowywane w podkatalogu out/ odpowiedniego drzewa źródłowego. Możesz zastąpić ten katalog, eksportując zmienną środowiskową OUT_DIR. Jeśli na przykład chcesz zapisać dane wyjściowe na innym dysku, możesz wskazać OUT_DIR ten dysk:

export OUT_DIR=my_other_drive

Co dalej?