Co nieco o dodatkach oraz modyfikacjach Androida, czyli co to recovery, Magisk, customROMy i takie tam

Swego czasu bardzo dużo pisało / mówiło się o różnorakich modyfikacjach Androida, które pozwalały rozwinąć skrzydła posiadanym przez nas konstrukcjom. Czy to poprzez wycięcie zbędnych usług, a przez to odciążenie pamięci operacyjnej i procesora, czy też dzięki ciekawym i ułatwiającym codzienne czynności dodatkom. Na przestrzeni kilku ostatnich lat temat ten lekko przycichł (przynajmniej można odnieść takie wrażenie przeglądając portale – nie ma klików, nie ma tego typu tekstów), co nie oznacza, że za kurtyną nic się nie dzieje. Wszelkiej maści moderzy i pasjonaci wciąż są nad wyraz aktywni, a społeczność XDA-Developers jest silna jak zawsze. 

Android w swojej obecnej formie jest na tyle dojrzały, że producenci implementujący własne dodatki mają utrudnione zadanie (w sensie trudniej im stworzyć coś nowego, a jednocześnie nie przekombinowanego), a przy tym jego stabilność, responsywność i szybkość jest całkowicie zadowalająca, choć do ideału wciąż trochę brakuje. Patrząc na to wszystko można by oczekiwać, że modyfikacje i przeróbki nie mają obecnie ŻADNEJ racji bytu, lecz nie jest to prawdą. Jasne, typowy zjadacz chleba nie będzie sobie tym zaprzątać głowy (nawet w czasach bylejakości działania Androida tego nie robił, więc teraz ani tyle), lecz przy odrobinie chęci i on mógłby znaleźć coś interesującego. 

W końcu nie jest tak, że twór Google jest już kompletny i niczego nie można w nim poprawić – uważam, że nieoderwalną cechą oprogramowania jest jego ciągły rozwój. Zawsze znajdzie się jakieś niedociągnięcie, a poza tym, dużą rolę odgrywają tutaj panujące na rynku trendy, do których wypada się dostosować (lub przynajmniej sprawiać takowe wrażenie). Poza tym, same metody tworzenia, dopasowywania, rozprowadzania i instalowania modyfikacji uległy znacznemu uproszczeniu (takie odnoszę wrażenie), dzięki czemu nie potrzeba posiadać jakiejś tajemnej wiedzy by z nich skorzystać. Na pierwszy rzut oka faktycznie może to przytłaczać (niekiedy nawet bardzo, gdyż niektórzy producenci lubią mocno uprzykrzać życie), ale nie ma w tym niczego trudnego i strasznego (o ile twórca danej modyfikacji nie spartoli sprawy, ale to już inna para kaloszy). 

WAŻNE

Wykonywanie poniższych czynności po raz pierwszy związane jest z całkowitym „wyczyszczeniem” urządzenia. Jeśli więc macie na nim jakieś niezbędne Wam dane, skopiujcie je zawczasu. Poza tym, niniejszy wpis ma charakter wyłącznie poglądowy i nie jest stworzony pod kątem konkretnego modelu. Postaram się wspomnieć o wszystkich możliwościach, niemniej, zależnie od smartphonu skorzystamy tylko z niektórych. Do niczego nie namawiam, przedstawiam jedynie co i jak wygląda – jeśli zdecydujecie się na cokolwiek, to miejcie na uwadze, że możecie uszkodzić swój sprzęt, jeśli zaczniecie zbytnio kombinować. Ani ja, ani twórca modyfikacji nie odpowiada za ewentualne szkody. 

Więc od czego zacząć?

Jeśli etap ten wykonujemy przed nabyciem urządzenia, to warto rozejrzeć się na podlinkowanym wcześniej forum. Wszystko przez to, że niektóre sprzęty łatwiej poddają się modyfikacji, inne są bardziej oporne, a niekiedy jest to całkowicie niemożliwe (patrz Huawei). Gdy już sprawdzimy, czy wymarzony przez nas model posiada odpowiednie wsparcie społeczności (regularnie rozwijane modyfikacje oraz zmodyfikowana partycja przywracania) lub operację chcemy wykonać na posiadanym urządzeniu, to wypada wejść ciut głębiej w poszczególne tematy.

