Search the Community

Showing results for tags 'neffos y5'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Category Index
    • Rules - Terms of Use
    • The shape of the forum - a discussion, proposals, opinions.
    • tplinklogin.net oraz tplinkextender.net
    • Useful links
    • ftp://tplink-forum.pl
    • PHOTO GALLERY - TP-Link in your network
    • CONNECTED nr 4/2016 (13) - NEW
  • TP-LINK Forum
    • ADSL, DSL, LTE, PLC, USB - what model TP-Link buy?
    • BAZAR - buy or sell
    • HOME NETWORKS
    • GUIDES - FAQ - CONFIGURATION
    • FIRMWARE
    • NEWS in TP-LINK
    • Neffos - technical support
    • USER REVIEWS / EXPERT
    • EMERGENCY CONFIGURATION TP-LINK
    • ADVICE SERVICE
    • TRUSTED DISTRIBUTOR - SELLER TP-LINK
  • TP-Link imanuals
    • Wireless devices - standard AD
    • Wireless devices - standard AC
    • Wireless devices Dual Band
    • Wireless devices - standard N, 300Mb/s
    • Wireless devices - standard N, 150Mb/s
    • ADSL devices
    • Repeaters and boosters
    • Wireless cards
    • Routers 3G/4G/LTE
    • 3G Modems
    • SOHO switches
    • Powerline Adapters
    • IP cameras Cloud
    • Print servers
    • Antennas and accessories
    • Wired cards
    • Out of production
  • TP-Link rozwiązania SMB
    • Product Catalog SMB 2013
    • Product Catalog SMB 2015
  • TP-Link via alternative software
    • Who and where alternative forms software
    • Current firmware Gargoyle, LEDE, DD-WRT, OpenWRT, Luci, LEDE
    • TUTORIALS - FAQ - alternative software
    • Emergency configuration - alternative software
  • Networks, internet
    • FAQ - networks
    • Konfiguracja popularnych urządzeń sieciowych
    • Routers from other manufacturers
  • Inne dyskusje
    • Hydepark

