Aktualizacja 29-05-2024:
Napisałem nowy tekst wyjaśniający, jak obchodzić zabezpieczenia Portfela Google, bo sposób podany w tym wpisie przestał działać.
Zacznę od małego wprowadzenia, jak chcecie je pominąć, to proszę bardzo.
Od zeszłego tygodnia LineageOS 20 w pełni działa na telefonach Motoroli Moto G7. W końcu.
Gdy zaraz po wyjściu pierwszych buildów wersji 20 rzuciłem się do aktualizacji z 19.1, okazało się, że miały spore problemy z robieniem zdjęć. Aplikacje aparatów wyłączały się, zawieszały, lagowały i trzeba było kilkukrotnego odpalenia, żeby dało się zrobić zdjęcie.
Po kilku długich miesiącach problem z aparatami został rozwiązany, ale za to zniknęła obsługa NFC. To dla mnie 1/3 funkcjonalności telefonu (obok robienia zdjęć i szukania drogi na mapie), więc gdy ktoś pytał o instalację LineageOS na tym modelu, musiałem odradzić.
Po ponad pół roku i kilkukrotnym moim marudzeniu na forum XDA, problem z NFC został rozwiązany.

Wreszcie więc mogę powiedzieć: Android 13 działa na Moto G7, która w momencie wyjścia oficjalnie miała Androida 9, z późniejszą aktualizacją do 10.
***
Jeżeli przez przestarzały system trzymacie taką Motorolkę w szufladzie, to może warto dać jej drugie życie dzięki wgraniu nowego oprogramowania? To ciągle przyzwoity sprzęt, nadający się do codziennego używania.
Cały proces raczej będzie wyglądał podobnie na innych telefonach, o ile są wspierane przez LineageOS. Pewnie odblokowanie bootloadera będzie przebiegać inaczej, ale sama instalacja nowego systemu nie powinna się różnić za bardzo.
Jeżeli zdecydujecie się na ten zabieg, to muszę uprzedzić, że robicie to na własną odpowiedzialność i tracicie w ten sposób gwarancję (która i tak pewnie wygasła, skoro to model z 2019). Możecie w ten sposób zablokować sobie telefon i będzie potrzeba dłubania, żeby go zreanimować (a czasem może się nie dać).
Już w trakcie odblokowania bootloadera zawartość telefonu zostanie wyczyszczona, więc zróbcie wcześniej kopię wszystkich danych, których nie chcecie stracić.
Kolejnym problemem jest fakt, że niektóre aplikacje (np. bankowe, Portfel Google, mObywatel) wykrywają, że telefon jest zrootowany i odmawiają pracy. Żeby to obejść, trzeba zainstalować ustrojstwo o nazwie Magisk, które pozwala m.in. na ukrycie roota przed wybranymi aplikacjami.
To tyle ostrzeżeń, pora na mini poradnik.
Narzędzia
Podstawowym narzędzie, które jest wykorzystywane na wszystkich etapach, o których piszę to Android SDK Platform-Tools. Można je zainstalować razem z całym pakietem Android Studio, albo wybrać wersję z samymi narzędziami obsługiwanymi z linii poleceń. Najprostszą opcją jest jednak instalacja pakietu z repozytorium waszej dystrybucji, w openSUSE to pakiet android-tools
.
Najważniejsze dla tego poradnika polecenia, jakie dostaniecie po instalacji to adb
, czyli Android Debug Bridge oraz fastboot
. Żeby móc używać ich z telefonem, należy na nim włączyć Opcje programisty (w Ustawienia -> System), a w nich uruchomić Debugowanie USB.
Po tym możecie podłączyć telefon do komputera kablem USB i sprawdzić, czy jest widoczny poleceniem adb devices
, które powinno zwrócić wynik podobny do tego:
$ adb devices
List of devices attached
ZY225F39VV device
Odblokowanie bootloadera
Wgranie nieoficjalnego systemu trzeba zacząć od zdjęcia blokady bootloadera. Motorola przygotowała specjalną stronę z informacjami jak to zrobić, niestety wymagającą zalogowania.
W skrócie: uruchamiamy telefon w trybie fastboot
(trzeba przy uruchamianiu przytrzymać jednocześnie power
i volume down
), podłączamy telefon kablem USB do komputera i wydajemy polecenie fastboot oem get_unlock_data
. Powinno zwrócić coś w rodzaju
(bootloader) 0A40040192024205#4C4D3556313230
(bootloader) 30373731363031303332323239#BD00
(bootloader) 8A672BA4746C2CE02328A2AC0C39F95
(bootloader) 1A3E5#1F53280002000000000000000
(bootloader) 0000000
Wynik polecenia trzeba wyczyścić ze spacji, enterów i „(bootloader)”. W przypadku powyższego przykładu ten ciąg będzie wyglądać tak:
0A40040192024205#4C4D355631323030373731363031303332323239#BD008A672BA4746C2CE02328A2AC0C39F951A3E5#1F532800020000000000000000000000
Tak oczyszczony ciąg wklejamy na stronie Motoroli w pole przy przycisku „Can my device be unlocked?”.
Kod dla mojego G7 zwracał informację „Your device does not qualify for bootloader unlocking”, mimo że wiedziałem, że ten model na pewno da się odblokować. Jeżeli wam też się to przydarzy, to polecam zadanie pytania na forum Motoroli. Jedna z osób zapewniających tam support przysłała mi kod odblokowujący mój telefon w DM (normalnie ze strony przychodzi mailem) i mogłem odblokować bootloader.
Uwaga: Chwila przed wydaniem poniższego polecenia to ostatnia szansa na zrobienie kopii danych z telefonu!
Żeby odblokowac bootloader trzeba znowu odpalić telefon w trybie fastboot, podłączyć kablem do komputera i wydać polecenie fastboot oem unlock KLUCZ_ODBLOKOWANIA
.
Po odblokowaniu dostaniecie potwierdzenie, a telefon się zrestartuje i przy uruchomieniu pokaże ostrzeżenie o odblokowanym bootloaderze. Jak się pozbyć tego ostrzeżenia pokażę na końcu wpisu.
Instalacja systemu
Ekipa LineageOS przygotowała bardzo dokładną instrukcję instalacji systemu na telefonie i nie ma sensu, żebym przepisywał to samo, tyle że po polsku. Napiszę więc tylko pokrótce, jakie są kolejne kroki.
Przed rozpoczęciem instalacji, zdecydowanie warto całą instrukcję przeczytać w całości przynajmniej raz. A potem przygotować pliki: zipa z LineageOS i przypisany mu obraz recovery (boot.img
).