Obsługa ADB oraz Fastboot

Zanim przejdziemy do „zabawy”, należy stosownie przygotować PC. Pobrać wymagane sterowniki, wspomagające programy (o ile takowe są niezbędne) no i oczywiście plik o nazwie „Minimal ADB and Fastboot”. Pierwsze dwie rzeczy zależne są od smartphonu, więc nie będę się nad nimi rozwodzić – konkrety znajdziecie w tematach dotyczących Waszych telefonów. Jeśli zaś chodzi o powyższe narzędzie, to użyjemy go do odblokowania programu startowego, a następnie wgrania zmodyfikowanej partycji przywracania.

Odblokowanie bootloadera

By móc podmienić oryginalną partycję przywracania (ang. recovery), na umożliwiającą wgranie różnorakich modyfikacji, musimy posiadać odblokowany program rozruchowy (ang. bootloader). Zależnie od producenta dokonamy tego w nieco inny sposób – albo poprzez zewnętrzny program (oficjalny lub nie) albo przez konsolę (narzędzie z poprzedniego akapitu). Przykładowo, w przypadku urządzeń OnePlus wystarczy wpisać jedną komendę („fastboot oem unlock”), Xiaomi wymaga już pobrania dedykowanej aplikacji (MiFlash Unlock), a takiego Huawei od pewnego czasu nie ruszymy wcale.

Procedura ta wykonywana jest ze specjalnego trybu, nazwanego FASTBOOT. Zazwyczaj (zawsze?) przechodzi się do niego kombinacją klawiszy (w Xiaomi przycisk zwiększenia głośności i zasilania) wykonywaną na całkowicie wyłączonym urządzeniu. Potem wystarczy już tylko podpiąć telefon do komputera poprzez kabel USB i uruchomić jedno z narzędzi.

Pisałem o tym na początku, lecz zrobię to ponownie – operacja ta wiąże się z wymazaniem wszystkich danych zapisanych w pamięci. Jeśli macie pośród nich coś ważnego, skopiujcie je wcześniej. 

Wgranie zmodyfikowanej partycji przywracania

Po wykonaniu powyższego kroku możemy przejść do wgrania tzw. recovery. Najpopularniejszy projekt pobierzemy z oficjalnej witryny, przy czym należy pamiętać, że musimy znaleźć wersję nam dedykowaną. Jeśli jej tam nie będzie, możemy dodatkowo przeszukać zasoby forum XDA. Gdyby i to nie poskutkowało, to niestety źle przeprowadziliśmy zalecane na początku rozeznanie w temacie.

Mając już stosowny plik o rozszerzeniu IMG (czasem pakują go do paczki ZIP, warto mieć to na uwadze) możemy przejść dalej. Kopiujemy go do folderu, gdzie zainstalowaliśmy Minimal ADB and Fastboot, a następnie uruchamiamy „cmd-here.exe”. Po ukazaniu się konsoli wklepujemy „fastboot boot [nazwa].img” (by załadować partycję do pamięci i uruchomić ją bez instalacji – możemy na niej normalnie pracować aż do restartu urządzenia) lub „fastboot flash recovery [nazwa].img” (aby wgrać ją na stałe). Jeśli zdecydujemy się na pierwszą możliwość, to po zatwierdzeniu komendy od razu uruchomi się nam nowa partycja przywracania, w drugim scenariuszu mamy dwa wyjścia „fastboot reboot” lub kombinacja przycisków w celu wymuszenia restartu. Niezależnie od wyboru przejdziemy prosto do systemu, więc by temu zapobiec musimy trzymać klawisz ściszania podczas uruchamiania, aż do pojawienia się logo TWRP.

