Skonfiguruj do programowania AOSP (w wersji 9.0 lub nowszej)

Zanim pobierzesz i skompilujesz gałąź main kodu źródłowego Androida, sprawdź, czy Twój sprzęt spełnia wymagania i czy masz prawidłowo zainstalowane wymagane oprogramowanie. Musisz też znać te terminy:

Git
Git to bezpłatny system kontroli wersji typu open source. Android używa Git do operacji lokalnych, takich jak rozgałęzianie, zatwierdzanie, porównywanie i edytowanie. Jeśli potrzebujesz pomocy w nauce Git, zapoznaj się z dokumentacją Gita.
Repo
Repo to zewnętrzna biblioteka Pythona dla Git, która upraszcza wykonywanie złożonych operacji w wielu repozytoriach Git. Repo nie zastępuje Git w przypadku wszystkich operacji kontroli wersji, ale ułatwia wykonywanie złożonych operacji Git. Repozytorium używa plików manifestu do agregowania projektów Git w superprojekt 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.

Wymagania sprzętowe Meet

Stacja robocza do programowania powinna spełniać te wymagania dotyczące sprzętu:

  • 64-bitowy system x86.

  • 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 tej konfiguracji sprzętowej pełne kompilowanie Androida zajmuje około 40 minut, a kompilowanie przyrostowe – tylko 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

Stacja robocza programisty musi działać na dowolnej 64-bitowej dystrybucji systemu Linux z biblioteką GNU C Library (glibc) w wersji 2.17 lub nowszej.

Instalowanie wymaganych pakietów

Aby kompilować Androida 11 lub nowszego, musisz używać Ubuntu 18.04 lub nowszej wersji. Aby zainstalować pakiety wymagane w Ubuntu 18.04 lub nowszym, 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 instalowanych pakietów to polecenie instaluje Git, który służy do pobierania źródła AOSP.

Instalowanie wymaganego oprogramowania

Aby korzystać z AOSP, musisz zainstalować 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 następnej sekcji znajdziesz instrukcje instalacji Repo.

Zainstaluj repozytorium

Aby zainstalować Repo:

  1. Pobierz informacje o bieżącym pakiecie:

    sudo apt-get update
  2. Aby zainstalować uruchamiacz Repo, uruchom to polecenie:

    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 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 konfigurują plik tymczasowy, pobierają repozytorium do tego pliku i sprawdzają, czy podany klucz jest zgodny z wymaganym. Jeśli te polecenia zadziałają, ostatnie polecenie zainstaluje program uruchamiający Repo.

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

    repo version

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

    repo launcher version 2.45

Ustaw alternatywny katalog wyjściowy

Domyślnie dane wyjściowe każdej kompilacji są przechowywane w podkatalogu out/ odpowiadającego 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?