Jak zbudować niestandardową pamięć ROM z projektu Android Open Source

źródło znany jako AOSP (Android Open Source Project) .



AOSP to czysty kod źródłowy nie uwzględnia specyficzne dla urządzenia właściwości sprzętowe. Mówiąc prościej, sprzęt taki jak aparat i procesor graficzny nie będzie działał „po wyjęciu z pudełka” podczas programowania z AOSP. W rzeczywistości urządzenie nie uruchomi się nawet bez tych sprzętowych plików binarnych.

Jeśli tworzysz oprogramowanie na telefon marki Google (Pixel, Nexus itp.), Możesz znaleźć sprzętowe pliki binarne bezpośrednio od Google , a ten przewodnik przeprowadzi Cię przez proces uzyskiwania i tworzenia ich w pamięci ROM. Jeśli jednak opracowujesz ROM dla markowego telefonu (Sony, Samsung itp.)… Cóż, błogosław swoje serce, bo masz ochotę na przejażdżkę.



Trochę producenci mają własne projekty open source lub udostępniają narzędzia programistyczne dla potencjalnych programistów, podczas gdy inni producenci ściśle trzymają się swoich zastrzeżonych kodów. Oto krótka lista projektów open source od bardziej popularnych producentów:



Samsung Open Source Release Center
Świat programistów Sony
Wsparcie Lenovo
Centrum wydań oprogramowania Huawei Open Source
Programiści Motoroli



Mając to na uwadze, kontynuujmy przy założeniu, że tworzymy ROM dla najbardziej podstawowego, waniliowego systemu Android dla urządzenia Google Pixel. Mając tę ​​wiedzę pod paskiem, będziesz w stanie samodzielnie rozgałęzić się i rozpocząć opracowywanie niestandardowych wersji ROM-ów określonego producenta.

Wymagania dotyczące tego przewodnika:

  • Android Open Source Project
  • Telefon Pixel XL lub emulator Androida dla systemu Linux
  • 64-bitowy system operacyjny Linux - Ubuntu lub Linux Mint są dystrybucjami najbardziej przyjaznymi dla początkujących BBQLinux został opracowany specjalnie z myślą o programistach Androida.
  • Pyton
  • Mocny komputer (kompilacja kodu zajmuje dużo pamięci i miejsca!)

Konfigurowanie środowiska kompilacji

Zacznijmy od skonfigurowania emulatora Androida na komputerze z systemem Linux. Niezależnie od tego, czy masz urządzenie Google Pixel XL, zawsze najbezpieczniej jest wypróbować nową pamięć ROM na emulatorze Androida przed flashowanie go na Twoje urządzenie. Moim ulubionym jest Genymotion, więc przeprowadzę Cię przez proces instalacji tego konkretnego emulatora. Możesz jednak również zapoznać się z tym przewodnikiem „ Najlepsze emulatory Androida ”, Ponieważ większość z nich jest również zgodna z systemem Linux.

Udaj się do Witryna internetowa Genymotion , zarejestruj konto, zweryfikuj je przez e-mail i pobierz plik wykonywalny na pulpit systemu Linux.



Teraz otwórz terminal Linux i wpisz:

Chmod + x genymotion-xxxxx.bin (zastąp xxxx numerem wersji w nazwie pliku)
./genymotion-xxxxxx.bin

naciśnij I aby utworzyć katalog Genymotion. Teraz wpisz terminal:

cd genymotion && ./genymotion

Teraz poprosi Cię o rozpoczęcie procesu instalacji, więc po prostu klikaj Dalej, aż dojdziesz do okna Dodaj urządzenia wirtualne. Wybierz „Pixel XL” w opcji Model urządzenia, a następnie zakończ instalację. Możesz przetestować urządzenie wirtualne, jeśli chcesz, w zasadzie będzie to tak, jak posiadanie telefonu Pixel XL na pulpicie.

Skonfigurujmy teraz Pythona:

$ apt-get install python

Teraz musimy skonfigurować zestaw Java Development Kit na twoim komputerze z systemem Linux. Otwórz terminal Linux i wpisz następujące polecenia:

$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