Jeśli jakimś cudem posiadamy uprawnienia ROOT (o sposobach jego pozyskania będzie później), to z pomocą przychodzi nam aplikacja twórców TWRP. Pobierzemy ją normalnie z Google Play i po nadaniu stosownych uprawnień wykona większość roboty za nas (o ile nasz smartphone posiada oficjalne wsparcie – patrz wyżej).

Jeśli mój opis jest dla kogoś niejasny, to polecam zerknąć na ten wykonany przez XDA – przejrzysty i z obrazkami. 

Wybranie i instalacja odpowiadającej nam modyfikacji

Po pomyślnym wykonaniu poprzedniego kroku wreszcie nadeszła chwila instalacji upragnionej modyfikacji. Niestety, w tym momencie pojawia się kolejny problem (szczególnie w przypadku mocno popularnych modeli), a mianowicie obszerny wybór. W tym całym gąszczu ja osobiście wyróżniam kilka grup:

  • Oparte na AOSP (Android Open Source Project) i względnie wierne oryginałowi – brak dodatkowych funkcji (z pewnymi wyjątkami), niezbędne minimum.
  • Pixel Experience – kopia 1:1 wariacji Androida obecnej na smartphonach Google Pixel, nie mniej i nie więcej.
  • LineageOS – bazuje na AOSP, do którego dołożono wiele niedostępnych tam dodatków; jest otwartym projektem rozwijanym przez społeczność; co ciekawe, on sam jest bazą dla wielu innych modyfikacji.
  • Twory z gatunku „extended” – określić je można jako „baza” (niekoniecznie oryginalne AOSP, niekiedy inna modyfikacja) + mechanizmy i funkcje, które z pewnych względów nigdy nie trafią do oryginału.
  • Porty producenckich nakładek – rzadko spotykane, ale jednak się zdarzają.
  • Modyfikacje oficjalnego oprogramowania dostępnego na danym urządzeniu – nie wiem sprawa wygląda w przypadku innych niż Xiaomi producentów, lecz wariacji MIUI jest cała masa.
  • Porty systemów nie będących Androidem – bardzo rzadko spotykane, w zasadzie już dawno na żaden się nie natknąłem, mowa tutaj głównie o Sailfish OS oraz (swego czasu) Ubuntu Touch i Windows 10 Mobile.

Większość tworów stanowią odnogi tych głównych grup, a przez to są bardzo do siebie podobne. Dlatego też polecam głównie skupiać się na kulturze pracy zgłaszanej przez użytkowników w komentarzach, a dopiero w drugiej kolejności patrzeć na dodatki – generalnie i tak wszędzie znajdziemy to samo, a ewentualne różnice to niuanse.

Warto mieć również na uwadze fakt, że wszystkie wariacje, prócz Pixel Experience, wymagają doinstalowania tzw. GAPPS, czyli paczki zawierającej wszystkie usługi wymagane do prawidłowego działania sklepu Google Play. W najpopularniejszym tego typu projekcie, OpenGapps, możemy wybrać ilość dodatkowego oprogramowania, jakie zostanie zainstalowane – od niezbędnego minimum, poprzez 6 kolejnych stopni zaśmiecenia, aż po instalator typu AROMA (gdzie sami wybierzemy co dokładnie się zainstaluje). Oczywiście wypada się rozeznać, jaką platformę posiadamy ARM / ARM64 / x86 / x86_64 (najprawdopodobniej ARM64) oraz jaką wersję Androida posiada wybrana przez nas modyfikacja.

Gdy zaopatrzymy się w odpowiednie paczki ZIP, to już nic nie stoi na przeszkodzie przed instalacją – uruchamiamy więc zainstalowane wcześniej TWRP lub inną zmodyfikowaną partycję przywracania. Następnie przechodzimy do zakładki „Wyczyść” (można zerknąć na zdjęcie wrzucone powyżej, oficjalne TWRP posiada ciut inne rozłożenie opcji, ale generalnie wygląda tak samo) i z zaawansowanego czyszczenia wybieramy partycje /system oraz /data. Po tej operacji cofamy się do menu głównego, klikamy kartę „Instaluj i wskazujemy wcześniej pobrane pliki – intersująca nas modyfikacja i, w razie potrzeby, GAPPS. Na zakończenie poleca się różne cuda typu czyszczenie pamięci podręcznej, lecz ja nigdy tego nie robię i jak dotąd problemów nie miałem – toteż pomijamy ten krok i restartujemy telefon.