Przed rozpoczęciem możecie jeszcze zajrzeć na forum XDA poświęcone LineageOS na Moto G7, żeby sprawdzić, czy nikt nie zgłosił nowych bugów.
Jeżeli nie planujemy odgooglowania telefonu, będziemy potrzebować też pakietu Google Apps (aka Gapps). Ja korzystałem z polecanego przez LineageOS pakietu MindTheGapps. Przy ściąganiu trzeba wybrać wersję dla Androida 13 (LineageOS 20) i procesorów arm64.
Ostatni plik do przygotowania służy do ogarnięcia zawartości partycji z firmware. Odnośnik do niego znajduje się w sekcji Ensuring all firmware partitions are consistent.
Samą instalację zaczyna się od wgrania nowego recovery. Potem ogarnięcie partycji, właściwa instalacja LineageOS oraz Gapps i wreszcie reboot do systemu. W tym momencie trzeba uzbroić się w cierpliwość, pierwsze uruchomienie może trochę potrwać.

Gdy się w końcu odpali, możemy się cieszyć świeżym* Androidem na swoim starym telefonie. W porównaniu ze stockowym 10 różnica w wyglądzie i wygodzie używania jest spora.
*Wiem, że wyszła już czternastka, ale nie ma jeszcze wydań LineageOS na niej opartych.
Ukrywanie roota
Z tym cieszeniem, to się jednak nie rozpędzajmy, bo do pełni funkcjonalności telefonu potrzeba jeszcze ukrywania przed niektórymi aplikacjami dostępu do konta root. Twórcy np. Pokemon Go, mObywatela i oficjalnych apek banków nie pozwalają na ich uruchamianie na zrootowanych telefonach, że ze względu na możliwość oszukiwania w grze lub rzekome zagrożenia dla bezpieczeństwa użytkownika.
Żeby to obejść, potrzebujemy Magiska, który również ma dokładną instrukcję instalacji.
Na początek pobieramy z GitHuba plik apk i go instalujemy. Będziemy na telefonie potrzebować również pliku boot.img
, którego używaliśmy do wgrania recovery LineageOS.
Po odpaleniu apki klikamy „Install” i wybieramy „Recovery Mode”. Potem wskazujemy plik boot.img
, który ma zostać spatchowany przez Magiska.
Po skończeniu patchowania („All done!”) pobieramy gotowy plik do komputera poleceniem adb pull /sdcard/Download/magisk_patched_COŚTAM.img
, rebootujemy do trybu fastboot i flashujemy obraz fastboot flash boot magisk_patched_COŚTAM.img
.
Startujemy system i odpalamy ponownie apkę Magiska, która może zaproponować ponowną instalację i ukrycie samej aplikacji przez utworzenie dla niej innego skrótu (np. Settings zamiast Magisk).
Po instalacji i reboocie w ustawieniach Magiska (zębatka na górze Strony głównej) włączamy Zygisk. Potem pacamy Ustaw Listę Odmów poniżej, gdzie zaznaczamy aplikacje, przed którymi chcemy schować roota.



