jeśli znasz rootowanie telefonu z Androidem lub pobieranie niestandardowych ROM, takich jak bardzo popularny CyanogenMod lub jego następca Lineage OS, być może zastanawiałeś się – jak ludzie budują te ROM? Ile dokładnie pracy wkłada się w opracowanie spersonalizowanej pamięci ROM?
ten przewodnik przeprowadzi Cię przez podstawy tworzenia własnego niestandardowego Androida ROM. Należy zauważyć, że jest to ogromne przedsięwzięcie – jeśli nie masz żadnego doświadczenia w kodowaniu lub wygłupianiu się w Terminalach Linuksowych, możesz chcieć zdobyć trochę wiedzy przed zanurzeniem się w tym głębokim końcu. Ale jeśli masz przynajmniej podstawowe pojęcie o tych rzeczach, postaram się wyjaśnić rzeczy tak prosto, jak to możliwe, abyś mógł podążać za nimi.
zasadniczo to, co robimy, to pobieranie surowego kodu źródłowego Androida (AOSP) i modyfikowanie go zgodnie z naszymi upodobaniami. Ponieważ istnieje tak wiele źródeł do wyboru dla różnych urządzeń, ten przewodnik będzie po prostu odwoływać się do głównego źródła znanego jako AOSP (Android Open Source Project).
rzecz w AOSP jest taka, że czysty kod źródłowy nie zawiera właściwości sprzętowych specyficznych dla urządzenia. W kategoriach laika, sprzęt, taki jak aparat i GPU nie będzie działać „po wyjęciu z pudełka” podczas opracowywania z AOSP. W rzeczywistości Twoje urządzenie nie uruchomi się nawet bez tych sprzętowych plików binarnych.
jeśli tworzysz dla telefonu marki Google (Pixel, Nexus itp.), Możesz znaleźć binaria sprzętowe bezpośrednio z Google, a ten przewodnik przeprowadzi Cię przez uzyskanie i budowanie ich w ROM. Jeśli jednak opracowujesz ROM do markowego telefonu (Sony, Samsung itp.) … cóż, na zdrowie, ponieważ jesteś na przejażdżkę.
niektórzy producenci mają swoje własne projekty open-source lub udostępniają narzędzia programistyczne dla przyszłych programistów, podczas gdy inni producenci utrzymują ścisłą kontrolę nad swoimi zastrzeżonymi kodami. Oto krótka lista projektów open-source od bardziej popularnych producentów:
Samsung Open Source Release Center
Sony Developer World
Lenovo Support
Huawei Open Source Release Center
Motorola Developers
Mając to na uwadze, kontynuujmy przy założeniu, że budujemy ROM dla najbardziej podstawowego, waniliowego Androida, dla urządzenia Google Pixel. Dzięki tej wiedzy będziesz w stanie samodzielnie rozwijać swoją działalność i zacząć opracowywać niestandardowe wersje pamięci ROM poszczególnych producentów.
wymagania dla tego przewodnika:
- projekt Android Open Source
- telefon Pixel XL lub emulator Androida dla Linuksa
- 64-bitowy System Operacyjny Linux – Ubuntu lub Linux Mint to najbardziej przyjazne dla początkujących dystrybucje, podczas gdy BBQLinux został opracowany specjalnie z myślą o programistach Androida.
- Python
- 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ć nowy ROM na emulatorze Androida przed flashowaniem go na urządzeniu. Moim ulubionym jest Genymotion, więc przeprowadzę Cię przez instalację tego konkretnego emulatora. Możesz jednak również sprawdzić ten przewodnik „najlepsze emulatory Androida”, ponieważ większość z nich ma również kompatybilność z Linuksem.
przejdź do witryny Genymotion, Zarejestruj konto, zweryfikuj je za pośrednictwem poczty e-mail i pobierz plik wykonywalny na pulpit Linuksa.
teraz otwórz terminal Linux i wpisz:
Chmod + x genymotion-xxxxx.bin (zastąp xxxx numerem wersji w nazwie pliku)
./ genymotion-xxxxxxbin
Naciśnij Y, aby utworzyć katalog Genymotion. Teraz wpisz w terminalu:
cd genymotion &&./ genymotion
teraz poprosi Cię o rozpoczęcie procesu instalacji, więc po prostu kliknij Dalej, aż dojdziesz do okna Dodaj urządzenia wirtualne. Wybierz „Pixel XL” w obszarze Model urządzenia opcja, a następnie zakończyć instalację. Możesz przetestować urządzenie wirtualne, jeśli chcesz, będzie to w zasadzie jak posiadanie telefonu Pixel XL na pulpicie.
skonfigurujmy teraz Pythona:
$ apt-get install python
teraz musimy skonfigurować Java Development Kit na twoim komputerze z Linuksem. 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 51-android.plik txt, który umożliwia ww. Urządzenie USB dostęp. Otwórz .plik txt i zmodyfikuj go, aby zawierał nazwę Użytkownika Linuksa, 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 automatycznie zaczęły obowiązywać.
pobieranie Źródła Androida
AOSP jest hostowany na gitu, więc użyjemy narzędzia o nazwie Repo do komunikacji z Gitem.
najpierw musimy skonfigurować 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:
$ curlhttps://storage.googleapis.com/git-repo-downloads/repo> ~/bin/repo
$ chmod a+x ~/bin/repo
po zainstalowaniu Repo musimy teraz utworzyć pusty katalog, aby przechowywać Twoje pliki robocze. Wpisz to w linuksowym terminalu:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
teraz skonfigurujemy Git z Twoim imieniem i adresem e – mail-użyj adresu Gmaila, który regularnie sprawdzasz, w przeciwnym razie nie będziesz mógł używać narzędzia do przeglądania kodu Gerrit.
$ Git config –użytkownik globalny.name „Your Name”
$ Git config –użytkownik globalny.e-mail [email protected]
teraz powiemy Repo, aby wyciągnął najnowszy manifest główny AOSP z Gita:
$ repo init-u https://android.googlesource.com/platform/manifest
jeśli zakończy się pomyślnie, otrzymasz komunikat, że Repo zostało zainicjowane w Twoim katalogu roboczym. Znajdziesz też”.repo ” katalog wewnątrz katalogu klienta. Teraz pobierzemy drzewo źródłowe Androida z:
$ repo sync
budowanie Źródła Androida
to jest miejsce, w którym wchodzą do gry sprzętowe pliki binarne wymienione na początku tego przewodnika. Przejdźmy do strony sterowników AOSP i pobierz pliki binarne Pixel XL dla Androida 7.1.0 (NDE63P). Chcesz pobrać zarówno obraz dostawcy, jak i komponenty sprzętowe. Są to skompresowane archiwa, więc rozpakuj je na pulpicie i uruchom samorozpakowujący się skrypt z folderu głównego. Wybierz, aby zainstalować pliki binarne w katalogu głównym WORKING_DIRECTORY, który stworzyliśmy wcześniej.
Teraz wpisz w swoim terminalu Linux:
$ make clobber
$ source build/envsetup.sh
teraz wybierzemy cel do zbudowania, więc wpisz:
$ lunch aosp_marlin-userdebug
$ setpaths
$ make –j4
tam, mamy teraz „zbudowany” Android ROM ze źródła. Przetestujmy to w emulatorze, wpisując w terminalu:
$ emulator
więc Pobawmy się trochę w emulatorze. Jak widać, czysto waniliowe doświadczenie Androida jest dość minimalne i dlatego producenci dostosowują AOSP do swoich potrzeb. Możesz więc flashować ten ROM, który właśnie zbudowaliśmy na Twoim urządzeniu, jeśli chcesz, ale bez dodawania żadnych ulepszeń, czysto waniliowe doświadczenie z Androidem byłoby naprawdę bardzo nudne.
więc to, co producenci zazwyczaj robią z AOSP, to rozwidlanie go, dodanie własnych zastrzeżonych plików binarnych, dostosowanie interfejsu użytkownika, dodanie logo rozruchowego itp. Producent w zasadzie po prostu pomalować magazyn Android ROM, i tak, że będzie następnym celem, jak również.
stay tuned, jako druga część tego przewodnika będzie przejść przez dodawanie czcionek, motywów i animacji rozruchu do ROM!