Magisk i jego moduły

Przechodźmy pierwszą konfigurację, podajemy hasło do sieci, logujemy się do kont, przywracamy kopię zapasową i ustalamy formę zabezpieczenia – nic czego by wcześniej nie było. Po przejściu przez wszystkie procedury naszym oczom powinien ukazać się ekran startowy z tu i ówdzie umieszczonymi skrótami do domyślnych aplikacji. Jak zwykle personalizujemy wszystko co się da, instalujemy niezbędny pakiet aplikacji, po czym możemy zadać sobie pytanie – „czy jestem usatysfakcjonowany z końcowego efektu”? Jeśli nie, to przede wszystkim powinniśmy zlokalizować źródło problemu.

Kwestie czysto wizualne można łatwo załatwić poprzez sklep, wystarczy dobrać odpowiedni ekran startowy. Jeśli to wydajność lub stabilność jest mankamentem, wtedy cóż – należy poszukać czegoś innego (na szczęście modyfikacje są już na tyle dopracowane, że nie zdarza się to częściej niż w przypadku „oficjalnych i przetestowanych” aktualizacji producenckich). Trzecią i ostatnią opcją jest brak funkcji lub mechanizmu, której próżno szukać w Google Play – wtedy z pomocą przychodzi nam Magisk i jego moduły.

Jasne, nie jest on remedium na wszystkie problemy, niemniej, za jego pomocą można zdziałać cuda. Lecz czym on tak właściwie jest? Nie wdając się w szczegóły, których i ja sam nie pojmuję, określić go można jako platformę dystrybucji rozszerzeń / modyfikacji systemu Android. Sam autor twierdzi, że zapewnienie uprawnień administratora (root) nigdy nie było głównym zadaniem, a jedynie natura jego działania wymusza ich obecność. Nie znam prawdziwych motywów powstania tegoż narzędzia, choć wydaje mi się, że duży wpływ na jego powstanie miało samo Google i jego SafetyNet, który swego czasu zebrał ogromne żniwo pośród osób lubujących się w modyfikacjach. Zabezpieczenie to skutecznie zablokowało dostęp do płatności zbliżeniowych (Google Pay) oraz wielu aplikacji, w tym dość popularnego PokemonGO, co nie przypadło do gustu konsumentom. Mawiają, że potrzeba jest matką wynalazków, dlatego też im ostrzejsze zabezpieczenia, tym lepsze metody ich obchodzenia.

Mniejsza jednak o rys historyczny, przejdźmy do jego możliwości. Jak więc wspomniałem wcześniej, Magisk można uznać za repozytorium rozszerzeń / dodatków dla Androida. Spora ich część jest dostępna z poziomu menadżera (Magisk Manager), lecz niemałą ich ilość znajdziemy również na XDA – pobieramy znany już nam ZIP i instalujemy poprzez aplikację. Ja osobiście używam wyłącznie 3 – YouTube Vanced – Magisk Repo (odtwarzanie w tle oraz przy zablokowanym ekranie), MIUIcamera v2 MODS for whyred (bajery niedostępne na europejskim rynku, przynajmniej na razie) oraz Unified Hosts Adblocker (raczej nie trzeba tłumaczyć). Wszystkie działają w trybie „systemless”, co oznacza, że nie modyfikują partycji systemowej, co jest główną zaletą Magisk.