Instalacja samego Magiska to nie wszystko, trzeba jeszcze doinstalować moduł Universal SafetyNet Fix. Ściągamy najnowszą wersję, po czym w sekcji Moduły w aplikacji Magiska klikamy Zainstaluj z pamięci i wskazujemy plik modułu.

Teoretycznie powinno wystarczyć, ale gdy kilka lat temu instalowałem Magiska po raz pierwszy, potrzebny był jeszcze dodatkowy krok – nierozwijany już moduł MagiskHidePropsConf, który pozwala na zmianę tego jak przedstawia się telefon. Nie mam pojęcia czy jeszcze działa, ani czy jeszcze jest potrzebny.
Do sprawdzenia, czy się udało, można użyć np. aplikacji YASNAC – Yet Another SafetyNet Attestation Checker, z której zrzut podczepiam po prawej, albo po prostu spróbować odpalić problematyczną apkę, np. mObywatela.
Jeszcze jedno: mimo wrzucenia Sklepu Google na Listę Odmów nie udało mi się zainstalować z niego apki Netfliksa i po wyszukiwaniu w sklepie dostaję tylko komunikat „Szukasz aplikacji Netflix? Ta aplikacja nie będzie działać na Twoim urządzeniu”. Na szczęście da się to obejść w łatwy sposób, przez zainstalowanie pliku apk z APKMirror.
Grafika bootowania
Od momentu zdjęcia blokady bootloadera, telefon zamiast logo Motoroli przy starcie przez pięć sekund pokazuje ostrzeżenie o tym, że urządzenie zostało odblokowane i nie można mu ufać.

Można je ignorować, albo wgrać na nowo motorolowe logo. W wątku na forum XDA znajdziecie pliki do pobrania dla każdego z wariantów Moto G7 (zwykła, power i play). Wgrywamy je po podłączeniu do komputera telefonu w trybie fastboot poleceniami
fastboot flash logo_a plik_z_logo.bin
fastboot flash logo_b plik_z_logo.bin
Po flashowaniu i restarcie opóźnienie dalej będzie obecne, ale zamiast ostrzeżenia pokaże się grafika z logo Motoroli.

Na zakończenie
Zanim życzę wam powodzenia i dobrej zabawy z waszym odnowionym telefonem, dorzucę słowo ostrzeżenia.

Jeżeli będziecie chcieli skorzystać z aktualizatora wbudowanego w LineageOS, co tydzień proponującego nową wersję, miejcie zakładkę do instrukcji instalacji Magiska pod ręką. Każdy update systemu wywala Magiska i trzeba na nowo patchować oraz instalować boot.img
.
Są podobno sztuczki na obejście tego (jakiś fork Magiska bodajże), ale jeszcze ich nie sprawdzałem. Przy aktualizowaniu raz w miesiącu (a czasem nawet rzadziej) mogę się pobawić z ponownym wgrywaniem, tym bardziej że mam polecenia w historii powłoki.
Dodaj komentarz