Crdroid Magisk

0 views
Skip to first unread message

Alexia Borson

unread,
Aug 5, 2024, 4:09:40 AM8/5/24
to jonszandrudbue
Parędni temu na mj telefon Xiaomi Redmi 9 (lancelot/galahad/shiva/lava) została wypuszczonaaktualizacja ROM'u crDroid, ktry bazuje na AOSP/LineageOS. Ten update nie tylko miałuwzględnione najnowsze poprawki bezpieczeństwa ale rwnież podbijał wersję Androida z 11 na 12.Problem w tym, że TWRP/SHRP recovery ma problemy z obsługą sposobu szyfrowania partycji /data/ ,ktry najwyraźniej uległ przeobrażeniu w Androidzie 12. Efektem braku wsparcia dla szyfrowania wTWRP/SHRP jest naturalnie brak możliwości wgrywania danych na partycję /data/ . Niestety niesieto za sobą przykre konsekwencje w postaci uniemożliwienia użytkownikowi przeprowadzenia procesupatch'owania obrazu partycji /boot/ z poziomu trybu recovery, czego efektem jest brak możliwościzainstalowania 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żnazainstalować w telefonie ręcznie przy pomocy ADB oraz trybu bootloader'a (fastboot) eliminując tymsamym potrzebę przełączenia się w tryb recovery. Niniejszy artykuł ma na celu pokazanie jakzainstalować Magisk'a bez odwoływania się do trybu TWRP/SHRP recovery.

Widząc, że na stronie crDroid pojawiła się aktualizacja ROM'u do mojego smartfona, postanowiłem jaknajszybciej wgrać tę paczkę .zip na telefon, jako że proces aktualizacji ROM'u crDroid nie wiążesię z utratą danych, tj. nie trzeba formatować partycji /data/ , tak jak to ma miejsce przyprzesiadce z innego oprogramowania. Naturalnie cały proces wgrywania nowszej wersji ROM'u jestdokonywany z poziomu trybu recovery (w tym przypadku użyty był SHRP). Po przełączaniu się do tryburecovery, system prosi o podanie hasła do blokady ekranu i w ten sposb deszyfrowana jest zawartośćpartycji /data/ . By przeprowadzić ten proces aktualizacji, trzeba wcześniej usunąć root'a zsystemu, tj. odinstalować Magisk'a. Naturalnie sam tryb TWRP/SHRP recovery w dalszym ciągu będziezapewniał dostęp root sam z siebie. Gdy aktualizacja systemu dobiegła końca, uruchomiłem smartfonponownie i wszystko zdawało się działać poprawnie, tyle że nie było dostępu do polecenia su , boMagisk jeszcze nie został zainstalowany (wymagany reboot po wgraniu aktualizacji ROM'u) .


Następnym krokiem było oczywiście wgranie Magisk'a via SHRP recovery i po przełączeniu się w tentryb okazało się, że nie zostałem poproszony o hasło do blokady ekranu. Trochę się zdziwiłem ipostanowiłem sprawdzić czy pliki na partycji /data/ są widoczne. Poniżej jest zawartość głwnegofolderu ten partycji:


Zainstalowanie TWRP recovery w tym przypadku rwnież nic nie da, bo SHRP bazuje na TWRP, a sam TWRPjeszcze nie potrafi odszyfrować partycji data na Androidzie 12 (wspierane są wersje jedynie doAndroida 11).


Wiedziałem, że wersja Androida ulegnie zmianie ale nie byłem zupełnie świadomy faktu, że TWRP/SHRPrecovery będzie miał jakieś problemy z Androidem 12. Miałem zatem do wyboru w zasadzie dwie opcje.Pierwsze rozwiązanie zakładało korzystanie ze smartfona bez root i czekanie aż w nieodległej (alboodległej) przyszłości wsparcie dla Androida 12 w TWRP/SHRP zostanie zaimplementowane. Drugimwyjściem było sformatowanie partycji /data/ i wgranie starszej wersji ROM'u crDroid. Przyznam, żeani jedno, ani drugie rozwiązanie mi niezbyt odpowiadało, dlatego też postanowiłem poszukaćbardziej zadowalającego sposobu na uporanie się z tym zaistniałym problemem.


