Twrp

Jak zainstalować Magisk bez dostępu do TWRP/SHRP recovery

Parę dni temu na mój telefon Xiaomi Redmi 9 (lancelot/galahad/shiva/lava) została wypuszczona aktualizacja ROM'u crDroid, który bazuje na AOSP/LineageOS. Ten update nie tylko miał uwzględnione najnowsze poprawki bezpieczeństwa ale również podbijał wersję Androida z 11 na 12. Problem w tym, że TWRP/SHRP recovery ma problemy z obsługą sposobu szyfrowania partycji /data/ , który najwyraźniej uległ przeobrażeniu w Androidzie 12. Efektem braku wsparcia dla szyfrowania w TWRP/SHRP jest naturalnie brak możliwości wgrywania danych na partycję /data/ . Niestety niesie to za sobą przykre konsekwencje w postaci uniemożliwienia użytkownikowi przeprowadzenia procesu patch'owania obrazu partycji /boot/ z poziomu trybu recovery, czego efektem jest brak możliwości zainstalowania Magisk'a w systemie smartfona. Bez Magisk'a nie damy rady ukorzenić systemu, tj. uzyskać w nim praw administratora root. Na szczęście nie wszystko stracone. Magisk'a można zainstalować w telefonie ręcznie przy pomocy ADB oraz trybu bootloader'a (fastboot) eliminując tym samym potrzebę przełączenia się w tryb recovery. Niniejszy artykuł ma na celu pokazanie jak zainstalować Magisk'a bez odwoływania się do trybu TWRP/SHRP recovery.

Jak zaktualizować firmware custom ROM'ów w smartfonach Xiaomi

Te bardziej szanujące się marki produkujące smartfony zwykle zapewniają wsparcie dla swoich urządzeń przez co najmniej dwa lata (a czasem nawet i dłużej) od momentu ich wypuszczenia na rynek. Po wgraniu sobie alternatywnego ROM'u na nasz telefon, oprogramowanie w nim może być aktualizowane przez opiekuna czy dewelopera takiego ROM'u znacznie dłużej niż producent przewidział. W ten sposób nie musimy wydawać pieniążków na nowy sprzęt, oczywiście zakładając, że mu nic nie dolega, np. pod względem wydajności, czy też ewentualnie nie zużył on się nam jakoś bardziej podczas eksploatacji. Jedną rzeczą, o której posiadacze smartfonów z Androidem zapominają po wgraniu custom ROM'ów na bazie AOSP/LineageOS, to fakt, że o ile ROM faktycznie dostaje aktualizacje czy to bezpieczeństwa, czy też upgrade do nowszej wersji Androida, o tyle sam firmware zwykle pozostaje nietknięty. W przypadku mojego modelu smartfona Redmi 9, Xiaomi od czasu do czasu wypuszcza aktualizacje firmware do tego urządzenia i przydałoby się ten firmware co jakiś czas zaktualizować. Na szczęście nie trzeba w tym celu powracać do stock'owego oprogramowania, a cały proces możemy przeprowadzić z poziomu dowolnej dystrybucji linux'a.

Jak wgrać crDroid Android ROM na Xiaomi Redmi 9 (lancelot/galahad)

Przyszła pora pozbyć się w końcu tego stock'owego oprogramowania, które zostało wgrane na mojego smartfona Xiaomi Redmi 9 (lancelot/galahad) przez producenta tego urządzenia. Przez ostatnich parę tygodni testowałem różne wersje ROM'ów na bazie AOSP/LineageOS, z których bardziej użyteczne okazały się PixelPlusUI, Pixel Extended oraz crDroid Anadroid. Niestety nikt jeszcze nie opracował LineageOS na ten telefon, więc pozostaje w zasadzie wgranie jednej z tych trzech powyższych pozycji, jako że Xiaomi Redmi 9 jest oficjalnie przez te ROM'y wspierany. Obecnie Pixel Extended ma jednak problemy z hostowaniem swoich plików i od paru miesięcy nie miał praktycznie żadnej aktualizacji, przez co wybór został ograniczony do dwóch pozostałych ROM'ów. Powodem, dla którego zdecydowałem się wgrać crDroid Android, jest fakt, że nie ma on zintegrowanych aplikacji od Google (GAPPS). Oczywiście można po instalacji samego ROM'u wgrać także Open GAPPS ale naturalnie nie jest to wymagane, przez co można sobie skonfigurować cały telefon według własnego uznania wykorzystując jako bazę początkową microG. W tym artykule zostanie przedstawiony sposób wgrania ROM'u crDroid Android na smartfon, tak by czasem nie uszkodzić tego urządzenia.

Jak wgrać TWRP recovery i Magisk w Xiaomi Redmi 9 (galahad/lancelot)

