Root w smartfonach Neffos od TP-LINK (X1, C5, C5 MAX, Y5, Y5L)
Spis treści
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.
Narzędzia ADB, fastboot (linux)
Przede wszystkim, by zabrać się za proces root'owania smartfonów Neffos C5, C5 MAX, Y5, Y5L i X1,
musimy przygotować sobie odpowiednie narzędzia. Zapewnią one nam możliwość rozmawiania z telefonem.
Będziemy potrzebować adb
(Android Debug Bridge) oraz fastboot
. Za obsługę adb
w
Debianie odpowiada pakiet android-tools-adb
. Z kolei jeśli chodzi zaś o fastboot
, to musimy
doinstalować w systemie pakiet android-tools-fastboot
:
# apt-get install \
android-tools-adb \
android-tools-fastboot
Jak odblokować bootloader w smartfonach Neffos
By skorzystać z narzędzia fastboot
do wgrywania obrazu TWRP, musimy odblokować bootloader. Zanim
jednak odblokujemy bootloader, musimy włączyć opcje programistyczne. Przechodzimy zatem do
Ustawienia => Informacje o telefonie i klikamy kilka razy w numer kompilacji do momentu aż
dostaniemy informację o byciu programistą. W tej chwili w Ustawieniach pojawi się dodatkowa pozycja
"Opcje programistyczne". Tam z kolei zaznaczamy opcję "Zdjęcie blokady
OEM".
Zdjęcie blokady OEM umożliwi odblokowanie bootloader'a. Pamiętajmy jednak, że proces odblokowania bootloader'a usuwa wszystkie dane użytkownika, tj. podczas odblokowywania jest inicjowany Factory Reset, który przywraca ustawienia telefonu do fabrycznych. Dane na karcie SD pozostają nietknięte.
Odblokowanie bootloader'a w Neffos Y5 i Y5L
Po zdjęciu blokady OEM wyłączamy urządzenie i włączamy je trzymając przyciski Volume Down + Power. Smartfon włączy się w trybie bootloader'a, a na jego ekranie będzie widoczne logo TP-LINK i Android. Następnie na komputerze w terminalu wpisujemy poniższe polecenie:
# fastboot devices
8a8f289 fastboot
Wynik zwrócony wyżej świadczy o tym, że nasz Neffos działa w trybie bootloader'a i możemy z
urządzeniem się porozumieć za pomocą narzędzia fastboot
.
Bootloader odblokowujemy przy pomocy poniższego polecenia:
# fastboot oem unlock-go
Na ekranie smartfona powinien nam się pokazać zielony robocik informujący o przeprowadzaniu Factory Reset. Po chwili ten proces dobiegnie końca, a smartfon uruchomi się ponownie na ustawieniach fabrycznych.
Odblokowanie bootloader'a w Neffos C5, C5 MAX i X1
W przypadku smartfonów Neffos C5, C5 MAX X1, jako że te urządzenia posiadają SoC od MediaTek, nie trzeba zdejmować blokady bootloader'a, by wgrać obraz TWRP. Możemy zatem ten obraz wgrać bez uprzedniego przywracania smartfona do ustawień fabrycznych. Niemniej jednak, na potrzeby ujednolicenia kroków w tym HowTo, my tę blokadę ściągniemy.
Wyłączamy urządzenie i włączamy je trzymając przyciski Volume Up + Power. Z menu wybieramy "fastboot mode". Następnie na komputerze w terminalu wpisujemy poniższe polecenia:
# fastboot devices
TSL7DA69OBSO49PJ fastboot
# fastboot oem unlock
Po wydaniu tej drugiej komendy, na ekranie smartfona powinno nam pokazać się poniższe ostrzeżenie:
Unlock bootloader?
If you unlock the bootloader, you will be able to install custom operating system software on this phone.
A custom OS is not subject to the same testing as the original OS, and can cause your phone and installed application to stop working properly.
To prevent unauthorized access to your personal data, unlocking the bootloader will also delete all personal data from your phone "factory reset".
Press the Volume UP/Down buttons to select Yes/No.
Wciskamy Volume Up, by potwierdzić chęć odblokowania bootloader'a, po czym restartujemy smartfon poniższym poleceniem:
# fastboot reboot
Tworzenie backup'u flash'a smartfona
Użytkownicy smartfonów pomijają jedną niezwykle ważną rzecz podczas ukorzeniania Androida. Jest nią backup danych zgromadzonych w pamięci flash takiego urządzenia. Posiadając backup flash'a, jesteśmy w stanie wybrnąć z 99,9% krytycznych sytuacji, które zwykle objawiają się zapętleniem startu systemu telefonu. Jeśli tylko działa bootloader/preloader/loader, to posiadając kopię zapasową możemy bez większego problemu odratować swój smartfon.
Backup flash'a można przeprowadzić z poziomu trybu recovery (TWRP) w przypadku każdego modelu Neffos. Jeśli chodzi o Neffos Y5, Y5L i X1, to obraz TWRP można załadować bezpośrednio do pamięci smartfona, nie czyniąc tym samym żadnych zmian w pamięci flash. Niemniej jednak, potrzebny nam jest odblokowany bootloader.
Niestety w przypadku Neffos C5 i C5 MAX nie da rady załadować obrazu TWRP recovery bezpośrednio do
pamięci telefonu. Możemy natomiast posłużyć się narzędziem SP Flash Tool i w zasadzie do zrobienia
backup'u przy jego pomocy nie trzeba przeprowadzać żadnych dodatkowych zabiegów. Nie trzeba nawet
odblokowanego bootloader'a. Jedyne co nam potrzebne, to odpowiedni plik scatter.txt
. Z SP Flash
Tool możemy korzystać także w przypadku Neffos'a X1.
Nie będę tutaj opisywał procesu przeprowadzania backup'u każdego z modelów Neffos, bo to w zasadzie mija się z celem. Raz, że w starych wątkach ten proces został dość szczegółowo opisany, a dwa, że bardzo rzadko będzie nam potrzebny cały backup, tj. wszystkie jego partycje.
Zwykle podczas procesu root są zmieniane jedynie partycje /boot/
, /recovery/
oraz /system/
i
w zasadzie backup tylko tych obszarów flash'a telefonu należy przeprowadzić. Osoby, które są
zainteresowane dokonaniem ręcznej kopi zapasowej flash'a czy też kilku partycji urządzenia, odsyłam
do starych wątków opisujących proces root: Neffos C5, Neffos C5 MAX,Neffos Y5 i
Neffos Y5L.
Obrazy TWRP recovery dla Neffos C5, C5 MAX, Y5, Y5L i X1
Smartfony Neffos C5, C5 MAX, Y5, Y5L i X1 nie są jeszcze oficjalnie wspierane przez TWRP recovery.
Niemniej jednak, na moim GitHub'ie znajduje się konfiguracja, która umożliwia zbudowanie obrazów
TWRP recovery ze źródeł Androida, a konkretnie ze źródeł OMNI ROM. Pod tym linkiem są zamieszczone
gotowe obrazy TWRP recovery dla poszczególnych
modeli smartfonów Neffos, które można pobrać i z powodzeniem wgrać na telefon via fastboot
czy też
SP Flash Tool. Niżej zaś są także linki do repozytoriów z konfiguracją obrazów.
Repo z konfiguracją dla Neffos Y5
Repo z konfiguracją dla Neffos Y5L
Repo z konfiguracją dla Neffos C5
Repo z konfiguracją dla Neffos C5 MAX
Repo z konfiguracją dla Neffos X1
Wgrywanie obrazu TWRP na smartfon Neffos
Mając odblokowany bootloader oraz pobrany stosowny plik TWRP recovery, możemy przejść do etapu flash'owania smartfona. Ten proces w zasadzie nie różni się co do zasady ale w przypadku modeli Y5, Y5L i X1 mamy możliwość załadowania obrazu TWRP do pamięci smartfona, np. gdy chcemy jedynie ukorzenić Androida ale jednocześnie chcemy pozostać przy stock'owym recovery.
Przełączamy zatem telefon w tryb bootloader'a i przy pomocy narzędzia fastboot
wgrywamy obraz TWRP
na partycję /recovery/
wskazując w ostatnim argumencie ścieżkę do obrazu:
# fastboot flash recovery tp-link-neffos-twrp-recovery.img
Po wgraniu obrazu musimy uruchomić smartfon w trybie recovery przez przyciśnięcie przycisków
VolumeUP + Power. Trzeba to zrobić natychmiast po procesie flash'owania. Gdyby nam się telefon
uruchomił ponownie tuż po wgraniu obrazu, to system weryfikując partycję /recovery/
stwierdzi, że
znajduje się na niej nieoczekiwany kontent. Android podejmie próbę odtworzenia tej partycji podczas
startu systemu i w efekcie wygeneruje on sobie nowy obraz i wgra go na partycję /recovery/
przywracając stock'owy tryb recovery w naszym smartfonie. Jeśli do tego dojdzie, to trzeba będzie
jeszcze raz ponowić proces flash'owania obrazem TWRP.
Po wejściu w tryb recovery, naszym oczom powinien pokazać się poniższy obrazek:
Mamy tutaj zapytanie odnośnie wprowadzania zmian przez TWRP na partycji /system/
. Zmiana jest w
zasadzie tylko jedna i polega ona na przepisaniu nazwy pliku /system/recovery-from-boot.p
na
/system/recovery-from-boot.bak
. W ten sposób Android nie będzie w stanie przeprowadzić procesu
weryfikacji partycji /recovery/
i nie będzie jej próbował przepisać podczas startu smartfona.
Jeśli nie zezwolimy TWRP na wprowadzenie tej zmiany, to jak tylko zresetujemy smartfon, Android
przywróci stock'ową partycję /recovery/
i w późniejszym czasie trzeba będzie jeszcze raz wgrywać
obraz TWRP.
Trzeba tutaj wyraźnie zaznaczyć, że wyłączenie mechanizmu sprawdzania zawartości partycji
/recovery/
może utrudnić odratowanie smartfona w przypadku, gdy coś stanie się z oprogramowaniem
rezydującym na tej partycji. Zwykle jednak nic złego się nie dzieje i można bez problemu zezwolić
TWRP na wprowadzenie wymaganych zmian.
Problemy w przypadku Neffos X1
Nie wiem dlaczego Neffos X1 ma pewne problemy, gdy TWRP wprowadzi swoje zmiany na partycji
/system/
. Zezwalając TWRP na dokonanie zmian praktycznie uwalamy telefon (system nie chce
wystartować) i trzeba ratować się wgrywaniem stock'owego ROM'u via ADB Sideload. Oczywiście
późniejsze zmiany, które wprowadzimy, np. za sprawą procesu root, czy też instalując aplikacje
wymagające praw administratora systemu już takiego przykrego efektu nie wywołują. Dlatego też w
przypadku Neffos X1 nie zezwalajmy TWRP na dokonywanie zmian. Po zainstalowaniu SuperSU
prawdopodobnie nie będzie trzeba jeszcze raz wgrywać obrazu TWRP na partycję /recovery/
.
Instalacja SuperSU
Ostatnią rzeczą na drodze do ukorzenienia Androida na smartfonach Neffos jest wgranie aplikacji umożliwiającej korzystanie różnym programom z praw administratora systemu w telefonie. W obrazach TWRP recovery znajduje się odpowiedni moduł w pełni automatyzujący proces root w smartfonie. Nie trzeba zatem manualnie pobierać paczki z SuperSU. Jedyne co musimy zrobić to z menu TWRP wybrać Reboot => System. Przed zresetowaniem urządzenia, TWRP wyrzuci informację, że to urządzenie nie ma jeszcze root'a i zapyta nas czy chcemy zainstalować SuperSU (w przypadku Neffos X1 niestety trzeba instalować manualnie za pomocą paczki dostępnej tutaj):
TWRP zainstalował również swoją aplikację, która ma na celu umożliwić łatwą aktualizację obrazów TWRP, gdy zostanie wypuszczona nowa wersją tego trybu recovery (można ją też pobrać z Google Play).
Na tych dodatkowych ikonkach widocznych wyżej trzeba kliknąć i postępować zgodnie z instrukcjami aktualizacji:
Po zainstalowaniu, restartujemy smartfon.
Test root na smartfonach Neffos
Po zresetowaniu urządzenia możemy sprawdzić czy Android w naszym Neffos'ie został już ukorzeniony, np. doinstalowując sobie jedną z aplikacji, która nam ten sam rzeczy oznajmi. Poniżej są fotki obrazujące root smartfonów Neffos C5, C5 MAX, Y5, Y5L i X1:
Unroot
Standardowo w Androidzie każda aplikacja zainstalowana w telefonie ma przypisane indywidualne UID/GID (użytkownika i grupę). Żadna aplikacja nie jest w stanie odczytać danych innych programów, które zainstalowaliśmy w systemie. Zaprzęgając mechanizm root dajemy możliwość pewnym aplikacjom na dostęp do danych każdego innego programu.
Jeśli teraz wgramy podejrzaną aplikację, to może ona wykorzystać fakt ukorzenienia Androida i uzyskać dostęp do poufnych danych czy nawet przejąc całkowitą kontrolę nad systemem operacyjnym telefonu, wliczając to podsłuch z mikrofonu, kamery i klawiatury. Dlatego też w pewnych sytuacjach root Androida nie jest wskazany.
Podczas ukorzeniania Androida poczyniliśmy zmiany na partycji /recovery/
(wgrane TWRP) oraz
/system/
i /boot/
(na potrzeby SuperSU). By teraz powrócić do fabrycznego firmware, te zmiany
trzeba cofnąć. Jeśli nie instalowaliśmy żadnych dodatkowych aplikacji wymagających praw
administratora root, to wystarczy odinstalować SuperSU oraz przywrócić stock'owe obrazy partycji
/recovery/
oraz /boot/
.
Natomiast w przypadku instalowania dodatkowego oprogramowania, to niestety trzeba już wgrać
stock'owy obraz na partycję /system/
. Najprościej jest po prostu wgrać wszystkie te trzy ww.
obrazy i wtedy będziemy mieć pewność, że powrócimy do fabrycznego oprogramowania. Obrazy wgrywamy
przy pomocy narzędzia fastboot
:
# fastboot flash system orig-system.img
# fastboot flash recovery orig-recovery.img
# fastboot flash boot orig-boot.img
Następnie czyścimy cache:
# fastboot format cache
No i na koniec zakładamy blokadę na bootloader, co zainicjuje również proces Factory Reset, czyszcząc tym samym wszystkie dane użytkownika:
# fastboot oem lock
Proces Root Integrity Check
Smartfony Neffos są wyposażone w mechanizm, który jest w stanie zweryfikować integralność danych w systemie. W przypadku powracania ze zrootowanego Androida do stock'owego firmware TP-LINK'a, dobrze jest przeprowadzić proces Root Integrity Check z poziomu trybu recovery tak, by upewnić się, że faktycznie powróciliśmy do oryginalnego oprogramowania oraz, że nie będzie problemów z ewentualnymi aktualizacjami systemu telefonu w późniejszym czasie.
Brak wolnego miejsca i zmiana układu partycji flash'a
Neffos C5 i C5 MAX mają wydzielone 4 GiB na partycję /system/
. Jest to dość sporo biorąc pod
uwagę fakt, że TP-LINK'owy ROM jest w stanie się zmieścić na około 2 GiB. Z kolei w przypadku
Neffos'ów Y5 i Y5L, partycja /system/
ma około 1,8 GiB i w zasadzie zostaje nam do dyspozycji
bardzo niewiele wolnego miejsca. Jest to rząd wielkości 30-50 MiB.
We wszystkich tych modelach smartfonów, układ partycji na flash'u jest do wymiany. Oczywiście nic
nie stoi na przeszkodzie by w Neffos C5 i C5 MAX mieć przeznaczone 4 GiB na partycję /system/
ale
wtedy tracimy trochę cennej przestrzeni, którą można by dołączyć do partycji /data/
, a tym samym
mieć więcej miejsca na dane użytkownika.
Poważny problem za to zaczyna się w przypadku Neffos Y5 i Y5L, gdzie mało miejsca na partycji
/system/
może prowadzić do niestabilności systemu lub niemożliwości jego uruchomienia się. Tutaj
mamy po prostu idealnie wykrojoną część flash'a pod stock'owy ROM. Natomiast, gdy przychodzi do
zabaw z prawami administratora root i wgrywaniem aplikacji, które operują na partycji /system/
,
to niestety musimy się liczyć z faktem, że w przypadku tych dwóch smartfonów może nam tego wolnego
miejsca zwyczajnie zabraknąć.
Rozwiązaniem jest naturalnie fizyczne usunięcie szeregu partycji z pamięci flash telefonu i stworzenie ich od podstaw. To zadanie jednak wykracza poza ramy tego artykułu. Niemniej jednak, planuję tego typu zabieg przeprowadzić i dokładnie go opisać. (link FIXME).
Informacje na temat zmiany układu partycji na flash'u w smartfonach Neffos C5 i C5 MAX można znaleźć tutaj.
Problemy i niebezpieczeństwa związane z procesem root
Ja posiadam kilka smartfonów, które mają ukorzenionego Androida, tj. został na tych urządzeniach przeprowadzony proces root. Tego typu zabieg wyłącza praktycznie wszystkie (albo znaczną większość) mechanizmów obronnych naszego telefonu. Biorąc pod uwagę fakt, że cała masa użytkowników smartfonów (nie tylko Neffos'ów od TP-LINK) ukorzenia te urządzenia bez wiedzy co tak naprawdę robi, to postanowiłem napisać kilka słów odnośnie problemów, którym użytkownik ukorzenionego systemu będzie musiał stawić czoła.
Przede wszystkim, muszę tutaj zaznaczyć, że samymi smartfonami, a właściwie systemem Android, interesuję się od kilku miesięcy i w zasadzie nie poznałem go jeszcze w pełni. Niemniej jednak, od czasu do czasu rozpracowuje sobie pewne rzeczy w oparciu o dwie wersje Androida: 5.1 (Lollipop) oraz 6.0 (Marshmallow). W tym miejscu chciałbym zebrać wszystkie swoje artykuły, które pokazują jak proces root wpływa na bezpieczeństwo systemu oraz które z jego funkcji przestają działać lub tez są w znacznym stopniu upośledzone.
To, że akurat ja korzystam z ukorzenionego Androida, nie znaczy, że i ty powinieneś, zwłaszcza w przypadku, gdy bezpieczeństwo danych przechowywanych w telefonie ma dla ciebie nadrzędne znaczenie. W zasadzie wszystkie z czterech modeli smartfonów Neffos dostępnych na polskim rynku, tj. C5, C5 MAX, Y5 i Y5L, można zrootować bez większego problemu, co widzieliśmy wyżej.
Jeśli chodzi o mnie, to proces root bardzo ułatwia mi rozpracowanie samego systemu i sprawia, że mam wgląd w miejsca, w które standardowy użytkownik telefonu zajrzeć nie może, bo Android odmawia mu dostępu właśnie ze względów bezpieczeństwa. Dlatego też jeśli nie potrzebujesz rootować systemu w telefonie, to tego po prostu nie rób.
Problemy z lokalizacją skradzionego smartfona
Jednym z bardziej podstawowych mechanizmów ochronnych, które oferuje Google w Androidzie, to usługa lokalizacji smartfona na wypadek jego utraty czy kradzieży. No w przypadku zwykłego zawieruszenia się naszego telefonu raczej nic nam nie grozi ale, gdy takie urządzenie zostanie nam skradzione, to wtedy mamy bardzo poważny problem.
Przede wszystkim, mając odblokowany bootloader, który jest wymagany do ukorzenienia Neffos'ów, dajemy złodziejowi narzędzie zresetowania smartfona i obejścia tym samym blokady Factory Reset Protection Lock (FRP Lock). Gdy złodziej obejdzie tę blokadę jest w stanie przywrócić system urządzenia do ustawień fabrycznych, np. w celu odsprzedania telefonu komuś trzeciemu. W takim przypadku nasz smartfon nie będzie już dłużej powiązany z konkretnym kontem Google i zlokalizowanie go przez ww. usługę będzie zwyczajnie niemożliwe.
Możliwość obejścia blokady ekranu
Standardowo każdy z nas korzysta z blokady ekranu w swoich telefonach. Ja akurat mam opcję "Przesuń palcem" ale jakby nie patrzeć, to też blokada. Ci z was, którzy wykorzystują PIN, wzór albo hasło, mogą nieco się zawieść w przypadku, gdy mają ukorzenionego Androida. Cały ten mechanizm blokady ekranu opiera się o ustawienia stosownej aplikacji i klucz zabezpieczający. Wszystkie te dane są przechowywane w plikach na flash'u smartfona. Jeśli teraz mamy zdjętą blokadę bootloader'a, bo chcieliśmy sobie ukorzenić system, to dostęp do tych kluczy i ustawień pozostaje niechroniony i można zresetować blokadę ekranu przez tryb recovery.
Więcej informacji na temat resetowania ustawień blokady ekranu można znaleźć w osobnym wątku (ostatni nagłówek).
Odszyfrowanie zawartości karty SD sformatowanej jako pamięć wewnętrzna
Nowsze wersje Androidów (6.0+) są w stanie rozbudować pamięć flash w smartfonach przy wykorzystaniu Adoptable Storage. Ten mechanizm zakłada sformatowanie karty SD systemem plików, który daje możliwość wykorzystania uprawnień do plików w celu poprawienia bezpieczeństwa systemu i poufności danych przechowywanych na samej karcie SD. Domyślnie dane na tej karcie SD są szyfrowane i nie da rady do tych informacji uzyskać dostępu z poziomu innego urządzenia. Możemy w zasadzie korzystać z tej karty na smartfonie, gdzie została ona sformatowana jako pamięć wewnętrzna i nic poza tym.
Do szyfrowania zawartości karty jest wykorzystywany losowy klucz szyfrujący, który jest tworzony w procesie formatowania karty SD. Ten klucz nie jest zabezpieczony żadnym hasłem (np. tym od blokady ekranu) i leży sobie jak gdyby nigdy nic na flash'u smartfona. Mając przeprowadzony proces root, ten klucz jest dostępny praktycznie dla każdego, przez co jakiekolwiek szyfrowanie danych na karcie SD jest tylko złudzeniem bezpieczeństwa i niepotrzebnie obciąża procesor telefonu.
Inne problemy
Oczywiście, te powyżej wypisane niedogodności nie są jedynymi. Prawdopodobnie jest ich jeszcze cała masa ale, jako że mam ciągle "niewielkie" doświadczenie z Androidem, to jeszcze nie wszystkie rzeczy udało mi się wyłapać. Niemniej jednak, jak tylko coś ciekawego znajdę, to naturalnie opiszę i dodam tutaj stosowny nagłówek, tak by ta lista była możliwie rozbudowana, co może przyczyni się do większej świadomości osób korzystających z Androida i zaowocuje zastanowieniem się nad tym, czy faktycznie dany użytkownik potrzebuje ukorzenionego Androida w swoim smartfonie.