Grupa programistów stworzyła narzędzie w języku Python umożliwiające ominięcie procedury uwierzytelniania narzędzia MediaTek SP Flash Tool. Sprawdź to teraz!
Urządzenia z chipsetami MediaTek mają pamięć BROM (boot read-only memory), która zazwyczaj ładuje moduł wstępnego ładowania wykonywalny, a następnie uruchamia system Android, ale zawiera także alternatywny tryb rozruchu znany jako Tryb ściągania. Jest przeznaczony wyłącznie do serwisowania OEM i można nim rozebrać urządzenie, np Awaryjny tryb pobierania Qualcomm (EDL). Zastrzeżony program MediaTek o nazwie „SP Flash Tool” może wykorzystywać ten interfejs do wymuszania flashowania oprogramowania systemowego na urządzeniu. Ponieważ tryb pobierania niskiego poziomu skutecznie zapewnia pełną kontrolę nad pamięcią urządzenia, wielu producentów OEM, w tym Xiaomi i Realme, ma to już za sobą zaczął zakłócać proces flashowania. Ze względu na tę praktykę, flashowanie oprogramowania sprzętowego w trybie pobierania może być wykonywane wyłącznie przez podpisany program „Agent pobierania”, który został autoryzowany przez odpowiedniego producenta OEM, co zasadniczo oznacza, że
nie możesz flashować ani odblokowywać własnego smartfona, chyba że masz na to zgodę producenta urządzenia.Cóż, fantastyczna społeczność programistów XDA po raz kolejny przybyła na ratunek. Oparte na exploit rozruchowy ROM pierwotnie odkryty przez starszego członka XDA xyz`, deweloperzy Dinolek I k4y0z opracowali ogólną metodę obejścia, która jest kompatybilna z szeroką gamą urządzeń zasilanych przez MediaTek, które w przeciwnym razie wymagałyby uwierzytelnienia podczas flashowania. Metoda wykorzystująca exploity specyficzne dla SoC, przechwytuje zapytania poprzedzające flashowanie wykonywane przez SP Flash Tool i wymusza ustawienie wartości dwóch kluczowych parametrów ("Uwierzytelnianie łącza szeregowego” i „Uwierzytelnianie agenta pobierania") jako fałszywe, aby kontynuować proces flashowania bez jakiejkolwiek autoryzacji.
Należy pamiętać, że ładunki exploitów wymagają specjalnie zmodyfikowanego sterownika USB, aby możliwe było ich przechwycenie. Jeśli używasz systemu Windows, musisz zainstalować sterownik filtru oparty na libusb, aby zastąpić domyślny zestaw sterowników. Z drugiej strony użytkownicy Linuksa muszą zastosuj określoną poprawkę do jądra. Jeśli nie chcesz dotykać swojego podstawowego systemu operacyjnego, możesz z niego skorzystać OgieńISO – bootowalny obraz ISO GNU/Linux zaprojektowany specjalnie do tego celu.
Jeśli chodzi o dostęp do trybu pobierania MediaTek, wystarczy wyłączyć urządzenie docelowe, przytrzymać przycisk zwiększania głośności (zmniejszanie głośności w przypadku telefonów Xiaomi) i podłączyć telefon do komputera. Powinieneś zobaczyć nowe urządzenie szeregowe na liście w Menedżerze urządzeń (Windows) lub na wyjściu dmesg | grep usb
(Linux).
W tym momencie wykonaj ten prosty, 5-etapowy proces, aby wyłączyć ochronę bootrom:
- Ściągnij i zainstaluj Pyton. Użytkownicy systemu Windows powinni po wyświetleniu monitu wybrać opcję „Dodaj Python X.X do PATH”.
- Zainstaluj wymagane zależności za pomocą
pip
:pip install pyusb pyserial json5
- Pobierz narzędzie obejścia.
- Wyodrębnij archiwum, uruchom narzędzie i podłącz telefon w trybie pobierania MediaTek. Na końcu dziennika powinien pojawić się komunikat „Ochrona wyłączona”.
- Okna:
pythonmain.py
- Linux:
./main.py
- Okna:
- Następnie, nie odłączając telefonu, uruchom narzędzie SP Flash Tool w trybie połączenia UART.
I to wszystko! Procedura uwierzytelniania została pominięta i możesz teraz flashować/odblokowywać telefon. Jeśli ktoś bardziej doświadczony chce pójść o krok dalej, może wykonać kopię zapasową zmodyfikowanej partycji napraw zepsuty IMEI, ale to wykracza poza zakres tego artykułu.
Listę aktualnie obsługiwanych SoC znajdziesz poniżej. Teoretycznie metoda obejścia działa w ten sam sposób na innych chipsetach MediaTek, ale ktoś musi najpierw zakodować odpowiedni ładunek, aby wyłączyć procedurę ochrony bootrom.
Lista obsługiwanych SoC
- mt6261
- mt6572
- mt6580
- mt6582
- mt6735
- mt6737
- mt6739
- mt6755
- mt6757
- mt6761
- mt6763
- mt6765
- mt6768
- mt6771
- mt6785
- mt6799
- mt6873
- mt8127
- mt8163
- mt8173
- mt8695
Czytaj więcej
Wniosek
Jeśli pamiętasz, już prawie rok temu stwierdzono, że chipsety MediaTek są podatne na niebezpieczne rootkity, i był aktywnie wykorzystywany przez hakerów w celu uzyskania dostępu do konta root. Biorąc to pod uwagę, nie wiadomo, dlaczego tajwańska firma zajmująca się projektowaniem chipów nadal nie załatała wady w swoich chipsetach, która pozwala na pokonanie łańcucha zaufania podczas flashowania. Chociaż widzieliśmy tylko dobre strony sytuacji, z punktu widzenia bezpieczeństwa jest ona jeszcze gorsza, jeśli weźmie się pod uwagę setki mniej znanych modeli urządzeń wykorzystujących te chipy MediaTek.
Jest jeszcze inny aspekt sytuacji z punktu widzenia społeczności deweloperów niestandardowych, której interesy reprezentujemy. Większość urządzeń MediaTek znajduje się w niezrównoważonej kombinacji łatwości w demontażu i trudnej do ożywienia. Co więcej, wymóg wymuszonego zezwolenia naprawdę ogranicza potencjał rozwoju rynku części zamiennych. Metoda obejścia to nic innego jak promyk nadziei dla właścicieli urządzeń MediaTek, którzy chcą po prostu pozbyć się kłopotów związanych z wyrwaniem się ze sceny moddingowej.
Osoby zainteresowane poznaniem bazy kodu metody obejścia powinny zapoznać się z poniższym linkiem do GitHuba. Możesz także wchodzić w interakcję z programistami, odwiedzając stronę Wątek Dyskusyjny.
Uwierzytelnianie narzędzia MediaTek SP Flash pomija repozytorium GitHub