Pobierz wersję źródłową Androida

Kod źródłowy Androida znajduje się w kolekcji repozytoriów Git hostowanych przez Google. Repozytorium Git zawiera całą historię źródła Androida, w tym zmiany w źródle i datę ich wprowadzenia. Na tej stronie dowiesz się, jak pobrać źródło.

Inicjowanie klienta repozytorium

Skonfiguruj klienta, aby miał dostęp do repozytorium źródłowego Androida:

  1. Utwórz katalog roboczy i przejdź do niego:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
  2. Inicjuj katalog roboczy w ramach kontroli wersji:

    repo init --partial-clone -b main -u https://android.googlesource.com/platform/manifest

    Opcja -b służy do identyfikowania gałęzi, którą inicjujesz. Jeśli wartość -b nie jest podana, repo init domyślnie przyjmuje gałąź główną. Listę gałęzi i nazw tagów znajdziesz w artykule Tagi i kompilacje kodu źródłowego.

    Opcja -u jest wymagana i służy do określenia pliku manifestu, czyli pliku XML, który określa, gdzie w katalogu roboczym znajdują się różne projekty Git w źródle Androida. W tym przykładzie nazwa pliku manifestu nie została określona, więc polecenie używa domyślnego pliku manifestu (default.xml).

    Dane wyjściowe powinny zawierać komunikat:

    repo has been initialized in path_to_working_directory

Informacje o formacie pliku manifestu znajdziesz w artykule Format pliku manifestu repo.

Listę wszystkich poleceń Repo znajdziesz w przewodniku po poleceniach Repo.

Pobieranie kodu źródłowego Androida

Aby pobrać drzewo źródłowe Androida do katalogu roboczego, uruchom to polecenie:

$ repo sync -c -j8

Argument -c instruuje Repo, aby pobrać bieżącą gałąź pliku manifestu z serwera. Polecenie -j8 dzieli synchronizację na wątki, aby przyspieszyć jej realizację.

Ta operacja powinna potrwać nieco ponad godzinę.

Jeśli podczas pobierania wystąpią problemy, zapoznaj się z artykułem Rozwiązywanie problemów z synchronizacją i ich usuwanie.

Pobieranie zastrzeżonych plików binarnych

AOSP może działać bezpośrednio na emulatorach Cuttlefish, ale nie można go używać na sprzęcie bez dodatkowych bibliotek firmowych. Aby uzyskać te pliki binarne:

  • Jeśli pobierasz gałąź main i kompilujesz ją na urządzeniu Nexus lub Pixel, pobierz najnowsze pliki binarne ze strony z podglądem plików binarnych.
  • Jeśli pobierasz i kompilujesz gałąź main oraz kompilujesz ją na własne urządzenie, musisz podać pliki binarne dla tego urządzenia.
  • Jeśli pobierasz i tworzysz oznaczoną gałąź inną niż główna oraz budujesz ją na urządzeniu Nexus lub Pixel, pobierz pliki binarne dla tego urządzenia ze strony Pliki binarne dla urządzeń Nexus i Pixel.

Wyodrębnianie zastrzeżonych plików binarnych

Każdy zestaw plików binarnych jest skompresowanym archiwum, który wyodrębnia się samodzielnie. Aby wyodrębnić te pliki binarne i umieścić je we właściwym miejscu w drzewie źródłowym:

  1. Rozpakuj archiwum.
  2. Uruchom dołączony skrypt powłoki do samodzielnego rozpakowywania z katalogu /.
  3. Zaakceptuj warunki załączonej umowy licencyjnej. Pliki binarne i pasujące do nich pliki poleceń są instalowane w hierarchii vendor/ drzewa źródłowego.

(opcjonalnie) Weryfikacja wiarygodności kodu

Jeśli masz wątpliwości co do autentyczności kodu źródłowego, np. czy pochodzi on od Google, możesz sprawdzić tagi git dla gałęzi. Aby zweryfikować tagi Git:

  1. Skopiuj ten blok klucza i wklej go do pliku tekstowego, takiego jak keyfile.asc.

    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: GnuPG v1.4.2.2 (GNU/Linux)
    
    mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
    lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
    8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
    u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
    wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
    /HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
    jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
    MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
    b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
    aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
    cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
    gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
    2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
    QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
    hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
    C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
    LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+
    OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
    pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
    KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
    N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
    vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
    G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
    hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
    EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
    =Wi5D
    -----END PGP PUBLIC KEY BLOCK-----
    
  2. Aby wprowadzić klucz publiczny do bazy danych kluczy GnuPG, uruchom podane niżej polecenie. Klucz służy do podpisywania adnotowanych tagów, które reprezentują wersje.

    $ gpg --import keyfile.asc
    
  3. Po zaimportowaniu kluczy możesz zweryfikować dowolny tag, uruchamiając to polecenie:

    $ git tag -v TAG_NAME