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:
Utwórz katalog roboczy i przejdź do niego:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
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:
- Rozpakuj archiwum.
- Uruchom dołączony skrypt powłoki do samodzielnego rozpakowywania z katalogu /.
- 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:
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-----
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
Po zaimportowaniu kluczy możesz zweryfikować dowolny tag, uruchamiając to polecenie:
$ git tag -v TAG_NAME