Po wgraniu nowego ROM'u na mojego Xiaomi Redmi 9 (lancelot/galahad/shiva/lava), postanowiłemnaturalnie popatrzeć co ten nowy Android 12 ma do zaoferowania i co się w tym systemie pozmieniałowzględem poprzednika. Przeszukując opcje, w końcu dotarłem do ustawień deweloperskich i tam naliście zauważyłem nową pozycję o nazwie Rooted debugging , poniżej fotka:


Skoro ta pozycja miała w nazwie coś związanego z root, to postanowiłem ją włączyć. Przełączyłem sięczym prędzej na terminal w moim Debianie i wydałem polecenie adb shell , no ale prompt dalej niezawierał # , ino zwykły $ . Pomyślałem, że może niekoniecznie ta opcja działa, tak jak można byprzypuszczać ale kiedyś na necie widziałem, że ludzie wpisywali adb root zamiast adb shell . Wmoim przypadku adb root nigdy nie działał ale postanowiłem to polecenie wpisać w terminalu mojegolinux'a i zobaczyć co się stanie. Ku mojemu zdziwieniu nie został zwrcony błąd, a jedynie to, cowidać poniżej:


Do tych powyższych restrykcji trzeba też doliczyć fakt, że dostęp root jest jedynie dla ADB. Zwykłeaplikacje w dalszym ciągu korzystać z root'a nie mogą. Zatem jak taki root może nam się przydać?


Może i dostępu do pewnych katalogw nie mamy ale do tych miejsc, ktre nas najbardziej interesują,wgląd już jak najbardziej jest zapewniony. Mowa tutaj o katalogu /dev/ , w ktrym znajdują siępliki urządzeń, m.in. surowe partycje flash'a smartfona (pod /dev/block/ ). Jako, że Magiskpotrzebuje obrazu partycji /boot/ do przepakowania, by mc go wgrać na tę partycję, topostanowiłem przy pomocy dd skopiować sobie zawartość partycji /boot/ do pliku i zapisać całośćna karcie SD:


Nawet w przypadku, gdy nie mamy ADB z dostępem root, to i tak możemy obraz partycji /boot/pozyskać. Potrzebna nam do tego jest paczka .zip ROM'u, ktry wgraliśmy sobie już na telefon.Listując zawartość tej paczki, możemy zauważyć, że posiada ona plik boot.img :


Jest to dokładnie ten sam obraz, ktry został wrzucony na partycję /boot/ w smartfonie podczaswgrywania ROM'u w trybie TWRP/SHRP recovery. Ten plik boot.img trzeba wydobyć z paczki .zip iręcznie przesłać na telefon w celu wprowadzenia w nim zmian przez aplikację Magisk.


Mając obraz partycji /boot/ , możemy go teraz podać Magisk'owi. Pytanie jak tego dokonać, skoronie możemy zainstalować Magisk'a? Pełnego Magisk'a naturalnie pki co nie zainstalujemy ale możemyzainstalować jego część, a konkretnie chodzi o część systemową, tj. tę aplikację, ktrą uruchamiamypodczas standardowej pracy systemu Androida. Pobieramy zatem najnowszego Magisk'a i instalujemyplik .apk z poziomu działającego Androida, po czym uruchamiamy aplikację:


Wygląda też na to, że w zależności od konfiguracji systemu, sam proces przepakowania obrazupartycji /boot/ może przebiegać nieco inaczej. Tutaj znajduje się post na XDA oraz wpis nastronie Magisk'a, ktre nieco obszerniej opisują wszystkie możliwe przypadki. Dlatego teżdobrze jest się z tymi artykułami zapoznać zanim przystąpimy do dalszych prac, by uniknąćewentualnego uszkodzenia smartfona. Poniższy opis zakłada, że w linijce z Ramdisk widnieje Yes .