Polecam przejrzenie podlinkowanego podforum. Każdy powinien znaleźć coś, co go zainteresuje – począwszy od podmieniania emotikonek / czcionek / animacji ładowania systemu, przez wspomagacze audio, zmodyfikowane aplikacje aparatu / launchery, a skończywszy na odblokowywaniu zablokowanych przez producenta funkcjach (wspomniany przeze mnie mod dla domyślnej aplikacji aparatu w MIUI). Nie zabrakło też miejsca dla czysto śmieszkowych rzeczy, typu moduł podmieniający numer wersji Androida oraz łatek zabezpieczających na te najnowsze – bo czemu nie? Oczywiście warto przy tym pamiętać, że skupiam się tutaj wyłącznie na tych mniej inwazyjnych rzeczach – hardcorowi użytkownicy również znajdą pełno ciekawych i użytecznych modułów (chociażby Xposed).

Dobra, koniec tego lania wody, przejdźmy do metod instalacji Magiska. Istnieją dwa sposoby – poprzez zmodyfikowaną partycję przywracania (podobnie jak GAPPS) lub przez ADB (z pomocą aplikacji należy spreparować boot.img + skorzystać z narzędzia opisywanego przy okazji wgrywania partycji przywracania). Osobiście wolę nie kombinować i zrobić to prościej, gdyż druga metoda jest ciut bardziej czasochłonna (jednak w pewnych scenariuszach jest preferowanym wyborem). Nadmienić również wypada, że późniejsze aktualizacje wykonywane są już bezpośrednio poprzez menadżera – bez bólu i strachu.

Odinstalowywanie również odbywa się na dwa sposoby – z poziomu menadżera lub przez partycję przywracania. Pierwszej metody tłumaczyć nie trzeba, klikamy i nie mamy. W drugim przypadku musimy pobrać odpowiedni ZIP, a następnie wgrać go jak wszystko inne.

Wygląda to strasznie i skomplikowanie, choć…

Na pewno duży wpływ na to ma moje wodolejstwo. Wykonanie całej procedury od zera, przy wcześniejszym przygotowaniu wszystkich plików, to raptem 5-10 minut roboty. Każda kolejna próba to już znacznie szybsze działanie, gdyż odpada nam odblokowywanie programu rozruchowego i wgrywanie partycji przywracania. Nie ma co się bać, to naprawdę nie jest tak trudne jak mogłoby się wydawać po przeczytaniu powyższego wpisu.

Oczywiście wszystko co tutaj przedstawiłem nie jest potrzebne do prawidłowego działania urządzenia (a może się zdarzyć i tak, że będzie się to wzajemnie wykluczać), niemniej warto zdawać sobie sprawę z istniejących możliwości. Ich użyteczność jest ogromna, a trudność wykonania w zasadzie żadna. Jasne, wiele osób nie widzi sensu w kombinowaniu i tak czy siak nigdy się za to nie weźmie – nie dziwie się, ponieważ tego typu zabawy potrafią pochłonąć ogromną ilość czasu. Uważam jednak, że jest to gra warta świeczki, zwłaszcza gdy wiemy czego tak naprawdę potrzebujemy. Im mniej sprecyzowane wymagania, tym dłużej będziemy błądzić poszukując czegoś dla siebie, a nie o to w tym wszystkim chodzi.

Dodatkowo - piszcie śmiało jeśli czegoś Wam tutaj zabrakło lub gdzieś popełniłem błąd. Nie mam wykształcenia technicznego i nie jestem żadnym ekspertem, ale coś tam sobie "dłubię" w tym temacie, a nawet raz udało mi się "załatwić" telefon. Udało mi się jednak wyciągnąć wnioski z tamtej porażki i teraz jest już tylko lepiej – nie ma co się zrażać.

PS.

Nie traktujcie tego jako poradnika, bo nim nie jest – choć ogólne zasady postępowania są takie same dla wszystkich modeli, to jednak występują pomiędzy nimi pewne różnice (o czym wspominałem). Zanim weźmiecie się za cokolwiek poczytajcie tematy dedykowane Waszym urządzeniom, zapytajcie kogoś bardziej obeznanego w temacie. Nic na siłę, bo skończy się to uszkodzonym urządzeniem, za co nikt obcy nie weźmie odpowiedzialności – w końcu nikt do niczego nie namawia.