Teraz musisz skonfigurować system Linux, aby umożliwić dostęp do urządzenia USB. Uruchom następujący kod w terminalu Linux:

Spowoduje to pobranie wymaganego pliku 51-android.txt, który umożliwia dostęp do wyżej wymienionego urządzenia USB. Otwórz plik .txt i zmodyfikuj go, aby zawierał swoją nazwę użytkownika systemu Linux, a następnie umieść plik .txt w następującej lokalizacji: (jako użytkownik root ). Teraz podłącz urządzenie do komputera przez USB, aby nowe reguły zaczęły obowiązywać automatycznie.

Pobieranie źródła Androida

AOSP jest hostowany przez Git, więc zamierzamy używać narzędzia o nazwie Repo do komunikacji z Git.

Najpierw musimy ustawić folder / bin w twoim katalogu domowym. Wpisz następujące polecenia w terminalu Linux:

$ mkdir ~ / bin
$ PATH = ~ / bin: $ PATH

Teraz pobierzemy narzędzie Repo, więc wpisz w terminalu Linux:

$ curl https://storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo
$ chmod a + x ~ / bin / repo

Po zainstalowaniu Repo musimy teraz utworzyć pusty katalog do przechowywania plików roboczych. Więc wpisz to w terminalu Linux:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

Teraz skonfigurujemy Git, używając Twojego imienia i nazwiska oraz adresu e-mail - użyj adresu Gmail, który regularnie sprawdzasz , w przeciwnym razie nie będziesz mógł korzystać z narzędzia Gerrit do przeglądania kodu.

$ git config –global user.name „Twoje imię”
$ git config –global user.email
ty@gmail.com

Teraz powiemy Repo, aby pobrać najnowszy główny manifest AOSP z Git:

$ repo init -u https://android.googlesource.com/platform/manifest

Jeśli to się powiedzie, otrzymasz wiadomość, że Repo zostało zainicjowane w twoim katalogu roboczym. Znajdziesz również „ .repo ” katalogu wewnątrz katalogu klienta. Więc teraz pobierzemy drzewo źródłowe Androida z:

$ repo sync

Tworzenie źródła Androida

W tym miejscu do gry wchodzą sprzętowe pliki binarne wymienione na początku tego przewodnika. Przejdźmy do Sterowniki AOSP i pobierz pliki binarne Pixel XL dla Androida 7.1.0 (NDE63P). Chcesz pobrać zarówno obraz dostawcy, jak i składniki sprzętowe. Są to skompresowane archiwa, więc wyodrębnij je na pulpit i uruchom samorozpakowujący się skrypt z folderu głównego. Wybierz instalację plików binarnych w katalogu głównym WORKING_DIRECTORY, który utworzyliśmy wcześniej.

Teraz wpisz w terminalu Linux:

$ make clobber
$ source build / envsetup.sh

Teraz wybierzemy cel do zbudowania, więc wpisz:

$ lunch aosp_marlin-userdebug
$ setpaths
$ make –j4

Tam właśnie „zbudowaliśmy” Android ROM ze źródła. Przetestujmy więc to w emulatorze, wpisując w terminalu:

$ emulator

Więc pobaw się trochę w emulatorze. Jak widać, czysto waniliowe wrażenia z Androida są dość minimalne i dlatego producenci dostosowują AOSP do swoich potrzeb. Więc ty mógłby sflashuj tę pamięć ROM, którą właśnie zbudowaliśmy na twoim urządzeniu, jeśli chcesz, ale bez dodawania żadnych ulepszeń czysto waniliowe wrażenia z Androida byłyby naprawdę bardzo nudne.

Więc to, co producenci zwykle robią z AOSP, to rozwidlanie go, dodawanie własnych zastrzeżonych plików binarnych, dostosowywanie interfejsu użytkownika, dodawanie logo rozruchowego itp. Producent w zasadzie po prostu zamalował pamięć ROM z Androidem, więc będzie to również twój następny cel .

Bądź na bieżąco, ponieważ druga część tego przewodnika zawiera informacje o dodawaniu czcionek, motywów i animacji rozruchowej do pamięci ROM!

5 minut czytania