Found 12 results

  1. Jako, że w końcu udało mi się zbudować obraz TWRP recovery ze źródeł Androida dla jednego z moich smartfonów Neffos, to postanowiłem, że zbuduję sobie podobne obrazy dla pozostałych TP-LINK'owych telefonów. Cała konfiguracja pod konkretne modele Neffos'ów będzie wersjowana i trzymana na GitHub'ie. Tego typu rozwiązanie sprawi, że w niedługim okresie czasu, smartfony Neffos będą oficjalnie wspierane przez TWRP, no i otwiera to oczywiście drogę do budowy alternatywnych ROM'ów ale tu jeszcze trochę będzie trzeba posiedzieć. Tak czy inaczej własnoręczne budowanie ze źródeł obrazu daje możliwość bardzo prostej aktualizacji oprogramowania dla trybu recovery. Do tej pory w wątkach poświęconych ukorzenianiu smartfonów (root) były wykorzystywane pseudo porty obrazów z innych urządzeń zbliżonych pod kątem podzespołów. Te obrazy nie zawsze działały tak jak powinny i w zasadzie nadawały się jedynie dla procesu root. Poniżej zaś znajdują się gotowe obrazy recovery dla poszczególnych modeli Neffos'ów, które można pobrać i z powodzeniem wgrać na telefon via fastboot. Obok obrazów są także linki do repozytoriów z konfiguracją obrazów. Gotowy obraz recovery-twrp-tp-link-neffos-y5.img | Repo z konfiguracją dla Neffos Y5 Gotowy obraz recovery-twrp-tp-link-neffos-y5l.img | Repo z konfiguracją dla Neffos Y5L Gotowy obraz recovery-twrp-tp-link-neffos-c5.img | Repo z konfiguracją dla Neffos C5 Gotowy obraz recovery-twrp-tp-link-neffos-c5-max.img | Repo z konfiguracją dla Neffos C5 MAX By wgrać taki obraz na telefon, trzeba mieć zainstalowane w systemie wspomniane wyżej narzędzie fastboot. By dodatkowo móc wykonać szereg akcji z poziomu tego trybu recovery, potrzebne jest nam także narzędzie adb. Proces instalacji i konfiguracji tych narzędzi pod linux (Debian) został opisany tutaj.
  2. Gdy zamierzamy zbudować sobie własny ROM na smartfon z Androidem, np. LineageOS (CyanogenMod nie jest już rozwijany) czy nawet jedynie obraz recovery (TWRP albo CWM), to potrzebne nam jest stosowne urządzenie oraz odpowiedni kod źródłowy. Skoro chcemy budować te ww. rzeczy, to prawdopodobnie nasz telefon nie jest przez to oprogramowanie jeszcze wspierany lub też sam soft nie jest regularnie aktualizowany przez dewelopera. W zasadzie zarówno pełne ROM'y jak i obrazy recovery są budowane ze źródeł Androida. Niemniej jednak, oficjalny kod dostarczany przez Google budzi czasem wiele kontrowersji i ci nieco bardziej zaawansowani użytkownicy zmieniają go, np. czyniąc go w pełni OpenSource czy też implementując w nim pewną niestandardową funkcjonalność. Tak powstają Custom ROM'y, które w późniejszym czasie z racji swojej popularności przestają być "Custom" i zaczynają żyć swoim własnym życiem obok tego Góglowskiego Androida. W przypadku budowania obrazu recovery nie są nam potrzebne całe źródła konkretnego ROM'u. Jakby nie patrzeć, potrafią one zajmować trochę miejsca, a poza tym proces ich budowania jest stosunkowo czasochłonny. Tak czy inaczej, jakieś źródła trzeba pozyskać i przygotować je do dalszej pracy. W tym artykule nie będziemy sobie jeszcze budować całego ROM'u i skupimy się na zbudowaniu od podstaw jedynie obrazu TWRP recovery ze źródeł OMNI ROM. Ten proces zostanie pokazany na przykładzie smartfona Neffos Y5 od TP-LINK przy wykorzystaniu systemu linux, a konkretnie dystrybucji Debian. Android SDK Operowanie na oprogramowaniu, które mamy w naszych smartfonach, wymaga zainstalowania na komputerze pakietu Android SDK. W nim zawarte są narzędzia deweloperskie min. fastboot i adb , przy pomocy których będziemy w stanie przeprowadzić szereg akcji na smartfonie. Te narzędzia można zainstalować w systemie na kilka sposobów. Standardowo fastboot i adb są dostępne w repozytoriach Debiana w pakietach android-tools-adb oraz android-tools-fastboot . Proces instalacji i konfiguracji tych narzędzi na Debianie został opisany w osobnym wątku. Niemniej jednak, nie są to wszystkie narzędzia, które Android SDK dostarcza, a biorąc pod uwagę fakt, że obecnie w Debianie panuje spory nieporządek w pakietach, to lepiej zainstalować Android SDK lub Android Studio bezpośrednio ze strony Google. Narzędzia repo i git Do pobrania źródeł Androida jest wykorzystywane dedykowane narzędzie repo . W dystrybucji Debiana mamy taki pakiet i możemy go bez większego problemu zainstalować. Problem w tym, że wersja tego narzędzia może być nieaktualna. Obecnie jest to 1.23 . Najnowsza wersja repo jest dostępna zawsze pod tym linkiem. By ją zainstalować ręcznie w systemie, w terminalu wpisujemy poniższe polecenia: # curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo # chmod a+x /usr/local/bin/repo # chown root:staff /usr/local/bin/repo Narzędzie repo operuje na git i ten pakiet również musimy w systemie sobie zainstalować. Podstawy operowania na repozytorium GIT musimy znać. Warto zatem rzucić okiem na dokumentację git'a i ją sobie chociaż powierzchownie przejrzeć. Przygotowanie katalogu roboczego pod źródła Źródła Androida trzeba gdzieś pobrać. Stwórzmy sobie zatem dedykowany katalog roboczy i przejdźmy do niego: $ mkdir /Android/android-src/ $ cd /Android/android-src/ Od tej chwili wszystkie polecenia będą wydawane w tym właśnie katalogu. Inicjowanie repozytorium GIT Na samym początku trzeba zainicjować lokalne repozytorium. Różne smartfony działają pod kontrolą innych wersji Androida (Lollipop, Marshmallow, Nougat). Jeśli zamierzamy kompilować jedynie część modułów, a nie cały ROM, i to głównie dla siebie, to warto zadbać o to, by wersja źródeł Androida pasowała do wersji Androida, którą mamy w telefonie. Niemniej jednak, w przypadku obrazu TWRP recovery możemy korzystać z najnowszych źródeł, bo w zasadzie nie będziemy wgrywać żadnych plików bezpośrednio na partycję /system/ , która zawiera stock'owy ROM. Musimy zatem określić stosowną gałąź repozytorium GIT, którą zamierzamy sobie sklonować na dysk. Lista wszystkich gałęzi jest dostępna tutaj i z reguły Custom ROM'y przestrzegają tego nazewnictwa. Warto też określić parametr --depth=1 , który uchroni nas przed pobraniem wszystkich rewizji. Zamiast tego, zostanie pobrany jedynie ostatni snapshot wskazanej przez nas gałęzi, a to z kolei znacznie zmniejszy ilość danych, które trzeba będzie przetransferować przez sieć. Bez tej opcji zostałoby pobranych jakieś 30-40 GiB, a może nawet i więcej). Źródła TWRP recovery znajdują się tutaj. Niektóre ROM'y nie mają zawartego w sobie tego repozytorium i trzeba je ręcznie określić w pliku .repo/manifest.xml w katalogu ze źródłami Androida. My jednak będziemy korzystać ze źródeł OMNI ROM, które już to repozytorium zawiera. Zatem żadnych dodatkowych kroków nie będziemy musieli przeprowadzać. Lokalne repozytorium inicjujemy w poniższy sposób: $ repo init -u https://github.com/omnirom/android -b android-7.1 --depth=1 Po zainicjowaniu lokalnego repozytorium, w katalogu roboczym powinien pojawić się folder .repo/ . W nim z kolei znajduje się plik (właściwie link) manifest.xml . Zajrzyjmy do niego i upewnijmy się, że w default revision widnieje numerek wskazanej wyżej wersji Androida ( android-7.1.x ). Warto wspomnieć, że większość repozytoriów zdefiniowanych w pliku manifest.xml jest zbędna przy budowaniu samego obrazu TWRP recovery. Jeśli komuś nie zależy na oszczędzaniu transferu danych oraz ma dostatecznie dużo miejsca na dysku, to może pobrać całe źródła OMNI ROM. Dla tych, którzy skąpią miejsca na dysku i transferu jest okrojona wersja, którą można z powodzeniem wykorzystać. Poniżej jest polecenie inicjujące lokalne repozytorium z wykorzystaniem okrojonego pliku manifest.xml . $ repo init -u git://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni.git -b twrp-6.0 --depth=1 W tym przypadku, lokalne repozytorium zostało zainicjowane w oparciu o ten okrojony plik manifest.xml . Trzeba tutaj jednak wyraźnie zaznaczyć, że niektóre konfiguracje sprzętowe (czy też opcje trybu recovery) będą wymagać dodatkowych repozytoriów, które trzeba będzie ręcznie dodać do pliku .repo/local_manifests/local_manifest.xml . Warto zatem poznać budowę tego pliku i nauczyć się na nim operować. Gdy już uporządkujemy sprawy związane z repozytoriami, to przy pomocy repo sync synchronizujemy źródła każdego repozytorium, które mamy zdefiniowane w pliku manifests.xml . Naturalnie im więcej ich mamy, tym więcej miejsca będą one zajmować i dłużej będzie trwał proces synchronizacji. W przypadku, gdy dysponujemy szybkim łączem internetowym, to możemy też zwiększyć liczbę jednoczesnych połączeń przy pomocy --jobs (domyślnie 4): $ repo sync --current-branch --jobs=4 Zależności potrzebne do zbudowania Androida ze źródeł Pobranie źródeł to jedna sprawa, a ich zbudowanie to całkiem inna kwestia. By uniknąć ewentualnych problemów będziemy musieli zainstalować w systemie kilka dodatkowych zależności. Poniżej jest lista potrzebnych rzeczy: # aptitude install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \ lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \ libgl1-mesa-dev libxml2-utils xsltproc unzip openjdk-7-jdk Bez tych pakietów, proces budowy obrazu będzie napotkał błędy podobne do tego opisanego tutaj. Przyśpieszenie procesu kompilacji z ccache Kompilacja to proces czasochłonny i dość zasobożerny. W zasadzie budując ten sam kod kilka razy, nie ma potrzeby ponawiania całego procesu kompilacji, bo w sporej części przypadków można odwołać się do już zbudowanych obiektów. Niemniej jednak, potrzebny jest nam jakiś cache dla kompilatora, którego standardowo w linux'ie nie ma. Dlatego właśnie powstało narzędzie ccache , które jest nam w stanie dość znacznie umilić życie, przy ciągłym budowaniu tych samych programów czy projektów. Narzędzie ccache musimy sobie odpowiednio skonfigurować. Na dobrą sprawę, to jedyne co musimy zrobić, to dodać te dwie poniższe zmienne do pliku ~/.bashrc lub ~/.zshrc : export USE_CCACHE=1 export CCACHE_DIR=/mnt/.ccache Rozmiar całego cache definiujemy w poniższy sposób (polecenie wywołane z głównego katalogu ze źródłami Androida): $ prebuilts/misc/linux-x86/ccache/ccache -M 50G Jeśli chcemy się upewnić, czy ccache działa prawidłowo, to odpalamy osobny terminal podczas procesu kompilacji, przechodzimy do katalogu ze źródłami i wydajemy poniższe polecenie: $ watch -n1 -d prebuilts/misc/linux-x86/ccache/ccache -s Tworzenie konfiguracji dla TWRP recovery pod konkretny model smartfona W zasadzie źródła już mamy przygotowane do budowania ale potrzebna nam jest jeszcze konfiguracja dla naszego smartfona. Musimy zatem stworzyć kilka plików i katalogów. Poniższe informacje dotyczą smartfona Neffos Y5 ale ten krok w zasadzie nie różni się w przypadku innych modeli telefonów. Jedyne co, to trzeba pozyskać pewne informacje na temat podzespołów urządzenia (min. SoC), dla którego zamierzamy zbudować obraz TWRP i wpisać te dane w stosowne miejsca. Najprościej jest zacząć od pliku /system/build.prop , który został zawarty w stock'owym firmware (można też wyciągać zawartość zmiennych przez getprop ). Podłączmy zatem na moment smartfon do komputera i przy pomocy adb patrzymy co siedzi w zmiennych ro.product.manufacturer oraz ro.product.name : # adb shell "getprop ro.product.manufacturer" TP-LINK # adb shell "getprop ro.product.name" TP802A Przechodzimy teraz do głównego folderu ze źródłami Androida i pod device/ tworzymy strukturę katalogów na zasadzie manufacturer/name . Wszystkie nazwy mają być pisane z małych liter: $ mkdir device/tp-link/tp802a/ W tak powstałym katalogu tworzymy konfigurację dla naszego smartfona, w tym przypadku Neffos Y5. Poniżej znajduje się krótkie objaśnienie co do struktury plików. Plik device.mk Zaczynamy od utworzenia pliku device.mk , gdzie będziemy definiować wszystkie niezbędne moduły i pliki wymagane do zbudowania obrazu TWRP recovery dla naszego smartfona. Plik omni_tp802a.mk Następnie tworzymy plik omni_tp802a.mk , w którym będą deklarowane informacje takie jak nazwa, model i producent smartfona. Plik AndroidProducts.mk Kolejny plik, który musimy utworzyć, to AndroidProducts.mk . W nim zamieszczamy wpis wskazujący na ten powyższy plik omni_tp802a.mk . Plik BoardConfig.mk Plik BoardConfig.mk jest w zasadzie sercem całej konfiguracji. To w tym pliku określamy min. to co tak naprawdę siedzi w naszym smartfonie. Znajdują się tutaj ustawienia platformy sprzętowej, architektury systemowej, konfiguracja kernela, rozmiary poszczególnych partycji oraz oczywiście opcje TWRP recovery. Wszystkie te parametry mogą się różnic w zależności od podzespołów smartfona, z którym mamy do czynienia. W zasadzie obraz TWRP recovery powinien działać bez zarzutu nawet przy minimalnej konfiguracji ale w przypadku budowania pełnego ROM'u, to już niestety będziemy musieli nieco bardziej się postarać, by nasz smartfon działał bez problemu na nowym oprogramowaniu. Część opcji, które trzeba określić w BoardConfig.mk , można wyciągnąć ze smartfona zaglądając do pliku /system/build.prop . Poniżej znajduje się też lekka rozpiska ułatwiająca pozyskanie informacji dla poszczególnych sekcji. Sekcja Platform Sekcję Platform może nam sprawić najwięcej problemów, zwłaszcza gdy nie mamy za bardzo pojęcia jakie podzespoły siedzą w naszym smartfonie. W tym przypadku mamy do czynienia z Neffos Y5 i on posiada SoC MSM8909 od Qualcomm. Konfiguracja konkretnego SoC jest w zasadzie stała i można ją przepisać ze źródeł innego smartfona, który ma ten sam SoC, zakładając oczywiście, że deweloper nie popełnił błędów w konfiguracji tamtego urządzenia. Sekcja Kernel Bawiąc się w ukorzenianie swoich Neffos'ów, jednym z wymaganych etapów było rozmontowanie obrazu boot.img za pomocą tych skryptów. Podczas tego procesu, w terminalu można było zanotować poniższe wyjście: Jak widzimy, praktycznie cała sekcja jest nam podana jak na dłoni i wystarczy uzupełnić stosowne parametry dodając przed ich wartościami 0x . Trzeba tutaj zaznaczyć, że my nie budujemy kernela ze źródeł Androida i załączamy tutaj plik kernela, który można wyciągnąć po rozmontowaniu stock'owego obrazu boot.img . Sekcja Qualcomm Sekcja Qualcomm definiuje szereg opcji specyficznych dla SoC tego producenta. W zasadzie to trzeba dostosować ścieżkę, która musi wskazywać na bazę platformy naszego smartfona. Ścieżka w tym przypadku wskazuje na katalog /sys/devices/soc.0/ ale z pominięciem /sys/ . Sekcja Encryption Nowsze wersje TWRP recovery wspierają szyfrowanie/deszyfrowanie partycji /data/ . Jeśli z poziomu Androida zaszyfrowaliśmy dane użytkownika, to TWRP standardowo nie będzie w stanie zamontować tej partycji, co będzie przyczyną całej masy błędów. Dlatego też musimy włączyć moduł szyfrowania. W zasadzie mamy dwa rodzaje szyfrowania: programowe i sprzętowe. To, które w naszym smartfonie zostało zaimplementowane możemy odczytać przechodząc w Ustawienia Androida => Zabezpieczenia => Typ Pamięci. W przypadku smartfona Neffos Y5, widzimy, że mamy do czynienia z szyfrowaniem sprzętowym, bo widnieje zapis "Wspomagana sprzętowo". Gdyby tam widniał zapis "Tylko programowa", to szyfrowanie byłoby jedynie programowe. Naturalnie szyfrowanie sprzętowe wymaga od nas dodatkowych nakładów pracy, by je skonfigurować. W zasadzie to trzeba będzie pozyskać szereg plików ze stock'owego firmware i uwzględnić je w obrazie TWRP. Bez tych plików, nie da rady odszyfrować danych na partycji /data/ nawet podając prawidłowe hasło. System za każdym razem zwróci nam taki oto błąd. To jakie pliki trzeba będzie uwzględnić w obrazie zależy od modelu smartfona. Nie da rady tego prosto ustalić i w zasadzie pozostaje nam dochodzenie do rozwiązania metodą prób i błędów. Możemy naturalnie podpierać się logami z trybu recovery, które mogą zawierać nazwy wymaganych bibliotek, a to już może nam wskazać dobrą drogę. Sekcja Partitions W oparciu o dane z pliku /proc/partitions lub /proc/emmc trzeba odpowiednio opisać kilka partycji smartfona. Chodzi generalnie o partycje /boot/ , /recovery/ , /system/ , /data/ oraz /cache/ . Do odczytania rozmiaru można też zaprzęgnąć różne aplikacje na Androida, np. diskinfo. Wartości podajemy w HEX. Możemy także skonfigurować sobie wsparcie dla szeregu dodatkowych systemów plików. Trzeba jednak pamiętać, że każde dodatkowe ficzery zajmują miejsce i w pewnych konfiguracjach może nam tej przestrzeni zwyczajnie zabraknąć. Tutaj mamy do dyspozycji 32 MiB i w zasadzie jest to dość sporo. Sekcja Recovery W sekcji Recovery musimy wskazać lokalizację do pliku fstab . To przy jego pomocy TWRP będzie w stanie operować na partycjach smartfona. Ten plik trzeba sobie zbudować samemu podpierając się wpisami w /proc/partitions lub /proc/emmc oraz aplikacjami na smartfona typu diskinfo. Sekcja TWRP W sekcji TWRP ustawia się opcje charakterystyczne dla TWRP recovery. Wszystkich opcji jest dość sporo i są one wyszczególnione pod tym linkiem. W zasadzie to musimy poprawnie ustawić zmienną TW_THEME , która odpowiada za rozdzielczość wyświetlacza smartfona. Do wyboru mamy: # portrait_mdpi = 320x480 480x800 480x854 540x960 # portrait_hdpi = 720x1280 800x1280 1080x1920 1200x1920 1440x2560 1600x2560 # watch_mdpi = 240x240 280x280 320x320 # landscape_mdpi = 800x480 1024x600 1024x768 # landscape_hdpi = 1280x800 1920x1200 2560x1600 Neffos Y5 ma rozdzielczość 720x1280, dlatego został wybrany portrait_hdpi . Może i mamy tutaj do wyboru dwa tryby wyświetlania (portrait i landscape) ale TWRP nie potrafi się przełączać między nimi dynamicznie. Jeśli chcemy mieć układ poziomy, to nie da rady przełączyć go w pionowy i vice versa. Pozostałe opcje mają raczej samo opisujące się nazwy. Plik vendorsetup.sh Za sprawą pliku vendorsetup.sh będziemy w stanie dodać nasze urządzenie do budowania. Ten plik będzie miał jedną linijkę, w której musimy określić dwie rzeczy: product_name oraz variant . Jeśli chodzi o product_name , to odczytujemy go z pliku omni_tp802a.mk ze zmiennej PRODUCT_NAME . Natomiast w variant możemy ustawić min. eng , user albo userdebug . Nas interesuje ta ostatnia opcja oferująca dostęp root i tryb debugowania. Budowanie obrazu TWRP recovery By przygotować środowisko pod budowę źródeł TWRP recovery, musimy wyeksportować szereg zmiennych. Nie robimy tego jednak ręcznie, a za pomocą pliku build/envsetup.sh w poniższy sposób: $ make clobber $ . ./build/envsetup.sh including device/tp-link/tp802a/vendorsetup.sh Jak widać wyżej, konfiguracja dla naszego smartfona została załączona. W przypadku korzystania z innego shell'a niż bash (w moim przypadku zsh ) wydanie tego powyższego polecenia zwraca takie oto ostrzeżenie: $ . ./build/envsetup.sh build/envsetup.sh:565: command not found: complete WARNING: Only bash is supported, use of other shell would lead to erroneous results Wygląda na to, że na czas budowy czegoś związanego z Androidem, trzeba korzystać z bash'a. Teraz możemy wpisać lunch i wybrać wcześniej stworzoną kombinację: $ lunch You're building on Linux Lunch menu... pick a combo: 1. aosp_arm-eng 2. aosp_arm64-eng 3. aosp_mips-eng 4. aosp_mips64-eng 5. aosp_x86-eng 6. aosp_x86_64-eng 7. omni_tp802a-userdebug Which would you like? Mamy na liście omni_tp802a-userdebug i to ją musimy wskazać. Możemy także od razu podać tę pozycję w lunch : $ lunch omni_tp802a-userdebug No i teraz pozostało nam już zbudowanie źródeł. Pamiętajmy tylko, że budujemy jedynie obraz TWRP recovery, a do tego celu służy poniższe polecenie: $ make clean && make -j2 recoveryimage Po kilku czy kilkunastu minutach, obraz recovery powinien nam się zbudować: Repozytorium git na Github'ie Po zbudowaniu obrazu TWRP sprawdzamy naturalnie czy działa on prawidłowo ładując plik out/target/product/tp802a/recovery.img na smartfon przy pomocy fastboot boot . Jeśli nie mamy zastrzeżeń co do działania trybu recovery, to możemy stworzoną w powyższy sposób konfigurację TWRP opublikować na GitHub'ie. Oczywiście musimy posiadać stosowne konto i stworzyć odpowiednie repozytorium. Nazwa tego repozytorium ma wskazywać na ścieżkę drzewa katalogów konfiguracji urządzenia. Przykładowo, mamy tutaj ścieżkę source/device/tp-link/tp802a/ , zatem nazwa repozytorium to android_device_tp-link_tp802a : Następnie przechodzimy do katalogu z plikami konfiguracyjnymi, z których zbudowaliśmy obraz TWRP recovery i inicjujemy w nim lokalne repozytorium: $ cd /Android/omni-twrp-6.0/device/tp-link/tp802a/ $ git init $ git remote add origin git@github.com:morfikov/android_device_tp-link_tp802a.git W pliku .git/config dopisujemy sobie te poniższe parametry: [user] name = Mikhail Morfikov email = morfik@nsa.com signingkey = 0xCD046810771B6520 [gpg] program = gpg Następnie dodajemy wszystkie plik, tworzymy commit i nową gałąź, którą nazywamy sobie, np. twrp-6.0 : $ git add --all $ git commit -S -m "first commit" $ git branch twrp-6.0 $ git checkout twrp-6.0 $ git add --all Teraz już wystarczy przesłać zmiany do zdalnego repozytorium na GitHub'ie: $ git push origin master $ git push origin twrp-6.0 I to w zasadzie cała robota. Wszelkie zmiany w repozytorium od tej pory będą rejestrowane przez system kontroli wersji. Możemy także przesłać całą konfigurację, tak by TWRP oficjalnie wspierało naszego smartfona.
  3. Jak już zapewne wielu użytkowników tego forum wie, 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 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). Ten wpis ma na celu zebranie wszystkich artykułów, 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. W moim przypadku, 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. Więcej informacji na temat lokalizacji zagubionych/skradzionych smartfonów można znaleźć w osobnym wątku. 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 system 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. Więcej informacji na temat odszyfrowania zawartości karty SD sformatowanej jako pamięć można znaleźć w osobnym wątku. 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 stosowny nagłówek w tym wątku, 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ę na tym, czy faktycznie dany użytkownik potrzebuje ukorzenionego Androida w swoim smartfonie.
  4. W Androidzie 6.0 Marshmallow został wprowadzony ciekawy mechanizm zwany Adoptable Storage, który umożliwia zamontowanie karty SD w smartfonie jako pamięć wewnętrzna. W ten sposób pamięć flash w telefonach, które mają jej niewiele, może zostać nieco rozbudowana. Jedyny problem z tym całym Adoptable Storage jest taki, że Android szyfruje zawartość karty SD automatycznie, przez co nie jesteśmy w stanie odczytać żadnych informacji z takiego nośnika na innych urządzeniach. Istnieje jednak sposób, by rozszyfrować i tym samym uzyskać dostęp do danych zgromadzonych na karcie SD z poziomu linux'a, np. dystrybucji Debian. W tym artykule prześledzimy sobie właśnie ten proces na przykładzie smartfona Neffos Y5 od TP-LINK. Ukorzeniony Android Marshmallow (root) Jako, że w grę wchodzi szyfrowanie danych, to ten proces zwykle jest należycie chroniony przez system w naszym telefonie. Dlatego też dostęp do interesujących nas plików (np. via adb ) jest bardzo ograniczony. By uzyskać dostęp do tych plików, musimy posiadać ukorzeniony system na smartfonie, tj. przeprowadzić na nim proces root. W przypadku tych TP-LINK'owych smartfonów dostępnych na polskim rynku, to tylko Neffos Y5 i Neffos Y5L mają wgranego Androida w wersji 6.0, dlatego też cały proces zostanie opisany w oparciu o jedno z tych urządzeń. W zasadzie mocniejszym sprzętem jest Neffos Y5 i dlatego zdecydowałem się nim posłużyć. Informacje na temat ukorzeniania Androida w Neffos Y5 znajdują się tutaj. Zakładam zatem w tym miejscu, że nasz smartfon przeszedł proces root. Formatowanie karty SD jako pamięć wewnętrzna Weźmy sobie zatem w łapki nasz smartfon i wsadźmy do niego jakąś kartę SD, którą zamierzamy sformatować jako pamięć wewnętrzna. Cały proces jest niemal automatyczny i wystarczy przejść do Ustawienia => Pamięć plików i kliknąć w "Karta SD". Mamy tam pozycję "Sformatuj jako pamięć wewn." i to w nią klikamy. Postępujemy zgodnie z informacjami na ekranie i po chwili karta powinna zostać przygotowana do pracy, tj. sformatowana, zaszyfrowana i zamontowana w systemie: Możemy też sprawdzić, gdzie Android montuje naszą kartę SD w systemie (przez adb) korzystając z polecenia mount : root@Y5:/ # mount | grep expand /dev/block/dm-0 /mnt/expand/9acfb46c-f218-43e7-a14a-a3592183af6d ext4 rw,dirsync,seclabel,nosuid,nodev,noatime 0 0 Poszukiwanie klucza szyfrującego dane karty SD Kartę SD można naturalnie wyciągnąć ze smartfona (pierw trzeba ją odmontować w Androidzie) i podłączyć do komputera przez czytnik kart SD. Gdybyśmy jednak taki zabieg zrobili, to okaże się, że nasz linux w komputerze nie rozpozna nam tego nośnika. W prawdzie gdisk będzie nam w stanie podać informacje o układzie partycji ale nie dostaniemy się do samego systemu plików: # gdisk -l /dev/sdb GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sdb: 3854336 sectors, 1.8 GiB Logical sector size: 512 bytes Disk identifier (GUID): 1281EE27-00C5-4CC7-8004-94DDBCEF829C Partition table holds up to 128 entries First usable sector is 34, last usable sector is 3854302 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 34815 16.0 MiB FFFF android_meta 2 34816 3854302 1.8 GiB FFFF android_expand Nas tutaj interesuje ta druga partycja, bo to tam są zgromadzone zaszyfrowane dane. By informacje na tej partycji odszyfrować, potrzebny nam jest klucz szyfrujący, a ten z kolei znajduje się gdzieś na smartfonie, pytanie tylko gdzie? Wzór nazwy klucza można wyciągnąć w poniższy sposób: root@Y5:/ # which vold /system/bin/vold root@Y5:/ # strings /system/bin/vold | grep -i expand --change-name=0:android_expand /mnt/expand/%s %s/expand_%s.key Wiemy zatem, że klucz nazywa się expand_%s.key , z tym, że do końca nie wiem za co odpowiada %s . Tak czy inaczej, wszystkie klucze są przechowywane pod /data/misc/vold/ : root@Y5:/ # ls -al /data/misc/vold/ drwx------ root root 2017-02-08 22:40 bench -rw------- root root 16 2017-02-08 22:40 expand_06bc225178c5900fe64800e4b70efd25.key Ten plik z rozszerzeniem .key jest tworzony w momencie, gdy formatujemy kartę SD jako pamięć wewnętrzna. Podobnie jest on usuwany ilekroć tylko będziemy nakazywać Androidowi zapomnienie tego nośnika. Jak widać, mając ukorzeniony system, dostęp do tego klucza jest praktycznie niechroniony (do tego brak zabezpieczenia hasłem), zatem każdy może go skopiować. Będąc w posiadaniu tego klucza, możemy odszyfrować zawartość karty SD na dowolnej maszynie wyposażonej w pierwszą lepszą dystrybucję linux'a. Odszyfrowanie zawartości karty SD Znając położenie klucza szyfrującego na smartfonie, możemy ten klucz wydobyć w poniższy sposób (zakodowany w HEX): root@Y5:/ # od -t x1 /data/misc/vold/expand_06bc225178c5900fe64800e4b70efd25.key 37777776620 6c 33 be 5d df 7b a0 d0 ca 41 fe d7 a7 8f 75 db 37777776620 Ten widoczny wyżej ciąg 16 bajtów (128 bitów) tj. 6c33be5ddf7ba0d0ca41fed7a78f75db , to nasz klucz szyfrujący dane na karcie SD, który teraz trzeba wskazać w dmsetup na linux. Dodatkowo, potrzebnych jest nam jeszcze kilka parametrów. Musimy min. wiedzieć jaki rodzaj szyfru jest wykorzystywany w procesie szyfrowania i deszyfrowania informacji na karcie SD oraz musimy znać szereg offsetów. Zgodnie z informacjami jakie znalazłem tutaj, Android korzysta z aes-cbc-essiv:sha256 . Offsety mogą być różne ale za punkt wyjścia można obrać 0 . Zatem linijka z dmsetup przybierze poniższą postać: # dmsetup create sdcard --table "0 `blockdev --getsize /dev/sdb2` crypt aes-cbc-essiv:sha256 6c33be5ddf7ba0d0ca41fed7a78f75db 0 /dev/sdb2 0" Dokładne wyjaśnienie wszystkich opcji użytych powyżej znajduje się tutaj. Jeśli to powyższe polecenie nie zwróci żadnego błędu, to możemy spróbować zamontować ten zasób w systemie. System plików, który został utworzony przez Androida w tym zaszyfrowanym kontenerze znamy i jest to linux'owy EXT4. Odszyfrowany kontener zaś jest dostępny pod /dev/mapper/sdcard : # mount -t ext4 /dev/mapper/sdcard /mnt/ # ls -al /mnt total 36K drwxr-xr-x. 8 root root 4.0K 2017-02-08 22:40:50 ./ drwxr-xr-x 25 root root 4.0K 2017-01-14 10:22:16 ../ drwxrwx--x. 2 morfik morfik 4.0K 2017-02-08 22:40:31 app/ drwxr-x--x. 3 root root 4.0K 2017-02-08 22:40:38 local/ drwx------. 2 root root 4.0K 1970-01-01 01:00:00 lost+found/ drwxrwx---. 4 1023 1023 4.0K 2017-02-08 22:42:09 media/ drwxrwx--t. 3 morfik 9998 4.0K 2017-02-08 22:40:51 misc/ drwx--x--x. 3 morfik morfik 4.0K 2017-02-08 22:40:40 user/ Zatem udało nam się uzyskać dostęp do zaszyfrowanych danych. Jeśli teraz wgralibyśmy coś tutaj do katalogu user/ czy media/ , to naturalnie Android w naszym Neffos Y5 będzie w stanie bez problemu ten plik odczytać. Standardowo w przypadku, gdy zamierzamy sformatować kartę SD jako pamięć wewnętrzna, to musimy się liczyć z faktem bezpowrotnej utraty wszystkich danych zgromadzonych w telefonie, gdy ten ulegnie jakiejś większej awarii. Posiadając jednak ukorzenionego Androida, możemy taki klucz szyfrujący skopiować sobie na dysk komputera i tam go trzymać. Gdy telefon ulegnie uszkodzeniu, to dane z karty SD będziemy w stanie odczytać. Trzeba jednak również pamiętać o tym, że z telefonu ten klucz można wyciągnąć bez problemu o ile mamy w nim odblokowany bootloader (na potrzeby root, czy custom recovery), a że nie jest on w żaden sposób zabezpieczony (PIN, hasło, itp), to każdy kto zna się trochę na telefonach będzie w stanie uzyskać dostęp do danych zgromadzonych na tej karcie SD.
  5. Smartfony towarzyszą nam w codziennym życiu praktycznie cały czas. Dlatego też zaczynamy przechowywać w tych urządzeniach coraz to więcej informacji osobistych, które są w stanie dość dokładnie opisać nasze życie prywatne. Co jednak w przypadku, gdy taki telefon zgubimy lub też zostanie nam on skradziony przez kogoś? Gdy chodzi o urządzenia z Androidem, to Google oferuje usługę, która jest w stanie połączyć się z naszym smartfonem i przy odrobinie szczęścia ujawnić nam jego położenie geograficzne lub też pozwolić nam na zdalne zablokowanie systemu w telefonie. Chodzi oczywiście o usługę "Znajdź telefon/smartfon" (find my phone), na którą rzucimy sobie okiem w tym artykule. Jak działa usługa "Znajdź telefon/smartfon" Generalnie rzecz ujmując, usługa "Znajdź telefon/smartfon" jest dostępna w praktycznie każdym Androidzie i jest automatycznie włączona. Nie musimy zatem nic dodatkowo instalować czy konfigurować, no chyba, że chcemy tę usługę wyłącz w obawie o naszą prywatność ale do tej kwestii przejdziemy nieco później. Na razie skupmy się na samej usłudze. By usługa "Znajdź telefon/smartfon" była w stanie działać prawidłowo, potrzebne jest powiązanie urządzenia z Androidem, w tym przypadku smartfon, z istniejącym kontem Google. Innymi słowy, trzeba się zalogować na jakieś konto Google na tym urządzeniu. Innym ważnym punktem, który musi być spełniony, jest dostęp telefonu do internetu. Nie ma przy tym znaczenia, czy ten dostęp jest po WiFi czy przez operatora GSM (dane pakietowe). Bez dostępu do internetu, Android nie połączy się z serwerami Google i usługa jest w zasadzie bezużyteczna. Nic więcej nam nie jest potrzebne, no chyba, że chcemy uzyskać położenie geograficzne i zlokalizować smartfon. W takim przypadku telefon musi mieć włączoną nawigację satelitarną (GPS), a ten moduł nie zawsze jest aktywny i dlatego też nie od razu uda nam się taki zgubiony/skradziony telefon odnaleźć na mapie. Idąc dalej, jako, że ta usługa działa w oparciu o przypisanie konta Google do urządzenia z Androidem, to zresetowanie ustawień do fabrycznych w taki sposób by obejść blokadę Factory Reset Protection Lock (FRP Lock), skutecznie uniemożliwia nam przeprowadzenie jakichkolwiek działań ratunkowych. Warto o tym fakcie pamiętać w przypadku, gdy many z jakiegoś powodu odblokowany bootloader lub też posiadamy niezbyt przyzwoicie zabezpieczony smartfon, który umożliwia przepisanie partycji frp w celu obejścia ww. blokady. Jeśli któraś z tych powyższych sytuacji ma miejsce, to biorąc pod uwagę kwestię prywatności, dobrze jest wyłączyć usługę "Znajdź telefon/smartfon". Jak włączyć/wyłączyć usługę "Znajdź telefon/smartfon" Usługę "Znajdź telefon/smartfon" można wyłączyć z poziomu ustawień systemu smartfona. W zasadzie zarówno w wersji 5.1 (Lollipop) jak i 6.0 (Marshmallow) stosowna konfiguracja znajduje się w Ustawienia => Zabezpieczenia => Administratorzy urządzenia: Jak widać na powyższej fotce, w tym przypadku mamy kilka aplikacji, które są w stanie w jakimś stopniu zarządzać naszym telefonem. Jeśli któreś z nich nie powinno tego robić, to naturalnie ze względów bezpieczeństwa lepiej jest je odhaczyć. Domyślnie jest zaptakowana tylko pierwsza pozycja, tj. Menadżer urządzeń Android (nie mylić z aplikacją, która ma dokładnie taką samą nazwę i jest do pobrania ze sklepu Google Play). Każda z tych pozycji po kliknięciu wyświetli nam informacje na temat operacji, które dana aplikacja będzie w stanie przeprowadzić. Poniżej jest rozpisany Menadżer urządzeń Android: No i widzimy, że Menadżer urządzeń Android umożliwia nam na zdalne przeprowadzenie procesu resetowania ustawień smartfona do fabrycznych, tj. Factory Reset. Oferuje on także zablokowanie ekranu i zmianę hasła, tak by niepowołane osoby nie były w stanie korzystać z tego telefonu. Poszukiwania zgubionego/skradzionego smartfona Załóżmy w tym momencie, że nie znamy położenia naszego telefonu oraz, że mamy pewne przypuszczenia, że ktoś nam to urządzenie podprowadził bez naszej świadomej zgody. Co w takiej sytuacji możemy zrobić? Musimy jak najszybciej uzyskać dostęp do zaufanego komputera i zalogować się na konto Google, które jest powiązane z uprowadzonym smartfonem. W zasadzie dla przyśpieszenia procesu, można w wyszukiwarce wpisać frazę "gdzie jest mój telefon" i zostaniemy przez Google odesłani pod właściwy adres usługi: Po wejściu w usługę "Znajdź telefon/smartfon", pojawią nam się urządzenia, które są powiązane z tym kontem Google, i na których była notowana ostatnio jakaś aktywność: Załóżmy, że zawieruszył się ten pierwszy TP-LINK'owy Neffos Y5. Trzeba kliknąć w tą pozycję i podać naturalnie hasło do konta Google. Pamiętajmy, by przy tego typu uwierzytelnianiu sprawdzić czy aby faktycznie jesteśmy na stronach Google i czy strona jest zabezpieczona przez zaufany certyfikat (info w zielonej kłódce obok URL). Po podaniu hasła zostaniemy przeniesieni do listy opcji, które pomogą nam odzyskać telefon: Jak widać, trochę tych opcji mamy. Przyjrzyjmy się im nieco bliżej. Aktywacja dzwonka Gdy mamy podejrzenie, że telefon wciąż jest gdzieś w pobliżu, to naturalnie możemy spróbować go wywołać aktywując w nim dzwonek. W taki sposób nasz telefon zacznie dzwonić z maksymalną siłą, nawet gdy dźwięki w urządzeniu zostały wyciszone. W sumie to ta opcja jest przydatna nie tylko na wypadek kradzieży ale też w momencie, gdy nie wiemy gdzie dokładnie położyliśmy telefon. Lokalizacja położenia geograficznego Zakładając, że nasz telefon ma włączony moduł GPS, Google jest w stanie ustalić położenie naszego smartfona praktycznie natychmiast. Zostanie nam również zwrócona mapka z dokładną lokalizacją zgubionego urządzenia: Problem w tym, że chwilę po zlokalizowaniu urządzenia, na ekranie smartfona zostanie wyświetlony monit o tym, że urządzenie zostało namierzone. Nie wiem kto projektował to zabezpieczenie ale dawać informację potencjalnemu złodziejowi, że "Urządzenie Zlokalizowane" raczej nie ułatwi w odnalezieniu ani smartfona, ani tego kto go sobie przywłaszczył. Można naturalnie ten problem wyeliminować ale trzeba wyłączyć notyfikacje dla aplikacji "Usługi Google Play". Problem w tym, że notyfikacje zostaną wyłączone nie tylko dla Menadżera urządzeń Android ale dla wszystkich usług Google. Nie wiem dlaczego tak ten mechanizm został zaprojektowany ale definitywnie kuleje on pod względem bezpieczeństwa/prywatności i wymaga jak najszybszego dopracowania. Tak czy inaczej jeśli chcemy się pozbyć tych notyfikacji, to w różnych wersjach Androida potrzebne nam opcje siedzą w nieco innych miejscach. W przypadku Androida 6.0 (Marshmallow) można je znaleźć przechodząc w Ustawienia => Menadżer powiadomień. Tam z kolei na liście aplikacji odszukujemy "Usługi Google Play" i wyłączamy w nich powiadomienia: W przypadku, gdy smartfon ma wyłączony moduł GPS, to naturalnie nie da rady go zdalnie włączyć przez usługę "Znajdź telefon/smartfon" i trzeba ewentualnie czekać na błąd złodzieja, np. będzie on próbował skorzystać z mapy czy innej tego typu aplikacji wymagającej do prawidłowego działania modułu GPS. Zablokowanie telefonu Czasami przestępcy są nieco bardziej zaawansowani pod względem intelektualnym i mogą być świadomi faktu, że właściciel telefonu może próbować ich namierzyć przez mechanizmy bezpieczeństwa wbudowane w to urządzenie. Dlatego też mogą oni świadomie unikać włączenia modułu GPS, a my przez to w ogóle możemy nie uzyskać lokalizacji smartfona. Jeśli zaś moduł GPS mieliśmy aktywny, to ci nieznani jeszcze sprawcy mogą podjąć kroki, by ten śledzący dodatek dezaktywować. W takim przypadku jeśli nie mamy ustawionej blokady ekranu w telefonie, to najlepiej jest zdalnie zablokować system telefonu. W zasadzie zablokowaniu ulegnie sam ekran. My zaś możemy dodatkowo dostosować informację, która na tym ekranie zostanie wyświetlona. Nie mamy jednak możliwości zmiany kodu PIN jeśli blokada ekranu jest już aktywna. Zatem jeśli złodziej zna nasz PIN, to mamy problem. W przypadku niekontrolowanej utraty telefonu powinniśmy w zasadzie jak najszybciej założyć blokadę ekranu. Bez niej, złodziej będzie w stanie zresetować ustawienia urządzenia do fabrycznych z poziomu działającego systemu. Taki zabieg nie dość, że praktycznie nam uniemożliwi zlokalizowanie telefonu, bo usługa Google przestanie zwyczajnie działać, to jeszcze nie zostanie nałożona na smartfon blokada Factory Reset Protection Lock. Oczywiście nie musimy z góry zakładać, że telefon wpadł w ręce złodzieja. Być może też jakiś przyzwoity człowiek znalazł nasz smartfon i nie wie on za bardzo co w takiej sytuacji ma zrobić. Jakby nie patrzeć na urządzeniu nie ma żadnej kartki z informacją czyj jest to smartfon. Kartki może i nie ma ale możemy krótką informację na ekranie wyświetlić i jeszcze podać numer telefonu, z którym znalazca zostanie połączony po kliknięciu ikonki słuchawki: Wylogowanie z telefonu Kolejną opcją, która nieco podnosi poziom naszej prywatności i bezpieczeństwa konta Google, to zdalne wylogowanie się z Androida na skradzionym urządzeniu. Oczywiście w dalszym ciągu system będzie traktował nasze konto jako powiązane z tym konkretnym urządzeniem i uniemożliwi zalogowanie się na inne konto. Niemniej jednak, pozostała funkcjonalność telefonu będzie do dyspozycji złodzieja, w tym również możliwość dzwonienia czy włączenia GPS. Taka osoba nie będzie mogła korzystać tylko z tej części systemu, która wymaga zalogowania się na konto. Warto w tym miejscu jednak zaznaczyć, że ten krok z wylogowaniem ochroni jedynie nasze konto Google. Wszystkie prywatne dane, takie jak numery telefonów, treści wiadomości SMS czy zdjęcia/filmy z aparatu już nie zostaną objęte ochroną i złodziej będzie mógł je swobodnie przejrzeć. Niemniej jednak, pozostawienie telefonu funkcjonalnym sprawi, że będzie można go namierzyć przez operatora GSM (ewentualnie GPS), o ile złodziej będzie z niego korzystał. Wypadałoby tylko zablokować kartę SIM (u operatora), tak by nie ponosić opłat z tytułu nadużywania naszej gościnności. Zdziwiłem się tylko, że mając tak zablokowane konto Google, zresetowanie ustawień telefonu do fabrycznych nie nakłada blokady Factory Reset Protection Lock. Dla mnie było oczywistym, że ta blokada powinna się pojawić ale widać ten Góglowski mechanizm blokowania urządzenia nie jest do końca dopracowany. Wykasowanie wszystkich danych Posiadając kopię zapasową danych zgromadzonych w telefonie, w sumie można od razu pokusić się o zdalne przeprowadzenie procesu Factory Reset, co przy okazji założy blokadę Factory Reset Protection Lock (FRP Lock). W ten sposób złodziej nie uzyska dostępu do danych zgromadzonych na flash'u urządzenia i w zasadzie nie będzie w stanie w ogóle korzystać z telefonu. Warto tutaj zaznaczyć, że jeśli w smartfonie podczas tego procesu czyszczenia będzie obecna karta SD, to dane zawarte na tym nośniku również zostaną wykasowane. Problem w tym, że inicjując takie zdalne czyszczenie pozbawiamy się jednocześnie możliwości zlokalizowania telefonu przez usługi Google. Mamy przynajmniej pewność, że nikt nie uzyska dostępu do naszych prywatnych informacji. Coś za coś. Aplikacja Android Device Manager Próby lokalizacji smartfona niekoniecznie muszą być przeprowadzane z poziomu standardowego komputera czy laptopa. Można do tego celu skorzystać z innego smartfona ale trzeba na nim zainstalować aplikację Android Device Manager. Można również korzystać ze standardowej przeglądarki ale ta opcja zostawia za dużo śladów. W przypadku aplikacji Android Device Manager jesteśmy w stanie zlokalizować smartfon w oparciu o dane GPS, zdalnie zablokować telefon, włączyć dzwonek i przeprowadzić proces Factory Reset, czyli mniej więcej te same kroki, które były dostępne w serwisie Google. Po za logowaniu się w aplikacji Android Device Manager, zostanie nam zwrócona lista urządzeń, które są powiązane z kontem Google, do którego dane wprowadziliśmy w formularzu logowania: Wybieramy tutaj urządzenie, które nam zaginęło i przy pomocy kilku tapnięć w ekran smartfona możemy w bardzo prosty sposób wywołać każdą z ww. akcji:
  6. Kupowanie telefonów czy smartfonów z Androidem z innych źródeł niż oficjalne punkty sprzedaży nie zawsze jest bezpieczną opcją. Gdy nabywamy takie urządzenie od znajomego, to raczej nie powinniśmy się martwić o to, że ten telefon może być kradziony. Niemniej jednak, po zakupie takiego urządzenia, poprzedni użytkownik zwykle resetuje jego ustawienia do fabrycznych, by klient miał świeży system i nie był w stanie uzyskać dostępu do prywatnych danych poprzedniego właściciela smartfona. Nie byłoby w tym nic nadzwyczajnego, gdyby nie fakt, że nabywca tak odsprzedanego telefonu może mieć pewne problemy ze skonfigurowaniem Androida, bo ten system zwróci mu komunikat: "Urządzenie zostało zresetowane. Aby kontynuować, zaloguj się na konto Google, które było wcześniej synchronizowane na tym urządzeniu", czyli telefon został zablokowany przez mechanizm Factory Reset Protection Lock (FRP Lock). Jeśli znajomy mieszka blisko nas, to naturalnie możemy się przejść do niego w celu zdjęcia tej blokady. A co w przypadku, gdy nabyliśmy urządzenie na odległość? Czy jest jakiś sposób na obejście tej blokady w przypadku smartfonów Neffos od TP-LINK? Factory Reset Protection Lock (FRP Lock) Urządzenia takie jak smartfony zwykle zabezpieczone są jakąś formą blokady ekranu, np.kodem PIN. By skorzystać z takiego telefonu trzeba ten kod pierw wprowadzić. Problem pojawia się w momencie, gdy tego kodu z jakiegoś powodu nie znamy. W przypadku, gdy jedynie zapomnieliśmy prawidłowej sekwencji odblokowującej ekran, to nic nie stoi na przeszkodzie, by taki telefon zresetować do ustawień fabrycznych przez tryb recovery. Stracimy co prawda wszystkie dane przechowywane na flash'u urządzenia ale będziemy w stanie sobie na nowo skonfigurować system. Niemniej jednak, tego typu sytuacja zwykle nie ma miejsca, natomiast dużo częściej zdarzają się kradzieże telefonów. Taki złodziej również byłby w stanie zresetować ustawienia telefonu do domyślnych w celu jego późniejszej sprzedaży gdzieś na targu. By utrudnić ten proceder, w Androidach począwszy od wersji 5.0 (Lollipop) został wprowadzony mechanizm Factory Reset Protection Lock (FRP Lock). Mając taki system, po zresetowaniu smartfona do ustawień fabrycznych przez tryb recovery, urządzenie w dalszym ciągu będzie zablokowane. Użytkownikowi podczas konfiguracji telefonu zostanie pokazany jedynie komunikat "Urządzenie zostało zresetowane...". By móc korzystać z takiego telefonu, trzeba podać dane do poprzedniego konta i innej opcji zwykle nie ma. Po aktywowaniu blokady FRP Lock, Android jest zwykle bezużyteczny. Możemy jedynie odbierać połączenia przychodzące i wykonywać połączenia alarmowe ale w zasadzie nic poza tym. Nie mamy dostępu do ustawień telefonu czy przeglądarki internetowej i z lwiej części funkcjonalności telefonu nie będziemy mogli skorzystać do momentu podania danych do konta, które było skonfigurowane na tym telefonie przed zakupem. W przypadku zakupu telefonu na odległość, raczej jest mało prawdopodobne, że poprzedni właściciel poda nam dane do swojego konta Google byśmy sami mogli ten telefon odblokować. Jakie inne opcje nam zatem pozostają? Zasada działania FRP Lock Szukając informacji na temat zasady działania tego całego FRP Lock, na jednym z forów Androida użytkownik piskorfa podesłał mi linki do dwóch chińskich blogów [1] i [2]. Chińskiego co prawda nie znam ale zawartość tych stron można przetłumaczyć na angielski w Google Translate. Zgodnie z informacjami zawartymi w tych powyższych artykułach, mechanizm FRP Lock działa w oparciu o dedykowaną partycję na flash'u telefonu. Nazwa tej partycji może być różna, choć zwykle przyjmuje wartość frp (od Factory Reset Protection). W smartfonach Neffos C5 i C5 MAX ta partycja figuruje na liście partycji. Nie ma jej jednak w przypadku modelów Neffos Y5 i Y5L ale to nic nie szkodzi. Nazwę tej partycji zawsze można ustalić przeglądając, np. za pomocą adb , plik /system/build.prop w telefonie: shell@C5_Max:/ $ cat /system/build.prop | grep -i frp ro.frp.pst=/dev/block/platform/mtk-msdc.0/by-name/frp shell@Y5:/ $ cat /system/build.prop | grep -i frp ro.frp.pst=/dev/block/bootdevice/by-name/config Widać, zatem że w tym drugim przypadku partycja, której szukamy, nazywa się config . Blokada FRP Lock jest zakładana na telefon w momencie powiązania z nim konta Google, tj. uzupełnienia formularza w celu zalogowania się, np. do sklepu Google Play. Blokadę tę można dezaktywować usuwając konto z telefonu lub też resetując smartfon do ustawień fabrycznych z poziomu działającego systemu. Zatem dodając lub usuwając konto Google, Android inicjuje pewną operację na partycji, która została zwrócona w ro.frp.pst . Jeśli teraz zresetujemy telefon do ustawień fabrycznych z poziomu trybu recovery, to system urządzenia nie przepisze nam tej partycji w żaden sposób, bo Android w trym trybie nie jest uruchomiony. Później jak przechodzimy przez proces wstępnej konfiguracji telefonu, system odczytuje dane z partycji frp i na ich podstawie decyduje czy przepuścić użytkownika, czy zablokować dostęp i zażądać uwierzytelnienia przez podanie danych do konta, które wcześniej było na tym telefonie skonfigurowane. W jaki sposób system rozpoznaje czy podaliśmy dane do odpowiedniego konta? Serwery Google w tym procesie nie biorą udziału. Te dane są zapisywane również na partycji frp , z tym, że raczej w formie jakieś hasha, który można uzyskać podając konkretny login i hasło. Podając prawidłowe dane, system jest w stanie wygenerować taki hash i porównać go z tym co zostało zapisane na partycji frp . Pewności do końca nie mam jak ten proces weryfikacji przebiega ale patrząc na zrzuty partycji w edytorze HEX, można dojść do wniosku, że system dodaje jakieś informacje na tej partycji po zalogowaniu się na konto Google. Jest to około 20 KiB, zatem dość sporo. Te dane jednak są w formie nieczytelnej dla człowieka, także nic więcej na ten temat nie powiem. Wiedząc, że partycja frp odgrywa kluczową rolę w zablokowaniu użytkownikowi dostępu do telefonu, można by się pokusić o ręczne wyczyszczenie tej partycji. Jeśli faktycznie serwery Google nie biorą udziału w tym całym procesie, to FRP Lock można by obejść lokalnie. Jak odblokować smartfon z aktywowanym FRP Lock Załóżmy, że zakupiliśmy sobie używanego smartfona na odległość oraz, że to urządzenie nie było kradzione. Naturalnie telefon nie został poprawnie zresetowany do ustawień domyślnych i my jako nowy właściciel mamy teraz problem, bo Android wyrzuca nam informacje o założeniu blokady FRP Lock. W zasadzie wiemy co mamy robić, tj. trzeba wyczyścić partycję frp . Problem w tym, że w różnych modelach smartfonów inaczej do tego przedsięwzięcia trzeba się zabrać. Kluczowe znaczenie ma zainstalowany w urządzeniu SoC, wersja Androida oraz ewentualne zabezpieczenia wprowadzone przez producenta telefonu. W przypadku smartfonów Neffos C5 i C5 MAX mamy do czynienia z SoC od MediaTek, model nie jest aż tak ważny. Android jest zaś w wersji 5.1 (Lollipop). Natomiast Neffos Y5 i Y5L mają SoC od Qualcomm i w tych telefonach siedzi Android w wersji 6.0 . Mamy zatem dwie różne sytuacje do rozważenia. Odblokowanie Neffos C5 i C5 MAX Jako, że te dwa modele smartfonów mają SoC od MediaTek, to nadpisanie partycji frp w ich przypadku jest stosunkowo proste, bo możemy do tego celu zaprzęgnąć SP Flash Tool. Problematyczne może być ustalenie gdzie na flash'u smartfona znajduje się partycja frp . Ja korzystałem ze swojego pliku scatter.txt: mt6753-neffos-c5-max-tp-link-scatter.txt, gdzie mam taki oto blok kodu: - partition_index: SYS18 partition_name: frp file_name: NONE is_download: true type: NORMAL_ROM linear_start_addr: 0x6a00000 physical_start_addr: 0x6a00000 partition_size: 0x100000 region: EMMC_USER storage: HW_STORAGE_EMMC boundary_check: true is_reserved: false operation_type: UPDATE reserve: 0x00 W zasadzie to, interesuje nas tutaj wartość 0x100000 , która wskazuje nam rozmiar partycji i jest to 1048576 bajtów, czyli 1 MiB. Trzeba zatem stworzyć plik wypełniony samymi zerami, który będzie miał dokładnie taki rozmiar. Możemy to zrobić przy pomocy dd z poziomu każdego linux'a: # dd if=/dev/zero of=./c5max-frp.orig bs=1K count=1024 Tak wygenerowany plik trzeba przy po mocy SP Flash Tool wgrać w odpowiednie miejsce na flash'u smartfona. Odpalamy zatem narzędzie SP Flash Tool i przechodzimy na zakładkę Download i tam zaznaczamy partycję frp i wskazujemy ścieżkę do pliku z zerami: Upewniamy się, że nad listingiem partycji mamy zaznaczone Download Only i wciskamy przycisk Download . W tym momencie SP Flash Tool będzie oczekiwał na podłączenie smartfona do portu USB komputera. Wyłączamy zatem telefon i podłączamy go do komputera. System powinien go automatycznie wykryć i zaaplikować mu wskazany plik: Jeśli są jakieś problemy z działaniem SP Flash Tool, to prawdopodobnie nie ma on uprawnień do urządzenia /dev/ttyACM0 i trzeba będzie dodać naszego użytkownika do grupy dialout . Po wgraniu pliku, włączamy smartfon i już nie powinniśmy mieć problemów z dodaniem nowego konta Google na naszym smartfonie. Odblokowanie Neffos Y5 i Y5L W przypadku smartfonów Neffos Y5 i Y5L sprawa nie wygląda tak różowo. Nie tylko nie mamy możliwości skorzystania z SP Flash Tool, bo SoC jest od Qualcomm'a, to jeszcze wygląda na to, że blokada OEM (ta w opcjach developerskich) działa i uniemożliwia odblokowanie bootloader'a. Bez odblokowanego bootloader'a z kolei nie damy rady wgrać obrazu przy pomocy narzędzia fastboot . Próbowałem obejść blokadę FRP Lock w tych telefonach na kilka różnych sposobów ale żadne ze znalezionych przeze mnie rozwiązań nie dało rady sprostać zabezpieczeniom, które w tych Neffos'ach zostały zaimplementowane. W Neffos Y5 i Y5L mamy praktycznie gołego Androida 6.0 i jedyne co możemy próbować zrobić, to uzyskać dostęp do ustawień telefonu w celu przeprowadzenia procesu Factory Reset z poziomu działającego systemu. Przynajmniej tak wynika z tych materiałów, z którymi się zdążyłem zapoznałem. Pytanie jest tylko jak wywołać ustawienia, skoro mamy zablokowaną możliwość operowania na smartfonie i jedyny obrazek jaki widzimy, to ten poniżej: Sposób z przeglądarką Może i na pierwszy rzut oka nic nie da się zrobić i FRP Lock spełnia swoje zadanie ale nawet w tym miejscu jesteśmy w stanie wywołać przeglądarkę internetową, która pozwoli nam uzyskać dostęp do ustawień systemu. W jaki sposób? Wyżej widzimy formularz, w którym mamy wpisać adres email lub numer telefonu. Generalnie nie wpisujemy tutaj tego, o co nas proszą. Zamiast tego wpisujemy dosłownie cokolwiek. Na ten wpisany w formularzu wyraz możemy kliknąć i pojawi nam się proste menu: Z tego menu wybieramy pozycję Podpowiedzi (przez te trzy kropki): I jak widzimy, odpaliła nam się przeglądarka Chrome. Nie logujemy się tutaj i wciskamy "Nie Dzięki". Na środku ekranu mamy standardowy formularz wyszukiwania, jak w każdej wyszukiwarce. W tym formularzu wpisujemy w zależności od wykorzystywanego języka w telefonie: ustawienia (PL) lub settings (EN). Jak tylko zaczniemy wpisywać kolejne znaki w polu formularza, na dole ekranu powinny nam się pojawić podpowiedzi: Mamy pozycję Ustawienia i naturalnie klikamy w nią. Powinien nam się ukazać znajomy widok ustawień systemowych. Zatem nawet mając aktywny mechanizm blokady telefonu, jesteśmy w stanie go ominąć i wejść w ustawienia telefonu. W tak uzyskanym menu przechodzi do pozycji Kopia zapasowa i reset , a z niej wybieramy Przywróć ustawienia Fabryczne : W ten sposób niby powinniśmy pozbyć się blokady, bo proces Factory Reset zostanie przeprowadzony z poziomu działającego systemu. Niestety najwyraźniej w nowszych wersjach Androida partycja frp nie jest przepisywana jeśli Factory Reset jest przeprowadzany z poziomu systemu, na którym nie ma skonfigurowanego konta Google. Zatem może i zresetujemy ustawienia ale w dalszym ciągu system przy konfiguracji telefonu będzie nas prosił o podanie danych do starego konta Google. Sposób ze zdjęciem blokady OEM Kluczem do zdjęcia blokady FRP Lock jest odblokowanie bootloader'a, a to można zrobić zdejmując pierw blokadę OEM z poziomu opcji developerskich. Mając dostęp do opcji telefonu, możemy wejść w "Informacje o telefonie" i spróbować postukać w numer kompilacji. Problem w tym, że ten sposób również nie działa i w tym przypadku stukanie w numerek kompilacji nic nie daje, a bez tego nie pojawią nam się opcje developerskie i nie ściągniemy blokady OEM. Sposób z wyłączeniem WiFi Innym sposobem, który znalazłem, miało być ogłupienie systemu przez rozłączenie sieci WiFi w odpowiednim momencie. Gdy jesteśmy na pozycji "Wybierz WLAN" przy konfiguracji telefonu, to naturalnie wskazujemy naszą sieć i uzupełniamy dane logowania do tej sieci. Później wracamy przyciskiem Wstecz do ekranu wyboru sieci. Powinniśmy widzieć listę sieci WiFi w naszej lokalizacji oraz powinniśmy być podłączeni do tej, którą sobie skonfigurowaliśmy: W tym miejscu dajemy "Dalej" i gdy na ekranie pojawi się informacja "Sprawdzam połączenie" ale przed "Aktualizuję oprogramowanie" (szybko przeskakuje) trzeba sieć WiFi rozłączyć. Można albo wyłączyć router WiFi przyciskiem, albo też w ustawieniach routera wyłączyć samo WiFi. Warto tutaj zaznaczyć, że w telefonie nie może być obecna karta SIM, bo wtedy dane mogą być wymieniane po 3G/LTE. W takim przypadku, smartfon nie będzie w stanie połączyć się z serwerami Google po uprzednim zapewnieniu, że połączenie działa. Taki stan rzeczy najprawdopodobniej sprawia, że system głupieje i pomija proces uwierzytelniania zwracając informację "Nie można się zalogować" i proces konfiguracji telefonu może być kontynuowany: Naturalnie klikamy Dalej i Dalej i w zasadzie wszystko wskazuje na to, że proces zostanie ukończony z powodzeniem. Niemniej jednak, z jakiegoś powodu system stwierdza, że nie jesteśmy zalogowani i każe nam cały proces powtórzyć. Sposób z linkami w opcjach języka i klawiatury Kolejnym sposobem, który może nam pomóc z ominięciem blokady FRP Lock, jest próba wywołania ustawień systemowych za pomocą linków, do których mamy dostęp z menu różnych aplikacji systemowych. W procesie wstępnej konfiguracji telefonu mamy dostęp do jednej takiej aplikacji, tj. ustawienia języka i klawiatury (czy jak to się tam nazywa). W opcje tej aplikacji można wejść przyciskając przez dłuższą chwilę znak @ na klawiaturze ekranowej. W ten sposób powinno nam się pojawić małe kółko zębate oferujące "Opcje wprowadzania": Po wejściu w te opcje, w prawym górnym rogu mamy trzy kropki z menu pomocy, które powinniśmy wywołać w celu uzyskania dostępu do upragnionego linku, za pomocą którego można by wywołać przeglądarkę i za jej pomocą wejść w główne ustawienia telefonu: Problem w tym, że żadna z tych opcji się nie da wcisnąć, czyli kolejna ślepa uliczka. Znacie jeszcze jakieś ciekawe pomysły na obejście tej blokady? Jak uniknąć zablokowania smartfona Wygląda na to, że w przypadku Neffos C5 i C5 MAX zabezpieczenie FRP Lock jest praktycznie bezużyteczne. Oczywiście w dalszym ciągu zdjęcie tej blokady dla przeciętnego Kowalskiego może być zbyt trudne ale jak widać jest ono możliwe. Natomiast póki co nie mam pojęcia jak obejść tę blokadę w Neffos Y5 i Y5L i w przypadku tych telefonów raczej nie chcielibyśmy tego FRP Lock'a złapać. Dlatego też zawsze przed odsprzedaniem komuś telefonu miejmy na uwadze to zabezpieczenie i manualnie usuwajmy konto Google z systemu. Nie zaszkodzi też usunięcie blokady ekranu przed zresetowaniem smartfona do ustawień fabrycznych. Jeśli zaś kupujemy telefon od kogoś, to poprośmy tę osobę o wykonanie procesu Factory Reset z poziomu trybu recovery, tak by ta czynność została wykonana przy nas. Po czym sprawdźmy czy w procesie wstępnej konfiguracji telefonu nie złapiemy FRP Lock'a.
  7. Przeprowadzenie procesu root na smartfonie Neffos Y5 od TP-LINK nie było tak łatwe jak w przypadku innych modeli telefonów tego producenta. Niemniej jednak, trzeba zdawać sobie sprawę, że ukorzenianie Androida niesie za sobą pewne zagrożenia. Nie chodzi tutaj tylko o niezaufane aplikacje ale też trzeba brać pod uwagę możliwość przypadkowego (przypadki nie istnieją) skasowania czy zmienienia plików systemowych, przez co nasz telefon może przestać nam działać poprawnie lub też przestanie się w ogóle uruchamiać. Jeśli natomiast wgraliśmy SuperSU i praktycznie w ogóle z niego nie korzystamy, to moim zdaniem lepiej jest przeprowadzić proces unroot i korzystać z Neffos'a Y5, tak jak ze zwykłego urządzenia z Androidem na pokładzie. Proces cofania zmian w systemie nie jest jakoś specjalnie trudny ale trzeba uważać, by w jego trakcie nie uszkodzić smartfona. Ten artykuł ma na celu pokazanie jak cofnąć wszelkie zmiany wprowadzone w telefonie za sprawą dostępu do praw administracyjnych w Neffos Y5. Odinstalowanie SuperSU (unroot) Zmiany wprowadzane w systemie za sprawą ukorzenionego Androida mogą być niewielkie lub też mogą dość znacznie ingerować w jego struktury. W zasadzie unroot przeprowadzany z poziomu SuperSU działa OOTB. Trzeba tutaj jednak wyraźnie zaznaczyć, że SuperSU nie usunie nam zmian wprowadzonych przez inne aplikacje wymagające praw administratora root. SuperSU jest w zasadzie zdolny odinstalować sam siebie oraz (opcjonalnie) przywrócić partycję /recovery/ do stanu fabrycznego. W przypadku, gdy nie chcemy zbytnio powracać do standardowego ROM'u, a jedynie nieco zabezpieczyć nasz smartfon przez uniemożliwienie logowania się aplikacjom na użytkownika root, to możemy w zasadzie odinstalować samo SuperSU. Chodzi generalnie o to, że wprowadzone przez nas zmiany na partycji /system/ , do przeprowadzenia których potrzebny nam był SuperSU, i tak przetrwają odinstalowanie tego programiku. Po skonfigurowaniu Androida, SuperSU jest nam zwyczajnie zbędny i stwarza on tylko niepotrzebne zagrożenie dla bezpieczeństwa systemu. SuperSU w Neffos Y5 możemy odinstalować z menu tejże aplikacji przechodząc w Ustawienia => Pełny Unroot. Jeśli nie chcemy przywracać partycji /recovery/ , to w ostatnim kroku wybieramy opcję NIE. Jeśli smartfon nie uruchomi się ponownie automatycznie, to naturalnie po całym procesie telefon restartujemy ręcznie. W przypadku, gdy proces usuwania SuperSU się zawiesi nam, to trzeba zrestartować smartfon i ponowić proces unroot bezpośrednio po włączeniu telefonu. Możemy naturalnie sprawdzić czy cały proces przebiegł zgodnie z planem i czy nasz Neffos Y5 w dalszym ciągu posiada root: Niemniej jednak, jeśli w Neffos Y5 chcemy przywrócić całą partycję /system/ usuwając tym samym wszelkie zmiany wprowadzone w telefonie, to trzeba do tej kwestii podejść nieco inaczej. Wydobywanie partycji /system/ , /recovery/ i /boot/ z obrazu flash'a W zasadzie mając zrobiony pełny obraz flash'a smartfona Neffos Y5 możemy wydobyć z niego określone partycje via dd i wgrać je w stosowne miejsca przez bootloader za pomocą fastboot. Zamontujmy zatem ten obraz backup'u w systemie (za pomocą losetup ) i sprawdźmy jak wygląda jego layout, np. w gdisk : Interesują nas partycje 21 ( /system/ ) , 24 ( /recovery/ ) oraz 20 ( /boot/ ). Robimy ich zrzut do osobnych plików via dd : # losetup /dev/loop0 /smartfon/Neffos Y5/full_flash.emmc.win # dd if=/dev/loop0p24 of=./neffos_y5_orig_recovery.img # dd if=/dev/loop0p21 of=./neffos_y5_orig_system.img # dd if=/dev/loop0p20 of=./neffos_y5_orig_boot.img Przywracanie partycji /system/ via fastboot Przywrócenie partycji /system/ w trybie bootloader'a za pomocą narzędzia fastboot nie odtworzy automatycznie nam partycji /recovery/ . Musimy ją wgrać osobno. Na początek wgrajmy obraz partycji /system/ . Wyłączamy telefon i włączamy go ponownie trzymając przyciski VolumeDown + Power (powinno pojawić się logo TP-LINK'a i Android'a). Następnie podpinamy telefon do portu USB komputera i sprawdzamy, czy narzędzie fastboot jest w stanie wykryć nasz smartfon: # fastboot devices 90169635 fastboot Wgrywamy teraz wydobyty wcześniej obraz neffos_y5_orig_system.img na smartfon przy pomocy poniższego polecenia: # fastboot flash system neffos_y5_orig_system.img target reported max download size of 262144000 bytes Invalid sparse file format at header magi erasing 'system'... OKAY [ 1.048s] sending sparse 'system' (249905 KB)... OKAY [ 11.503s] writing 'system'... OKAY [ 21.036s] sending sparse 'system' (247311 KB)... OKAY [ 11.460s] writing 'system'... OKAY [ 21.086s] ... sending sparse 'system' (122860 KB)... OKAY [ 5.744s] writing 'system'... OKAY [ 10.501s] finished. total time: 245.337s Partycja /system/ przed wgraniem nowego obrazu została pierw wyczyszczona. Następnie obraz tejże partycji został podzielony na kawałki i przesłany na telefon, no i oczywiście wszystkie części obrazu zostały pomyślnie wgrane na flash smartfona. Czyszczenie partycji /data/ i /cache/ Jako, że wgraliśmy świeży obraz partycji /system/ , to przydałoby się także wyczyścić dane użytkownika znajdujące się na partycji /data/ : # fastboot format userdata Creating filesystem with parameters: Size: 13015953408 Block size: 4096 Blocks per group: 32768 Inodes per group: 8192 Inode size: 256 Journal blocks: 32768 Label: Blocks: 3177723 Block groups: 97 Reserved block group size: 775 Created filesystem with 11/794624 inodes and 90399/3177723 blocks target reported max download size of 262144000 bytes erasing 'userdata'... OKAY [ 6.614s] sending 'userdata' (137090 KB)... OKAY [ 6.278s] writing 'userdata'... OKAY [ 2.406s] finished. total time: 15.298s Dobrze jest także wyczyścić dane znajdujące się w cache: # fastboot format cache Creating filesystem with parameters: Size: 268435456 Block size: 4096 Blocks per group: 32768 Inodes per group: 8192 Inode size: 256 Journal blocks: 1024 Label: Blocks: 65536 Block groups: 2 Reserved block group size: 15 Created filesystem with 11/16384 inodes and 2089/65536 blocks target reported max download size of 262144000 bytes erasing 'cache'... OKAY [ 0.190s] sending 'cache' (6248 KB)... OKAY [ 0.308s] writing 'cache'... OKAY [ 0.173s] finished. total time: 0.671s Warto tutaj dodać, by nie korzystać z opcji erase w miejscu format . W przypadku erase system podczas ponownego startu złapie nam bootloop'a i trzeba będzie ponawiać czyszczenie partycji /data/ i /cache/ z wykorzystaniem format . Opcja erase przydaje się jedynie przed ponownym flash'owaniem. Przywracanie partycji /recovery/ i /boot/ via fastboot Podobnie jak w przypadku partycji /system/ , partycje /recovery/ i /boot/ również przywracamy z poziomu bootloader'a za pomocą narzędzia fastboot . Ten proces się zbytnio wcale nie różni, tylko wymaga wskazania pozostałych obrazów i wgrania ich na odpowiednie partycje: # fastboot flash recovery neffos_y5_orig_recovery.img # fastboot flash boot neffos_y5_orig_boot.img Ponowny restart Neffos'a Y5 Po wgraniu świeżego obrazu na partycję /system/ , /recovery/ i /boot/ oraz wyczyszczeniu partycji /data/ i /cache/ , możemy zresetować naszego Neffos'a Y5 i sprawdzić czy się uruchomi on ponownie. Wpisujemy zatem w terminal poniższe polecenie: # fastboot reboot Neffos Y5 powinien się uruchomić bez większych problemów, o ile przeprowadziliśmy powyższe kroki tak jak trzeba. Proces pierwszego startu zajmie dłuższą chwilę ale ostatecznie powinniśmy zobaczyć znajomy nam wszystkim ekran pierwszego logowania z wyborem języka systemu. Zablokowanie bootloader'a w Neffos Y5 To jednak nie jest koniec i w zasadzie możemy sobie darować konfigurację telefonu w tej fazie. A to z tego względu, że bootloader w dalszym ciągu jest odblokowany. Jeśli teraz byśmy skonfigurowali wstępnie system, to po zablokowaniu bootloader'a ponownie będziemy musieli wszystko ustawiać. Dlatego też wyłączamy telefon i uruchamiamy go w trybie bootloader'a za pomocą przycisków VolumeDown + Power. Następnie w terminalu wpisujemy poniższe polecenie: # fastboot oem lock Nasz Neffos Y5 powinien nam się uruchomić ponownie, a na jego ekranie powinniśmy zobaczyć zielonego robocika przeprowadzającego proces Factory Reset. Po chwili smartfon uruchomi się ponownie, a po jeszcze dłuższej chwili system powinien się załadować już na fabrycznych ustawieniach:
  8. Nie we wszystkich smartfonach Neffos da radę przeprowadzić proces root tak łatwo jak to miało miejsce w przypadku modeli Neffos C5 i Neffos C5 MAX. TP-LINK ma w swojej ofercie również model Neffos Y5 (TP802A) i on w odróżnieniu do tych dwóch poprzednich ma inne podzespoły, a konkretnie SoC, którzy pochodzi od producenta Qualcomm (Snapdragon 210, model MSM8909). Root smartfonów opartych o tego typu SoC przebiega nieco inaczej ale jest generalnie do zrobienia, choć trzeba trochę się przyłożyć do procesu backup'u flash'a telefonu. Pozostała część jest w miarę standardowa. W tym wpisie zostanie przeprowadzony proces root smartfona Neffos Y5. Narzędzia ADB i fastboot Przede wszystkim, by zabrać się za proces root'owania smartfona Neffos Y5, musimy przygotować sobie odpowiednie narzędzia. Zapewnią one nam możliwość rozmawiania z telefonem. Będziemy potrzebować adb (Android Debug Bridge) oraz fastboot . Proces instalacji tych narzędzi na linux, a konkretnie w dystrybucji Debian, został opisany osobno. Problematyczny backup flash'a smartfona Neffos Y5 W przypadku wspomnianych już Neffos'ów C5 i C5 MAX, do zrobienia backup'u całego flash'a można było wykorzystać narzędzie SP Flash Tool. Niemniej jednak, to oprogramowanie jest przeznaczone jedynie dla smartfonów mających SoC od MediaTek, a jak już również zostało powiedziane, Neffos Y5 ma SoC Snapdragon 210 (MSM8909) od Qualcomm'a. Jak zatem zrobić backup flash'a tego smartfona przed wprowadzaniem w nim jakichkolwiek zmian? Generalnie trzeba się zmierzyć z problemem jajka i kury, czyli by dokonać backup'u flash'a trzeba skorzystać z niestandardowego obrazu partycji /recovery/ , np. TWRP, a nie możemy go przecież wgrać na telefon, bo wprowadzimy w ten sposób zmiany. Możemy jednak wgrać taki obraz bezpośrednio do pamięci RAM telefonu i z niej go uruchomić. W takim przypadku będziemy w stanie zrobić backup flash'a telefonu bez wprowadzania żadnych zmian. Niemniej jednak, w dalszym ciągu obraz partycji /recovery/ musimy jakoś pozyskać. Pozyskanie obrazu recovery.img z TWRP Niestety, póki co nie ma obrazów dla Neffos'a Y5. Dlatego też musimy sobie taki obraz recovery.img stworzyć sami przerabiając inny obraz, który jest przeznaczony na telefon zbliżony parametrami do naszego urządzenia (ten sam SoC, wielkość flash i rozdzielczość ekranu). Po wielu dniach poszukiwań udało mi się znaleźć w końcu pasujący obraz. Posłużyłem się obrazem dla HTC Desire 626s. W zasadzie SoC i rozdziałka ekranu się zgadzają ale wielkość flash już jest inna i trzeba będzie nieco ten obraz przerobić, a do tego celu potrzebny nam będzie stock'owy obraz boot.img lub recovery.img . Gotowy obraz recovery.img dla smartfona Neffos Y5 znajduje się tutaj: recovery-neffos-y5-tp-link-twrp.img i jedyne co, to musimy go wgrać na telefon. Jeśli jednak ktoś jest ciekaw jak proces przepakowania tego obrazu przebiega, to jest on opisany poniżej. Pozyskanie stock'owego obrazu boot/recovery Proces dostosowania obrazu recovery.img z TWRP nieco się różni w przypadku Neffos Y5 w stosunku do poprzednio opisywanych przez mnie modeli Neffos C5 i Neffos C5 MAX. Chodzi o to, że w zasadzie nie mamy jak wydobyć obrazu partycji /recovery/ z telefonu, no bo przecież nie możemy skorzystać z SP Flash Tool, a póki co nie jestem świadom alternatywnego oprogramowania, które by nam z tym zadaniem pomogło w podobny sposób. Niemniej jednak, obraz recovery.img w dalszym ciągu możemy zbudować ale potrzebny nam jest firmware Neffos'a Y5, który na szczęście możemy pobrać ze strony producenta tego smartfona. Pamiętajmy by pobrać plik przeznaczony na ten konkretny model telefonu, który posiadamy (w tym przypadku TP802A). Poniżej jest pełna specyfikacja wgranego oprogramowania oraz dokładne numery mojego smartfona: W paczce .zip z firmware, którą pobraliśmy, znajduje się plik boot.img . Musimy go wydobyć w celu wyodrębnienia pewnych plików i wgrania ich na portowany obraz recovery.img . Przepakowanie obrazu recovery.img By przepakować obraz przeznaczony na inny smartfon, który jest zbliżony parametrami do naszego Neffos'a Y5, musimy pierw pozyskać odpowiednie narzędzia. Na linux'ie możemy skorzystać tego celu z abootimg lub też ze skryptów Android Image Kitchen. Ja będę korzystał z tego drugiego rozwiązania. Tworzymy sobie jakiś katalog roboczy i kopiujemy do niego zarówno oryginalny obraz boot.img , jak i obraz recovery.img z innego smartfona. Następnie znajdując się w tym katalogu roboczym, pobieramy skrypty z github'a (wymagane zainstalowane narzędzie git w systemie) i przechodzimy do utworzonego w ten sposób katalogu. W nim zaś tworzymy dwa podkatalogi stock/ oraz port/ : $ git clone https://github.com/ndrancs/AIK-Linux-x32-x64/ $ chmod +x ./AIK-Linux-x32-x64/* $ chmod +x ./AIK-Linux-x32-x64/bin/* $ cd ./AIK-Linux-x32-x64/ $ mkdir stock/ port/ Kopiujemy oryginalny obraz boot.img z katalogu nadrzędnego i wypakowujemy go za pomocą skryptu unpackimg.sh . Następnie przenosimy tak wyodrębnioną zawartość do katalogu stock/ : $ cp ../orig_boot.img ./recovery.img $ ./unpackimg.sh recovery.img $ mv split_img/ ramdisk/ stock/ $ rm recovery.img Kopiujemy teraz obraz partycji /recovery/ mający TWRP i wypakowujemy go. Przenosimy jego zawartość do katalogu port/ : $ cp ../recovery_twrp.img ./recovery.img $ ./unpackimg.sh recovery.img $ mv split_img/ ramdisk/ port/ $ rm recovery.img Kernel W zasadzie to musimy tylko przekopiować plik recovery.img-zImage z oryginalnego obrazu naszego Neffos'a Y5 do obrazu TWRP: $ cp ./stock/split_img/recovery.img-zImage ./port/split_img/ Fstab Musimy także dostosować nieco plik port/ramdisk/etc/recovery.fstab , bo przecie flash telefonu, z którego wzięliśmy obraz recovery.img z TWRP ma inny rozmiar, więc wielce prawdopodobne, że ma inny układ i rozmiar poszczególnych partycji. W oparciu o informacje uzyskane z aplikacji DiskInfo oraz pliku /proc/partitions w telefonie, układ flash'a w przypadku Neffos Y5 prezentuje się następująco (kolumna najbardziej na prawo została dodana przeze mnie): # adb shell shell@Y5:/ $ cat /proc/partitions major minor #blocks name 253 0 524288 zram0 179 0 15267840 mmcblk0 179 1 65536 mmcblk0p1 modem (/firmware/ , vfat) 179 2 512 mmcblk0p2 sbl1 179 3 512 mmcblk0p3 sbl1bak 179 4 1024 mmcblk0p4 aboot 179 5 1024 mmcblk0p5 abootbak 179 6 512 mmcblk0p6 rpm 179 7 512 mmcblk0p7 rpmbak 179 8 768 mmcblk0p8 tz 179 9 768 mmcblk0p9 tzbak 179 10 1024 mmcblk0p10 pad 179 11 1536 mmcblk0p11 modemst1 179 12 1536 mmcblk0p12 modemst2 179 13 1024 mmcblk0p13 misc 179 14 1 mmcblk0p14 fsc 179 15 8 mmcblk0p15 ssd 179 16 10240 mmcblk0p16 splash 179 17 32 mmcblk0p17 DDR 179 18 1536 mmcblk0p18 fsg 179 19 16 mmcblk0p19 sec 179 20 32768 mmcblk0p20 boot 179 21 1913652 mmcblk0p21 System (/system/ , ext4) 179 22 32768 mmcblk0p22 persist (/persist/ , ext4) 179 23 262144 mmcblk0p23 Cache (/cache/ , ext4) 179 24 32768 mmcblk0p24 recovery 179 25 1024 mmcblk0p25 devinfo 179 26 512 mmcblk0p26 keystore 179 27 65536 mmcblk0p27 oem 179 28 512 mmcblk0p28 config 179 29 12710895 mmcblk0p29 Data (/data/ , ext4) 179 32 4096 mmcblk0rpmb mmcblk0rpmb Rozmiary poszczególnych partycji są w blokach, a każdy z nich ma 1024 bajty. Partycja mmcblk0 odpowiada za cały obszar flash'a. Będziemy zatem w stanie zrobić backup całego flash'a albo też poszczególnych jego partycji. Tak czy inaczej potrzebne nam są odpowiednie wpisy w pliku port/ramdisk/etc/recovery.fstab . Poniżej jest zawartość mojego pliku: # Use platform/soc.0/7824900.sdhci or bootdevice in the path # mmcblk0p1 (modem) /firmware vfat /dev/block/bootdevice/by-name/modem flags=display="Firmware";mounttodecrypt;backup=1 # mmcblk0p2 (sbl1) /sbl1 emmc /dev/block/bootdevice/by-name/sbl1 flags=display="sbl1";backup=1 # mmcblk0p3 (sbl1bak) /sbl1bak emmc /dev/block/bootdevice/by-name/sbl1bak flags=display="sbl1bak";backup=1 # mmcblk0p4 (aboot) /aboot emmc /dev/block/bootdevice/by-name/aboot flags=display="aboot";backup=1 # mmcblk0p5 (abootbak) /abootbak emmc /dev/block/bootdevice/by-name/abootbak flags=display="abootbak";backup=1 # mmcblk0p6 (rpm) /rpm emmc /dev/block/bootdevice/by-name/rpm flags=display="rpm";backup=1 # mmcblk0p7 (rpmbak) /rpmbak emmc /dev/block/bootdevice/by-name/rpmbak flags=display="rpmbak";backup=1 # mmcblk0p8 (tz) /tz emmc /dev/block/bootdevice/by-name/tz flags=display="tz";backup=1 # mmcblk0p9 (tzbak) /tzbak emmc /dev/block/bootdevice/by-name/tzbak flags=display="tzbak";backup=1 # mmcblk0p10 (tzbak) /pad emmc /dev/block/bootdevice/by-name/pad flags=display="pad";backup=1 # mmcblk0p11 (modemst1) /efs1 emmc /dev/block/bootdevice/by-name/modemst1 flags=display="EFS";backup=1 # mmcblk0p12 (modemst2) /efs2 emmc /dev/block/bootdevice/by-name/modemst2 flags=backup=1;subpartitionof=/efs1 # mmcblk0p13 (misc) /misc emmc /dev/block/bootdevice/by-name/misc flags=display="Misc";backup=1 # mmcblk0p14 (fsc) /fsc emmc /dev/block/bootdevice/by-name/fsc flags=display="fsc";backup=1 # mmcblk0p15 (ssd) /ssd emmc /dev/block/bootdevice/by-name/ssd flags=display="ssd";backup=1 # mmcblk0p16 (splash) /splash emmc /dev/block/bootdevice/by-name/splash flags=display="splash";backup=1 # mmcblk0p17 (DDR) /ddr emmc /dev/block/bootdevice/by-name/DDR flags=display="DDR";backup=1 # mmcblk0p18 (fsg) /fsg emmc /dev/block/bootdevice/by-name/fsg flags=display="fsg";backup=1 # mmcblk0p19 (sec) /sec emmc /dev/block/bootdevice/by-name/sec flags=display="sec";backup=1 # mmcblk0p20 (boot) /boot emmc /dev/block/bootdevice/by-name/boot flags=display="Boot";backup=1 # mmcblk0p21 (System) /system ext4 /dev/block/bootdevice/by-name/system flags=display="System";backup=1;wipeingui # mmcblk0p22 (persist) /persist ext4 /dev/block/bootdevice/by-name/persist flags=display="Persist";backup=1 # mmcblk0p23 (Cache) /cache ext4 /dev/block/bootdevice/by-name/cache flags=display="Cache";backup=1;wipeingui;wipeduringfactoryreset # mmcblk0p24 (recovery) /recovery emmc /dev/block/bootdevice/by-name/recovery flags=display="Recovery";backup=1 # mmcblk0p25 (devinfo) /devinfo emmc /dev/block/bootdevice/by-name/devinfo flags=display="devinfo";backup=1 # mmcblk0p26 (keystore) /keystore emmc /dev/block/bootdevice/by-name/keystore flags=display="keystore";backup=1 # mmcblk0p27 (oem) /oem emmc /dev/block/bootdevice/by-name/oem flags=display="oem";backup=1 # mmcblk0p28 (config) /config emmc /dev/block/bootdevice/by-name/config flags=display="config";backup=1 # mmcblk0p29 (Data) /data ext4 /dev/block/bootdevice/by-name/userdata flags=display="Data";backup=1;length=-16384;wipeingui;wipeduringfactoryreset;encryptable=footer # #/mmcblk0rpmb emmc /dev/block/bootdevice/by-name/mmcblk0rpmb flags=display="mmcblk0rpmb";backup=1 # External /sdcard1 auto /dev/block/mmcblk1p1 flags=display="MicroSD";storage;wipeingui;removable;encryptable=footer /usb-otg auto /dev/block/sda1 flags=display="USBOTG";storage;wipeingui;removable # Full partition images /firmware_image emmc /dev/block/bootdevice/by-name/modem flags=display="Firmware-Image";backup=1 /system_image emmc /dev/block/bootdevice/by-name/system flags=display="System-Image";backup=1 /persist_image emmc /dev/block/bootdevice/by-name/persist flags=display="Persist-Image";backup=1 /cache_image emmc /dev/block/bootdevice/by-name/cache flags=display="Cache-Image";backup=1 /data_image emmc /dev/block/bootdevice/by-name/userdata flags=display="Data-Image";backup=1 /full_flash emmc /dev/block/mmcblk0 flags=display="Full-Flash-Image";backup=1 Jeśli ktoś jest ciekaw użytych tutaj opcji, to są one wyjaśnione w tym wątku na forum XDA. Tworzenie obrazu recovery z TWRP dla Neffos Y5 Z tak przygotowanych plików w katalogu stock/ trzeba zrobić nowy obraz recovery.img przy pomocy skryptu repackimg_x64.sh : $ rm -R stock/ $ mv port/ramdisk ./ $ mv port/split_img ./ $ rmdir port/ $ ./repackimg_x64.sh W katalogu roboczym powinien zostać utworzony nowy plik o nazwie image-new.img . To jest właśnie nasz nowy obraz partycji /recovery/ , który musimy wgrać na telefon w trybie bootloader'a przez fastboot. Niemniej jednak, zanim będziemy w stanie to zrobić, musimy odblokować bootloader. Jak odblokować bootloader w Neffos Y5 Może nie mamy możliwości zrobić backup'u całego flash'a telefonu przed podjęciem jakichkolwiek prac ale też raczej nie powinniśmy znowu nic namieszać. Jedyna rzecz jaką musimy zrobić, to odblokować bootloader. Chodzi o to, że na smartfonach zwykle jest ulokowana partycja /recovery/ . Na niej znajduje się oprogramowanie umożliwiające przeprowadzanie niskopoziomowych operacji, np. backup lub też flash'owanie ROM'u. Problem w tym, że to oprogramowanie w standardzie zwykle za wiele nie potrafi i by przeprowadzić proces root'owania Androida, musimy pozyskać bardziej zaawansowany soft, np. ClockworkMod czy TWRP, i wgrać go na partycję /recovery/ . By to zrobić musimy pierw odblokować bootloader. Proces odblokowania bootloader'a usuwa wszystkie dane, które wgraliśmy na flash telefonu, tj. podczas odblokowywania jest inicjowany factory reset. Dane na karcie SD pozostają nietknięte. By ten proces zainicjować zaczynamy od przestawienia jednej opcji w telefonie. W tym celu musimy udać się w Ustawienia => Opcje Programistyczne i tam przełączyć Zdjęcie blokady OEM : Następnie w terminalu wpisujemy poniższe polecenia: # adb reboot bootloader # fastboot devices 8a8f289 fastboot # fastboot oem unlock-go Na ekranie smartfona powinien nam się pokazać zielony robocik informujący o przeprowadzaniu Factory Reset. Po chwili ten proces powinien dobiec końca, a smartfon uruchomi się ponownie na ustawieniach domyślnych. Wyłączamy urządzenie i włączamy je via przyciski VolumeDown + Power i sprawdzamy status blokady bootloader'a: # fastboot oem device-info ... (bootloader) Device tampered: false (bootloader) Device unlocked: true (bootloader) Charger screen enabled: true (bootloader) Display panel: OKAY [ 0.004s] finished. total time: 0.004s Jeśli przy Device unlocked: widnieje wartość true , to blokada bootloader'a została pomyślnie zdjęta. Jako, że proces odblokowania bootloader'a usunął wszelkie ustawienia, to jeszcze raz musimy włączyć Opcje programistyczne, a w nich tryb debugowania portu USB. Testowanie przepakowanego obrazu recovery.img Zanim jednak wgramy nowo stworzony obraz recovery.img , przydałoby się sprawdzić pierw, czy aby na pewno ten obraz działa jak należy. Podpinamy telefon do portu USB komputera i przy pomocy narzędzia fasboot przetestujmy wyżej wygenerowany obraz próbując uruchomić go z pamięci telefonu: # fastboot boot image-new.img W przypadku, gdyby pojawiła nam się informacja FAILED (remote: unlock device to use this command) , to prawdopodobnie zapomnieliśmy odblokować bootloader. Jeśli blokada została zdjęta, to wydanie tego powyższego polecenia powinno załadować do pamięci RAM telefonu zmieniony obraz partycji /recovery/ , oczywiście o ile obraz jest poprawny. Jeśli zamiast tego smartfon uruchomi się ponownie, to coś z takim obrazem jest nie tak i lepiej nie wgrywać go na telefon. Jak przeprowadzić backup flash'a Neffos Y5 Mając załadowany obraz recovery.img z TWRP do pamięci smartfona, możemy przejść do zrobienia backup'u całego flash'a telefonu. Opcje wyboru partycji, które będziemy mieć do uwzględnienia w backup'ie, zależą od pliku recovery.fstab , który edytowaliśmy sobie wcześniej. W tym przypadku mamy możliwość zrobienia backup'u całego flash'a jak i jego poszczególnych partycji. Nie musimy jednak robić backup'u wszystkich partycji i możemy zdecydować się jedynie na niektóre z nich. Przede wszystkim, potrzebny nam będzie backup partycji /system/ , /boot/ i /recovery/ , bo to je zwykle będziemy poddawać edycji i wprowadzać w nich zmiany. Ja jednak wolę zrobić backup pozostałej części flash'a, tak na wszelki wypadek. No i skoro mam do zrobienia praktycznie backup całej pamięci flash, to można przecież upchnąć go w jednym pliku zrzucając zawartość urządzenia /dev/block/mmcblk0 . Można oczywiście zapisać sobie każda partycję do osobnego pliku ale przecie z obrazu całego flash'a również można te poszczególne partycje wydobyć. W zasadzie cały backup zajmie około 2 GiB, chyba, że zrobiliśmy sobie pełną kopię. W przypadku tego drugiego rozwiązania potrzeba nam będzie karta SD o pojemności większej lub równej pojemności flash'a w telefonie. Dodatkowo, jako, że z reguły flash w smartfonach ma pojemność większą niż 4 GiB (zwykle 16-32 GiB), to w takim przypadku karta musi zostać sformatowana innym systemem plików niż FAT, bo ten ma ograniczenia wielkości pliku do 4 GiB, a obraz będzie przecie zajmował tyle ile zajmuje pamięć flash. TWRP obsługuje bez większego problemu karty SD sformatowane jako EXT4 i z tego systemu plików możemy skorzystać. Pamiętajmy jednak, że takiej karty Android nam nie będzie czytał standardowo. Niepełny backup z kolei można przeprowadzić zapisując go na flash'u smartfona, choć nie zaleca się tego robić, a to z tego względu, że kopia pamięci danego urządzenia powinna być zapisywana na zewnętrznym nośniku. Dlatego lepiej zakupić sobie kartę SD rozmiarem przypominającą flash telefonu. Różnica między robieniem obrazów partycji EXT4 i EMMC polega na tym, że w przypadku standardowych partycji EMMC, ich obraz można zamontować przez mount na dowolnym linux'ie. Natomiast obrazy EXT4, są w zasadzie zwykłymi archiwami plików, które można wypakować jak zwykłego ZIP'a. Druga różnica jest taka, że te spakowane paczki są dzielone na kawałki o rozmiarze 1,5 GiB, przez co można je bez problemu zapisywać na karcie SD, która ma system plików FAT. Warto w tym miejscu jeszcze dodać, że można pominąć backup partycji /cache/ i /data/ , bo one są i tak czyszczone podczas procesu Factory Reset. Jeśli zaś chcemy dokonać backup'u danych użytkownika, tj. partycji /data/ , to w jej przypadku lepiej jest spakować pliki zamiast robić backup całej partycji, bo wtedy robimy backup tylko danych i nie wchodzi w to wolne miejsce. Jak już ustalimy jakie partycje uwzględnimy w backup'ie, to przechodzimy do pozycji Kopia i wybieramy kartę SD oraz zaznaczamy odpowiednie obszary pamięci flash, tak jak to widać na poniższej fotce: W przypadku robienia pełnego backup'u, cały proces może zająć dłuższą chwilę. Po jego ukończeniu, na karcie SD pojawi się obraz flash'a, który możemy sprawdzić w gdisk lub parted : Wgranie obrazu recovery z TWRP na Neffos Y5 Po sprawdzeniu czy obraz się bootuje poprawnie i dokonaniu backup'u określonych obszarów pamięci flash, możemy ten obraz wgrać na telefon lub też możemy zainstalować jedynie samo SuperSU. Ja postanowiłem wgrać TWRP recovery na mojego Neffos'a Y5. W sumie ta procedura się za wiele nie różni od testowania samego obrazu w pamięci telefonu. Jedyne co trzeba zrobić to zrestartować telefon do trybu bootloader'a i wgrać obraz recovery przy pomocy fastboot w poniższy sposób: # adb reboot bootloader # fastboot flash recovery image-new.img # fastboot reboot SuperSU, BusyBOX, RootCheck i emulator terminala Ostatnią rzeczą na drodze do zrobienia root na Neffos Y5 jest wgranie aplikacji umożliwiającej korzystanie różnym programom z praw administratora systemu w telefonie. My skorzystamy z SuperSU. Dodatkowo, musimy wgrać sobie BusyBOX, który zawiera minimalistyczne odpowiedniki linux'owych narzędzi, co pozwoli nam swobodnie operować w Androidzie, tak jakbyśmy to robili pod pełnowymiarowym pingwinem. Potrzebny nam także będzie jakiś emulator terminala, w którym to będziemy wpisywać wszystkie nasze polecenia. Instalacja SuperSU Zacznijmy od pobrania stosownej paczki z SuperSU. Jako, że my nie mamy jeszcze zrobionego root'a, to musimy pobrać TWRP / FlashFire installable ZIP . Tej paczki nie wypakowujemy, tylko wrzucamy ją w pobranej formie na kartę SD w telefonie. Odpalamy teraz tryb recovery w smartfonie (VolumeUp + Power) i przechodzimy do Instaluj i wskazujemy paczkę .zip , którą umieściliśmy na karcie SD. Tam z kolei zaznaczamy Weryfikuj sygnatury pliku ZIP i przeciągamy trzy strzałki na prawą stronę. Teraz możemy uruchomić ponownie Neffos'a Y5 i zainstalować jakąś aplikację, która pokaże nam czy nasz smartfon ma root'a. Sprawdzenie czy Neffos Y5 ma root'a Po uruchomieniu się systemu na smartfonie, instalujemy aplikację RootCheck, po czym uruchamiamy ją. Powinien się pojawić monit informujący, że ta aplikacja żąda praw administracyjnych, na co zezwalamy. Jeśli nasz telefon ma root'a, to powinien się pojawić stosowny komunikat: Instalacja BusyBOX Kolejnym krokiem jest instalacja BusyBOX'a. Po wgraniu tej aplikacji na smartfona, musimy ją uruchomić i wcisnąć w niej przycisk install . BusyBOX również nas poprosi o dostęp do praw administracyjnych. Po zainstalowaniu, weryfikujemy jeszcze, czy aby wszystko zostało pomyślne wgrane. Możemy to zrobić zarówno w samej aplikacji BusyBOX, jak w CheckRoot: Instalacja terminala Generalnie rzecz biorąc, terminal jako taki nie jest obowiązkowy, bo SuperSU jak i BusyBOX są wymagane przez konkretne aplikacje do poprawnego ich działania. Niemniej jednak, jeśli zamierzamy korzystać z tych niskopoziomowych narzędzi dostarczonych przez BusyBOX, czy też innych narzędzi obecnych standardowo w Androidzie na uprawnieniach root, to terminal jak najbardziej się nam przyda. Znalazłem dwa terminale, które są OpenSource i bez reklam/opłat. Są to Android-Terminal-Emulator oraz Termux. Wybieramy sobie jeden z nich i instalujemy w systemie. Jako, że ja korzystam na co dzień z Debiana, to instaluję Termux'a. Aplikacje i prawa administracyjne Teraz już pozostało nam tylko odpalenie terminala i zalogowanie się na użytkownika root. Do tego celu służy polecenie su . Wpiszmy je zatem w okienku Termux'a: I teraz możemy uruchamiać aplikacje z prawami admina, tak jak to zwykliśmy robić w każdym innym linux'ie. Pamiętajmy tylko, że standardowo system plików jest zamontowany w trybie tylko do odczytu (RO) i by móc zmieniać pliki systemowe z poziomu tego terminala, musimy przemontować system plików w tryb do zapisu (RW). Robimy to w poniższy sposób: $ su # mount -o remount,rw /system Gdy skończymy się bawić, to montujemy ten system plików ponownie w tryb RO: # mount -o remount,ro /system
  9. Oferta TP-LINK'a ciągle powiększa się o nowe urządzenia. Nie chodzi mi tutaj o routery WiFi, z których ten producent jest znany nam wszystkim ale raczej o nowe modele smartfonów niskobudżetowych. Jakiś czas temu TP-LINK wprowadził do obiegu smartfony Neffos Y5 oraz Neffos Y5L. Ten artykuł będzie dotyczył jedynie tego pierwszego urządzenia ale w niedługim czasie pojawi się również recenzja drugiego z wyżej wymienionych telefonów. Czy w przypadku Neffos'a Y5 (TP802A), TP-LINK jest nas w stanie czymś zaskoczyć? Zawartość opakowania Neffos Y5 W stosunku do poprzednich modeli smartfonów TP-LINK (C5 i C5 MAX), które miałem okazję testować, Neffos Y5 nie ma dołączonych w zestawie słuchawek. Poza brakiem tego elementu, który moim zdaniem powinien znaleźć się w zestawie każdego smartfona, zawartość pudełka jest raczej standardowa: Poza smartfonem mamy naturalnie ładowarkę 5V/1A: Oraz przewód mikro USB umożliwiający podłączenie smartfona do ładowarki lub też do portu USB komputera: Niewątpliwą zaletą smartfona Neffos Y5 jest wymienna bateria o pojemności 2130 mAh (model NBL-39A2130): No i to z grubsza wszystko co było w zestawie, oczywiście nie licząc skróconych instrukcji obsługi i innych tego typu papierzysk. Specyfikacja Neffos Y5 Może w pudełku nie było za wiele elementów ale urządzenia, na którym nam najbardziej zależy, na szczęście nie zabrakło. Przyjrzymy się zatem bliżej smartfonowi Neffos Y5. Obudowa w przypadku tego modelu może być biała albo szara. Jeśli zaś chodzi o wymiary, to można by rzecz, że są one dobrane w sam raz: 144x72x8,8 mm (wy/sz/gr). Są one dokładnie takie same co w przypadku Neffos C5. Niemniej jednak, gdy się trzyma w ręku Neffos'a Y5, to sprawia on wrażenie nieco grubszego i solidniejszego niż C5. Generalnie porównując te dwa modele, to gdybym miał wybierać między nimi, to zdecydowałbym się na Y5. Poza tym, ten smartfon jest nieco cięższy, bo waży 154 gram w stosunku do 141 gramów w przypadku C5. Nie jest to wielka różnica ale zawsze jakaś jest. Obudowa Neffos'a Y5 W przypadku smartfona Neffos Y5 mamy do czynienia ze standardową obudową wykonaną w całości z plastiku. Lewej krawędzi obudowy TP-LINK zdaje się nie wykorzystywać w swoich smartfonach zupełnie i robi jedynie użytek z pozostałych trzech krawędzi. Przyciski są umieszczone jak zawsze na prawym boku obudowy. Mamy tutaj jeden większy przycisk głośności robiący za VolumeUp/VolumeDown oraz przycisk zasilania. Górna krawędź Neffos'a Y5 skrywa jedynie gniazdo słuchawkowe minijack 3,5 mm: Jeśli zaś chodzi o dolną krawędź, to tutaj mamy standardowo port mikro USB oraz mikrofon do rozmów telefonicznych: Tuż nad ekranem mamy czerwoną diodę powiadomień, czujnik światła, głośnik oraz aparat selfie 2 mpix (1600x1200 px fotki, 1280x720 px video). Może i kamera jest w stanie nagrywać obraz w rozdzielczości HD ale ma z tym zdaniem pewne problemy, bo ilość FPS jest na poziomie 5/s. Z tyłu obudowy mamy zaś mikrofon z redukcją szumów, aparat 8 mpix (fotki 2448x3264, video 1280x720 px 20 FPS ) oraz jedną diodę robiącą za lampę błyskową i latarkę: Niżej na obudowie mamy zaś dziurki na głośnik. Może jest ich dość sporo ale sam głośnik jest o wiele mniejszy niż przestrzeń przeznaczona na te małe otworki. Generalnie to chyba dźwięk nieco łatwiej ma się wydostać z obudowy przy takim rozwiązaniu. Niemniej jednak, ja nie przepadam za bardzo za głośnikami umiejscowionymi z tyłu obudowy. Po ściągnięciu tylnej klapki możemy zauważyć, że bateria w Neffos Y5 jest wyjmowalna i bez problemu będziemy ją w stanie sami wymienić, gdy ta się już zużyje. Widać także usprawnienia konstrukcyjne w stosunku do Neffos C5, który miał nieco inne rozmieszczenie slotów na karty SIM i kartę mikro SD. W przypadku smartfona Neffos Y5, bateria przysłania jedynie sloty na karty SIM, przez co mamy możliwość wyciągnięcia karty SD bez potrzeby wyciągania baterii i wyłączania telefonu: Wyświetlacz IPS 5.0" Wyświetlacz zastosowany w Neffos Y5 jest bardzo podobny do tego, który znalazł się w Neffos C5. Mamy tutaj te same wymiary (5.0 cali) i tę samą rozdzielczość ekranu (1280x720 px), co daje ten sam współczynnik PPI na poziomie 293, czyli mniej więcej tyle ile minimalnie potrzebuje ludzkie oko, by się zbytnio nie męczyło od patrzenia na wyświetlany obraz. Na dobrą sprawę to nie widzę żadnej różnicy w stosunku do Neffos C5, przynajmniej jeśli chodzi o wyświetlacz. Kolory są żywe i dobrze nasycone, a kąty widzenia przyzwoite. Generalnie to nie mam nic do zarzucenia samemu wyświetlaczowi, no może za wyjątkiem minimalnej jasności. Ta maksymalna jest dość dobra ale nad minimalną TP-LINK musi trochę popracować, by można było jeszcze niżej z nią zjechać, tak by czytanie tekstu na smartfonie w nocy było bardziej komfortowe. Ciekawą rzeczą z kolei w przypadku Neffos'a Y5 jest ilość punków stycznych, które zostały uzyskane w teście multitouch. W zasadzie to nie do końca byłem w stanie sprawdzić ilość styków, bo zabrakło mi palców, a wynik mówi raczej sam za siebie: Pasywny dual SIM Jak w pozostałych modelach smartfonów TP-LINK, tak i w przypadku Neffos Y5 mamy do czynienia z pasywnym dual SIM'em. Naturalnie każda karta SIM może być 2G/3G/4G i bez problemu możemy je sobie skonfigurować w opcjach Android'a. Nawet jeśli mamy tylko jedną kartę SIM, bo korzystamy tylko z jednego operatora GSM, to zawsze możemy pokusić się o pozyskanie karty SIM od Aero2, przez co będziemy mieć darmowy internet w telefonie. Procesor Qualcomm Snapdragon 210 (4 rdzenie) W Neffos'ie Y5 został zastosowany 32-bitowy procesor Snapdragon 210 (MSM8909) od producenta Qualcomm. Ma on cztery rdzenie oparte na architekturze ARM Cortex-A53 taktowane dynamicznie zegarem od 200 MHz do 1,3 GHz. Układ graficzny zaś to Adreno 304 taktowany zegarem 400 MHz (nie wiem czemu CPU-Z pokazuje 450 MHz). Procesor graficzny posiada także wsparcie dla API takich standardów jak OpenGL ES 1.1/2.0/3.0, OpenCL 1.0/1.1, OpenGL 3.1 oraz DirectX 11.1. Proces technologiczny tego SoC'a to 28 nm. Pamięć RAM i flash Neffos Y5 jest wyposażony w 2 GiB pamięci operacyjnej RAM i jest to moim zdaniem optymalne minimum, którym muszą władać smartfony pracujące pod kontrolą systemu Android. Po uruchomieniu telefonu, ilość zajętego miejsca prezentuje się następująco: W przypadku pamięci flash, Neffos Y5 ma do dyspozycji 16 GiB. Z czego około 12 GiB jest dostępne dla użytkownika. Tutaj warto zaznaczyć, że modele C5 i C5 MAX udostępniały użytkownikowi jedynie 10 GiB, czyli o 2 GiB mniej. Generalnie jest to zaletą przycięcia partycji /system/ , która miała zwykle 4 GiB zapełnione jedynie w połowie, przez co 2 GiB przestrzeni flash szły zwyczajnie na zmarnowanie. Zatem TP-LINK poczynił krok w dobrą stronę: Bateria Bateria Neffos'a Y5 ma pojemność 2130 mAh. Nie jest to jakoś szczególnie dużo ale samo urządzenie potrafi nawet zaskoczyć czasem pracy na tym akumulatorze. Generalnie rzecz ujmując, to testy wydajnościowe Neffos'a Y5 szacunkowo wykazały, że jest on w stanie pracować pod obciążeniem non stop przez nieco ponad 8 godzin. Poniżej zaś znajdują się fotki obrazujące proces ładowania baterii. Niemniej jednak, jeśli chodzi o stan spoczynku, to ten smartfon potrafi wytrzymać prawie miesiąc bez ponownego ładowania, czyli nieco dłużej niż w przypadku pozostałych modeli smartfonów TP-LINK. Głośnik i brak słuchawek Szkoda, że zabrakło słuchawek w zestawie Neffos'a Y5. Z jednej strony jest to przecież kluczowy element ale z drugiej też prawie każdy z nas już kilka par słuchawek powinien mieć. Niemniej jednak, jeśli producent telefonu nie dorzuca słuchawek to moim zdaniem powinniśmy się czegoś więcej spodziewać po tym wbudowanym głośniku multimedialnym. Jakość dźwięku może nie zachwyca ale moim zdaniem jest ona nieco lepsza niż w Neffos C5. Nie wiem czy to jest jest zasługą większego odziurkowania tylnej klapki ale różnicę słychać. Czujniki Jeśli chodzi o czujniki, w które został wyposażony Neffos Y5, to nie ma tutaj zbytnio większej fantazji. Standardowo mamy akcelerometr, czujnik zbliżeniowy i czujnik światła. Zabrakło jedynie magnetometru oraz wszystkich tych dodatkowych czujników, które przydałyby się na wypadek apokalipsy zombi: Łączność 2G/3G/LTE Neffos Y5 ma naturalnie na pokładzie modem LTE kategorii 4 (Cat4). Przy jego pomocy teoretycznie jesteśmy w stanie osiągnąć transfer na poziomie 150/50 mbit/s (download/upload). Z testów wynika, że ten transfer jest trochę niższy ale wciąż na zadowalającym poziomie: Ten modem obsługuje standardowe europejskie pasma częstotliwości dla LTE w technologi FDD, kanały B1/B3/B7/B8/B20 (2100/1800/2600/900/800 MHz). Neffos Y5 jest także w stanie obsługiwać standardy DC-HSPA+/HSPA/UMTS: B1/B8(2100/900 MHz) oraz EDGE/GPRS/GSM: 850/900/1800/1900 MHz. WiFi 2,4 GHz Szkoda, że Neffos Y5 nie dysponuje WiFi 5 GHz. Dobrze jednak, że ma chociaż WiFi 2,4 GHz obsługujące standard N. Transfer jaki udało mi się uzyskać był na poziomie około 50 mbit/s, czyli trochę mało. Chcąc wyeliminować ewentualne zakłócenia podłączyłem na chwilę inny telefon ale tamten uzyskał 100 mbit/s. Także nie wiem z jakiego powodu ten smartfon ma 2x niższą prędkość transferu. Zasięg WiFi jest przeciętny. Poniżej jest fotka moich trzech AP rozmieszczonych po domu w różnych pomieszczeniach. Kanał 11 obrazuje siłę sygnału docierającą do smartfona z AP zlokalizowanego w tym samym pokoju. Na kanale 6 jest AP w odległości około 4 metrów + ściana. Na kanale 1 jest AP w odległości 6 metrów + trzy ściany: By być szczerym, to dziwne są te wyniki. Niby ogólna jakość połączenia jest słabsza w stosunku do pozostałych smartfonów TP-LINK ale też za bardzo nie ma wielkiej różnicy między poszczególnymi AP. Udostępnianie połączenia 3G/LTE oraz WiFi (tethering) Neffos Y5 wspiera naturalnie tethering, czyli możliwość udostępniania połączenia internetowego (3G/LTE) komputerom podłączonym do smartfona po WiFi. Jest też możliwość udostępnienia połączenia WiFi, jeśli komputer podepniemy do portu mikro USB w telefonie. Raczej nie powinno być problemów z podłączeniem się do AP, który skonfigurujemy sobie na smartfonie. Niemniej jednak, z tego co obserwuję, to w Neffos'ach ESSID sieci WiFi zawiera spacje. Spacje w nazwach sieci są znane z tego, że powodują problemy z połączeniem. Zatem jeśli dane logowania do sieci podaliśmy prawidłowe ale nie możemy nawiązać połączenia, to zmieńmy sobie nazwę sieci WiFi na taką bez spacji. Jeśli chodzi zaś o udostępnianie połączenia via USB, to na linux działa ono bez większego problemu. Poniżej jest log z mojego Debiana po podpięciu Neffos'a Y5 do portu USB komputera i przełączeniu telefonu w tryb tethering'u: kernel: usb 2-1.1: new high-speed USB device number 35 using ehci-pci kernel: usb 2-1.1: New USB device found, idVendor=2357, idProduct=032c kernel: usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 kernel: usb 2-1.1: Product: Android kernel: usb 2-1.1: Manufacturer: Android kernel: usb 2-1.1: SerialNumber: 90169635 kernel: usbcore: registered new interface driver cdc_ether kernel: rndis_host 2-1.1:1.0 usb0: register 'rndis_host' at usb-0000:00:1d.0-1.1, RNDIS device, f6:aa:d6:10:fa:ff kernel: usbcore: registered new interface driver rndis_host Jedne co musimy zrobić, to skonfigurować adresację IP na interfejsie usb0 . Bluetooth v4.1 (LE) Neffos Y5 ma na pokładzie bluetooth w wersji 4.1, który zapewnia o wiele większy zasięg w stosunku do v4.0 przez brak konieczności stosowania połączenia bezpośredniego. To niewątpliwie bardzo użyteczna technologia i w sumie jestem zadowolony z faktu, że TP-LINK postanowił ją w tym smartfonie zaimplementować. GPS, A-GPS, GLONASS i Galileo W Neffos Y5 mamy również zaszyty nadajnik GPS. Ten smartfon wpiera A-GPS (Assisted GPS), GLONASS (Globalnaja Nawigacionnaja Sputnikowaja Sistiema) oraz Galileo (europejski system nawigacji satelitarnej). A-GPS to system znacznie skracający czas potrzebny na pierwsze ustalenie położenia w systemie GPS (połączenie z satelitami). System ten wykorzystuje do działania serwery operatorów sieci GSM, przez co operator sieci komórkowej musi wspierać taką usługę. W przeciwnym razie będziemy mieli do dyspozycji jedynie zwykły GPS. GLONASS, z kolei to radziecki/rosyjski system nawigacyjny. To taka alternatywa dla amerykańskiego systemu GPS. A Galileo to europejska alternatywa dla tych dwóch powyższych. Połączenie tych systemów daje możliwość bardzo akuratnych pomiarów, co przekłada się na szybsze i dokładniejsze ustalenie pozycji w terenie. Radio FM Nie mogło też zabraknąć odbiornika FM. Nie to bym jakoś specjalnie potrzebował tego przestarzałego już wynalazku, bo w końcu mamy internet ale zawsze to radio może nam się przydać, zwłaszcza tam, gdzie nie ma zasięgu internetu. No i oczywiście zakładając, że mamy jakieś słuchawki pod ręką, bo takowych w zestawie przecież zabrakło. Brak OTG Skoda, że w Neffos Y5 zabrakło jakże użytecznej właściwości jaką jest OTG, czyli możliwość pdłączenia do smartfona zewnętrznej klawiatury czy myszy. Android 6.0 Marshmallow Na plus za to można zaliczyć nowszą wersję Androida, tj. 6.0 Marshmallow. Jeśli chodzi zaś działanie samego systemu, to jak najbardziej jest ono płynnie. Jeśli ktoś jest ciekaw jak wyglądają temperatury podczas zwykłej pracy telefonu oraz przy 100% obciążeniu procesora (po 5 minutach), to poniżej są stosowne wyniki: Czy da radę przeprowadzić root na Neffos Y5 Proces ukorzeniania Androida (root) na Neffos Y5 jest możliwy, choć nie należy do najprostszych. Jak Neffos Y5 sprawuje się pod linux Generalnie rzecz biorąc, Neffos Y5 nie sprawia problemów na linux'ie. Przynajmniej jeśli chodzi dystrybucję Debian, z której ja korzystam. Póki co biblioteka libmtp (v1.1.12) jeszcze nie rozpoznaje Neffos'a Y5 ale wkrótce to się powinno zmienić, bo odpowiednie zgłoszenie do developerów już posłałem. System plików telefonu można zamontować za pomocą jmtpfs i bez trudu można wymieniać dane z Androidem po USB. Transfer plików jest na poziomie 6-8 MiB/s. Podsumowanie Neffos Y5 jest dość przyzwoitym smartfonem i pod wieloma względami przypomina Neffos C5 (4 rdzenie, 2 GiB RAM, 16 GiB flash, 8 mpix aparat główny, te same wymiary, ten sam wyświetlacz). Niemniej jednak, jak wykazały benchmarki (Y5/C5), Neffos Y5 zostaje nieco w tyle za Neffos C5. Ceny tych dwóch modeli są obecnie mniej więcej podobne, choć wybór konkretnego modelu nie jest zbytnio oczywisty. Neffos Y5 ma nowszego Androida (6.0) oraz o 2 GiB więcej na pamięci flash (dla partycji /data/ ). Ten smartfon radzi sobie także lepiej jeśli chodzi o czas pracy na baterii w stanie spoczynku no i wspiera również nowszy standard bluetooth. Brak OTG mogę jakoś przeżyć ale WiFi 5 GHz by się przydało.
  10. By nieco ogarnąć informacje na temat ukorzeniania Androidów w smartfonach Neffos, postanowiłem zebrać je w tym wątku. To tak na wypadek, gdyby ktoś potrzebował szybkiego przekierowania do odpowiednich tematów opisujących proces root każdego z modeli tych telefonów. Póki co zdołałem opisać proces root na smartfonach Neffos C5, Neffos C5 MAX i Neffos Y5 ale na tym na pewno nie poprzestanę. Część informacji zawartych w poradnikach opisujących proces uzyskiwania dostępu root została spisana w celach informacyjnych. W zasadzie to nie trzeba przeprowadzać wszystkich kroków, by ukorzenić Androida na swoim Neffos'ie. Jedyne czego potrzebujemy to obraz recovery.img, do którego link jest zamieszczony w każdym z poradników. Taki obraz trzeba wgrać na flash telefonu via fastboot. Opcjonalnie można zrobić backup flash'a smartfona. Natomiast pozyskiwanie i przepakowanie obrazu recovery.img z innego smartfona można sobie odpuścić zupełnie. Narzędzia ADB i FASTBOOT HowTo: Instalacja narzędzi ADB i fastboot pod linux Neffos C5 HowTo: Root smartfona Neffos C5 od TP-LINK Jak przeprowadzić unroot na smartfonie Neffos C5 od TP-LINK Neffos C5 MAX HowTo: Root smartfona Neffos C5 MAX od TP-LINK Jak przeprowadzić unroot na smartfonie Neffos C5 MAX od TP-LINK Neffos Y5 HowTo: Root smartfona Neffos Y5 od TP-LINK Jak przeprowadzić unroot na smartfonie Neffos Y5 od TP-LINK Neffos Y5L HowTo: Root smartfona Neffos Y5L od TP-LINK Jak przeprowadzić unroot na smartfonie Neffos Y5L od TP-LINK 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. Problemy z bezpieczeństwem Trzeba sobie zdawać, że przeprowadzenie procesu root godzi w bezpieczeństwo danych przechowywanych w telefonie. Jeśli zamierzamy przeprowadzić proces root swojego Neffos'a, to koniecznie zapoznajmy się z tym wątkiem pokazującym mechanizmy bezpieczeństwa, które przestają spełniać swoje funkcje.
  11. Jakiś czas temu bawiąc się jednym z TP-LINK'owch smartfonów, konkretnie to był model Neffos C5, nie byłem zbytnio zadowolony z faktu, że karta SD w takim telefonie może być sformatowana jedynie systemem plików z rodziny FAT. Takie rozwiązanie niesie ze sobą pewne niedogodności, bo system plików FAT ma dość spore ograniczenia jeśli chodzi o przechowywanie informacji. Niekoniecznie wszyscy musimy wgrywać na smartfona bardzo duże pliki czy też trzymać ich tam setki GiB, bo to jest raczej rzadkością, ale brak wsparcia uprawnień do plików i katalogów w systemie plików FAT powoduje, że aplikacje w Androidzie nie chcą zapisywać swoich danych na karcie SD, która taki system plików wykorzystuje. W efekcie trzeba kombinować, by aplikacja kamery/aparatu zapisywała zdjęcia czy materiał video na karcie SD. Na smartfonach TP-LINK'a, które mają zainstalowany Android 6.0 Marshmallow, np. Y5 czy Y5L), jesteśmy w stanie sformatować karty SD jako pamięć wewnętrzna za sprawą wprowadzonego w tej wersji Androida mechanizmu Adoptable Storage. Postanowiłem zatem sprawdzić jak taki proces formatowania karty SD przebiega i co dokładnie może nam przynieść jego przeprowadzenie. Jak sformatować kartę SD jako pamięć wewnętrzna W starszych wersjach Androida, tj. 5.1 (Lollipop) i niższych, nie było możliwości sformatowania karty SD jako pamięć wewnętrzna. Ta opcja jest dostępna jedynie w Androidach począwszy od wersji 6.0 (Marshmallow). Jeśli dysponujemy smartfonem, który ma zainstalowany taki system, i drażni nas wykorzystywanie karty SD jako pamięć przenośna z systemem plików FAT, to możemy pokusić się o sformatowanie jej w nieco inny sposób niż zazwyczaj. Proces jest dość prosty ale trzeba uważać na kilka rzeczy. Po wsadzeniu karty SD do slotu w smartfonie, Android powinien nam wyrzucić informację dotyczącą wykrycia takiego nośnika i udostępnić nam opcje formatowania karty SD, ewentualnie zawsze możemy wejść w Ustawienia => Pamięć plików: W tym przypadku karta SD jest sformatowana w tradycyjny sposób i automatycznie zamontowana w systemie. Jak widzimy wyżej, mamy opcję "Sformatuj jako pamięć wewnętrzna". Klikamy w nią: Sformatowanie karty SD w taki sposób uniemożliwi nam korzystanie z niej na innych urządzeniach. Ten proces kasuje także wszystkie dane zgromadzone na karcie SD. Dlatego też przed przeprowadzeniem go upewnijmy się, że zrobiliśmy ewentualny backup zawartości karty SD: Podczas procesu formatowania karty SD są również przeprowadzane testy zapisu/odczytu nośnika pod kątem oceny jego prędkości. W przypadku, gdy karta nie należy do najszybszych i odbiega znacząco parametrami od flash'a telefonu, to zostanie wyrzucony komunikat o możliwym spowolnieniu działania systemu: Trzeba sobie zdawać sprawę, że nawet te szybsze karty SD są parokrotnie wolniejsze niż wbudowana w smartfon pamięć flash, zatem i tak spowolnienie w działaniu systemu odczujemy. Dlatego też jeśli już zamierzmy bawić się w formatowanie karty SD jako pamięć wewnętrzna, to dokupmy możliwie jak najszybszą kartę SD, min. klasa 10 lub UHS-1. Po tym jak proces formatowania karty dobiegnie końca, zostaniemy poproszeni o określenie czy chcemy zainstalowane w systemie aplikacje oraz ich prywatne dane przenieść na kartę SD: Przeniesienie aplikacji w późniejszym czasie Proces przenoszenia aplikacji będzie można przeprowadzić w późniejszym czasie bez obawy o utratę zgromadzonych już plików na karcie SD. Jeśli nie zdecydujemy się na przeniesienie danych w procesie formatowania karty SD, to przestrzeń kary nie zostanie dodana do tej, którą mamy dostępną na flash'u telefonu. W menadżerze plików nie zobaczymy też już pozycji karty SD i nie będziemy w stanie wgrać na nią własnych plików: Przeniesienie aplikacji w procesie formatowania karty SD W przypadku przeniesienia aplikacji z flash'a na kartę SD, stracimy dostęp do tej prawdziwej wewnętrznej pamięci telefonu. By to nieco lepiej zobrazować, posłużmy się przykładem. W tym przypadku flash w telefonie ma 16 G, z czego 12 G jest przeznaczone na partycję /data/ . Karta SD ma zaś 2 G. Po przeniesieniu danych, system będzie widział jedynie 2 G, a nie 14 G. Nie ma możliwości, by te dwie przestrzenie połączyć ze sobą, no chyba, że sformatujemy kartę SD w standardowy sposób z wykorzystaniem systemu plików FAT. Hybrydowa lokalizacja aplikacji Po sformatowaniu karty SD jako pamięć wewnętrzna i przeniesieniu danych, nowe aplikacje przy instalacji będą umieszczane na karcie SD tylko w momencie, gdy developer takiego programu wspiera Adoptable Storage. Jeśli ten mechanizm nie jest wspierany przez aplikacje, to dane będą zapisywane na flash'u telefonu. Tutaj warto też zaznaczyć, że pojedyncze aplikacje możemy przenieść sami na kartę SD. Wystarczy, że przejdziemy w Ustawienia => Aplikacje => Informacje o aplikacji => Pamięć plików i klikniemy przycisk "Zmień": Wszystkie aplikacje, które zostaną w taki sposób przeniesione, są zapamiętywane przez Androida i w przypadku odłączenia karty SD, te programiki przestaną nam działać (przestaną być widoczne przez system) do momentu, aż ta karta SD zostanie podłączona ponownie. W przypadku, gdy nie przenosiliśmy plików podczas procesu formatowania karty SD, aplikacje będą zapisywane domyślnie na flash'u telefonu. Ten stan rzeczy może zostać zmieniony za sprawą narzędzia adb . Proces instalacji adb na linux został opisany tutaj. Mając już dostęp do adb wydajemy poniższe polecenia (wymagany root): # adb shell shell@Y5:/ # pm get-install-location 0[auto] shell@Y5:/ # pm set-install-location 2 Wartości jakie mamy do wyboru to: 0[auto], 1[internal] oraz 2[external]. Ta opcja z przenoszeniem danych na kartę SD jest użyteczna chyba jedynie w przypadku smartfonów, które mają niewielkich rozmiarów pamięć flash, gdzie zwyczajnie brakuje nam miejsca na aplikacje, nie wspominając już o innych danych, np. filmy czy zdjęcia. Jeśli nasz smartfon ma większy flash niż 16 G, to korzystanie z Adoptable Storage jest moim zdaniem pozbawione sensu. Przenoszenie danych z karty SD na flash smartfona W przypadku, gdy rozczarowaliśmy się tym całym mechanizmem Adoptable Storage i zwyczajnie nam on nie odpowiada ale przenieśliśmy już dane na kartę SD, to bez problemu możemy cały proces odwrócić i przenieść dane z karty SD na flash smartfona. Wystarczy przejść w Ustawienia => Pamięć plików => Pamięć wewnętrzna. Tam z kolei w menu po prawej stronie na górze wybieramy "Przenieść dane": Trzeba jednak pamiętać, że ten proces przenoszenia danych z karty SD na pamięć telefonu może w pewnych sytuacjach doprowadzić do bootloop, czyli zapętlenia się startu smartfona. Możemy do takiego stanu doprowadzić przez nieuwagę, gdzie ilość przenoszonych danych z karty SD będzie zbliżona lub większa niż rozmiar docelowego miejsca na flash'u smartfona na partycji /data/ . Dlatego też zwracajmy uwagę na to ile danych Android chce przenieść. Oczywiście z takiego bootloop'a da radę się wybronić ale nie obejdzie się bez sformatowania partycji /data/ z poziomu bootloader'a, a to, jak zapewne wiemy, efektywnie zniszczy wszystkie nasze dane. Odłączanie karty SD sformatowanej jako pamięć wewnętrzna Kartę SD sformatowaną jako pamięć wewnętrzna w dalszym ciągu jesteśmy w stanie odłączyć od systemu. Niemniej jednak, nie jest to zalecane: Tutaj taka mała uwaga. Po przeprowadzeniu procesu formatowania karty SD zawsze zrestartujmy smartfon. Bez tego kroku, Android może się zachowywać wręcz nieobliczalnie, co może być źródłem różnych dziwnych problemów w działaniu systemu. Zasada działania mechanizmu Adoptable Storage Podczas procesu formatowania karty SD jako pamięć wewnętrzna została nam wyświetlona informacja na temat tego, że tej karty SD nie da rady wykorzystywać na innym urządzeniu niż to, na którym ten proces został przeprowadzony. Taka karta zostanie sformatowana systemem plików EXT4 i dodatkowo dane zostaną na tej karcie zaszyfrowane. Spójrzmy na tę poniższa fotkę obrazującą kilka partycji widzianych przez Androida: Standardowa wielkość pamięci flash w smartfonie Neffos Y5, to 16 G, z czego tylko 12 G jest przeznaczone dla partycji /data/ , czyli danych użytkownika. Karta SD wykorzystywana w tym przypadku ma jedynie 2 G. Po aktywowaniu mechanizmu Adoptable Storage, partycja /data/ nie zmieniła swojego rozmiaru i dalej ma 12 G. Na fotce mamy też sekcję "Karta SD" i tutaj już sprawa wygląda ciekawie, bo mamy dwie partycje na tej karcie. Pytanie się nasuwa: czemu dwie a nie jedna? Nie wiem jakie czary Android odprawia, by korzystać z Adoptable Storage ale najwyraźniej potrzebne są do tego celu jakieś metadane (pierwsza partycja), które umożliwiają systemowi zamontowanie pozostałej części karty SD. Dane na karcie SD po sformatowaniu jej jako pamięć wewnętrzna są szyfrowane z wykorzystaniem linux'owego narzędzia dm-crypt przy zastosowaniu algorytmu AES o rozmiarze klucza 128-bit (aes-cbc-essiv:sha256). Jak się przyjrzymy bardziej uważnie, to na tej fotce dostrzeżemy "Device Mapper" i to jest właśnie odszyfrowany i przemapowany obszar karty SD, na którym system jest w stanie operować. Ta przestrzeń jest już sformatowana z wykorzystaniem natywnego systemu plików wykorzystywanego w linux'ach, tj. EXT4. Niemniej jednak, możemy zapomnieć o wykorzystaniu standardowego nośnika sformatowanego pod linux'em jako EXT4. Może i mamy tutaj systemem plików EXT4 ale linux nie będzie w stanie tej karty SD odczytać, przynajmniej nie bez uprzedniego odszyfrowania interesującego nas obszaru karty. Technicznie jesteśmy w stanie wejść w interakcję z tą kartą SD na linux'ie ale w tym celu musielibyśmy wydobyć klucz szyfrujący. Klucz do takiego zaszyfrowanego kontenera jest generowany losowo podczas procesu formatowania karty SD. Ten klucz jest także przechowywany gdzieś na flash'u smartfona. Gdzie dokładnie jest on ulokowany i czy można go wydobyć bez ukorzeniania systemu (root), tego jeszcze nie wiem. Niemniej jednak, wszystko wskazuje, że root będzie niezbędny, by dostęp do tego klucza uzyskać. Z kolei tutaj ludzie piszą, że nie we wszystkich smartfonach szyfrowanie jest włączone domyślnie. W tym wątku są zaś zebrane te bardziej użyteczne informacje dotyczące Adoptable Storage. Warto w tym miejscu zaznaczyć, że jeśli flash telefonu nie jest zaszyfrowany, to ten klucz można odzyskać i zdeszyfrować zawartość karty SD. Dlatego też jeśli zamierzamy korzystać z Adoptable Storage, to rozważałbym zaszyfrowanie telefonu, co można zrobić przechodząc w Ustawienia => Zabezpieczenia. Pamięć przenośna i pamięć wewnętrzna na jednej karcie SD Generalnie rzecz biorąc, ten cały Adoptable Storage średnio mi się podoba. Nie chciałbym powiedzieć, że jest on kompletnie nieprzydatny ale raczej nie zamierzam z niego korzystać. Niemniej jednak, szukając o nim informacji natrafiłem na ciekawy trik, który umożliwia sformatowanie karty SD w taki sposób, by jedna część robiła za pamięć wewnętrzną, a druga za pamięć przenośną. W efekcie w przypadku tych większych kart SD, np. 64 G czy 128 G, możemy stworzyć nieco bardziej zaawansowany setup. Nie powiem, że jest to wyjście idealne ale zawsze daje ono nam nieco większe pole manewru przy zarządzaniu danymi na karcie SD. Taki zabieg możemy przeprowadzić z poziomu telefonu ale musimy uzbroić się w narzędzie adb . Mając zainstalowany adb podłączamy się do telefonu i listujemy dostępne nośniki: # adb shell shell@Y5:/ $ sm list-disks disk:179,64 Wyżej został nam zwrócony disk:179,64 . Całą tą frazę podajemy w poniższym poleceniu: shell@Y5:/ $ sm partition disk:179,64 mixed 75 Opcja mixed 75 oznacza, że zamierzamy sformatować tę kartę SD jako pamięć wewnętrzno-przenośna (do wyboru są jeszcze public i private). Liczba 75 to procent przestrzeni karty SD, który zostanie przeznaczony na pamięć przenośną. Gdy proces formatowania karty dobiegnie końca, możemy sprawdzić czy Android poprawnie rozpoznał podział karty SD w Ustawienia => Pamięć plików: Karta ma 2 G pamięci, z czego około 25% zostało przeznaczone na pamięć wewnętrzną, a reszta na pamięć przenośną, czyli wszystko się zgadza. Może i widzimy wyżej przycisk odmontowania karty SD ale pamiętajmy, że nie dotyczy on tej przestrzeni, która jest sformatowana jako pamięć wewnętrzna. By być w stanie bezpiecznie usunąć kartę z telefonu, musimy również wejść w opcje pamięci wewnętrznej (czerwona pozycja na powyższej fotce) i tam z menu wybrać "Odłącz": Jeśli ktoś jest ciekaw jak taka karta jest widziana pod linux'em, to poniżej jest fotka z gparted : Jako, że partycja sformatowana systemem plików FAT jest pierwsza w szeregu, to nie powinno być problemów z zamontowaniem jej nawet pod windowsem, choć ten nie zawsze może z taką kartą współpracować. W przypadku dowolnego linux'a nie będzie z nią problemów, bo tutaj nawet kolejność partycji nie ma większego znaczenia. Uszkodzenie karty SD sformatowanej jako pamięć wewnętrzna W przypadku standardowego sformatowania karty SD jako pamięć wewnętrzna nie ma raczej problemu z ponownym formatowaniem nośnika na wypadek, gdyby ten został w jakiś sposób uszkodzony, a jego zawartość przestałaby być dla nas czytelna. Niemniej jednak, jeśli chodzi o sytuację sformatowania karty SD jako wewnętrzno-przenośna, to tutaj już sprawa się komplikuje, bo przecież chcielibyśmy jedynie sformatować tylko część nośnika, a nie cały. W opcjach Androida nie ma pozycji, które pomogłyby nam uporać się z tym zadaniem i nie obejdzie się bez skorzystania z narzędzia adb : # adb shell shell@Y5:/ $ sm list-volumes all private:179,67 mounted ec91531a-61d7-4beb-adaa-272b2163b193 private mounted null public:179,65 mounted 4B44-1110 emulated mounted null emulated:179,67 unmounted null Pozycja private opowiada za tę przestrzeń karty SD, która została zamontowana jako pamięć wewnętrzna. Z kolei pozycja public jest zamontowana jako pamięć przenośna. Jeśli chcemy sformatować jedynie część karty (niekoniecznie pamięć wewnętrzną), to wybieramy jedną z widocznych wyżej pozycji, tj. private:179,67 lub public:179,65 i wydajemy poniższe polecenia: shell@Y5:/ $ sm format private:179,67 shell@Y5:/ $ sm mount private:179,67 Jeśli nie zostaną zwrócone żadne błędy w procesie formatowania i montowania zasobu, to znaczy, że proces ponownego formatowania części nośnika zakończył się powodzeniem. Dla uniknięcia ewentualnych problemów, dobrze jest zrestartować smartfon tak, by jego system uruchomił się ponownie.
  12. Dzięki uprzejmości TP-LINK Polska od jakiegoś czasu mam możliwość bawić się smartfonami Neffos, co można odczuć po sporej ilości artykułów dotyczących tych urządzeń. Postanowiłem przetestować możliwości każdego z tych telefonów dostępnymi benchmarkami na Androida, które można pobrać ze sklepu Google Play. Mnie generalnie tego typu benchmarki średnio interesują, bo zwykle nijak się mają do standardowego użytkowania telefonu ale wiem, że sporo użytkowników mobilnych technologi chciałaby tego typu test zobaczyć. Dlatego w oparciu o AnTuTu, 3DMark, PCMark oraz GFXBench zrobiłem kilka testów na każdym z podesłanych mi przez TP-LINK urządzeń. Smartfony, które wzięły udział w tym teście to: Neffos C5 MAX, Neffos C5, Neffos Y5 oraz Neffos Y5L. Ten artykuł dotyczy jedynie smartfona Neffos Y5. Testy pozostałych modeli smartfonów zostaną opisane osobno. Parametry sprzętowe Neffos Y5 Neffos Y5 ma 4 rdzeniowy procesor Qualcomm MSM8909AA (Cortex-A7) taktowany częstotliwością maksymalną 1,27 GHz. Jest tam również procesor graficzny Adreno 304. Do tego mamy również 2 GiB pamięci operacyjnej RAM. Jeśli chodzi zaś o wyświetlacz, to ma on 5,0" i rozdzielczość 1280x720 (293,7 PPI). Smartfon działa zaś pod kontrolą systemu operacyjnego Android 6.0 Marshmallow. Poniżej są fotki z CPU-Z: Wiemy zatem co Neffos Y5 ma z grubsza pod maską oraz jakim oprogramowaniem będziemy go testować. Pora zatem sprawdzić jakie wyniki zwrócą nam poszczególne aplikacje. Neffos Y5 vs. AnTuTu Neffos Y5 vs. GFXBench GFXBench ma w swojej ofercie kilka testów, których rozpiska jest zamieszczona poniżej: GFXBench jest w stanie rysować ciekawe wykresy podczas przeprowadzania konkretnych testów. Są tam min. wykresy temperatury i aktualnej częstotliwości pracy procesowa. Niemniej jednak, z nieznanych mi przyczyn te dwa wykresy nie były rysowane na żadnym z testowanych przeze mnie Neffos'ów. Dlatego też załączam jedynie podsumowanie oraz te wykresy, które zostały narysowane poprawnie:. Neffos Y5 vs. PCMark PCMark również oferuje szereg testów: Work 2.0 Performance Work 2.0 Battery Life Computer Vision Storage Work 1.0 Performance Neffos Y5 vs. 3DMark 3DMark również jest w stanie przeprowadzić kilka testów: Sling Shot ES 3.1 i Sling Shot Unlimited ES 3.1 Sling Shot ES 3.0 Sling Shot Unlimited ES 3.0 Ice Storm Ice Storm Extreme Ice Storm Unlimited