Można by w tym miejscu zapytać o to jaki jest pożytek z aplikacji Magisk'a, skoro nie działa ona zprawami administratora root? Aplikacja Magisk'a może przepakować obraz partycji /boot/ i niepotrzebne jej są na tym etapie żadne dodatkowe uprawnienia.


Mając uruchomioną aplikację Magisk, wskazujemy obraz partycji /boot/ , ktry wcześniejpozyskaliśmy . Po chwili dostaniemy gotowy plik, ktry Magisk by standardowo wrzucił na partycję/boot/ podczas instalacji via tryb TWRP/SHRP recovery:


Niemniej jednak, by wgrać obraz na surową partycję, potrzebne są już prawa root, ktrych waplikacji Magisk'a nie mamy. Dlatego też ten przepakowany obraz partycji /boot/ trzeba będziena tę partycję wgrać ręcznie.


Nie jestem pewien czy podczas instalacji Magisk'a via tryb TWRP/SHRP recovery są dokonywane jakieśzmiany na partycji /data/ , tj. tej partycji, na ktrej są przechowywane dane użytkownika. Napewno Magisk korzysta z katalogu /data/adb/ , a jego zawartość będzie zaszyfrowana. Gdyby Magiskpodczas instalacji z poziomu trybu recovery jedynie przepakowywał obraz i wgrywał go na partycję/boot/ , to jak najbardziej można by do tego celu skorzystać z TWRP/SHRP. Podobnie można postąpićw przypadku aktualizacji firmware telefonu, gdzie wgrywane są nowe obrazy na poszczeglnepartycje, bez dotykania przy tym partycji /data/ . Niemniej jednak, skrypty instalacyjne Magisk'amogą jakieś dane na partycji /data/ umieszczać i jeśli tak jest w istocie, to lepiej nieinstalować go via tryb recovery.


Być może wystarczyłoby przy pomocy dd przez ADB wgrać plik magisk_patched-24100_bv4SY.img ,ktry został zapisany w /storage/emulated/0/Download/ ale nie zawsze też będziemy mieli ADB zobsługą root, czy też w ogle tryb TWRP/SHRP recovery. Dlatego też zdecydowałem się opisać poniżejbardziej uniwersalne rozwiązanie zakładające pobranie pliku obrazu partycji /boot/ utworzonegoprzez aplikację Magisk'a na komputer i wgranie tego pliku na partycję smartfona przy pomocyfastboot z poziomu trybu bootloader'a.


Jak widzimy też na fotce powyżej, pozycja Installed już nie wskazuje N/A , a widnieje tamnumerek wersji Magisk'a, tj. 24.1 (24100) , co oznacza, że Magisk został zainstalowany zpowodzeniem i to przy całkowitym pominięciu trybu recovery.


Jak widać na przykładzie niniejszego artykułu, tryb TWRP/SHRP recovery nie jest niezbędny, byMagisk'a w smartfonie z Androidem można było zainstalować. Trzeba jednak pamiętać, że może i prawaroot udało nam się uzyskać, to tryb recovery w dalszym ciągu pozostaje w dużej mierze bezużyteczny,tj. dalej pliki na partycji /data/ będą zaszyfrowane. Jedyne co będziemy w stanie zrobić w trybierecovery w stosunku do partycji /data/ , to ją sformatować. Trzeba zatem zdawać sobie sprawę zfaktu, że jeśli z jakiegoś powodu nie będziemy w stanie uruchomić systemu w telefonie, to przez tentryb TWRP/SHRP recovery nie uda nam się smartfona odratować. Do momentu zaimplementowania wsparciadla Android 12 w TWRP/SHRP recovery, każdy problem, ktry można by było poprawić (albo zaradzić mu)przez tryb recovery, będzie w zasadzie wiązał się z przywrceniem systemu do ustawień fabrycznych.

3a8082e126
Reply all
Reply to author
Forward
0 new messages