Parę dni temu udało mi się odblokować bootloader w moim smartfonie Xiaomi Redmi 9 (galahad/lancelot). Nie licząc błędnego URI przy logowaniu na konto Mi wewnątrz appki XiaoMiTool, nie było zbytnio problemów z tym procesem. Takie odblokowanie bootloader'a w telefonie w zasadzie nic nam samo z siebie nie daje, no może poza ściągnięciem z niego zabezpieczeń, co ułatwia dostanie się syfu na Androida, no i też ułatwia złodziejom robotę, bo gdy takie odblokowane urządzenie wpadnie w ich łapki, to mamy praktycznie pozamiatane. Niemniej jednak, odblokowany bootloader daje nam możliwość wgrania custom recovery, np. TWRP, co z kolei otwiera nam drogę do uzyskania praw administratora systemu root, np. za sprawą zainstalowania Magisk'a. Mając dostęp do root, będziemy mogli takim urządzeniem dowolnie zarządzać. Naturalnie, TWRP daje nam też możliwość wgrania alternatywnych ROM'ów na bazie AOSP/LineageOS ale w tym artykule skupimy się jedynie na wrzuceniu TWRP recovery na tego Xiaomi Redmi 9 i ukorzenimy jego Androida przy pomocy wspomnianej już aplikacji Magisk.

Większy stopień kompresii pliku recovery.img (TWRP)

Ostatnio próbowałem zaktualizować obraz TWRP recovery dla jednego z moich telefonów. Ja generalnie buduje te obrazy ze źródeł OMNI ROM, a tam jest dostępnych szereg gałęzi, np. 6.0, 7.1, 8.1 , etc, które naturalnie pasują do odpowiadających im wersji Androida. Do tej pory budowałem w oparciu o gałąź 7.1 ale po wydaniu polecenia repo sync , szereg aktualizacji w stosunku do repozytorium bootable/recovery zostało pobranych, w tym też i jedna trefna, która uwalała proces kompilacji. Ostatecznie udało się problem namierzyć i zlikwidować ale w międzyczasie próbowałem zbudować obraz TWRP recovery z gałęzi 8.1. Wygląda na to, że im nowszy Android, tym obrazy recovery rosną w objętość i 16M, które u mnie jest limitem, zostało przekroczone o jakieś 500K i to przy najbardziej okrojonej funkcjonalności trybu recovery. Czy istnieje jakieś rozwiązanie, które by umożliwiło zmniejszenie rozmiaru obrazu ramdisk-recovery.img , co przełożyłoby się również na wagę pliku recovery.img ? Tak, trzeba tylko zmienić rodzaj kompresji z domyślnego gzip na lzma.

Jak usunąć blokadę bootloader'a (OEM lock) w smartfonie z Androidem

Eksperymentując ostatnimi czasy ze smartfonami mającymi na pokładzie system Android nie zdarzyło mi się jeszcze, by jakoś poważniej taki telefon uszkodzić. Oczywiście wiele razy złapałem soft brick'a (bootloop i inne takie) ale w zasadzie bez większego problemu szło z takiej sytuacji wybrnąć. Dziś jednak sprawa była nieco bardziej poważna, bo mój Neffos X1 nie chciał się po prostu uruchomić, a konkretnie to pojawiało się logo TP-LINK i Android i telefon na tym ekranie startowym się zwyczajnie zawieszał. Pikanterii dodaje jeszcze fakt, że przed sprawdzeniem czy telefon działa poprawnie, zablokowałem bootloader przez fastboot oem lock . Naturalnie bootloader można odblokować też przy użyciu fastboot ale po zresetowaniu urządzenia, ta opcja, którą się przełącza w ustawieniach deweloperskich automatycznie wraca do pozycji zablokowanej. W taki sposób, by odblokować bootloader ponownie, trzeba wejść w te opcje jeszcze raz i tam ściągnąć pierw blokadę OEM, a dopiero później można mówić o bawieniu się fastboot . A jak niby mamy wejść w te ustawienia jeśli system nie chce wystartować, a my mamy stock'owy firmware producenta smartfona? Czy taki stan rzeczy oznacza trwałe uszkodzenie telefonu?

Repartycjonowanie flash'a w Neffos C5 i C5 MAX od TP-LINK

Analizując sobie fabryczny podział przestrzeni flash w TP-LINK'owych smartfonach, a konkretnie w modelach Neffos C5 i C5 MAX, doszedłem do wniosku, że producent tych urządzeń nieco zaszalał przeznaczając aż 4 GiB przestrzeni na partycję /system/ . W zasadzie ROM w tych telefonach zajmuje około 2 GiB. Zatem pozostałe 2 GiB zwyczajnie się marnuje i przeciętny użytkownik smartfona nie będzie w stanie tego obszaru w żaden sposób wykorzystać. Można by zatem inaczej przepartycjonować ten flash, tak by nieco skurczyć samą partycję /system/ , przeznaczając jednocześnie odzyskane miejsce na powiększenie partycji /data/ . W tym wpisie postaramy się właśnie taki zabieg zmiany rozmiaru partycji /system/ przeprowadzić dla tych dwóch wyżej wymienionych modeli smartfonów.

Root w smartfonach Neffos od TP-LINK (X1, C5, C5 MAX, Y5, Y5L)

Jakiś czas temu opisywałem proces ukorzeniania (root) smartfonów Neffos, a konkretnie były to modele C5, C5 MAX, Y5 i Y5L. Od tamtego czasu zdążyłem się nieco bardziej zagłębić w struktury Androida i udało mi się ze źródeł OMNI ROM zbudować natwyne obrazy TWRP dla każdego z tych ww. telefonów. Oczywiście TP-LINK ma w swojej ofercie jeszcze modele C5L, Y50, X1 oraz X1 MAX ale póki co nie będę w stanie przygotować obrazu TWRP i opisu jak ukorzenić Androidy w trzech z tych czterech smartfonów. Chodzi o to, że C5L został wycofany z produkcji i raczej nie wpadnie on w moje łapki. Natomiast modele Y50 oraz X1 MAX nie są jeszcze dostępne w polskiej ofercie TP-LINK'a, przez co minie trochę czasu zanim uda mi się do nich dobrać. Postanowiłem napisać świeży artykuł dotyczący procesu root w smartfonach Neffos C5, C5 MAX, Y5, Y5L oraz X1. Po co pisać kolejny artykuł o ukorzenianiu Androida w Neffos'ach? Generalnie rzecz biorąc, w tych poprzednich wpisach było bardzo dużo informacji zbędnych z punktu widzenia przeciętnego użytkownika, który chce zrootować system w swoim telefonie. Teraz, gdy dysponuję natywnymi obrazami TWRP własnej roboty i zdobyłem nieco wiedzy z zakresu operowania na Androidzie, to proces root jest o wiele prostszy i właśnie dlatego przydałoby się to wszystko opisać na nowo.

Android: Wgrywanie update.zip przez ADB sideload via TWRP recovery

Po uszkodzeniu jednego z moich smartfonów TP-LINK i skasowaniu na nim wszystkich danych na partycji /system/ trzeba było pomyśleć nad przywróceniem tego urządzenia do życia. Jednym z rozwiązać było binarne wgranie obrazu systemowej partycji bezpośrednio na flash przy pomocy narzędzia dd. Co jednak w przypadku, gdy nie mamy dostępu do backup'u lub tez zwyczajnie go nie zrobiliśmy? Co w takiej sytuacji uczynić i czy jest jakaś nadzieja dla naszego telefonu? Odpowiedź jest naturalnie twierdząca ale wymagane są dwie rzeczy: działający tryb recovery (najlepiej TWRP) ze wsparciem dla trybu "ADB sideload" oraz paczka update.zip z firmware, którą można pobrać bezpośrednio ze strony TP-LINK/Neffos. By ulżyć nieco osobom, które do mnie piszą z zapytaniem o pomoc w przypadku skasowania danych na partycji /system/ (czy uszkodzenia jej w jakiś sposób), postanowiłem napisać krótkie howto na temat używania trybu ADB sideload. W tym artykule w rolach głównych weźmie udział Neffos Y5 ale bez problemu można te kroki przeprowadzić chyba na każdym innym smartfonie.

Android: Jak odratować smartfon po usunięciu partycji /system/

Zawsze mnie zastanawiało jak to jest możliwe, by przez przypadek można było usunąć dane na jeden z kluczowych partycji w smartfonie jaką jest partycja /system/ . Ostatnio wiele osób do mnie pisało z tego typu problemami i zapytaniem "jak odratować w takiej sytuacji telefon". Odpowiedź wydawała mi się prosta: wystarczy wgrać uprzednio zrobiony backup wyczyszczonej partycji via fastboot . Problem w tym, że po usunięciu danych z partycji /system/ , fastboot nie działa. A skąd to wiem? Ano "przez przypadek" usunąłem sobie dane na tej partycji. W sumie to tylko testowałem ficzer w TWRP zwany ADB Sideload, który niby ma za zadanie wgrać ROM z paczki .zip . Coś poszło nie tak i w zasadzie zostałem z pustą partycją /system/ . Przy odpalaniu telefonu w takim stanie, ten w zasadzie jedynie się resetuje co kilka chwil. Może i fastboot nie działa ale można wbić do trybu recovery. Jeśli tylko mamy wgrany TWRP, to jest spora szansa na odratowanie smartfona. W tym artykule w rolach głównych wystąpi Neffos Y5L, który ma SoC od Qualcomm'a, zatem nie damy rady się pobawić SP Flash Tool i całą robotę trzeba będzie odwalić ręcznie.