Search the Community

Showing results for tags 'morfitronik.pl'.



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 65 results

  1. 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.
  2. 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.
  3. Może i ten najtańszy smartfon w ofercie TP-LINK nie może popisać się najmocniejszymi podzespołami ale w zasadzie ten fakt nie przeszkadza nam, by przeprowadzić na Neffos Y5L (TP801A) proces root. Ten smartfon ma zbliżony SoC do Neffos Y5, a konkretnie mamy tutaj do czynienia z Snapdragon 210 (MSM8209) od Qualcomm'a. Ten fakt sprawia, że w przypadku Neffos Y5L cały proces uzyskiwania uprawnień administratora systemu przebiega bardzo podobnie do tego opisywanego wcześniej dla Neffos Y5. Dlatego też poniższy artykuł za bardzo się nie różni i w zasadzie został jedynie lekko przerobiony pod kątem zgodności ze smartfonem Neffos Y5L. Narzędzia ADB i fastboot Przede wszystkim, by zabrać się za proces root'owania smartfona Neffos Y5L, 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 Y5L W przypadku Neffos C5 i Neffos 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ż zostało wspomniane we wstępie, Neffos Y5L ma SoC Snapdragon 210 (MSM8209) 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 Y5L. 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). Ja posłużyłem się obrazem dla Neffos'a C5L, którego SoC (MSM8909) jest bardzo podobny do tego zastosowanego w Neffos Y5L. W zasadzie rozdziałka ekranu i wielkość flash się zgadzają ale układ partycji jest nieco inny i trzeba będzie ten obraz trochę przerobić, a do tego celu potrzebny nam będzie stock'owy obraz boot.img lub recovery.img . Gotowy obraz recovery.img dla smartfona Neffos Y5L znajduje się tutaj: neffos_y5l-tp-link-twrp.img 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 Y5L w stosunku do poprzednio opisywanych przez mnie modeli Neffos C5 i Neffos C5 MAX ale jest mniej więcej taki sam co w przypadku Neffos Y5. 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 Y5L, 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 TP801A). 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 Y5L, musimy pierw pozyskać odpowiednie narzędzia. Na linux'ie możemy skorzystać do 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 Y5L 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 flash telefonu, z którego wzięliśmy obraz recovery.img z TWRP ma inny nieco inny układ partycji. W oparciu o informacje uzyskane z aplikacji DiskInfo oraz z pliku /proc/partitions w telefonie, układ flash'a w przypadku Neffos Y5L prezentuje się następująco (kolumna najbardziej na prawo została dodana przeze mnie): # adb shell shell@Y5L:/ $ cat /proc/partitions major minor #blocks name 253 0 524288 zram0 179 0 7634944 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 5077999 mmcblk0p29 Data (/data/ , ext4) 179 32 512 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: # mmcblk0p1 (modem) /firmware vfat /dev/block/bootdevice/by-name/modem flags=display="Firmware";backup=1;mounttodecrypt # 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="Modemst1";backup=1 # mmcblk0p12 (modemst2) /efs2 emmc /dev/block/bootdevice/by-name/modemst2 flags=display="Modemst2";backup=1 # 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;mounttodecrypt # 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;wipeingui;wipeduringfactoryreset;encryptable=footer;length=-16384 # #/mmcblk0rpmb emmc /dev/block/bootdevice/mmcblk0rpmb flags=display="mmcblk0rpmb";backup=1 # External /sdcard1 auto /dev/block/mmcblk1p1 flags=display="MicroSD";storage;wipeingui;removable #/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 Y5L 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 Y5L 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 Y5L 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żdą 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 Backup 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 Y5L 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 Y5L. 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 Y5L 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 Install i wskazujemy paczkę .zip , którą umieściliśmy na karcie SD. Tam z kolei zaznaczamy ZIP signature verification i przeciągamy trzy strzałki na prawą stronę. Teraz możemy uruchomić ponownie Neffos'a Y5L i zainstalować jakąś aplikację, która pokaże nam czy nasz smartfon ma root'a. Sprawdzenie czy Neffos Y5L 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
  4. Kamery do monitoringu ostatnimi czasy stają się coraz bardziej popularne. Na dobrą sprawę możemy je spotkać praktycznie wszędzie, zwłaszcza w miejscach, w których dochodzi do kradzieży czy innych przestępstw, które cechują się podwyższonym odsetkiem niewykrywalności sprawców przez służby mundurowe. Oczywiście taki profesjonalny sprzęt, którym można zabezpieczyć duże obiekty, trochę kosztuje. Niemniej jednak, kamery przemysłowe nadają się głównie do zastosowań firmowych i przeciętnego Kowalskiego te rozwiązania zwykle nie interesują ze względu na ich wysoką cenę. Może niekoniecznie każdy z nas posiada dużą firmę ale są sytuacje, w których taka kamera bardzo by nam się przydała. Garaż czy piwnica często są obiektami zainteresowań podejrzanych typów i narażone na włamania. Dlatego też od czasu do czasu warto zajrzeć w te miejsca, by się upewnić czy aby na pewno wszystko jest w porządku. Zwykle jednak nikt nie ma na to czasu, a gdy już ktoś nam się włamie, to nie dość, że orientujemy się parę dni/tygodni po fakcie, to jeszcze nawet nie mamy pojęcia kto, jak i kiedy się tego czynu zabronionego dopuścił. Dlatego monitoring warto sobie zainstalować i niekoniecznie musimy przy tym wydawać dziesiątki tysięcy złotych. TP-LINK ma w swojej ofercie kilka niedrogich kamer IP, które można wykorzystać do zastosować domowych. W tym artykule rzucimy sobie okiem na obrotową kamerę NC450, która jest w stanie zapisywać obraz i dźwięk na kartę SD. Zawartość pudełka NC450 Zaczniemy standardowo, czyli na początek fotki pudełka i jego zawartości. Specyfikacja kamery NC450 Jak widać, opakowanie jest duże, bo mamy dość sporo elementów. Najważniejszym z nich jest oczywiście to urządzenie w kształcie nieco przerośniętego kurzego jaja. Dokładne wymiary naszej kamery to: 144x109x106 mm. A tak się ono prezentuje z bliska: Na bokach kamery mamy szereg otworów, choć dziurki są tylko z jednej strony (może zapomnieli dowiercić z drugiej): Za tymi otworami skrywany jest dość głośny głośniczek, przez który możemy nadawać komunikaty głosowe. Na spodzie frontowej części obudowy mamy zielono-czerwoną diodę oraz mikrofon, przy pomocy którego osoba monitorowana może się z nami porozumieć: W ten sposób ta kamera NC450 zapewnia nam komunikację w obie strony, co bardzo cieszy, choć głośność tego wbudowanego głośniczka mogłaby być regulowana, bo serio mam wrażenie jakbym gadał przez megafon. Z tyłu urządzenia mamy zaś gniazdo na zewnętrzną antenę (złącze RP-SMA). Niżej jest slot na kartę mikro SD (max 32G). Obok mamy port Ethernet (RJ-45), gniazdo zasilania oraz przycisk WPS/RESET, dzięki któremu zresetujemy ustawienia kamery do fabrycznych i nawiążemy szybko połączenie z siecią bezprzewodową. Kamera NC450 została wyposażona w progresywny przetwornik obrazu CMOS 1/4 cala i soczewki F:2,0 (jasność obiektywu), f: 3,6 mm (ogniskowa). Kąt widzenia na podglądzie obrazu to około 75°. Poniżej jeszcze fotka samego obiektywu, nad którą mamy czujnik poziomu światła: To urządzenie jest w stanie rejestrować obraz w rozdzielczości 1280x720p (1 mpix) przy maksymalnie 30 FPS. Pliki zapisywane są w formacie H.264. Zasięg widzenia kamery NC450 Może i kąt widzenia na podglądzie obrazu to około 75° ale w zasadzie można ten parametr zignorować. To, co niewątpliwie odróżnia kamerę NC450 od innych TP-LINK'owych kamer, to możliwość obrotu kamery w poziomie (300°) oraz pionie (110°), co zapewnia dość szerokie pole widzenia w granicach 360° i 150° (poziom/pion). Co ciekawe, kamerą można obracać również programowo czy to przez aplikację na smartfona (tpCamera), czy też przez panel administracyjny z poziomu przeglądarki. Zatem możemy uzyskać podgląd z dowolnego miejsca monitoringu, o ile jest ono w zasięgu kamery. WiFi 2,4 GHz do 300 mbit/s i zewnętrzna antena Kamera NC450 jest w stanie komunikować się bezprzewodowo w paśmie 2,4 GHz w standardzie N do 300 mbit/s. TP-LINK podaje, że liczba jednoczesnych klientów, którzy mogą uzyskać podgląd z kamery to 13. Do zestawu została dołączona także taka oto zewnętrzna antena w celu poprawy zasięgu WiFi. A tak wygląda NC450 z podpiętą antenką: Niestety na stronie TP-LINK nie ma informacji na temat zysku energetycznego tej anteny. Podejrzewam jednak, że jest to standardowe 3 dBi. Tak czy inaczej, umożliwienie podłączenia zewnętrznej anteny można zaliczyć jak najbardziej na plus. Może niekoniecznie ta antena dołączona do zestawu urywa pewną część ciała ale do tego złącza RP-SMA można podłączyć, np. antenę TL-ANT2408C , która w pewnych sytuacjach może znacząco poprawić odbiór sygnału z domowego routera WiFi: Power over Ethernet (PoE) Kamera NC450 jest także wyposażona w jeden port RJ-45 (100 mbit/s), który może zostać wykorzystany do przewodowej komunikacji z tym urządzeniem. Jednak to, na co warto zwrócić największą uwagę, to fakt, że TP-LINK dołączył do zestawu adapter PoE: Możemy zatem bez problemu tę kamerę zasilić przez przewód Ethernet. Niemniej jednak, w dalszym ciągu w jakiś sposób musimy zasilić sam adapter: Jeśli stosujemy takie rozwiązanie i chcemy podłączyć kamerę przewodowo zamiast po WiFi, to naturalnie możemy pociągnąć drugą skrętkę z portu LAN adaptera i podpiąć przewód do routera. Tryb nocny Kamera NC450 posiada także zestaw diod podczerwieni, a konkretnie jest ich 8, co zapewnia dość dobrą widoczność w całkowitych ciemnościach na dystansie około 6-8 metrów. Pobór prądu W pudełku z NC450 można także doszukać się zasilacza 12V/1A wraz z przedłużaczem. Sam zasilacz ma przewód o długości około 1,5 metra. Natomiast przedłużacz jest w stanie jeszcze dołożyć kolejne 3 metry. Nasza kamera jest zatem w stanie pociągnąć do 12 Wat energii na godzinę. A jak jest w istocie? W zasadzie ta kamera podłączona przewodowo z podpiętym jednym klientem pobiera około 2,5W. W przypadku transferu po WiFi do jednego klienta, jest to już około 3W. Jak się załączy tryb nocny, to jeszcze trzeba doliczyć kolejny 1W, co daje w sumie już 4W. No i jeśli chcemy obracać kamerą, to trzeba liczyć na to również około 1W. W zasadzie można przyjąć, że kamera w spoczynku pobiera około 3W na godzinę. Elementy montażowe Kamerę NC450 można postawić na biurku czy na półce i tyle ale w zestawie mamy również elementy montażowe, które pozwalają przymocować to urządzenie do ściany lub sufitu. Poniżej znajduje się regulowana podstawka, którą można przykręcić do spodu kamery: Ta podstawka jest solidna, choć wykonana z plastiku. Jak widać wyżej, uchwyt ma możliwość regulacji. Dobrze, że w tej kamerze nie ma już tego śmiesznego kulkowego regulatora, który się odkręcał przy zmianie położenia kamery. Tutaj, by zmienić położenie kamery trzeba pierw poluzować widoczną wyżej śrubkę. Po zmianie położenia zaś wszystko można mocno i pewnie skręcić, co zapewnia nas, że kamera sama z siebie przypadkiem się nie przemieści. A tak wygląda NC450 na mocowaniu: Praca kamery NC450 pod linux To co może zaskoczyć w przypadku kamery NC450 to fakt, że w zasadzie działa ona bez zarzutu pod linux. Wcześniej miałem do dyspozycji kamerę NC250 i w jej przypadku podgląd jak i większość funkcji, które były dostępne przez panel administracyjny z poziomu przeglądarki, zwyczajnie nie działała. Problemem był niestandardowy plugin, który trzeba było zainstalować, a tak się składało, że TP-LINK nie wypuścił stosownej wersji pod linux i w zasadzie tamta kamera niezbyt się nadawała pod ten alternatywny system operacyjny. W przypadku kamery NC450, do jej obsługi z poziomu przeglądarki nie potrzeba żadnych dodatkowych wtyczek, a panel administracyjny działa pod linux bez zarzutu. Zarządzanie kamerą przez panel administracyjny Jako, że kamera NC450 to kamera IP, to przyłączanie do sieci tego urządzenia odbywa się przez nadanie mu stosownej adresacji. Ta z kolei jest uzyskiwana automatycznie od naszego routera WiFi. Do panelu administracyjnego można przejść wpisując w przeglądarce adres IP, który został przypisany kamerze. Kamerą sterować można za pomocą tego pokrętła z prawej strony podglądu obrazu. Pod poglądem mamy kilka opcji, które możemy przełączać. Są to: zrobienie zdjęcia, odwrócenie podglądu w pionie i poziomie oraz tryb auto/dzienny/nocny. Niżej jeszcze możemy dostosować sobie jasność/kontrast obrazu i nasycenie barw. Nie ma jednak przycisku do nagrywania obrazu/dźwięku. Kamerę NC450 można podłączyć do serwisu tplinkcloud i odbierać obraz z każdego miejsca na ziemi, o ile mamy tam internet. Kamerę trzeba pierw w tym serwisie zarejestrować, co możemy naturalnie zrobić z panelu administracyjnego: Później można już tylko przejść na stronę tplinkcloud.com i sprawdzić czy kamera została dodana do systemu. Niestety pod linux nie da rady przez ten serwis uzyskać podglądu z kamery. Natomiast jeśli dysponujemy smartfonem, to bez problemu obraz damy radę podejrzeć przez aplikację tpCamera. Jeśli chodzi zaś jeszcze o ustawienia samej kamery, które można dostosować z poziomu panelu administracyjnego, to mamy tam opcje video, gdzie możemy min. zmienić ilości klatek na sekundę. Do wyboru mamy 10, 15, 20, 25 i 30: Naturalnie to urządzenie wspiera także detekcję dźwięku i ruchu: Kolejna ciekawa rzecz, którą oferuje kamera NC450, to nagrywanie obrazu na kartę SD. Sama karta musi być w formacie mikro SDHC (maksymalna pojemność takiej karty to 32G). Kamera automatycznie robi zrzut ekranu oraz rozpoczyna nagrywanie obrazu po wykryciu dźwięku lub ruchu, w zależności od ustawień określonych wyżej. Nie widziałem jednak w tym panelu opcji, by rozpocząć nagrywanie na żądanie. Być może tylko pod linux brakuje tej opcji. W tym webowym panelu administracyjnym brakuje także opcji przesyłania powiadomień drogą email. Jedyną formę powiadomień jaką możemy skonfigurować to FTP: Niemniej jednak, jeśli włączymy aplikację tpCamera, to tam już można ustawić notyfikacje czy to via email czy przez aplikację w smartfonie. Sterowanie kamera NC450 przy pomocy smartfona Praktycznie każdą TP-LINK'ową kamerą, w tym też i NC450 można sterować z poziomu smartfona, tylko trzeba doinstalować aplikację tpCamera. Nie będę tutaj opisywał jak zainstalować i skonfigurować aplikację tpCamera, bo na ten temat był już osobny wpis. Zatem jeśli ktoś jest ciekaw co potrafi ta aplikacja to zachęcam do zapoznania się z tym wyżej podlinkowanym wpisem. TL;DR W stosunku do poprzednich TP-LINK'owych kamer, które miałem okazję testować, NC450 jest nieco lepiej przystosowana do pracy pod systemami z rodziny linux. Wszystkie funkcje panelu administracyjnego działają z poziomu przeglądarki, choć brakuje opcji nagrywania obrazu/dźwięku. Sam panel zdaje się być nieco uboższy w stosunku do tego, który spotkałem w kamerze NC250. Niemniej jednak, wszystkie te brakujące rzeczy są do ogarnięcia na smartfonie przez aplikację tpCamera. Niewątpliwą zaletą kamery NC450 jest slot na kartę SD oraz możliwość zapisu fotek jak i materiału video bezpośrednio na tym nośniku. Cieszę się też, że wymieniono w tej kamerze uchwyt do mocowania na ścianie/suficie na bardziej solidny. Niezastąpiony z kolei jest obrót samej kamery w poziomie i w pionie, przez co mamy możliwość dostosowania pola widzenia w zależności od potrzeb. W sumie to jest małe prawdopodobieństwo, że ktoś nam ucieknie poza kadr. Tryb nocny również jest bardzo przyzwoity, choć zasięg oświetlenia diodami podczerwieni mógłby być nieco większy. Te 6-8 metrów w zasadzie limituje zastosowanie tej kamery do nie za dużych pomieszczeń, choć trzeba pamiętać, że NC450 jest do zastosowania tylko i wyłącznie wewnątrz budynku. Wbudowany głośnik i mikrofon są tymi elementami, których mi najbardziej brakowało w modelu NC250. Dzięki takiemu rozwiązaniu możemy bez przeszkód komunikować się przez kamerę w obie strony, co eliminuje potrzebę zewnętrznej drogi komunikacji. Możliwość zdalnego monitoringu za pośrednictwem serwisu tplinkcloud również może być w pewnych sytuacjach wielce nieoceniona. Wystarczy kilka klików myszką i jesteśmy w stanie odbierać obraz z monitorowanego obiektu praktycznie z każdego miejsca na ziemi. Choć tutaj w grę wchodzi polityka prywatności, która nie zawsze pozwoli nam przesłać obraz i dźwięk przez zewnętrzny serwis TP-LINK. W zasadzie WiFi w standardzie N do 300 mbit/s wystarcza dla takich kamer jak ta NC450. Niemniej jednak, przydałoby się zaimplementować już w tych urządzeniach radia 5 GHz i brak tego WiFi to w zasadzie jedyny minus jaki mam pod adresem tego urządzenia.
  5. Jakiś czas temu opisywałem kartę sieciową na USB UE200 od TP-LINK. Taki adapter jest bardzo przydatny w momencie, gdy nie posiadamy z jakiegoś powodu standardowej karty sieciowej, tak by za jej sprawą przewodowo połączyć komputer do domowej sieci. Jeden z moich komputerów cierpi właśnie na tego typu przypadłość z powodu jakiegoś bliżej nieznanego mi uszkodzenia jego wbudowanej karty sieciowej. Generalnie rzecz biorąc w ofercie TP-LINK poza tym wspomnianym UE200 jest także dostępny adapter UE300, który różni się głównie tym, że ma gigabitowy port Ethernet oraz karta jest na USB 3.0. Jako, że jestem w posiadaniu adaptera UE300, to postanowiłem sprawdzić jak (i czy w ogóle) jest rozpoznawany przez system z rodziny linux, a konkretnie na dystrybucji Debian, której używam na co dzień. Zawartość opakowania UE300 Na początek jak zawsze fotki omawianego urządzenia. W przypadku adaptera UE300 nie ma ich zbyt wiele, bo sam adapter jest w miarę prosty i niezbyt skomplikowany. Specyfikacja adaptera UE300 Adapter UE300 jakby nie patrzeć to w końcu zwykły kawałek sieciowego czipu w plastikowej obudowie z wyprowadzonym interfejsem USB 3.0 z jednej strony i gigabitowym portem Ethernet (RJ-45) z drugiej. Jeśli ktoś jest ciekaw wymiarów tego adaptera, to oto i one: 71x26x16 mm (dł/sz/wy). Na górnej części obudowy, znajduje się także biała dioda sygnalizująca stan połączenia/zasilania urządzenia: Czip RTL8153 Zgodnie z informacją podaną na stronie TP-LINK, adapter UE300 został wyposażony w czip RTL8153. Według producenta, ta karta powinna pracować bez większego problemu pod linux'em. Sprawdźmy zatem czy faktycznie te informacje zostaną potwierdzone. Po podłączeniu karty do portu USB, w logu systemowym są wypisywane poniższe komunikaty: kernel: usb: new SuperSpeed USB device number 2 using xhci-hcd kernel: usb 2-1.3: New USB device found, idVendor=2357, idProduct=0601 kernel: usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=6 kernel: usb 2-1.3: Product: USB 10/100/1000 LAN kernel: usb 2-1.3: Manufacturer: TP-LINK kernel: usb 2-1.3: SerialNumber: 000001000000 kernel: cdc_ether 2-1.3:2.0 eth0: register 'cdc_ether' at usb-0000:00:1d.0-1.3, CDC Ethernet Device, ec:08:6b:1c:87:0c kernel: usbcore: registered new interface driver cdc_ether Jak widzimy wyżej, karta została rozpoznawana w systemie jako idVendor=2357 oraz idProduct=0601 i obsługiwana jest przez moduł kernela cdc_ether . W systemie naturalnie pojawił się nowy interfejs sieciowy eth0 i w zasadzie, by korzystać z tego adaptera trzeba jedynie ten interfejs skonfigurować tak, by została mu przydzielona adresacja IP, a z tym zadaniem nie powinno być już większego problemu. Poniżej jest także załączone wyjście polecenia lsusb : # lsusb -vvv -d 2357:0601 Bus 004 Device 002: ID 2357:0601 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 3.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 9 idVendor 0x2357 idProduct 0x0601 bcdDevice 30.00 iManufacturer 1 TP-LINK iProduct 2 USB 10/100/1000 LAN iSerial 6 000001000000 bNumConfigurations 2 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 57 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 64mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 3 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 3 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 8 bMaxBurst 0 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 98 bNumInterfaces 2 bConfigurationValue 2 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 64mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 6 Ethernet Networking bInterfaceProtocol 0 iInterface 5 CDC Communications Control CDC Header: bcdCDC 1.10 CDC Union: bMasterInterface 0 bSlaveInterface 1 CDC Ethernet: iMacAddress 3 EC086B1C870C bmEthernetStatistics 0x00000000 wMaxSegmentSize 1514 wNumberMCFilters 0x0000 bNumberPowerFilters 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 8 bMaxBurst 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 4 Ethernet Data Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 3 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 3 Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 22 bNumDeviceCaps 2 USB 2.0 Extension Device Capability: bLength 7 bDescriptorType 16 bDevCapabilityType 2 bmAttributes 0x00000002 Link Power Management (LPM) Supported SuperSpeed USB Device Capability: bLength 10 bDescriptorType 16 bDevCapabilityType 3 bmAttributes 0x02 Latency Tolerance Messages (LTM) Supported wSpeedsSupported 0x000e Device can operate at Full Speed (12Mbps) Device can operate at High Speed (480Mbps) Device can operate at SuperSpeed (5Gbps) bFunctionalitySupport 2 Lowest fully-functional device speed is High Speed (480Mbps) bU1DevExitLat 10 micro seconds bU2DevExitLat 2047 micro seconds Device Status: 0x0000 (Bus Powered) Praca adaptera UE300 pod linux Może i adapter UE300 został rozpoznany bez większego problemu na Debianie ale sterownik tej karty (ten sam co przy UE200) nie daje nam zbytnio dostępu do zaawansowanych opcji konfiguracyjnych: # ethtool eth0 Settings for eth0: Current message level: 0x00000007 (7) drv probe link Link detected: no # ethtool -s eth0 autoneg off Cannot get current device settings: Operation not supported not setting autoneg # ethtool -i eth0 driver: cdc_ether version: 22-Aug-2005 firmware-version: CDC Ethernet Device expansion-rom-version: bus-info: usb-0000:00:1d.0-1.3 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no Niestety nie byłem w stanie przetestować faktycznej przepustowości tego adaptera, bo mój laptop nie ma portów USB 3. A na tych co ma, to maksymalny transfer jaki udało mi się uzyskać był w granicach 250 mbit/s, czyli około 30 MiB/s i to jest graniczna wartość transferu dla portów USB 2, mimo, że standard USB 2.0 mówi coś o 480 mbit/s. Niemniej jednak, jeśli dysponujemy faktycznym portem USB 3 w komputerze, to nie powinno być problemów z osiągnięciem tego 1 gbit/s.
  6. 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:
  7. 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.
  8. Zainspirowany wątkiem na forum JDtech na temat testów transferów w konkretnych pasmach/częstotliwościach LTE, postanowiłem sprawdzić jak ta sprawa wygląda w mojej okolicy. Generalnie ja obecnie u siebie mam modem Huawei E3372s-153 w wersji NON-HiLink podpięty do routera TP-LINK Archer C2600. Oczywiście na tym routerze jest wgrany alternatywny firmware LEDE/OpenWRT, bo inaczej nie miałbym możliwości skorzystać z tego modemu. Standardowa konfiguracja LTE w LEDE/OpenWRT daje nam jedynie możliwość wyboru między ustawieniami auto , gsm , umts , lte , preferumts oraz preferlte . W przypadku internetu LTE, zwykle wybieramy tutaj tryb auto , ewentualnie też lte , by wymusić konkretny tryb pracy modemu, co może mieć kolosalne znaczenie przy darmowym internecie od RBM/Play. Niemniej jednak, nawet w przypadku wyboru lte , częstotliwość na jakiej będzie pracował modem w dalszym ciągu jest dobierana automatycznie w oparciu o parametry sygnału docierającego z dostępnych w okolicy BTS'ów. W przypadku modemu E3372 można jednak wymusić, by połączenie LTE było realizowane na konkretnej częstotliwości, np. 2100/1800/2600/900/800 MHz i by taki stan rzeczy osiągnąć, trzeba nieco przerobić konfigurację tego alternatywnego oprogramowania znajdującego się w naszym routerze WiFi. Dostosowanie konfiguracji LEDE/OpenWRT na potrzeby LTE Przede wszystkim, by móc operować na modemie LTE z poziomu routera WiFi z wgranym firmware LEDE/OpenWRT, musimy pierw zainstalować stosowne oprogramowanie. Nie będę tutaj opisywał tego zagadnienia, bo to zostało zrobione już w osobnym wątku. Zakładam też, że nasz modem LTE działa bez większego problemu na routerze i nie mamy problemów ze zmuszeniem go do pracy. Nas tutaj bardziej interesować będzie konfiguracja modemu, a konkretnie plik /etc/gcom/ncm.json . To w tym pliku jest zawarta instrukcja, tj. poszczególne polecenia, które są przesyłane do modemu w celu jego konfiguracji. Jako, że my tutaj dysponujemy modemem LTE od Huawei, to interesuje nas sekcja "huawei": { } . Tam z kolei mamy podsekcję "modes": { } i tutaj właśnie są zlokalizowane konfiguracje trybów pracy modemu. Standardowo mamy tutaj te poniższe wpisy: "modes": { "preferlte": "AT^SYSCFGEX=\\\"030201\\\",3fffffff,2,4,7fffffffffffffff,,", "preferumts": "AT^SYSCFGEX=\\\"0201\\\",3fffffff,2,4,7fffffffffffffff,,", "lte": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,7fffffffffffffff,,", "umts": "AT^SYSCFGEX=\\\"02\\\",3fffffff,2,4,7fffffffffffffff,,", "gsm": "AT^SYSCFGEX=\\\"01\\\",3fffffff,2,4,7fffffffffffffff,,", "auto": "AT^SYSCFGEX=\\\"00\\\",3fffffff,2,4,7fffffffffffffff,," }, Mając dostępne tylko te powyższe tryby, nie da rady wymusić konkretnego pasma LTE, bo każdy z tych trybów ma 7fffffffffffffff , co odpowiada za obsługę wszystkich pasm. Możemy jednak zmienić tę wartość na taką, którą odpowiada za konkretną częstotliwość. Najprościej jest po prostu dodać kilka dodatkowych wpisów i odpowiednio przerobić 7fffffffffffffff , poniżej przykład: "lte-fdd-2100": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,1,1,,", "lte-fdd-1800": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,4,,", "lte-fdd-2600": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,40,,", "lte-fdd-900": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,80,,", "lte-fdd-800": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,80000,," Pierwsza wartość liczbowa w komendzie AT, czyli 03 , wymusza LTE, zatem modem ma pracować tylko w tym trybie. Ostatnia wartość liczbowa, tj. 1 , 4 , 40 , 80 oraz 80000 , odpowiada kolejno pasmom B1 (2100 MHz), B3 (1800 MHz), B7 (2600 MHz), B8 (900 MHz) i B20 (800 MHz) w technologi FDD. Każdy taki wpis, za wyjątkiem ostatniego, ma być zakończony przecinkiem ( , ). Jakie pasma/częstotliwości LTE są dostępne w mojej okolicy Dostosowanie konfiguracji dla modemu LTE to jedna rzecz ale trzeba także zrobić lekkie rozeznanie na temat tego jakie częstotliwości LTE są dostępne w okolicy naszego miejsca zamieszkania/przebywania. Tutaj nie ma prostej metody, by takie informacje zdobyć. Niby można posłużyć się serwisami w stylu BTSEARCH ale zawarte w nich dane dotyczące konkretnych stacji bazowych czasami są błędne lub też w ogóle ich tam nie znajdziemy. Możemy jednak przełączyć modem w każdy ze zdefiniowanych wyżej trybów i sprawdzić czy uda się uzyskać połączenie w pasmach obsługiwanych przez modem. Edytujemy zatem plik /etc/config/network na routerze. Interesuje nas sekcja konfigurująca interfejs sieciowy przypisany modemowi LTE: config interface 'lte' ... option mode 'lte-fdd-2600' ... Teraz już wystarczy tylko dostosować opcję mode wpisując nazwy zdefiniowane w pliku /etc/gcom/ncm.json oraz przeprowadzić szereg pomiarów prędkości łącza internetowego, np. w serwisie speedtest. Ja dla wygody testy robiłem z poziomu aplikacji na smartfona. Uzyskałem wyniki dla 2100 MHz, 1800 MHz, 2600 MHz i 800 MHz. Niestety na 900 MHz modem nie był w stanie zrealizować połączenia. Widać zatem, że największą prędkość udało się uzyskać w paśmie 2600 MHz i w zasadzie można tę częstotliwość wymusić. Niemniej jednak, jeśli zmieniamy dość często miejsce pobytu, to lepiej jest pozostać przy automatycznym doborze częstotliwości, bo nie zawsze będziemy w zasięgu, np. tego pasma 2600 MHz.
  9. W artykułach dotyczących przeprowadzania procesu root na smartfonach Neffos Y5 oraz Y5L był pokazany sposób na dokonanie backup'u całego flash'a tych urządzeń. Jeśli Android w naszym telefonie jest ukorzeniony albo chociaż mamy wgrany obraz TWRP na partycję /recovery/ , to jesteśmy w stanie przeprowadzać regularny backup wszystkich danych użytkownika z poziomu trybu recovery. Proces takiego backup'u będzie się nieco różnił w stosunku do tego opisywanego w wyżej podlinkowanych artykułach. W tym przypadku nie będziemy robić kopii binarnej, a jedynie zgramy sobie wszystkie pliki znajdujące się na partycji /data/ . W tym artykule zostanie pokazany sposób na przeprowadzanie procesu kopii zapasowej w smartfonie Neffos Y5. Niemniej jednak, taki regularny backup można przeprowadzać praktycznie w każdym smartfonie posiadającym recovery z TWRP. Kopia binarna czy kopia plików Dysponując obrazem z recovery TWRP w zasadzie jesteśmy w stanie przeprowadzić dwa rodzaje kopii zapasowych: kopia binarna i kopia zwykłych plików. Nas średnio interesuje kopia binarna, a to ze względu na fakt zgrywania z partycji /data/ każdego pojedynczego bita danych. Partycja /data/ jest największą partycją w naszych telefonach i zwykle ma ona rozmiar 10-12 GiB (przy rozmiarze flash'a 16 GiB). W tych bardziej wypasionych smartfonach, ta partycja może mieć sporo większy rozmiar. Jeśli teraz byśmy stworzyli kopię binarną takiej partycji, to system zrzuci nam wszystkie dane na niej zawarte wliczając w to wolne miejsce. W efekcie możemy mieć na tej partycji zajętych 2 GiB, a i tak zostanie utworzony plik o rozmiarze tych 12 GiB. Marnujemy zatem sporo miejsca, bo przecież taki backup trzeba gdzieś przechowywać. W przypadku kopii zapasowej plików, system zgrywa poszczególne pliki z partycji /data/ i robi z nich skompresowane archiwum, coś jak paczka .zip . W porównaniu do kopii binarnej, takie spakowane archiwum plików zajmuje parokrotnie mniej miejsca, no i oczywiście sam proces backup'u (i późniejszego kopiowania danych z telefonu na komputer) trwać będzie o wiele krócej. Odblokowany bootloader Technicznie rzecz biorąc, tryby recovery w smartfonach z Androidem mają różne opcje. Niektóre z nich oferują możliwość zrobienia backup'u partycji /data/ , a inne takiej funkcji nie posiadają. Jeśli stock'owy obraz partycji /recovery/ nie daje nam możliwości przeprowadzenia procesu kopii zapasowej, to nie pozostaje nam nic innego jak sięgnięcie po obraz recovery z TWRP. Problem z tym obrazem jest jednak taki, że musimy go albo wgrać na partycję /recovery/ , albo tez odpalić go w pamięci telefonu, tak by nie wprowadzać żadnych zmian na flash'u urządzenia. Rzecz w tym, by móc tego typu zabieg przeprowadzić, trzeba odblokować bootloader, a to, jak zapewne wiemy, inicjuje proces Factory Reset i czyści wszystkie dane użytkownika zgromadzone na partycji /data/ . Mając na uwadze ten fakt, kopia zapasowa plików użytkownika przez tryb recovery z TWRP dotyczy tylko i wyłącznie telefonów z odblokowanym bootloader'em. Zakładam w tym miejscu, że mamy już odblokowany bootloader w naszym smartfonie. Kopia zapasowa z poziomu aplikacji Inny problem, jaki może mieć dla nas znaczenie przy kopii zapasowej przez tryb recovery, to potrzeba chwilowego wyłączenia telefonu. Ten sposób nie jest zatem optymalny dla użytkowników, którzy muszą być ciągle online i nie mogą na te kilkanaście minut rozłączyć się ze światem. Jest za to kilka programików, które umożliwiają zrobienie tego typu backup'u z poziomu działającego telefonu. Ja jednak nigdy nie testowałem tego oprogramowania i za bardzo nie mogę nic na jego temat powiedzieć. Zwykle też oferowane za sprawą takich programików rozwiązania są płatne. Z kolei zaś obrazy TWRP, które możemy wgrać na swój telefon, mamy za free. Uruchamianie smartfona w trybie recovery Zwykle jak korzystamy z telefonu przez dłuższy czas, to jest wielce prawdopodobne, że sporo rzeczy zmieniliśmy w konfiguracji takiego urządzenia. Mamy zapewne też wgranych szereg niestandardowych aplikacji, których ustawienia również zostały przez nas dostosowane do naszych potrzeb. O ile pliki graficzne, dźwiękowe czy też video można sobie bez problemu zgrać na komputer, o tyle właśnie tych ustawień telefonu za bardzo nie mamy jak sobie skopiować. Wejdźmy zatem w tryb recovery naszego telefonu. W przypadku, gdy obraz TWRP jest wgrany na flash smartfona, to wyłączamy urządzenie i przyciskamy jednocześnie przyciski VolumeUp + Power. Jeśli zaś chcemy uruchomić TWRP w pamięci RAM telefonu, to musimy uruchomić to urządzenie w trybie bootloader'a i zaaplikować obraz z partycją /recovery/ za pomocą narzędzia fastboot . Instalacja i konfiguracja fastboot pod linux jest opisana w osobnym wątku. Niezależnie od wybranego sposobu, naszym oczom powinno ukazać się menu TWRP podobne do tego poniżej (w opcjach można wybrać język polski): Jak widać na obrazku, mamy dwie pozycje: Kopia i Przywróć. Jeśli zamierzamy dokonać backup'u, to naturalnie przechodzimy do pozycji Kopia. Jeśli zaś zamierzamy uprzednio utworzoną kopię zapasową odtworzyć, to przechodzimy do Przywróć . Tworzenie kopii zapasowej partycji /data/ przez TWRP Po przejściu do pozycji Kopia zostaną nam zaprezentowane opcje wyboru poszczególnych partycji, których kopie zamierzamy przeprowadzić. To jakie partycje znajdziemy w tym okienku zależy głównie od pliku fstab , który znalazł się w obrazie TWRP. Niektóre są bardziej rozbudowane, a inne ograniczają się jedynie do podstawowych wpisów. W każdym razie, partycja /data/ powinna być widoczna na liście: W tym przypadku na liście mamy dwie pozycje z nazwą Data . Ta zaznaczona pozycja odpowiada za zrobienie backup'u samych plików na partycji /data/ . Ta druga opcja umożliwia naturalnie zrobienie kopii binarnej ale nie będziemy z niej korzystać. Niemniej jednak, warto zauważyć różnice w ilości kopiowanych danych. Same pliki w tym przypadku mają nieco ponad 100 MiB, podczas gdy cała partycja ma ponad 12 GiB. Różnica jest ogromna. Po zaznaczeniu odpowiedniej pozycji upewniamy się jeszcze, że wybraliśmy stosowną pamięć do zapisu pliku kopii zapasowej, tj. Kartę SD. Jako, że tutaj nie ma dużo danych do zapisu, to można wykorzystać nawet małe karty SD, które mają rozmiar 1-2 GiB. Obraz partycji na taką małą kartę SD by nam się nie zmieścił, a same dane wejdą bez większego problemu. Warto tutaj jeszcze dodać, że w przypadku, gdy rozmiar danych na partycji /data/ jest duży, to plik backup'u zostanie podzielony automatycznie na mniejsze kawałki (~1,5 GiB). Nie ma zatem obawy o zapis takich plików na kartę SD sformatowaną system plików z rodziny FAT. Obraz całej partycji /data/ , jako, że przekracza on limit 4 GIB, trzeba by umieścić na karcie SD sformatowanej innym systemem plików, np. linux'owym EXT4. By zrobić backup, przesuwamy strzałki na prawą stronę: Po zakończeniu całego procesu, na karcie SD zostaną utworzone następujące pliki: data.ext4.win (archiwum TAR), data.ext4.win.md5 (zawiera sumę kontrolną archiwum), recovery.log (zawiera log z backup'u) oraz data.info (zawiera info na temat rozmiaru, typu i liczby plików archiwum). Lepiej nie kasować żadnego z tych plików, bo inaczej TWRP będzie miało prawdopodobnie problemy z odtworzeniem backup'u. Odtwarzanie kopii zapasowej partycji /data/ przez TWRP Kopię zapasową partycji /data/ można również odtworzyć. Nie zaleca się jednak wgrywania takiego backup'u w momencie, gdy był on sporządzany na innej wersji Androida. Dla przykładu załóżmy, że stworzyliśmy sobie kopię na Androidzie 5.1 Lollipop, zaktualizowaliśmy system do nowszej wersji i chcemy tę kopię odtworzyć na Androidzie 6.0 Marshmallow. Ja generalnie nie robiłbym tego, a to z tego względu, że różnice między tymi systemami są znaczne. Tak odtworzona kopia mogłaby uszkodzić system, w sensie takim, że nie uruchomiłby nam się on ponownie i trzeba by przeprowadzić proces Factory Reset. Odtworzenie kopii zapasowej w każdym innym przypadku, tj. na tym samym urządzeniu po uprzednim przywróceniu jego ustawień do fabrycznych, czy też na innych smartfonach mających tę samą wersję Androida, nie powinno raczej nam zaszkodzić. Choć w przypadku wgrywania backup'u na inne telefony również bym uważał. Zakładając jednak, że coś namieszaliśmy w systemie naszego smartfona i wiemy, że nie obędzie się bez przywracania go do ustawień fabrycznych, możemy naturalnie po zainicjowaniu Factory Reset wgrać uprzednio zrobiony backup również przez tryb recovery. Będąc w trybie recovery, w głównym menu TWRP wybieramy pozycję Przywróć . Tam z kolei mamy listę plików kopii zapasowych, które możemy przywrócić. Po kliknięciu na interesującą nas pozycję zostanie nam zwrócona informacja na temat danych, które w takim pliku się znajdują, tj. partycji, które zostały w tej kopii zawarte. W tym przypadku mamy dane z partycji /data/ : Na dole mamy również opcję Włącz weryfikację MD5 kopii zapasowych . Tę opcję można naturalnie zaznaczyć ale trzeba mieć na uwadze, że proces odtwarzania backup'u będzie trwał dłużej, zwłaszcza w przypadku, gdy danych w kopii jest dość sporo. Po zaznaczeniu stosownych opcji, przeciągamy strzałki na prawą stronę: Jak widać z komunikatów na fotce, nie ma potrzeby przeprowadzania wcześniej procesu Factory Reset, bo partycja przed wgraniem na nią backup'u jest automatycznie czyszczona. Problem z odblokowaniem ekranu po odtworzeniu backup'u Wiele osób ma zabezpieczony dostęp do telefon za pomocą kodu PIN. W takich przypadkach, by móc używać tego urządzenia w innych celach niż połączenia alarmowe trzeba podać cztery cyferki. Jeśli tego nie zrobimy, nie damy rady zdjąć blokady ekranu i nie dostaniemy się do systemu. Jeśli kopia partycji /data/ była przeprowadzana na telefonie, który miał włączoną blokadę ekranu, to w pewnych sytuacjach po odpaleniu systemu nie damy rady ściągnąć tej blokady nawet podając poprawny PIN: Problem naturalnie można poprawić ale trzeba odpalić telefon ponownie w trybie recovery. Tam z menu TWRP przechodzimy do Zaawansowane => Menadżer Plików: W menadżerze plików przechodzimy do katalogu /data/system/ , z którego to musimy skasować kilka plików. Kasujemy wszystko to co ma w nazwie .key oraz locksettings. : W tym przypadku skasowanych zostało 5 plików: gatekeeper.password.key , gatekeeper.pattern.key , locksettings.db , locksettings.db-shm oraz locksettings.db-wal . Po ich usunięciu restartujemy telefon i już powinniśmy być w stanie zalogować się w systemie. Jedyna różnica jest taka, że teraz nie byliśmy pytani o PIN, bo usunęliśmy wcześniej zarówno klucze jak ustawienia blokady. W przypadku, gdy blokada ekranu jest dla nas dość ważna, to naturalnie możemy ją ustawić sobie ponownie w tradycyjny sposób. Jak tylko blokada zostanie włączona, to system wygeneruje nowe klucze i nimi zabezpieczy nasz telefon. Pamiętajmy jednak, że mając TWRP na partycji /recovery/ , czy w ogóle odblokowany bootloader, to te klucze/ustawienia możemy usuwać bez problemu i w ten sposób obchodzić mechanizm blokady ekranu w telefonach z Androidem. Warto mieć zatem świadomość, że blokada ekranu w takich urządzeniach nie chroni nas zupełnie przed niczym. Oczywiście można nieco minimalizować zagrożenie przez wgrywanie TWRP tylko do pamięci telefonu, a na partycji /recovery/ trzymać stock'owy soft, choć i tak lepiej jest nie zostawić telefonu bez nadzoru na dłuższy czas.
  10. Przeprowadzenie procesu root na smartfonie Neffos Y5L 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 Y5L, 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 Y5L. 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 Y5L 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 Y5L w dalszym ciągu posiada root: Niemniej jednak, jeśli w Neffos Y5L 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 Y5L 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 Y5L/full_flash.emmc.win' # dd if=/dev/loop0p21 of=./neffos_y5l_orig_system.img # dd if=/dev/loop0p24 of=./neffos_y5l_orig_recovery.img # dd if=/dev/loop0p20 of=./neffos_y5l_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 8a8f289 fastboot Wgrywamy teraz wydobyty wcześniej obraz neffos_y5l_orig_system.img na smartfon przy pomocy poniższego polecenia: # fastboot flash system neffos_y5l_orig_system.img target reported max download size of 262144000 bytes Invalid sparse file format at header magi erasing 'system'... OKAY [ 1.532s] sending sparse 'system' (241786 KB)... OKAY [ 10.892s] writing 'system'... OKAY [ 24.863s] sending sparse 'system' (232980 KB)... OKAY [ 10.580s] writing 'system'... OKAY [ 27.701s] ... sending sparse 'system' (185348 KB)... OKAY [ 8.556s] writing 'system'... OKAY [ 22.117s] finished. total time: 308.857s 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: 5199867904 Block size: 4096 Blocks per group: 32768 Inodes per group: 8144 Inode size: 256 Journal blocks: 19835 Label: Blocks: 1269499 Block groups: 39 Reserved block group size: 311 Created filesystem with 11/317616 inodes and 42271/1269499 blocks target reported max download size of 262144000 bytes erasing 'userdata'... OKAY [ 3.013s] sending 'userdata' (83009 KB)... OKAY [ 3.543s] writing 'userdata'... OKAY [ 6.071s] finished. total time: 12.627s 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.278s] writing 'cache'... OKAY [ 0.936s] finished. total time: 1.405s 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_y5l_orig_recovery.img # fastboot flash boot neffos_y5l_orig_boot.img Ponowny restart Neffos'a Y5L Po wgraniu świeżego obrazu na partycję /system/ , /recovery/ i /boot/ oraz wyczyszczeniu partycji /data/ i /cache/ , możemy zresetować naszego Neffos'a Y5L i sprawdzić czy się uruchomi on ponownie. Wpisujemy zatem w terminal poniższe polecenie: # fastboot reboot Neffos Y5L 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 Y5L 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 Y5L 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:
  11. Smartfony mają to do siebie, że ogromna większość z nich pracuje pod kontrolą systemu linux, a konkretnie jest to jakiś Android. Tak też jest w przypadku Neffos'a C5 od TP-LINK, gdzie mamy zainstalowaną wersję 5.1 (Lollipop). My linux'iarze chcemy mieć pełny dostęp do systemu operacyjnego, by bez większych przeszkód móc zarządzać urządzeniem, które pod jego kontrolą pracuje. Problem w tym, że ten Neffos C5 nie ma w standardzie root'a i nie mamy administracyjnego dostępu do całego systemu plików telefonu. Jest kilka metod root'owania smartfona, np. za pomocą Kingoroot/Kingroot ale nie działają one w przypadku tego telefonu (i całe szczęście). W tym artykule zostanie pokazany sposób na root systemu Neffos'a C5 przy zachowaniu wszelkich norm bezpieczeństwa, które w sytuacjach podbramkowych pomogą nam odzyskać kontrolę nad telefonem. Narzędzia ADB i fastboot Przede wszystkim, by zabrać się za proces root'owania smartfona Neffos C5, 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. Narzędzie SP Flash Tool Kolejnym narzędziem, które będzie nam niezbędne jest SP Flash Tool. Niestety nie jest ono włączone do dystrybucji Debian i musimy posiłkować się paczką, którą można znaleźć w podanym wyżej linku. Tutaj ważna uwaga. SP FLash Tool jest przeznaczony tylko dla smartfonów mających SoC od Mediatek. Pobieramy paczkę .zip dla linux'a i wypakowujemy ją. Jako, że SP Flash Tool wykorzystuje do komunikacji interfejs /dev/ttyACM0 , to do poprawnej pracy wymaga on operowania na tym interfejsie. Standardowo tylko administrator systemu oraz członkowie grupy dialout są w stanie korzystać z tego interfejsu. Musimy zatem dodać naszego użytkownika do tej grupy w poniższy sposób: # gpasswd -a morfik dialout Kompletny backup flash'a Neffos C5 Mając zainstalowane te powyższe narzędzia, możemy przejść do zrobienia backup'u całego flash'a, który jest w naszym smartfonie. Proces backup'u najprościej przeprowadzić za pomocą SP Flash Tool. Niemniej jednak, potrzebne nam są pewne informacje, które możemy uzyskać przy pomocy adb . Podpinamy zatem telefon do portu USB komputera i w terminalu wpisujemy poniższe polecenie: # adb shell cat /proc/partinfo Name Start Size pgpt 0x0000000000000000 0x0000000000080000 proinfo 0x0000000000080000 0x0000000000300000 nvram 0x0000000000380000 0x0000000000500000 protect1 0x0000000000880000 0x0000000000a00000 protect2 0x0000000001280000 0x0000000000a00000 lk 0x0000000001c80000 0x0000000000080000 para 0x0000000001d00000 0x0000000000080000 boot 0x0000000001d80000 0x0000000001000000 recovery 0x0000000002d80000 0x0000000001000000 logo 0x0000000003d80000 0x0000000000800000 expdb 0x0000000004580000 0x0000000000a00000 seccfg 0x0000000004f80000 0x0000000000080000 oemkeystore 0x0000000005000000 0x0000000000200000 secro 0x0000000005200000 0x0000000000600000 keystore 0x0000000005800000 0x0000000000800000 tee1 0x0000000006000000 0x0000000000500000 tee2 0x0000000006500000 0x0000000000500000 frp 0x0000000006a00000 0x0000000000100000 nvdata 0x0000000006b00000 0x0000000002000000 metadata 0x0000000008b00000 0x0000000002500000 system 0x000000000b000000 0x0000000100000000 cache 0x000000010b000000 0x0000000019000000 userdata 0x0000000124000000 0x000000027ed80000 flashinfo 0x00000003a2d80000 0x0000000001000000 sgpt 0x00000003a3d80000 0x0000000000080000 Ten zwrócony wyżej wynik jest dla smartfona Neffos C5. W przypadku innych telefonów, ta tabelka może mieć inną postać i nie możemy kopiować z niej wartości jeśli mamy inne urządzenie. Generalnie rzecz biorąc, to te dane potrzebne nam są do zbudowania pliku scatter.txt , w oparciu o który działa SP Flash Tool. Ten plik to zwyczajna mapa przestrzeni flash'a telefonu, który podzielony jest na szereg widocznych wyżej partycji. Plik scatter.txt dla Neffos C5 Tutaj znajduje się plik scatter.txt, który ja wykorzystałem do pracy z Neffos C5 (mt6735-neffos-c5-tp-link-scatter.txt). Kluczowa sprawa, to opisanie każdej partycji. W sumie to musimy odpowiednio dostosować pole partition_index , które jest zwyczajnie kolejnym numerkiem. Z kolei w partition_name podajemy nazwę partycji, którą uzyskaliśmy przez adb . Dalej w linear_start_addr oraz physical_start_addr wpisujemy tę wartość, która została wypisana przez adb w kolumnie Start . Na podobnej zasadzie uzupełniamy partition_size , podając wartość, którą widzieliśmy w adb w kolumnie Size . I to w zasadzie wszystkie zmiany, które musimy wprowadzić do pliku scatter.txt . Póki co nie mam informacji co do pozostałych opcji w tym pliku, wiem tylko, że część z nich jest uzupełniana przez SP Flash Tool podczas przeprowadzania działań w tym programie. Tworzenie backupu Mając plik scatter.txt możemy go wskazać w SP Flash Tool. Przechodzimy zatem do katalogu z wypakowaną zawartością pobranej paczki i uruchamiamy SP Flash Tool wpisując w terminalu ./flash_tool . Powinniśmy zobaczyć okienko, z kilkoma zakładkami. Na jednej z nich widnie napis Download . W niej z kolei znajduje się pozycja Scatter-loading file . To tutaj musimy wskazać ścieżkę do pliku scatter.txt , który utworzyliśmy wcześniej: Teraz przechodzimy na zakładkę Readback i tam dodajemy nową pozycję w tabelce. To tutaj określamy przestrzeń flash'a w telefonie, która zostanie skopiowana na dysk komputera. Nas interesuje cały flash. Dlatego też początek ustawiamy na 0x0 , a koniec musimy obliczyć z danych dostarczanych przez adb . Interesuje nas ostatnia partycja. Ma ona początek na 0x3a3d80000 , a jej rozmiar to 0x80000 . Te dwie wartości musimy do siebie dodać, w wyniku czego otrzymujemy 0x3a3e00000 i to tę wartość wpisujemy w SP Flash Tool. Region określamy jako EMC_USER : Dodajemy również drugą pozycję, która zrobi nam backup preloader'a. Z tym, że tutaj wybieramy region EMMC_BOOT_1 i określamy początek jako 0x0 , a koniec jako 0x40000 : Teraz wyłączamy telefon i podłączamy go do portu USB komputera. Następnie w SP Flash Tool aktywujemy proces backup'u Neffos'a C5 przyciskając Read Back . Włączamy teraz telefon przyciskając i trzymając przycisk Volume Up + Power do momentu aż nam zawibruje. Smartfon się nie włączy ale za to rozpocznie się kopiowanie danych z telefonu na dysk. Proces backup'u potrwa dłuższą chwilę. W moim przypadku trwało prawie dwie godziny (transfer na poziomie 3 MiB/s). Ten backup jest nas w stanie zabezpieczyć na wypadek popełnionych błędów przy flash'owaniu telefonu. Podejrzymy jeszcze ten obraz w fdisk/gdisk , by mieć absolutną pewność, że jest w nim faktyczna kopia flash'a Neffos'a C5: Jak odblokować bootloader w Neffos C5 Mając zrobiony kompletny backup flash'a, możemy przejść do odblokowania bootloader'a. Chodzi o to, że na smartfonach zwykle jest ulokowana partycja /recovery/ . Na niej znajduje się oprogramowanie umożliwiające przeprowadzanie operacji na poziomie systemowym, 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 wyłączamy telefon i włączamy go trzymając Volume Up + Power. Z menu wybieramy tryb fastboot. Następnie w terminalu wpisujemy poniższe polecenia: # fastboot devices TSL7DA69OBSO49PJ fastboot # fastboot oem unlock Na ekranie smartfona powinno nam pokazać się poniższe ostrzeżenie: Unlock bootloader? If you unlock the bootloader, you will be able to install custom operating system software on this phone. A custom OS is not subject to the same testing as the original OS, and can cause your phone and installed application to stop working properly. To prevent unauthorized access to your personal data, unlocking the bootloader will also delete all personal data from your phone "factory reset". Press the Volume UP/Down buttons to select Yes/No. Wciskamy Volume Up, by potwierdzić chęć odblokowania bootloader'a, po czym restartujemy smartfon: # fastboot reboot Jako, że proces odblokowania bootloader'a usunął wszelkie ustawienia, to jeszcze raz musimy włączyć Opcje programistyczne, a w nich tryb debugowania portu USB. Wyodrębnianie obrazu partycji /recovery/ z obrazu Neffos'a C5 Mając zrobiony backup flash'a telefonu, możemy z niego wyciągnąć obraz partycji /recovery/ . Musimy tylko zamontować ten obraz w systemie za pomocą losetup . Pamiętajmy, że ten obraz ma wiele partycji. Trzeba zatem nieco dostosować moduł kernela, by wszystkie z tych partycji zostały zamontowane za pomocą jednego polecenia. Informacje na temat tego jak dostosować moduł loop znajdują się tutaj. Przechodzimy zatem w miejsce, w którym zapisaliśmy obraz i montujemy go w poniższy sposób: # cd /path/to/image/ # losetup /dev/loop0 ROM_0 Teraz tworzymy obraz partycji /recovery/ . W tym przypadku /dev/loop0p8 jest urządzeniem, które musimy podać dd : # dd if=/dev/loop0p8 of=./recovery.img # file recovery.img recovery.img: Android bootimg, kernel (0x40080000), ramdisk (0x44000000), page size: 2048, cmdline (bootopt=64S3,32N2,64N2) Pozyskanie obrazu recovery.img z TWRP Musimy także pozyskać obraz recovery.img zawierający TWRP. Niestety, póki co nie ma obrazów dla Neffos'a C5. 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). Warto tutaj zaznaczyć, że nie zawsze taki obraz będzie nam działać bez problemu. W takim przypadku trzeba próbować innych obrazów, aż któryś zadziała. Nie musimy się tez obawiać wgrania złego obrazu na partycję /recovery/ . Jeśli zdarzy nam się wgrać niedziałający obraz recovery.img , to nie uszkodzimy smartfona. Zamiast tego telefon się zrestartuje i przywróci sobie starą partycję /recovery/ , a nas zaloguje do systemu jak gdyby nigdy nic. Moje pierwsze podejście do wgrania obrazu recovery.img na Neffos'a C5 się nie powiodło. Prawdopodobnie obraz nie był odpowiednio przygotowany i w efekcie trzeba było wgrać inny obraz. Ja skorzystałem z obrazu podrzuconego przez użytkownika @GWJ. Musiałem go tylko dostosować pod Neffos'a C5 (recovery-neffos-c5-tp-link-twrp.img). Przepakowanie obrazu recovery.img z innego smartfona By przepakować obraz przeznaczony na inny smartfon, który jest zbliżony parametrami do naszego Neffos'a C5, 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 partycji /recovery/ jak i ten 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 partycji /recovery/ z katalogu nadrzędnego i wypakowujemy go za pomocą skryptu unpackimg.sh . Następnie przenosimy tak wyodrębnioną zawartość do katalogu stock/ : $ cp ../recovery_orig.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 Zgodnie z informacją zawartą w tym HOWTO (windows), musimy przekopiować kilka plików z oryginalnego obrazu naszego Neffos'a C5 do obrazu TWRP: $ cp ./stock/split_img/recovery.img-kerneloff ./port/split_img/ $ cp ./stock/split_img/recovery.img-zImage ./port/split_img/ $ cp ./stock/ramdisk/fstab.mt6735 ./port/ramdisk/ $ cp ./stock/ramdisk/meta_init.modem.rc ./port/ramdisk/ $ cp ./stock/ramdisk/meta_init.project.rc ./port/ramdisk/ $ cp ./stock/ramdisk/meta_init.rc ./port/ramdisk/ $ cp ./stock/ramdisk/ueventd.rc ./port/ramdisk/ Z tak przygotowanych plików w katalogu port/ 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 fastboot. Wgrywanie przepakowanego obrazu recovery.img na Neffos'a C5 Wyłączamy telefon i podpinamy go do portu USB. Następnie włączamy go trzymając VolumeUP + Power. Z menu, które nam się pokaże na ekranie telefonu wybieramy tryb fastboot. Wracamy na komputer i przy pomocy narzędzia fasboot wgrywamy wyżej wygenerowany obraz na telefon. # fastboot flash recovery image-new.img target reported max download size of 134217728 bytes sending 'recovery' (12642 KB)... OKAY [ 1.301s] writing 'recovery'... OKAY [ 0.279s] finished. total time: 1.580s Restartujemy telefon ( fastboot reboot ) i wchodzimy w tryb recovery (VolumeUp + Power), by potwierdzić, że nasz nowy obraz recovery się wgrał pomyślnie. W przypadku wgrania poprawnego obrazu, powinniśmy zobaczyć logo TWRP. Jeśli wgrany obraz był nieprawidłowy, to zobaczymy jedynie czarny ekran i nasz Neffos C5 się po chwili uruchomi ponownie w normalnym trybie przywracając oryginalną partycję /recovery/ . SuperSU, BusyBOX, RootCheck i emulator terminala Ostatnią rzeczą na drodze do zrobienia root na Neffos C5 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 kolejno do Instaluj (TWRP jest również w języku polskim): Następnie 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 C5 i zainstalować jakąś aplikację, która pokaże nam czy nasz smartfon ma root'a. Sprawdzenie czy Neffos C5 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 w CheckRoot: Instalacja terminala Z BusyBOX'em zostały dostarczone niskopoziomowe narzędzia, które mogą korzystać z uprawnień administratora systemu za sprawą SuperSU. Niemniej jednak, by móc odpalać te programiki, musimy w czymś je uruchomić. Do tego celu potrzebny jest nam shell oraz emulator terminala. Domyślny shell ash jest dostarczany razem z BusyBOX. Terminal musimy doinstalować osobno. Generalnie to 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. Tutaj warto jeszcze zaznaczyć, że ten drugi terminal instaluje sobie również shell dash (domyślny shell w Debianie) . Również w jego przypadku możemy łatwo doinstalować sobie aplikacje za pomocą apt , podobnie jak w Debianie (do tego celu nie jest wymagany root). Jako, że ja korzystam na co dzień z Debiana, to instaluje 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ć aplikacjie 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
  12. 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:
  13. 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
  14. Energii nigdy nie jest za dużo. Problem w tym, że w przypadku jej nadmiaru, część zasobów zwyczajnie się marnuje. Można naturalnie takiemu stanu rzeczy przeciwdziałać próbując zmagazynować energię w jakimś obiekcie tak, by można ją było wykorzystać w późniejszym czasie, gdy zajdzie taka potrzeba. Większość sprzętów elektronicznych, takich jak smartfony, tablety czy nawet przenośne routery WiFi, posiada wbudowane baterie, które mają na celu umożliwić im działanie, gdy zostaną one odcięte od stałego źródła zasilania. Niemniej jednak, akumulator w takich urządzeniach zwykle nie wystarcza na długo, choć generalnie jego zużycie zależy od sposobu użytkowania. Dlatego też można pokusić się o zakupienie dodatkowych baterii zdolnych zmagazynować energię w większym stopniu niż samo urządzenie, które wymaga zasilania. Mowa oczywiście o power bankach, które cenowo nie są zbyt wygórowane, a w krytycznych sytuacjach są wręcz niezastąpione. W tym artykule rzucimy sobie okiem na power bank TL-PBG6700 od TP-LINK. Zawartość opakowania TL-PBG6700 No to zacznijmy może od samych fotek obrazujących pudełko i jego zawartość. W zasadzie to co się rzuca w oczy na samym początku, to fakt, że to urządzenie nie jest zbytnio dużych rozmiarów (97x45x25 mm, dł/sz/gr) ale trochę waży, bo około 140 gram. No i oczywiście na plus można mu zaliczyć wygląd, a konkretnie kolorystykę, bo ja niezbyt przepadam za urządzeniami w kolorze białym. Niżej są jeszcze fotki samego power banku TL-PBG6700 pokazujące jego detale: Jak widać wyżej, na obudowie mamy jeden przycisk Power, przy pomocy którego jesteśmy w stanie podejrzeć aktualny stan rozładowania akumulatora. Po przyciśnięciu tego przycisku zapalą nam się białe diody. Im więcej diod się zapali, tym pełniejsza jest bateria. Mamy co prawda 4 diody ale współczynnik naładowania akumulatora procentowo przedstawia się mniej więcej tak: 100-75 - 4 diody, 75-50 - 3 diody, 25-50 - 2 diody, 25-10 1 dioda, no i po niżej 10 ta jedna dioda będzie nam migać. Do zestawu jest także dołączony standardowy przewód mikro USB: Specyfikacja TL-PBG6700 Na stronie TP-LINK możemy wyczytać, że litowo-jonowe ogniwa zastosowane w TL-PBG6700 pochodzą od LG. Ktoś się orientuje co dokładnie siedzi wewnątrz tego power banku? Tak czy inaczej na obudowie możemy wyczytać, że ten akumulator ma deklarowaną pojemność 6700 mAh. W zasadzie jest to wartość nawet dość optymalna w stosunku do zachowanych rozmiarów i wagi, choć zawsze mogłoby być lepiej zarówno pod względem pojemności jak i fizycznych gabarytów. To co najbardziej cieszy w przypadku TL-PBG6700, to fakt zwiększa mu mocy zarówno wejściowej jak i wyjściowej (2,4A/5V). Standardowo prąd ładowania power banków wynosi zwykle 1A, a przez jego zwiększenie i zaimplementowanie technologi szybkiego i inteligentnego ładowania, proces napełnienia tego urządzenia energią jest znacznie krótszy. Prąd ładowania w przypadku TL-PBG6700 wynosi 2,4 A, no i można powiedzieć, że na mojej ładowarce 3,1A faktyczna wartość oscyluje w granicach 2,40 A - 2,65A, choć częściej 2,40A. TP-LINK deklaruje zachowanie oryginalnej pojemności TL-PBG6700 przez około 500 cykli ładowania tego urządzenia. Niemniej jednak, dokładnie nie wiem jak jest liczony taki cykl, bo zapewne zdajemy sobie wszyscy sprawę, że takie akumulatory litowo-jonowe cechują się inną żywotnością w zależności od tego czy je ładujemy/rozładujemy w pełni, czy też będziemy wykorzystywać je w widełkach 30% - 90%. Także, nie wiem do czego ta wartość 500 się odnosi. Pojemność TL-PBG6700 Ilość zgromadzonej energii w TL-PBG6700 jest nieco niższa niż faktycznie można zakładać po oznaczeniu czy deklarowanych przez producenta wartościach. Sprawdziłem bowiem czy da radę mojego smartfona Neffos C5 MAX, który ma baterię 3045 mAh, podładować bez większego problemu dwukrotnie. Okazało się, że nie dało rady. Sumaryczna wartość procentów wyniosła jakieś 136 punków. Generalnie ładowałem smartfona dwa razy. Pierwszy cykl od 1% - 77%, a drugi od 29% do 89%. Daje to zatem 76+60, czyli 136%. Ilość przesłanej energii to około 136%*3045=4141.2 mAh, czyli około 61-62% faktycznej pojemności power banku. Potwierdza to regułę 60% deklarowanej przez producenta pojemności. Można naturalnie policzyć w drugą stronę, tj. 6700 mAh (pojemność power banku) * 3,6V (standardowe napięcie ogniw) daje nam 24120 mWh energii. Na wyjściu power banku ma być napięcie rzędu 5V (bo to port USB). Zatem 24120 mWh / 5V = 4824 mAh. No i od tej wartości trzeba odjąć jeszcze straty spowodowane przez sprawność energetyczną, która zwykle jest na poziomie 90%, czyli 10% z powyższej wartości odejmujemy, co daje nam wartość 4341 mAh. Wartość jest mniej więcej porównywalna z tym co wyszło wyżej, a ewentualna nadwyżka 200 mAh spowodowana jest niedokładnym pomiarem stanu baterii w telefonie. Według TP-LINK, power bank TL-PBG6700 można naładować od 0% do 100% w około 2 godziny i 40 minut. Z moich obserwacji wynika, że ten czas wynosi około 3 godzin i 10 minut. Przyglądając się wskazaniom wyświetlacza mojego miernika mogę dodać jeszcze, że przez około dwie pierwsze godziny, power bank pobierał w zasadzie te 2,4A - 2,6A. Niemniej jednak po upływie tego czasu do końca procesu ładowania, ta wartość stopniowo malała i generalnie i tak około 40 minut przed zakończeniem tego procesu, urządzenie pobierało już niespełna 1A, no i tak co 5 minut ubywało kolejne 0,1A. Zabezpieczenia W każdym szanującym się power banku nie może zabraknąć ochrony przed czynnikami niepożądanymi. TL-PBG6700 posiada szereg zabezpieczeń, które chronią go przed zwarciami, przepięciami, przetężeniami elektrycznymi, nadmiernymi ładowaniami i rozładowywaniami, oraz przed przegrzaniem. Mamy zatem pewność, że użytkowanie tego urządzenia będzie bezpieczne. Warto dodać, że ten power bank podczas procesu ładowania prądem 2,4A trochę się grzeje. Po około 1,5 godziny obudowa już jest dość ciepła. Biorąc pod uwagę fakt zastosowanych zabezpieczeń termicznych, trzeba uważać, by nie ładować tego urządzenia w pobliżu źródeł ciepła, bo jest wielce prawdopodobne, że mechanizm bezpieczeństwa zadziała i uniemożliwi proces ładowania. Innym rozwiązaniem jest naturalnie ładowanie power banku prądem 1A czy 0,5A ale taki zabieg z kolei znacząco wydłuży proces ładowania. Można również pokusić się o zakup małego wiatraczka, który będzie chłodził zarówno ładowarkę jak i sam power bank. Podsumowanie Może i power bank TL-PBG6700 nie ma tych obiecanych 6700 mAh ale jakby nie patrzeć 4141 mAh to całkiem sporo. Dobrze też, że nie trzeba czekać pół dnia, by taki akumulator naładować. No i chyba najważniejsza zaleta tego banku energetycznego, to fakt bardzo szybkiego oddawania energii ładowanym urządzeniom. Ten mój smartfon Neffos C5 MAX na tej dołączonej do zestawu ładowarce, ładuje się około 4 godzin. A w przypadku tego power banku, do 77% naładował się w około 1,5 godziny.
  15. Do momentu upowszechnienia się technologii LTE, ludzkość była zdana na przewodowe łącza internetowe oferowane przez lokalnych ISP. Jeśli chodzi o tych lokalnych providerów, to zwykle nie mają oni praktycznie żadnej konkurencji w danej części miasta/wsi. Czy taki stan rzeczy jest wynikiem dostarczania najlepszych jakościowo usług za najniższą cenę? W moim przypadku nie były to ani najlepsze usługi, ani też najniższa cena, tylko tak dobrane przepisy prawne, by zewnętrznemu ISP nie opłacało się świadczyć usług w mojej okolicy, bo za ten fakt dostawał on z miejsca szereg opłat/kar. Teraz, gdy już praktycznie każdy z nas jest w zasięgu LTE, możemy porzucić tych lokalnych ISP i obserwować ich nieuchronny upadek, no chyba, że w końcu zaczną dbać o swoich klientów. Niemniej jednak, w dalszym ciągu, by korzystać z technologi LTE potrzebny nam jest odpowiedni sprzęt, zwykle jest to jakiś modem, np. Huawei E3372s-153. Problem z modemem jest taki, że standardowo można go podłączyć tylko do jednego komputera w danej chwili, no chyba, że mamy router WiFi z wgranym alternatywnym oprogramowaniem pokroju OpenWRT/LEDE. Niemniej jednak, w dalszym ciągu trzeba nieco wprawy, by ten modem ogarnąć i udostępnić połączenie internetowe hostom w lokalnej sieci. Dlatego też od jakiegoś czasu na rynku zaczęły pojawiać się routery WiFi, które mają wbudowany modemem LTE. Jedno z takich urządzeń dotarło do mnie kilka dni temu, a konkretnie jest model Archer MR200 od TP-LINK. Postanowiłem zatem zobaczyć co oferuje ten sprzęt w standardzie, oraz czy jest dla niego jakieś alternatywne oprogramowanie. Zawartość pudełka routera Archer MR200 No to jedziemy z tym routerem LTE. Na początek jak zawsze fotki opakowania i tego co znajduje się w środku: Archer MR200 nie jest jakoś specjalnie duży. W sumie to jest on nawet mniejszy od TL-WR1043NDv2 i jego dokładne wymiary to 202x141x34 mm. W zasadzie na górnej części obudowy tego urządzenia nie widać nic specjalnego na pierwszy rzut oka. Obudowa czarna, połyskująca no i łatwo też się rysująca. Na spodzie obudowy mamy zaś kartkę wentylacyjną: W górnej części widzimy naklejkę z informacjami dotyczącymi numeru seryjnego urządzenia, jego wersji sprzętowej oraz danymi logowania do sieci WiFi. Może i mamy także informację o adresie URL panelu administracyjnego ale zabrakło adresu IP (w tym przypadku to 192.168.1.1) oraz nie ma danych logowania do tego panelu (hasło się ustawia przy pierwszej próbie dostępu do panelu). Otwory wentylacyjne znajdują się również po bokach routera, tuż pod pokrywą: Panel tyny wygląda raczej zwyczajnie, choć są pewne różnice. Przede wszystkim switch ma cztery porty Ethernet (RJ-45), które mogą działać w konfiguracji 4LAN lub 3LAN+1WAN. Próżno też szukać portu USB, bo takiego zwyczajnie nie zaimplementowano. No i oczywiście mamy również slot na kartę SIM. Przyciski nie odbiegają od przyjętych standardów, tj. Power, WPS/RESET oraz WiFi ON/OFF: Archer MR200 ma w zasadzie 5 anten: 2 wewnętrzne dla sieci WiFi 2,4 GHz, 1 wewnętrzna dla sieci WiFi 5 GHz oraz 2 zewnętrzne (widoczne poniżej) dla sieci LTE: W zestawie mamy również jeden nieekranowany przewód Ethernet CAT5 od długości około 120 cm. Archer MR200 wymaga do zasilania energii elektrycznej i nie mogło w zestawie zabraknąć odpowiedniego zasilacza 1A/12V: Jako, że mamy do czynienia z routerem LTE, to do realizowania połączenia w tej technologii potrzebna jest karta SIM, a ta z kolei może mieć różne wymiary w zależności od standardu tej karty (zwykła, mini, mikro). Dobrze, że TP-LINK pomyślał o dołączeniu do zestawu dwóch adapterów (mikro/mini) i bez problemu możemy do routera wsadzić kartę SIM w dowolnym formacie. Poniżej są jeszcze fotki tylnego panelu routera z włożoną kartą SIM: Na koniec jeszcze fotka Archer'a MR200 z przykręconymi antenami: Mało co i bym zapomniał o diodach, które naturalnie i ten router posiada. Oprócz standardowych lampek, tj. sygnalizujących stan zasilania, połączenia z internetem, połączenia 4G, WiFi oraz portów switch'a, mamy również informacje na temat poziomu sygnału LTE. Specyfikacja routera Archer MR200 Jak widzieliśmy wyżej, ten router LTE w sumie za wiele się nie różni pod względem wyglądu od tradycyjnego routera WiFi. Niemniej jednak, te różnice są i to dość znaczne. Poniżej znajdują się fotki z wnętrza obudowy routera Archer MR200: Modem LTE To co z pewnością odróżnia Archer'a MR200 od reszty routerów, to fakt zainstalowania w nim modemu LTE. Dokładnie nie wiadomo jednak jakiej kategorii jest ten modem. Jedni mówią, że jest to standardowy CAT4 umożliwiający transfer 150/50 mbit/s. Z kolei zaś na stronie producenta jest oznaczenie LTE adv CAT4, LTE FDD/TDD CAT3 . Poruszając tę kwestię forum JDTech okazało się, że Qualcomm nieco nagina rzeczywistość i ten modem może ma frazę adv sugerującą agregację pasm (tj. LTE-A) ale w zasadzie jest to agregacja wewnątrz tego samego pasma. Dokładnie nie wiem jak mam rozumieć to powyższe oznaczenie ale jedyne co mi przyszło do głowy, to, że ten modem ma CAT3 (100/50 mbit/s), a dopiero po agregacji (w ciąż w tym samym paśmie) jest w stanie osiągnąć te 150/50 mbit/s. Czy tak jest w istocie, tego nie wiem ale bezpiecznie można tak założyć, bo gdyby napisano te parametry w przejrzysty i bardziej zrozumiały dla człowieka sposób, to nie byłoby wątpliwości. Ten modem jest w stanie realizować połączenie LTE w technologi zarówno FDD, kanały B1/B3/B7/B8/B20 (2100/1800/2600/900/800 MHz), jak i TDD kanały B38 i B40 (2600/2300 MHz). Sam modem obsługuje także DC-HSPA+/HSPA+/HSPA/UMTS, kanały B1/B8(2100/900 MHz) oraz EDGE/GPRS/GSM, kanały B2/B3/B5/B8 (1900/1800/900/850). Tak ten modem wygląda z obu stron: Na PCB modemu znajduje się czip LTE Qualcomm MDM9225 (procek): Modem ma 256 MiB NAND flash i 128 DDRII SDRAM pamięci operacyjnej, układ ESMT FM6BD2G1GA: Znajdziemy też tam wzmacniacz sygnału LTE, moduł SKYWORKS SKY77814 (FDD: B7 oraz TDD: B38, B40), oraz przełącznik antenowy SKYWORKS 13492. Na modemie można także znaleźć jeszcze czip Qualcomm PM8019, który zarządza zasilaniem podpiętych do niego układów: Jest też drugi czip LTE Qualcomm WTR1605L (część RF): I kolejny wzmacniacz sygnału LTE i GSM, moduł SKYWORKS SKY77629 (FDD: B1, B3, B8, GSM: B2, B3 ,B5, B8): WiSoC MT7620A (MediaTek) Archer MR200 został wyposażony w SoC MT7620A (datasheet) od MediaTek'a, z procesorem MIPS 24KEc taktowanym zegarem 580 MHz. Ten SoC ma wbudowany czip WiFi 2,4 GHz (MediaTek RT5390) oraz układ switch'a (MediaTek MT7530). WiFi 2,4 GHz jest w standardzie N do 300 mbit/s (dwa strumienie przestrzenne). Dla tego pasma sieci bezprzewodowej mamy dwie anteny wewnętrzne rozlokowane po bokach PCB (wlutowane na stałe). Poniżej jest fotka jednej z tych anten: WiFi 5GHz Router Archer MR200 jest także wyposażony w osobny układ dla WiFi w paśmie 5 GHz (MediaTek MT7610EN) ze wzmacniaczem SKYWORKS 85703: W tym przypadku mamy do czynienia ze standardem AC do 433 mbit/s, czyli jeden strumień przestrzenny, no i jedną antenę wewnętrzną: Switch 100 mbit/s Niestety Archer MR200 nie może się pochwalić jeśli chodzi o switch. Ma on cztery porty w stosunku do standardowych 5, choć zwykle więcej i tak nie trzeba. Natomiast maksymalna przepustowość tych portów to niestety tylko 100 mbit/s. Transformatory Ethernet pochodzą od GROUP-TEK, model HST-2027DAR. 64 MiB pamięci RAM Jeśli zaś chodzi o kwestię pamięci operacyjnej RAM, to Archer MR200 ma jej raczej niewiele, bo 64 MiB. Układ pamięci to Winbond W9751G6KB-25: 8 MiB pamięć flash Podobnie jak i pamięci RAM, pamięć flash również nie jest zbyt duża, bo jedyne 8 MiB. Flash pochodzi od Macronix i jest to model 25L6433FM2I-08G Konfiguracja routera Archer MR200 Nie da się ukryć, że posiadanie routera WiFi z wbudowanym modemem LTE, ma swoje liczne zalety. W przypadku tego Archer'a MR200 na stock'owym firmware nie musimy przeprowadzać praktycznie żadnych dodatkowych czynności, by udostępnić internet LTE komputerom w domowej sieci. Jedyne co musimy zrobić to wsadzić kartę SIM i w zasadzie to wszystko. Panel administracyjny routera znajduje się standardowo pod adresem http://192.168.1.1/ i za jego pomocą możemy dostosować sobie poszczególne aspekty pracy urządzenia. Ci, którzy chcą rzucić okiem na ten panel i sprawdzić czy znajdą w nim określone opcje, zawsze mogą skorzystać z emulatora dostępnego na stronie TP-LINK. W zasadzie wszystkie funkcje standardowego routera WiFi jak i modemu LTE są zaimplementowane w Archer MR200. Niemniej jednak, jest kilka rzeczy, o których warto wspomnieć. Tryby pracy routera Sam router można przełączyć w tryb zwykły (WiFi) lub LTE. W przypadku trybu LTE, wszystkie cztery porty switch'a są w konfiguracji LAN. Jeśli wybierzemy tryb zwykły (WiFi), to modem LTE zostanie wyłączony, a jeden z portów switch'a zostanie skonfigurowany jako WAN i będziemy mogli podpiąć się pod przewodowego ISP. Tryby pracy modemu LTE Modem LTE może pracować w trzech trybach: auto, LTE lub 3G. Niestety nie mamy możliwości określenia częstotliwości pracy: Nie zabrakło także obsługi kodu PIN dla karty SIM z automatycznym odblokowaniem karty przy starcie routera: Jak i również mamy możliwość ustawienia limitu transferu z opcją odłączenia od sieci po jego przekroczeniu. Zabrakło jedynie ficzera, który by nie naliczał transferu w określonych godzinach: WPS Jeśli zaś chodzi o WiFi, to mamy możliwość szybkiej konfiguracji parametrów połączenia za pomocą funkcji WPS. Obsługiwane są zarówno PIN jak i PBC (przyciski): Sieć gościnna Nie mogło zabraknąć też bezprzewodowej sieci gościnnej. W przypadku Archer'a MR200 mamy możliwość skonfigurowania izolowania od siebie konkretnych jej użytkowników oraz też możemy zdecydować czy zezwalamy im na ewentualny dostęp do sieci lokalnej. Sieć gościnną możemy włączyć osobno dla WiFi 2,4 GHz i 5 GHz i skonfigurować je niezależnie. Innym użytecznym dodatkiem jest także kontrola pasma jakie jest przeznaczone dla sieci gości: Harmonogram pracy WiFi Dostępny jest również harmonogram pracy sieci WiFi i to osobny dla pasma 2,4 GHz jak i 5 GHz. Przy jego pomocy możemy sobie ustawić automatyczne włączanie i wyłączanie sieci WiFi w zależności od pory dnia: Pisanie i odbieranie SMS'ów Routery LTE mają to do siebie, że odbierają one również sygnał sieci GSM, czyli jesteśmy w stanie odbierać i wysyłać wiadomości SMS. Darmowy internet od Aero2 Jeśli posiadamy kartę SIM od Aero2, to Archer MR200 jest w stanie zapewnić naszej sieci darmowy internet od tego operatora. Niemniej jednak, konfiguracja w tym przypadku nie jest automatyczna. Z tego co można zauważyć w panelu administracyjnym, to błędnie jest konfigurowany APN. Dlatego też trzeba stworzyć nowy profil i odpowiednio go uzupełnić: Użytkownik i hasło może być albo puste, albo można też wpisać aero . Wydajność sieci WiFi i LTE Generalnie rzecz biorąc, router Archer MR200 ma WiFi 2,4 GHz (max. transfer 300 mbit/s), WiFi 5 GHz (max. transfer 433 mbit/s), LTE (max transfer 150/50 mbit/s) no i switch z portami Fast Ethernet (max transfer 100 mbit/s). W efekcie komunikacja przewodowo-bezprzewodowa będzie limitowana z automatu do 100 mbit/s. Jeśli zaś chodzi o bezprzewodowych klientów to powinniśmy wyczerpać możliwości modemu LTE. Natomiast transfer w sieci bezprzewodowej (między dwoma klientami) powinien wynieść 150 mbit/s i 215 mbit/s odpowiednio dla 2,4 GHz i 5 GHz. Oczywiście wszystkie wartości są teoretyczne i przydałoby się je poddać weryfikacji. Może i znamy realną przepustowość portów Ethernet (~93 mbit/s) ale na dobrą sprawę nie znamy faktycznej przepustowości sieci WiFi 2 i 5 GHz. Dlatego też zanim sprawdzimy sobie na ile wydolny jest modem LTE, to pierw ustalmy ile damy radę wyciągnąć po samym WiFi. Transfer jaki udało mi się uzyskać w sieci WiFi w paśmie 2,4 GHz między dwoma bezprzewodowymi klientami, to około 80 mbit/s, czy ogólny transfer jest na poziomie 160 mbit/s. Jeśli na drodze staną dwie niezbyt grube ściany (dystans 5 metrów), wtedy ten transfer spada do około 30 mbit/s. Jeśli zaś chodzi o transfer w paśmie 5 GHz, to udało się osiągnąć nieco ponad 120 mbit/s wewnątrz sieci WiFi, czyli transfer na poziomie około 250 mbit/s. Generalnie ta niezbyt wypasiona antena wewnętrzna powoduje, że zasięg tego routera w tym paśmie WiFi jest, by nikogo nie urazić, bardzo ograniczony. Generalnie to nie jest problemem sama odległość ale ściany i inne przeszkody na drodze. W przypadku tego routera wystarczy jedna ściana, by praktycznie zatrzymać sygnał 5 GHz, tj. transfer spada poniżej 10 mbit/s. Dwóch ścian już sygnał nie jest w stanie pokonać. Jeśli rozważamy zakup tego routera pod kątem korzystania z sieci 5 GHz i planujemy z niej korzystać w miarę komfortowo, to upewnijmy się, że nic nie będzie stać na drodze sygnału. Wiemy zatem, że obie sieci WiFi są nam w stanie zapewnić prędkość, która jest porównywalna z prędkością modemu LTE (100 mbit/s, w agregacji tego samego pasma 150 mbit/s). Przeprowadziłem w sumie dwie serie testów posługując się moim smartfonem. Pierwsza seria testowała transfer modemu LTE w routerze Archer MR200. Druga seria zaś badała mój modem Huawei E3372s-153, który jest podłączony pod router Archer C2600. Poniżej jest zestawienie wyników: O ile generalnie prędkość pobierania jest w miarę porównywalna, choć się bardzo waha (w końcu LTE), to w przypadku transferu danych do BTS już widać różnicę. Transfer jest dwa razy większy, więc jakość sygnału docierająca do BTS jest o wiele lepsza niż w przypadku modemu Huawei E3372s-153. Niemniej jednak, jeśli przestawię te urządzenia okolice okna, to wtedy różnicy zbytnio już nie ma (odległość od BTS to około 1 km, widoczność zachowana). Pobór energii W zasadzie router Archer MR200 nie utylizuje za dużo energii elektrycznej. Podczas startu urządzenia jest to wartość nieprzekraczająca 1,5 W. Przy włączonym WiFi i LTE router zjada w stanie spoczynku około 3W. Zużycie energii wzrasta dość znacznie, gdy zaczynamy pobierać/wysyłać dane w sieci WiFi=>LTE. W takim przypadku pobieranie z prędkością około 50 mbit/s owocuje wzrostem poboru prądu do około 5,5W. Przy wysyłaniu danych z prędkością około 25 mbit/s, ta wartość jest jeszcze większa i sięga około 7-8W. Naturalnie im szybciej będziemy dane pobierać/wysyłać, tym bardziej prądożerny będzie nasz router. Wsparcie w LEDE/OpenWRT Router Archer MR200 doczekał się wsparcia w LEDE ale ten firmware można wgrać póki co jedynie przez tryb recovery bootloader'a. Instrukcja jak to zrobić znajduje się tutaj. Jeśli zaś jest ktoś zainteresowany alternatywnym firmware pod kątem tego routera, to tutaj jest wątek na forum OpenWRT oraz na forum eko.one.pl. Warto też dodać, że nie wszystkie rzeczy jeszcze działają, np. WiFi w paśmie 5 GHz. TL;DR Zewnętrzne anteny LTE zapewniają Archer'owi MR200 nawet dość przyzwoitą jakość sygnału w stosunku do tradycyjnego modemu Huawei E3372s-153. Ten router oferuje zbliżoną prędkość pobierania danych z BTS ale jeśli chodzi o prędkość wysyłania, to już tutaj te anteny zewnętrzne trochę pomagają mu. Niemniej jednak, anteny wewnętrzne dla WiFi 2,4 GHz i 5 GHz sprawiają, że jakość sygnału docierającego do komputerów/telefonów nie jest najlepszej jakości, przez co możemy zapomnieć o bonusie płynącym z zewnętrznych anten LTE. Jeśli BTS jest dość daleko to faktycznie te anteny mogą zaważyć na tym czy w ogóle jakiś sygnał LTE zostanie odebrany przez modem w routerze. Niemniej jednak jeśli BTS jest w zasięgu wzroku i nie ma żadnych przeszkód na drodze sygnału, to WiFi będzie wąskim gardłem jeśli sygnał będzie musiał się przebijać przez ściany domu/mieszkania, by dotrzeć do naszych sprzętów. Pamiętajmy też, że może i te anteny LTE są zewnętrzne ale nadal nie są zamocowane na zewnątrz budynku i nie są skierowane w stronę BTS'a. Porty Ethernet 100 mbit/s? Jakby nie patrzeć routery WiFi są rdzeniem naszej sieci domowej i powinny być w stanie zapewnić przyzwoitą komunikację przynajmniej w jej obrębie. Nawet te tanie routery pokroju TL-WR1043NDv2 mają gigabitowy switch, a 100 mbit/s po przewodzie w LAN, to już nie te czasy. Brak portu USB boli chyba najbardziej. Ja generalnie korzystam z portu USB mojego głównego routera Archer C2600 zwykle w celu udostępniania drukarki w sieci. W efekcie nie muszę ani przełączać samej drukarki, ani też stawiać dedykowanej maszyny do jej obsługi. W przypadku Acher'a MR200 takie rozwiązanie niestety odpada. Archer MR200 jest stosunkowo drogim routerem (~540 zł) jak na te parametry, które oferuje. Gdybym miał wybierać, to jednak zdecydowałbym się na zakup Archer'a C7 v2 + modem Huawei E3372s-153 (wersja zwykła) i cenowo by wyszło podobnie (400+150 zł) ale pod względem wydajności, to ten zestaw bije Archer'a MR200 praktycznie pod każdym względem (no za wyjątkiem LTE), już pomijając, że są to dwa niezależne urządzenia, które w przypadku awarii/zużycia można wymienić bez potrzeby wymiany również i drugiego urządzenia. Dobrze chociaż, że pojawia się wsparcie dla tego routera w LEDE/OpenWRT. Niemniej jednak, jeśli chodzi o alternatywny firmware, to uważam, że Archer C7 v2 + Huawei E3372s-153 jest lepszym wyborem, gdy rozważamy zabawę z tym oprogramowaniem. Niemniej jednak, w przypadku stock'owego firmware, Archer MR200 nie wymaga znajomości żadnych zagadnień informatycznych i praktycznie każdy jest go w stanie skonfigurować bez większego problemu, co nie zawsze ma miejsce w przypadku LEDE/OpenWRT.
  16. Nowsze technologie wymagają do działania energii elektrycznej. Ta z kolei musi być dostarczana danemu urządzeniu na bieżąco, by było ono w stanie w ogóle funkcjonować i realizować swoje zadanie. Niemniej jednak, od już dłuższego czasu specyfikacja otaczającej nas rzeczywistości wymaga od naszych urządzeń, by potrafiły one gromadzić w sobie jakiś zapas energii i pracować nawet nie będąc podłączone do stałego źródła zasilania. Dlatego też nasze smartfony, tablety, mp3player'y i innego tego typu sprzęty elektroniczne mają wbudowany mniej lub bardziej pojemny akumulator. Tak czy inaczej, ta pojemność jest skończona i zwykle wystarcza na kilka dni, najwyżej tydzień pracy, np. naszego telefonu. Dlatego też w pewnych okolicznościach dobrze jest mieć zapas energii zgromadzony w jakimś power banku. Na rynku jest cała masa takich banków energetycznych i różnią się one pod względem parametrów. W tym artykule rzucimy sobie okiem na bank energii TL-PB2600 od TP-LINK. Zawartość opakowania TL-PB2600 Poniżej znajdują się fotki opakowania power banku TL-PB2600 oraz jego całej zawartości. Samo urządzenie jest dość niewielkich rozmiarów (94x26x26 mm) i waży zaledwie 70 gram. Tak wygląda TL-PB2600 z bliska: Jak widzimy wyżej, TL-PB2600 ma na przednim panelu standardowy port USB 2.0 oraz port mikro USB. Drugi z tych portów służy do ładowania power banku, a do pierwszego podłączamy ładowane urządzenie. Zarówno sam power bank, jak i urządzenie podpięte do niego mogą być ładowane maksymalnie natężeniem 1A przy 5V. Gdy power bank jest podłączony pod ładowarkę, nie da rady z niego ładować innego urządzenia. Niektóre power banki oferują tego typu funkcjonalność ale nie jest zalecane korzystanie z tej opcji. Jak widzieliśmy wyżej, na spodniej części obudowy power banku jest informacja, że to urządzenie na wejściu może pobierać maksymalnie 1A. I faktycznie pobór prądu przez to urządzenie podczas jego ładowania w stanie kompletnego rozładowania oscyluje w granicach 1A (ładowarka 3,1A). Naturalnie im pełniejsza bateria, tym wartość natężenia prądu spada do 0. By naładować ten TL-PB2600 od 0% do 100% potrzebny jest czas około 2,5 godziny. Na boku obudowy jest przycisk, przy pomocy którego możemy sprawdzić stan rozładowania akumulatora. Sygnalizuje go widoczna niżej dioda. Gdy akumulator jest pełen, to wtedy dioda się świeci ciągle przez okres kilku sekund. Jeśli akumulator jest na wyczerpaniu, to wtedy dioda będzie migać. Do zestawu został także dołączony przewód mikro USB. W zestawie nie ma natomiast ładowarki. Może to i dobrze, bo tylko by podbiła cenę samego power banku, a i tak raczej każdy z nas ma już kilka takich ładowarek USB. Sprawność TL-PB2600 Chciałem sobie sprawdzić w jakim stopniu TL-PB2600 jest w stanie podładować mojego smartfona Neffos C5 MAX. Prawdę mówiąc, to jestem nieco zawiedziony, bo procent na ikonce baterii wskazał trochę ponad połowę, a konkretnie wartość 54. Ten smartfon ma baterię o pojemności około 3045 mAh, zatem energia, która została przekazana z banku do telefonu jest na poziomie 1644 mAh. To nie za dużo skoro TL-PB2600 miał mieć 2600 mAh i nieco więcej powinno w tego smartfona wejść. Chyba, że te cyferki na opakowaniu ponownie nijak się mają do faktycznych właściwości urządzeń. Szukając informacji na temat tak drastycznie niskiej wartości przetransferowanej energii w stosunku do tego co jest napisane na opakowaniu, natrafiłem na kilka ciekawych informacji. Przede wszystkim, ogniwa power banków (nie tylko tego ale generalnie wszystkich) mają napięcia rzędu 3,6-3,7V, a jak wiadomo, na wyjściu takiego urządzenia mamy mieć 5V, czyli tyle ile w standardzie ma zwykły port USB. Można zatem prosto wyliczyć, że 2600 mAh * 3,6V daje nam zgromadzoną energię na poziomie 9360 mWh. Jeśli teraz będziemy taki power bank rozładowywać napięciem 5V, to 9360 mWh / 5V da nam wartość 1872 mAh. To i tak jest więcej niż zostało przesłane do smartfona w procesie ładowania. Okazuje się jeszcze, że do strat trzeba także doliczyć wydajność energetyczną urządzenia, która dla TL-PB2600 wynosi według TP-LINK około 90%. Zatem 1872 mAh * 90% daje nam około 1684 mAh i zakładając niewielki błąd pomiarowy i lekkie odchyły od niektórych wartości, można przyjąć, że ten power bank potrafi zgromadzić jakieś 1650 mAh, a nie 2600 mAh energii. Generalnie to obowiązuje zasada przyjmowania 60% wartości tego co zostało napisane na opakowaniu. Mi tutaj wyszło około 63%. Zabezpieczenia TP-PB2600 Jak można wyczytać na stronie TP-LINK, power bank TP-PB2600 jest wyposażony w kilka zabezpieczeń i są to zabezpieczenia przed spięciami, przepięciami, przetężeniami, przeładowaniami, wyładowaniami i przegrzewaniem. Zabezpieczenia przed przeładowaniem i zbytnim wyładowaniem akumulatora mają na celu wpłynąć na żywotność jak i zdolność magazynowania energii przez to urządzenie. Z kolei zabezpieczenie przed przegrzewaniem ma na celu kontrolować temperaturę ogniw power banku, tak by nam one nie wybuchły w trakcie procesu ładowania. Podsumowanie Power bank TP-PB2600 nie należy do najpojemniejszych banków energii. Nie naładujemy nim zbytnio smartfona do pełna, no może za wyjątkiem tych modeli, które mają baterię o pojemności w granicach 1600 mAh. Niemniej jednak, należy też pamiętać, że smartfony nie są jedynymi urządzeniami, które wymagają ładowania i posiadają przy tym nieco mniej pojemne akumulatory. Nawet jeśli nie dysponujemy takim sprzętem, to w krytycznych sytuacjach podładowanie telefonu do 50% może okazać się zbawienne, a biorąc pod uwagę niewielkie wymiary TP-PB2600, można go schować praktycznie wszędzie tak, by czekał na tego typu podbramkową sytuację.
  17. Wśród ludzi panuje przekonanie, że by zakupić smartfona trzeba wydać niemałą sumkę pieniędzy, bo przecież te urządzenia muszą sporo kosztować. No i nie da się ukryć, że na rynku są dostępne modele telefonów, których cena przekracza kilka tysięcy złotych. Niemniej jednak, w ofertach niektórych producentów takich sprzętów są również i sporo tańsze modele, które byłyby w stanie zaspokoić niejednego użytkownika mobilnych technologii. Oczywiście te tańsze smartfony nie mają zwykle w sobie całej masy wynalazków ale czy tak naprawdę każdy z nas ich potrzebuje? Znam sporo ludzi, którzy wyznają zasadę, że telefon jest "tylko do dzwonienia" ale znowu korzystanie z 5-10 letnich zabawek jest trochę pozbawione sensu, podobnie zresztą jak kupowanie przez takie osoby smartfona za równowartość ich miesięcznej pensji. W ofercie TP-LINK jest dostępny jeden smartfon, którego cena zamyka się w granicach 300 zł. Mowa tutaj o Neffos Y5L. Czy taki telefon jest nam w stanie w ogóle coś zaoferować? Zawartość opakowania Neffos Y5L W pudełku Neffos'a Y5L, poza smartfonem znajdziemy w zasadzie jedynie podstawowe wyposażenie. W zestawie znalazła się oczywiście standardowa ładowarka 5V/1A: Mamy również przewód USB, przy pomocy którego możemy podłączyć smartfon do ładowarki lub portu USB komputera: No i jest też bateria 2020 mAh, model NBL-46A2020: Szkoda, że w przypadku tego Neffos'a Y5L zabrakło słuchawek. Specyfikacja Neffos Y5L Neffos Y5L jest dość malutki jak na smartfon i jest na dobrą sprawę najmniejszy ze wszystkich Neffos'ów, które póki co miałem okazję przetestować. Jego fizyczne wymiary wskazują mniej więcej na 133.4 x 66.6 x 9.8 mm (wy/sz/gr). Samo urządzenie nie należy także do najcięższych, bo waży jedynie 127 gram. Kolor obudowy tego telefonu może być biały, szary albo żółty. Obudowa Rzućmy zatem okiem na obudowę tego niewielkiego telefonu. Generalnie rzecz biorąc, to lewa krawędź jest niezagospodarowana, co nie dziwi, bo praktycznie żaden Neffos nic na lewym boku obudowy nie ma. Jeśli zaś chodzi o prawą krawędź, to tutaj mamy standardowo przycisk regulacji głośności (VolumeUp/VolumeDown) oraz przycisk zasilania (Power): Na górnej krawędzi mamy jedynie wyjście dla słuchawek w standardzie minijack 3,5 mm: Dolna krawędź ma w zasadzie port mikro USB oraz mikrofon do rozmów telefonicznych: Nad ekranem mamy czerwoną diodę powiadomień, głośnik, czujnik światła oraz aparat selfie 2 mpix (fotki 1600x1200 px, video 1280x720 px, 5 FPS). Pod ekranem zaś mamy trzy podświetlane przyciski oraz logo TP-LINK: Tył obudowy Neffos'a Y5L może pochwalić się aparatem 5 mpix z autofokusem (fotki 2592x1944 px, video 1280x720 px 20 FPS), mikrofonem z redukcją szumów, no i oczywiście jedną diodą robiącą za lampę błyskową i latarkę: Niżej zaś mamy głośnik multimedialny: Po zdjęciu tylnej klapki, wnętrze Neffos'a Y5L prezentuje się w następujący sposób: Jak widzimy, Neffos Y5L ma dwa sloty na kartę SIM oraz jeden slot na kartę mikro SD (max. 32G). Jest też spore gniazdo na baterię: Dobrze, że Neffos Y5L umożliwia bezproblemowe wyciągnięcie karty mikro SD i to bez potrzeby wyjmowania baterii i wyłączania telefonu: Wyświetlacz 4,5" Wiemy zatem jak z grubsza wygląda smartfon Neffos Y5L. Sprawdźmy teraz czego możemy się po tym urządzeniu spodziewać. Na sam początek rzućmy okiem na wyświetlacz. W porównaniu do pozostałych Neffos'ów, które wpadły mi w łapki (C5, C5MAX i Y5), model Y5L odbiega znacznie pod względem jakości wyświetlacza. Nie jest on jakoś specjalnie duży (4,5 cala) i jest on wykonany w technologi Twisted Nematic (TN). Są zatem widoczne problemy z kolorami i kątami widzenia. Na dobrą sprawę na wyświetlacz telefonu zwykle patrzymy prostopadle lub też pod niewielkimi kątami. Niemniej jednak, Neffos Y5L przy spoglądaniu na niego nawet leciutko z boku już przekłamuje kolory i to w dość znacznym stopniu, co psuje nieco komfort pracy na tym urządzeniu. Nawet jeśli patrzymy niemalże pionowo na ten ekran, to i tak te kolory są jakieś takie wyblakłe. Następna sprawa to rozdzielczość ekranu, która w tym przypadku wynosi zaledwie 854 x 480 px (FWVGA). Przekłada się to też na około 220 PPI (pikseli na cal). Do tych minimalnych 300 PPI trochę brakuje i wyraźnie wzrok się meczy od patrzenia na ekran tego smartfona, bo gołym i nieuzbrojonym okiem można dostrzec pojedyncze piksele. W moim odczuciu ten wyświetlacz nie jest do zaakceptowania w obecnych czasach. Dla mnie może i "rozmiar nie ma większego znaczenia" w przypadku ekranu telefonów ale skoro patrzymy na niego z dość bliska i w miarę często, to ten wyświetlacz powinien cechować się nieco większą jakością, tak by nie męczył nam oczu od samego patrzenia na niego. To co może zmartwić jeszcze potencjalnego użytkownika tego smartfona, to fakt, że powierzchnia tego wyświetlacza rozpoznaje jedynie dwa punkty stuku. Z reguły tych punków jest 5: Pasywny dual SIM Neffos Y5L ma naturalnie dwa sloty na dwie karty SIM. Niemniej jednak, żaden slot nie wspiera 4G/LTE. Idąc dalej, jeden ze slotów wspiera tylko 2G. Może i możemy zapomnieć o korzystaniu z bezprzewodowego internetu w technologi LTE na tym smartfonie ale jakby nie patrzeć, ten dual SIM nie jest do końca bezużyteczny. W dalszym ciągu możemy załadować tutaj SIM od Aero2 i mieć darmowy internet w technologi 3G. Neffos Y5L wspiera co prawda tethering ale w przypadku braku LTE, ta funkcja nie jest raczej zbyt użyteczna. Procesor Qualcomm Snapdragon 210 (MSM8209) Neffos Y5L został wyposażony w 32-bity procesor Snapdragon 210 (MSM8209) od producenta Qualcomm, który dysponuje czterema rdzeniami ARM Cortex-A7 taktowanymi częstotliwością od 200 MHz do 1,1 GHz. Został tutaj także wbudowany układ graficzny Adreno 304 taktowany częstotliwością 400 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. Technologia wykonania tego SoC'a to 28 nm. Pamięć RAM i flash Patrząc dalej na specyfikację Neffos'a Y5L, można zauważyć, że mamy tutaj jedynie 1 GiB pamięci operacyjnej RAM. Jest to stanowczo za mało, by płynnie obsługiwać system, który w tym telefonie został zainstalowany (Android 6.0). Generalnie rzecz biorąc, sam system po uruchomieniu telefonu już zaczyna upychać dane w wirtualnym urządzeniu ZRAM, które robi za przestrzeń wymiany. To urządzenie ZRAM jest skompresowanym wycinkiem pamięci operacyjnej RAM,przez co kompresowanie/dekompresowanie danych w trakcie dostępu do nich spowalnia po pierwsze pracę systemu, a po drugie powoduje większe obciążenie dla procesora, co skraca czas pracy na baterii. Jakby tego było mało, nie mogłem znaleźć w Neffos Y5L autostartu aplikacji. W efekcie część z tych wbudowanych programów działa w tle, choć są one zupełnie zbędne i użytkownik mógłby je wyłączyć zwalniając nieco pamięci RAM, co z pewnością poprawiło by płynność pracy systemu. Niemniej jednak, takiej opcji tutaj najwyraźniej zabrakło, no a skoro sam system ma mało pamięci, to co dopiero powiedzieć o ewentualnej instalacji naszych ulubionych aplikacji? Pamięć flash również nie należy do tych pojemniejszych, bo mamy tutaj 8 GiB, z czego dla użytkownika pozostaje poniżej 5 GiB. Na powyższej fotce mamy również statystyki pamięci operacyjnej RAM. Z lewej strony mamy sytuację zaraz po starcie smartfona, z prawej zaś przy standardowym użytkowaniu telefonu. Widzimy, że urządzenie ZRAM (przestrzeń wymiany SWAP) się zapełnia, co powoduje postępującą degradację wydajności telefonu za sprawą dodatkowych obliczeń przy odczycie/zapisie skompresowanych danych, przez co cierpi również i bateria. Bateria Neffos Y5L jest wyposażony w wyjmowalną baterię litowo-jonową (Li-ion) o pojemności 2020 mAh. Ten akumulator można naładować od 0% do 100% w jakieś 2 godziny i 40 minut dołączoną do zestawu ładowarką. Poniżej są wykresy z procesu ładowania: Jeśli zaś chodzi o rozładowanie baterii, to jest ono nieco szybsze niż powinno być. Działanie zbędnych aplikacji w tle za sprawą braku konfiguracji uruchomionych programów (autostartu) oraz niewystarczająca ilość pamięci operacyjnej RAM odbija się negatywnie na czasie pracy Neffos'a Y5L na baterii. Podczas bezczynności jest on w stanie przetrzymać prawie miesiąc. W przypadku pracy na smartfonie, rozładuje się on nam w jakieś 7 godzin i 50 minut, przynajmniej jeśli brać pod uwagę szacunki, które zwrócił test wydajności Neffos'a Y5L. Wbudowany głośnik Dźwięki wydobywające się z tego wbudowanego głośnika multimedialnego nie zachwycają zbytnio. Szkoda też, że nie było w zestawie słuchawek, które mogłyby nadrobić niezbyt dobrą jakość samego głośnika. Do odtwarzania standardowych rzeczy, typu audycje radiowe czy podkasty raczej się nada. Niemniej jednak, odtwarzanie muzyki czy ścieżki dźwiękowej z filmu już mocno kuleje. Czujniki Zestaw czujników w przypadku Neffos'a Y5L jest nieco uboższy w stosunku do pozostałych modeli telefonów TP-LINK'a. Mamy naturalnie czujnik światła, akcelerometr oraz czujnik zbliżeniowy ale zabrakło magnetometru i nie damy rady przerobić tego smartfona na kompas, a szkoda. Łączność 2G/3G oraz WiFi 2,4 GHz Niestety w Neffos Y5L nie mamy wbudowanego modemu LTE i dostępne są jedynie sieci 2G i 3G. Szkoda też, że tylko jeden ze slotów wspiera 3G. Neffos Y5L obsługuje jedynie standardy DC-HSPA+/HSPA/UMTS: B1/B8(2100/900 MHz) oraz EDGE/GPRS/GSM: B2/B3/B5/B8 (1900/1800/900/850) MHz. Może i nie mamy LTE w smartfonie Neffos Y5L ale przynajmniej nie zabrakło tutaj WiFi 2,4 GHz w standardzie N. Transfer jaki idzie osiągnąć przez tę sieć oscyluje w granicach 50 mbit/s. Jeśli zaś chodzi o zasięg WiFi, to jest on raczej 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: Bluetooth v4.1 (LE) Neffos Y5L ma wbudowany 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. GPS, A-GPS + GLONASS W Neffos Y5L mamy również zaszyty nadajnik GPS. Ten smartfon wpiera także mechanizm A-GPS (Assisted GPS) oraz GLONASS (Globalnaja Nawigacionnaja Sputnikowaja Sistiema). 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. Połączenie GPS i GLONASS daje możliwość bardzo akuratnych pomiarów, co przekłada się na szybsze i dokładniejsze ustalenie pozycji w terenie. Radio FM Dobrze, że nie zabrakło w tym smartfonie radia FM. Szkoda tylko, że nie mamy za bardzo jak go odtworzyć, bo do tego celu są potrzebne przecież słuchawki, które robią za antenę, a takowych w zestawie nie było. Android 6.0 Marshmallow Na uwagę zasługuje również fakt, że Neffos Y5L ma wgrany Android 6.0 Marshmallow. Niestety ten system wymaga minimum tych 2 GiB pamięci operacyjnej RAM, których ten smartfon nie posiada. Dobrze chociaż, że partycja /system/ zajmuje 2 GiB, przez co mamy o 2 GiB więcej na dane użytkownika. Poniżej znajduje się rozpiska temperatur podczas zwykłej pracy telefonu oraz przy 100% obciążeniu procesora: Czy da radę przeprowadzić root na Neffos Y5L Ukorzenienie Androida na Neffos Y5L jest możliwe do przeprowadzenia. Jak Neffos Y5L sprawuje się pod linux Neffos Y5L 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 Y5L 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 Jak wynika z powyższych informacji, Neffos Y5L do najmocniejszych smartfonów nie należy. Bardzo słaby wyświetlacz, brak LTE, mało pamięci RAM i niewielkich rozmiarów flash świadczą raczej o adresowaniu tego urządzenia do użytkowników, którzy nie mają zbytnio wymagań co do nowszych technologi, a jedynie chcą korzystać z tego smartfona jak ze zwykłego telefonu. Generalnie nie mam nic przeciwko takim osobom, którzy wykorzystują telefon "jedynie do dzwonienia", czy od czasu do czasu zrobią nim jakąś fotkę. Ja jednak byłbym w stanie tego Neffos'a Y5L zaakceptować dopiero w momencie, gdyby jakość wyświetlacza nie odbiegała od tego stosowanego w modelach C5, C5MAX czy Y5.
  18. 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.
  19. Bawiąc się ostatnio smartfonem Neffos C5 MAX od TP-LINK, obiecałem sobie, że jak tylko będę miał chwilę czasu, to postaram się ukorzenić Androida, który w tym telefonie siedzi (Lollipop). Generalnie rzecz biorąc, sposób root'owania tego urządzenia jest bardzo podobny do tego, który miałem już możliwość przeprowadzić na innym modelu TP-LINK'a, tj. Neffos C5. Dlatego też poniższy artykuł jest bardzo zbliżony treścią, choć lekko zaktualizowany pod kątem Neffos'a C5 MAX. Grunt, że nie było żadnych problemów z przeprowadzeniem backup'u flash'a telefonu jak i samego procesu root. Narzędzia ADB i fastboot Przede wszystkim, by zabrać się za proces root'owania smartfona Neffos C5 MAX, 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. Narzędzie SP Flash Tool Kolejnym narzędziem, które będzie nam niezbędne jest SP Flash Tool. Niestety nie jest ono włączone do dystrybucji Debian i musimy posiłkować się paczką, którą można znaleźć w podanym wyżej linku. Tutaj ważna uwaga. SP FLash Tool jest przeznaczony tylko dla smartfonów mających SoC od Mediatek. Pobieramy paczkę .zip dla linux'a i wypakowujemy ją. Jako, że SP Flash Tool wykorzystuje do komunikacji interfejs /dev/ttyACM0 , to do poprawnej pracy wymaga on operowania na tym interfejsie. Standardowo tylko administrator systemu oraz członkowie grupy dialout są w stanie korzystać z tego interfejsu. Musimy zatem dodać naszego użytkownika do tej grupy w poniższy sposób: # gpasswd -a morfik dialout Kompletny backup flash'a Neffos C5 MAX Mając zainstalowane te powyższe narzędzia, możemy przejść do zrobienia backup'u całego flash'a, który jest w naszym smartfonie. Proces backup'u najprościej przeprowadzić za pomocą SP Flash Tool. Niemniej jednak, potrzebne nam są pewne informacje, które możemy uzyskać przy pomocy adb . Podpinamy zatem telefon do portu USB komputera i w terminalu wpisujemy poniższe polecenie: # adb shell cat /proc/partinfo Name Start Size pgpt 0x0000000000000000 0x0000000000080000 proinfo 0x0000000000080000 0x0000000000300000 nvram 0x0000000000380000 0x0000000000500000 protect1 0x0000000000880000 0x0000000000a00000 protect2 0x0000000001280000 0x0000000000a00000 lk 0x0000000001c80000 0x0000000000080000 para 0x0000000001d00000 0x0000000000080000 boot 0x0000000001d80000 0x0000000001000000 recovery 0x0000000002d80000 0x0000000001000000 logo 0x0000000003d80000 0x0000000000800000 expdb 0x0000000004580000 0x0000000000a00000 seccfg 0x0000000004f80000 0x0000000000080000 oemkeystore 0x0000000005000000 0x0000000000200000 secro 0x0000000005200000 0x0000000000600000 keystore 0x0000000005800000 0x0000000000800000 tee1 0x0000000006000000 0x0000000000500000 tee2 0x0000000006500000 0x0000000000500000 frp 0x0000000006a00000 0x0000000000100000 nvdata 0x0000000006b00000 0x0000000002000000 metadata 0x0000000008b00000 0x0000000002500000 system 0x000000000b000000 0x0000000100000000 cache 0x000000010b000000 0x0000000019000000 userdata 0x0000000124000000 0x0000000286780000 flashinfo 0x00000003aa780000 0x0000000001000000 sgpt 0x00000003ab780000 0x0000000000080000 Ten zwrócony wyżej wynik jest dla smartfona Neffos C5 MAX. W przypadku innych telefonów, ta tabelka może mieć inną postać i nie możemy kopiować z niej wartości jeśli mamy inne urządzenie. Generalnie rzecz biorąc, to te dane potrzebne nam są do zbudowania pliku scatter.txt , w oparciu o który działa SP Flash Tool. Ten plik to zwyczajna mapa przestrzeni flash'a telefonu, który podzielony jest na szereg widocznych wyżej partycji. Plik scatter.txt dla Neffos C5 MAX Tutaj znajduje się plik scatter.txt (mt6753-neffos-c5-max-tp-link-scatter.txt), który ja wykorzystałem do pracy z Neffos C5 MAX. Kluczowa sprawa, to opisanie każdej partycji. W sumie to musimy odpowiednio dostosować pole partition_index , które jest zwyczajnie kolejnym numerkiem. Z kolei w partition_name podajemy nazwę partycji, którą uzyskaliśmy przez adb . Dalej w linear_start_addr oraz physical_start_addr wpisujemy tę wartość, która została wypisana przez adb w kolumnie Start . Na podobnej zasadzie uzupełniamy partition_size , podając wartość, którą widzieliśmy w adb w kolumnie Size . I to w zasadzie wszystkie zmiany, które musimy wprowadzić do pliku scatter.txt . Póki co nie mam informacji co do pozostałych opcji w tym pliku, wiem tylko, że część z nich jest uzupełniana przez SP Flash Tool podczas przeprowadzania działań w tym programie. Tworzenie backupu Mając plik scatter.txt możemy go wskazać w SP Flash Tool. Przechodzimy zatem do katalogu z wypakowaną zawartością pobranej paczki i uruchamiamy SP Flash Tool wpisując w terminalu ./flash_tool . Powinniśmy zobaczyć okienko, z kilkoma zakładkami. Na jednej z nich widnie napis Download . W niej z kolei znajduje się pozycja Scatter-loading file . To tutaj musimy wskazać ścieżkę do pliku scatter.txt , który utworzyliśmy wcześniej: Teraz przechodzimy na zakładkę Readback i tam dodajemy nową pozycję w tabelce. To tutaj określamy przestrzeń flash'a w telefonie, która zostanie skopiowana na dysk komputera. Nas interesuje cały flash. Dlatego też początek ustawiamy na 0x0 , a koniec musimy obliczyć z danych dostarczanych przez adb . Interesuje nas ostatnia partycja. Ma ona początek na 0x3ab780000 , a jej rozmiar to 0x80000 . Te dwie wartości musimy do siebie dodać, w wyniku czego otrzymujemy 0x3ab800000 i to tę wartość wpisujemy w SP Flash Tool. Region określamy jako EMC_USER : Dodajemy również drugą pozycję, która zrobi nam backup preloader'a. Z tym, że tutaj wybieramy region EMMC_BOOT_1 i określamy początek jako 0x0 , a koniec jako 0x40000 : Teraz wyłączamy telefon. Następnie w SP Flash Tool aktywujemy proces backup'u Neffos'a C5 MAX przyciskając Read Back . Podłączamy telefon do portu USB komputera. Po chwili smartfon powinien nam zawibrować ale nie uruchomi się. Rozpocznie się za to kopiowanie danych z telefonu na dysk. Proces backup'u potrwa dłuższą chwilę. W moim przypadku trwało prawie dwie godziny (transfer na poziomie 3 MiB/s). Ten backup jest nas w stanie zabezpieczyć na wypadek popełnionych błędów przy flash'owaniu telefonu. Podejrzymy jeszcze ten obraz w fdisk/gdisk , by mieć absolutną pewność, że jest w nim faktyczna kopia flash'a Neffos'a C5 MAX: Jak odblokować bootloader w Neffos C5 MAX Mając zrobiony kompletny backup flash'a, możemy przejść do odblokowania bootloader'a. Chodzi o to, że na smartfonach zwykle jest ulokowana partycja /recovery/ . Na niej znajduje się oprogramowanie umożliwiające przeprowadzanie operacji na poziomie systemowym, 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 wyłączamy telefon i włączamy go trzymając Volume Up + Power. Z menu wybieramy tryb fastboot. Następnie w terminalu wpisujemy poniższe polecenia: # fastboot devices 8HCMMZFI89ROBI9H fastboot # fastboot oem unlock Na ekranie smartfona powinno nam pokazać się poniższe ostrzeżenie: Unlock bootloader? If you unlock the bootloader, you will be able to install custom operating system software on this phone. A custom OS is not subject to the same testing as the original OS, and can cause your phone and installed application to stop working properly. To prevent unauthorized access to your personal data, unlocking the bootloader will also delete all personal data from your phone "factory reset". Press the Volume UP/Down buttons to select Yes/No. Wciskamy Volume Up, by potwierdzić chęć odblokowania bootloader'a, po czym restartujemy smartfon: # fastboot reboot Jako, że proces odblokowania bootloader'a usunął wszelkie ustawienia, to jeszcze raz musimy włączyć Opcje Programistyczne, a w nich tryb debugowania portu USB. Wyodrębnianie obrazu partycji /recovery/ z obrazu Neffos'a C5 MAX Mając zrobiony backup flash'a telefonu, możemy z niego wyciągnąć obraz partycji /recovery/ . Musimy tylko zamontować ten obraz w systemie za pomocą losetup . Pamiętajmy, że ten obraz ma wiele partycji. Trzeba zatem nieco dostosować moduł kernela, by wszystkie z tych partycji zostały zamontowane za pomocą jednego polecenia. Informacje na temat tego jak dostosować moduł loop znajdują się tutaj. Przechodzimy zatem w miejsce, w którym zapisaliśmy obraz i montujemy go w poniższy sposób: # cd /path/to/image/ # losetup /dev/loop0 ROM_0 Teraz tworzymy obraz partycji /recovery/ . W tym przypadku /dev/loop0p8 jest urządzeniem, które musimy podać dd : # dd if=/dev/loop0p8 of=./recovery.img # file recovery.img recovery.img: Android bootimg, kernel (0x40080000), ramdisk (0x44000000), page size: 2048, cmdline (bootopt=64S3,32N2,64N2) Pozyskanie obrazu recovery.img z TWRP Musimy także pozyskać obraz recovery.img zawierający TWRP. Niestety, póki co nie ma obrazów dla Neffos'a C5 MAX. 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). Tutaj znajduje się gotowy obraz recovery, który można wgrać na telefon (recovery-neffos-c5-max-tp-link-twrp.img). Warto tutaj zaznaczyć, że nie zawsze taki obraz będzie nam działać bez problemu. W takim przypadku trzeba próbować innych obrazów, aż któryś zadziała. Nie musimy się tez obawiać wgrania złego obrazu na partycję /recovery/ . Jeśli zdarzy nam się wgrać niedziałający obraz recovery.img , to nie uszkodzimy smartfona. Zamiast tego telefon się zrestartuje i przywróci sobie starą partycję /recovery/ , a nas zaloguje do systemu jak gdyby nigdy nic. Przepakowanie obrazu recovery.img z innego smartfona By przepakować obraz przeznaczony na inny smartfon, który jest zbliżony parametrami do naszego Neffos'a C5 MAX, 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 partycji /recovery/ jak i ten 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 partycji /recovery/ z katalogu nadrzędnego i wypakowujemy go za pomocą skryptu unpackimg.sh . Następnie przenosimy tak wyodrębnioną zawartość do katalogu stock/ : $ cp ../recovery_orig.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 Zgodnie z informacją zawartą w tym HOWTO (windows), musimy przekopiować kilka plików z oryginalnego obrazu naszego Neffos'a C5 MAX do obrazu TWRP: $ cp ./stock/split_img/recovery.img-kerneloff ./port/split_img/ $ cp ./stock/split_img/recovery.img-zImage ./port/split_img/ $ cp ./stock/ramdisk/fstab.mt6735 ./port/ramdisk/ $ cp ./stock/ramdisk/meta_init.modem.rc ./port/ramdisk/ $ cp ./stock/ramdisk/meta_init.project.rc ./port/ramdisk/ $ cp ./stock/ramdisk/meta_init.rc ./port/ramdisk/ $ cp ./stock/ramdisk/ueventd.rc ./port/ramdisk/ Z tak przygotowanych plików w katalogu port/ 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 fastboot. Wgrywanie przepakowanego obrazu recovery.img na Neffos'a C5 MAX Wyłączamy telefon i podpinamy go do portu USB. Następnie włączamy go trzymając VolumeUP + Power. Z menu, które nam się pokaże na ekranie telefonu wybieramy tryb fastboot. Wracamy na komputer i przy pomocy narzędzia fasboot wgrywamy wyżej wygenerowany obraz na telefon. # fastboot flash recovery image-new.img target reported max download size of 134217728 bytes sending 'recovery' (12868 KB)... OKAY [ 1.125s] writing 'recovery'... OKAY [ 0.360s] finished. total time: 1.485s Restartujemy telefon ( fastboot reboot ) i wchodzimy w tryb recovery (VolumeUp + Power), by potwierdzić, że nasz nowy obraz recovery się wgrał pomyślnie. W przypadku wgrania poprawnego obrazu, powinniśmy zobaczyć logo TWRP. Jeśli wgrany obraz był nieprawidłowy, to zobaczymy jedynie czarny ekran i nasz Neffos C5 MAX się po chwili uruchomi ponownie w normalnym trybie przywracając oryginalną partycję /recovery/ . SuperSU, BusyBOX, RootCheck i emulator terminala Ostatnią rzeczą na drodze do zrobienia root na Neffos C5 MAX 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 (TWRP jest również w języku polskim): Następnie 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 C5 MAX i zainstalować jakąś aplikację, która pokaże nam czy nasz smartfon ma root'a. Sprawdzenie czy Neffos C5 MAX 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 i w CheckRoot: Instalacja terminala Z BusyBOX'em zostały dostarczone niskopoziomowe narzędzia, które mogą korzystać z uprawnień administratora systemu za sprawą SuperSU. Niemniej jednak, by móc odpalać te programiki, musimy w czymś je uruchomić. Do tego celu potrzebny jest nam shell oraz emulator terminala. Domyślny shell ash jest dostarczany razem z BusyBOX. Terminal musimy doinstalować osobno. Generalnie to 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. Tutaj warto jeszcze zaznaczyć, że ten drugi terminal instaluje sobie również shell dash (domyślny shell w Debianie) . Również w jego przypadku możemy łatwo doinstalować sobie aplikacje za pomocą apt , podobnie jak w Debianie (do tego celu nie jest wymagany root). Jako, że ja korzystam na co dzień z Debiana, to instaluje 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ć aplikacjie 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
  20. Proces root na smartfonie Neffos C5 MAX od TP-LINK można przeprowadzić w miarę bez większych problemów, choć nie jest to rozwiązanie działające OOTB. Niemniej jednak, taki root telefonu czyni go bardziej podatnym na zagrożenia ze strony wrogich aplikacji. Ponadto, kasując czy też zmieniając pliki systemowe, możemy sprawić, że nasze urządzenie zwyczajnie przestanie nam działać, tj. już się nie uruchomi. Niektórzy użytkownicy smartfonów nie zdają sobie z tego sprawy i ukorzeniają Androida bez głębszego zastanowienia się. Mi jako linux'iarzowi, root jest niezbędny do pracy ale czy aby na pewno każdy musi go mieć? Ci z was, którzy taki root systemu przeprowadzili i nie korzystają z niego praktycznie wcale, zastanawiają się pewnie czy istnieje sposób, by cofnąć wprowadzone zmiany i przywrócić Androida do stanu pierwotnego. Krótka odpowiedź brzmi: "oczywiście, że tak" i temu procesowi przyjrzymy się w niniejszym artykule. Czy potrzebny mi jest root Android'a Standardowo w Androidzie każda aplikacja zainstalowana w telefonie ma przypisane indywidualne UID/GID (użytkownika i grupę). Żadna aplikacja nie jest w stanie odczytać danych innych programów, które zainstalowaliśmy w systemie. Zaprzęgając mechanizm root dajemy możliwość pewnym aplikacjom na dostęp do danych każdego innego programu. Jeśli teraz wgramy podejrzaną aplikację, to może ona wykorzystać fakt ukorzenienia Androida i uzyskać dostęp do poufnych danych czy nawet przejąc całkowitą kontrolę nad systemem operacyjnym telefonu, wliczając to podsłuch z mikrofonu, kamery i klawiatury. Dlatego też w pewnych sytuacjach root Androida nie jest wskazany. Trzymając się pewnych zdroworozsądkowych zasad można uniknąć zagrożeń, które niesie ze sobą root systemu. Niemniej jednak, jeśli niezbyt rozważnie korzystamy z telefonu, np. pobieramy aplikacje bez ich uprzedniej weryfikacji, to root może tylko przyczynić się do kompromitacji zabezpieczeń telefonu, przez co potencjalny atakujący może bez problemu uzyskać dostęp, np. do danych konta bankowego. Jakie zmiany po przeprowadzaniu procesu root można cofnąć Standardowo na smartfonie z Androidem mamy min. partycję /system/ oraz /data/ . Na /system/ znajduje się fabryczny Android, czyli ten system, który w tym przypadku został wypuszczony przez TP-LINK. Tej partycji nie można zapisać bez przeprowadzenia procesu ukorzeniania systemu. Z kolei zaś na partycji /data/ są przechowywane wszystkie zmiany jakie użytkownik telefonu wprowadził, np. za sprawą wgrania plików, zmiany konfiguracji/ustawień czy aktualizacji poszczególnych aplikacji. W przypadku posiadania smartfona, który przeszedł proces root, to na takim urządzeniu zostały poczynione pewne zmiany. Przede wszystkim, aplikacje SuperSU i BusyBox wgrały nam pliki do katalogu /system/xbin/ (przynajmniej na Android 5.1 Lollipop). Dodatkowo, każda aplikacja wymagająca uprawnień administratora mogła również wprowadzić jakieś zmiany na partycji /system/ . Wszelkie niestandardowe zmiany (edycja/dodanie/usunięcie plików systemowych) wprowadzane czy to przez nas czy przez aplikacje wymagające root mogą zostać cofnięte przez wgranie wcześniej zrobionego backup'u flash'a telefonu. Oczywiście nie musimy wgrywać całego backup'u, a jedynie tę część, na której znajduje się partycja /system/ oraz /data/ . O ile przywrócenie partycji /system/ jest wielce niezbędne, o tyle przywrócenie partycji /data/ może trwać sporo czasu. Biorąc pod uwagę, że są tam jedynie dane użytkownika, których nie ma za wiele tuż po wyjęciu smartfona z pudełka, to przydałoby się wyczyścić również i tę przestrzeń przed odkorzenieniem Androida. Ten proces możemy przeprowadzić korzystając z Factory Reset z poziomu systemu. Powinien nam on efektywnie te dane bardzo szybko usunąć. Trzeba także pamiętać, że zmiany wprowadzone w procesie ukorzeniania telefonu nie ograniczają się jedynie do partycji /system/ . Została zmieniona przecież także partycja recovery , bez której nie byłby możliwy root Neffos'a C5 MAX. Tę partycję również musimy przywrócić. Odinstalowanie SuperSU (unroot) Od czego zatem zacząć powrót do stock'owego oprogramowania naszego Neffos'a C5 MAX? To pytanie trzeba rozważyć pod kątem wprowadzanych zmian po dokonaniu procesu root. Jeśli nie były one zbyt zaawansowane, np. instalowaliśmy jedynie kilka aplikacji wymagających praw administracyjnych w celu odczytu plików systemowych, to możemy skorzystać z opcji dostępnej w SuperSU, tj. Pełny unroot : Pamiętajmy tylko, by usunąć wszelkie aplikacje wymagające root przed usunięciem SuperSU. W przypadku moich smartfonów Neffos C5 i Neffos C5 MAX, opcja unroot widoczna w SuperSU nie zadziałała z początku. Po przyciśnięciu na ekranie pojawiła się jedynie informacja o czyszczeniu, a proces się zawiesił. Jeśli też natrafiliśmy na tego typu problem, to trzeba zresetować smartfon i ponowić proces unroot bezpośrednio po włączeniu urządzenia. Po odinstalowaniu SuperSU trzeba uruchomić smartfon ponownie. Spróbujmy się teraz zalogować na użytkownika root z poziomu jakiegoś terminala. Powinniśmy zobaczyć poniższy komunikat: Nie musimy się obawiać o dane zgromadzone na partycji /data/ , bo nie zostaną one ruszone w żaden sposób. Podobnie sprawa ma się w przypadku karty SD. No i nie zostaną cofnięte żadne zmiany na partycji /system/ , oczywiście w przypadku, gdy coś zmienialiśmy. Zatem widzimy, że proces likwidacji root w Neffos C5 MAX jest praktycznie automatyczny. Niemniej jednak, co w przypadku, gdy mamy jakieś zmiany na partycji /system/ lub też wgraliśmy niestandardowy ROM? Odpowiedź jest prosta: trzeba przeprowadzić Factory Reset, który wyczyści dane na partycji /data/ oraz przywrócić partycję /system/ z wcześniej utworzonego backupu flash'a smartfona. Trzeba będzie także przywrócić partycję recovery , bo nie została ona odtworzona w procesie unroot przeprowadzonym z poziomu SuperSU. Factory Reset W przypadku wprowadzenia zmian na partycji /system/ (innych niż wgranie SuperSU i BusyBox) dobrze jest pierw usunąć wszystkie dane znajdujące się na partycji /data/ . Chodzi o to, że pliki zgromadzone na tej partycji mogą generować różne problemy w sytuacji, gdy przywraca się oryginalny ROM. Nie jest to regułą ale jeśli chcemy uniknąć błędów, to zalecane jest przeprowadzić pierw Factory Reset. Oczywiście możemy ten krok całkowicie pominąć. W przypadku ewentualnych problemów po flash'owaniu telefonu, Factory Reset będziemy mogli przeprowadzić z poziomu trybu recovery (przyciski Power + Volume UP trzymane podczas startu telefonu). Jeśli jednak chcemy wyczyścić wszystkie dane na partycji /data/ przed flash'owaniem telefonu, to możemy to zrobić z poziomu działającego systemu przechodząc do Ustawienia => Kopia i kasowanie danych => Ustawienia fabryczne: Przywrócenie partycji /system/ na Neffos C5 MAX Jak już zostało wspomniane wyżej, na partycji /system/ znajduje się ROM TP-LINK z Androidem 5.1 (Lollipop). By powrócić do niego, musimy przywrócić całą partycję. Możemy to zrobić z poziomu aplikacji SP Flash Tool, oczywiście zakładając, że pierw utworzyliśmy backup flash. Zamontujmy ten backup w systemie przy pomocy poniższego polecenia: # losetup /dev/loop0 /media/Kabi/neffos/backup_phone/NeffosC5MAX-orig.img W systemie powinniśmy mieć dostęp do szeregu partycji tego obrazu. Jeśli się tak nie stało to musimy odpowiednio skonfigurować moduł loop. Podejrzymy także w gdisk jak prezentuje się tablica partycji samego obrazu. Interesuje nas generalnie pozycja system : # gdisk -l /media/Kabi/neffos/backup_phone/NeffosC5MAX-orig.img Number Start (sector) End (sector) Size Code Name ... 20 360448 8749055 4.0 GiB 0700 system ... Widzimy przy niej numer 20. Teraz w systemie odszukujemy urządzenie loop mające numer 20. W moim przypadku jest to /dev/loop0p20 . Możemy także zamontować tę partycję, by się upewnić, że faktycznie znajduje się na niej stock'owy system: # mount -o ro /dev/loop0p20 /mnt Jeśli nie ma żadnego błędu i możemy przeglądać katalog /mnt/ bez problemu, oznacza to, że jest to ta partycja, której dane musimy przesłać na smartfona. Odmontujmy ją zatem i zrzućmy dane z tego urządzenia loop do pliku przy pomocy dd : # dd if=/dev/loop0p20 of=./orig_system.img bs=2M 2048+0 records in 2048+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 216.991 s, 19.8 MB/s Mając wyodrębnioną partycję /system/ możemy ją wgrać na smartfon przy pomocy SP Flash Tool. Potrzebna nam jest tylko mapa przestrzeni flash, a ta siedzi w pliku mt6753-neffos-c5-max-tp-link-scatter.txt. Jest tam również pozycja dotycząca partycji /system/ . Odpalamy zatem SP Flash Tool i przechodzimy na zakładkę Download, gdzie wskazujemy nasz plik scatter.txt : Mamy tutaj wyszczególnione obszary pamięci flash w Neffos C5 MAX, które możemy zapisać. Nas interesuje w tej chwili tylko pozycja system . Zaznaczamy ją i upewniamy się, że nad tabelką wybraliśmy Download Only . Może i tutaj jest słówko Download ale trzeba patrzyć na ten proces z perspektywy telefonu, czyli to on będzie pobierał dane z komputera. Podłączamy teraz Neffos'a C5 MAX do portu USB komputera. Następnie w SP Flash Tool przyciskamy przycisk Download i wyłączamy telefon. Następnie próbujemy go uruchomić w trybie recovery przyciskając przycisk Power + Volume UP jednocześnie. Smartfon się nie uruchomi ale rozpocznie się proces flash'owania. Sam proces powinien zakończyć się powodzeniem. Teraz można wyciągnąć smartfona z portu USB i uruchomić. Przywrócenie partycji recovery W przypadku partycji recovery możemy postąpić dokładnie w taki sam sposób, tj. wgrać stock'owy obraz przy pomocy SP Flash Tool. Niemniej jednak, nie musimy tego robić po wgraniu obrazu partycji /system/ . W moim przypadku, partycja recovery została automatycznie odtworzona po wgraniu obrazu partycji /system/ . Sprawdzenie czy Neffos C5 MAX ma root'a Ostatnią rzeczą, która nam została to na własne oczy przekonanie się czy wszystkie zmiany zostały cofnięte. Factory reset powinien nam wyczyścić wszystkie dane na partycji /data/ . Powinniśmy mieć także stock'ową partycję /system/ oraz recovery . Z kolei root możemy sprawdzić za pomocą Root Check: Zablokowanie bootloader'a Ostatnią rzeczą, którą musimy zrobić, to zablokowanie bootloader'a. Odpalamy zatem smartfon w trybie fastboot (Power + VolUp). Podłączamy także urządzenie do portu USB komputera i wpisujemy w terminalu poniższe polecenie: # fastboot oem lock ... (bootloader) Start lock flow OKAY [4.132s] finished. total time: 4.132s Po wydaniu tej komendy, na ekranie smartfona pojawi się poniższa informacja: If you lock the bootloader you will need to install official operating system software on this phone. To prevent unauthorized access to your personal data, locking the bootloader will also delete all personal data from your phone (a "Factory data reset"). Press the Volume Up/Down button to select Yes or No. Yes (Volume Up) Lock bootloader No (Volume Down) Do not lock bootloader Proces zablokowania bootloader'a usuwa wszystkie dane użytkownika (Factory Reset), zatem upewnij się, że zrobiliśmy ewentualny backup. Przyciskamy teraz Volume Up. Po chwili zostaniemy przeniesieni do menu wyboru. Restartujemy telefon wpisując w terminalu poniższe polecenie: # fastboot reboot Smartfon zrestartuje się parokrotnie podczas procesu blokowania bootloader'a ale ostatecznie system powinien się bez większego problemu załadować na domyślnych ustawieniach.
  21. Jeszcze nie tak dawno temu ludzkość była w stanie obejść się bez komputera, a dzisiaj raczej już wszyscy mamy z nim styczność w większym lub mniejszym stopniu. Spora część osób nawet sobie tego faktu nie uświadamia mając jednocześnie w kieszeni smartfona czy jakiś inny telefon, a przecie te urządzenia są w zasadzie komputerami, tylko nieco mniejszymi w porównaniu do desktopowych odpowiedników. Na dobrą sprawę to właśnie dzięki tym sprzętom jesteśmy w stanie komunikować się z osobami na drugim końcu świata prawie w czasie rzeczywistym. Jakby wyglądał nasz świat bez tych malutkich i niepozornych stworzeń informatycznych, które towarzyszą nam w codziennym życiu praktycznie non stop? Na to pytanie raczej każdy z nas musi sobie sam udzielić odpowiedzi, bo ta technologia niekoniecznie zmieniła otaczającą nas rzeczywistość w stopniu jednakowym dla nas wszystkich. Niemniej jednak, rozwój technologiczny ciągle postępuje i obecnie mamy na rynku smartfony 4 czy nawet 8 rdzeniowe wyposażone w 2-4 GiB RAM. Jakiś czas temu byłem w stanie przetestować smartfon Neffos C5 od TP-LINK, który miał właśnie 4 rdzenie i 2 GiB pamięci operacyjnej. Niemniej jednak, ten producent ma również w ofercie i inne modele telefonów, min. Neffos C5 MAX (TP702A), który również trafił w moje łapki. Postanowiłem zatem go poddać testom i sprawdzić czy jest on w stanie zadowolić takiego wybrednego linux'iarza jak ja. Zawartość opakowania Opakowanie, w którym dotarł do mnie Neffos C5 MAX, jest raczej standardowe jak na pudełko skrywające w środku smartfon i bardzo podobne do tego, które miał Neffos C5, z tym, że nieco większe. Poniżej zaś znajduje się cała zawartość opakowania: Poza samym smartfonem, w zestawie mamy również słuchawki z wtykiem minijack 3,5 mm: Jest też ładowarka 2A/5V: Jak i również standardowy przewód USB, przy pomocy którego możemy podłączyć smartfon do ładowarki jak i bezpośrednio do portu USB komputera. Specyfikacja Neffos C5 MAX Ten model Neffos'a C5 MAX, który do mnie dotarł jest w kolorze białym, choć są również i czarne/grafitowe. Dla mnie kolor nie ma większego znaczenia o ile urządzenie działa i realizuje powierzone mu funkcje bez zarzutu. Sam smartfon jest za do dość sporych rozmiarów (wy/sz/gr): 152x76x9 mm. Jak dla mnie, to jest on trochę za duży. Dla porównania Neffos C5 idealnie leżał w mojej łapce. Z kolei waga Neffos'a C5 MAX to około 160 gramów. Obudowa i jej wnętrze Obudowa smartfona Neffos C5 MAX jest generalnie z plastiku. Na lewej krawędzi nie ma umiejscowionych żadnych przycisków czy gniazdek, za to na prawej krawędzi znajduje się przycisk głośności (VolumeUp i VolumeDown) oraz przycisk zasilania (Power). W dolnym rogu mamy lekkie wcięcie umożliwiające łatwe otworzenie obudowy telefonu: Na górnej krawędzi smartfona mamy zaś jedynie gniazdko słuchawkowe: Za to na dolnej krawędzi jest standardowo port mikro USB oraz mikrofon do rozmów telefonicznych: Jeśli zaś chodzi o przód smartfona, to większość zajmuje naturalnie wyświetlacz. Przy górnej krawędzi mamy zaś (patrząc od lewej strony) czujnik światła, głośnik oraz aparat przedni 5 mpix (2560x1920 px fotki, 640x480 px video). Między głośnikiem, a aparatem jest również czerwona/zielona dioda powiadomień. Z tyłu Neffos'a C5 MAX mamy z kolei aparat 13 mpix (3120x4160 px fotki, 1920x1080 px video) z przysłoną f/2.0 . Z lewej strony aparatu mamy zaś dwie diody robiące za lampę błyskową jak i za latarkę. Nad aparatem został zaś ulokowany mikrofon z redukcją szumu. Ten tylny aparat jest w moim odczuciu sporo lepszy w porównaniu do tego, który jest w Neffos C5. Chodzi generalnie o jakość fotek czy filmów robionych przy słabym oświetleniu. Neffos C5 MAX radzi sobie z tym zadaniem o wiele lepiej. Niemniej jednak przedni aparat nie zachwyca, a video w 640x480 px nie przekracza progów moich minimalnych standardów. Generalnie to ja bym się nie obraził, gdyby tego aparatu przedniego zabrakło, bo użytek z niego nie jest zbyt wielki. Niżej przy dolnej krawędzi obudowy mamy dziurki na głośnik multimedialny: Wewnątrz obudowy znajdziemy za to baterię 3045 mAh. Niestety jest to wbudowana bateria i nie damy rady jej wyciągnąć i ewentualnie sami wymienić, gdy zajdzie taka potrzeba. Na plus za to można zaliczyć umiejscowienie slotów oraz karty SIM i kartę mikro SD (max. 32 GiB). Karty nie są blokowane w żaden sposób i można je bez problemu usnąć bez potrzeby wyłączania telefonu. Może nie jest ten zabieg zalecany w przypadku kart SIM ale jest to bardzo użyteczna właściwość w przypadku karty SD, którą można ręcznie odmontować w systemie i wyciągnąć bez uszkadzania zgromadzonych na niej danych. Wyświetlacz IPS 5,5" Neffos C5 MAX dysponuje wyświetlaczem IPS (In-Plane Switching) 5,5 cala o rozdzielczości 1920x1080 px chroniony szkłem Corning Gorilla. Ilość punktów na cal (PPI) to 403, co przekracza minimalne 300, przy których ludzkie oko może lekko się buntować patrząc na ekran, zwłaszcza podczas czytania tekstu. Czcionki są ostre i raczej nie mam im nic do zarzucenia. Jeśli zaś chodzi o kolory i kąty widzenia, to nie ma przekłamań kolorów przy spoglądaniu na telefon nawet pod dość ostrymi kątami. Kontrast (1600:1) jak i jasność ekranu również jest bardzo zadowalająca. Nie mogę złego słowa powiedzieć o maksymalnej jasność i raczej nie powinniśmy mieć problemów z operowaniem na smartfonie w bardzo słoneczne dni w środku lata. Niemniej jednak, minimalna jasność mogłaby być nieco niższa, tj. ekran mógłby być nieco ciemniejszy, bo w nocy jednak idzie odczuć lekki dyskomfort. Automatyczne dostosowanie jasności działa z lekkim opóźnieniem ale jest płynne. Pasywny Dual SIM To co jest standardem w przypadku telefonów produkowanych przez TP-LINK, to fakt implementacji dual SIM w każdym modelu smartfona, który został przez tego producenta wypuszczony na rynek. Każdy z tych SIM'ów może być 2G/3G/4G. Ja akurat bardzo cenię sobie to rozwiązanie, bo korzystam z niego non stop i chyba nie zaprzestanę, zwłaszcza po ostatnich doniesieniach w sprawie darmowego internetu Aero2, który będzie działał jeszcze co najmniej trzy lata. Mając dual SIM w smartfonie, mam również i darmowy internet. Choć jakby nie patrzeć brakuje mi jeszcze jednego gniazdka na dodatkowy SIM, także chciałbym się doczekać Neffos'a oferującego triple SIM (albo może i quad SIM). Może to dla wielu ludzi wydawać się dziwne ale dla zagorzałego zwolennika prepaidów, posiadanie karty SIM u kilku operatorów GSM jest wielce praktyczne i znacząco obniża koszty rozmów. Procesor MTK MT6753 (8 rdzeni) Smartfon Neffos C5 MAX jest póki co najmocniejszym smartfonem TP-LINK'a dostępnym na polskim runku. To co najbardziej wyróżnia ten telefon od pozostałych modeli tego producenta, to fakt zastosowania w nim 64-bitowego procesora MediaTek MTK MT6753 (datasheet), który włada 8 rdzeniami opartymi na architekturze ARM Cortex-A53 taktowanymi dynamicznie zegarem od 300 MHz do 1,3 GHz. Układ graficzny, który został zastosowany w tym smartfonie to ARM Mali-T720 MP3 taktowany zegarem 450 MHz będący w stanie obsłużyć wyświetlacz w rozdzielczości 1280 x 1920 pikseli (FHD) oraz nagrywać i odtwarzać materiały wideo w rozdzielczości maksymalnej 1080p przy 30 FPS'ach. 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/1.2 oraz DirectX9. Proces technologiczny tego SoC'a to 28 nm. Pamięć RAM i flash Podobnie jak i w przypadku dual SIM, dla mnie standardem jest również stosowanie w obecnych smartfonach 2 GiB pamięci operacyjnej RAM. Raczej bym się nie odważył na zakup telefonu z Androidem w wersji 5, 6 czy 7, który ma mniej niż 2 GiB RAM. Jest bowiem spore prawdopodobieństwo, że taki system nie będzie działał płynnie. Na szczęście Neffos C5 MAX spełnia moje minimalne wymagania w zakresie dostępnej pamięci operacyjnej, tj. ma 2 GiB, z czego około 500 MiB jest używane przez system i wbudowane aplikacje: Jeśli zaś chodzi o pamięć flash Neffos'a C5 MAX, to dysponuje on 16 GiB. Niemnie jednak, do dyspozycji użytkownika jest około 10 GiB. Nie wiem czemu TP-LINK tak marnotrawi miejsce w tych smartfonach z serii Cx. Jak się popatrzy na układ partycji na flash tych modeli telefonów, to partycja /system/ ma 4 GiB. Z czego obraz ROM'u zajmuje około połowy. Zatem bez przeprowadzenia procesu root Androida, to miejsce pozostanie niewykorzystane i na dzień dobry tracimy prawie 2 GiB, z których 3/4 można by z powodzeniem dodać do partycji /data/ , tj. na dane użytkownika. To marnotrawstwo jakże cennego miejsca na pamięci flash smartfona zdaje się być ograniczone w nowszych seriach Neffos'ów, dla przykładu Yx. W ich przypadku partycja /system/ jest troszeczkę większa niż sam ROM. W efekcie zamiast 10 GiB na dane, mamy około 12 GiB. Nie wiem czy da radę jakoś zaradzić tej sytuacji w przypadku Neffos'ów z serii Cx ale widziałem na necie możliwość przepartycjonowania flash'a smartfona. Jeśli uda mi się przeprowadzić taki proces z powodzeniem, to z pewnością podlinkuję go tutaj. Oczywiście nie obejdzie się bez ukorzeniania Androida. (FIXME) Bateria Jak widzieliśmy na jednej z powyższych fotek, w Neffos C5 MAX bateria jest niestety zamontowana na stałe. Niemniej jednak, ma te swoje 3000 mAh z lekkim hakiem. Jak wygląda sprawa ładowania baterii tego smartfona? Niby w zestawie jest dołączona ładowarka 2A/5V ale z tego co zauważyłem, to Neffos C5 MAX nie pobiera podczas ładowania więcej niż 0,92 A - 0,95 A. Dlaczego zatem TP-LINK dorzucił do zestawu taką ładowarkę? Dla kontrastu, w pozostałych modelach jest już ładowarka 1A/5V i w tym przypadku również by ona wystarczyła. Zostawmy może w spokoju sprawę samej ładowarki i przejdźmy do bardziej interesującej kwestii czyli do czasu ładowania tego smartfona 0% do 100%. Wygląda na to, że ten czas oscyluje w graniach 4 godzin, czyli jest to bardzo dużo. Wiemy zatem, że ten model nie wspiera szybkiego ładowania, a szkoda. Poniżej są wykresy z procesu ładowania: Jeśli zaś chodzi o rozładowanie baterii, to tutaj już sprawa wygląda dość przyzwoicie. Z szacunków Androida, w pełni naładowany Neffos C5 MAX będący w spoczynku rozładowuje się jakieś 22 dni. Jeśli zaś chodzi o rozładowanie baterii podczas używania telefonu, to ten czas ulega dość znacznemu skróceniu i wynosi około 8 godzin 20 i minut. Przynajmniej tyle zwrócił test wydajności przeprowadzany w PCMark dla Neffos C5 MAX. Głośnik i słuchawki Myślałem, że może ten wbudowany głośnik jest nieco lepszej jakości w Neffos C5 MAX w stosunku do Neffos C5 ale jednak mam wrażenie, że to dokładnie ten sam hardware i nie słyszę praktycznie żadnej różnicy w wydobywającym się dźwięku. Może i wielu użytkowników smartfonów traktuje te urządzenia jako zwykle telefony i uważa, że nie powinny one zbytnio wydawać z siebie żadnych odgłosów, a ewentualną muzykę lepiej słuchać przez słuchawki ale ja, gdy tylko mogę, to unikam stosowania słuchawek. Niemniej jednak, dźwięk w słuchawkach tych dołączonych do zestawu jest sporo lepszej jakości, choć też do najlepszych nie należy. Jeśli chodzi o dźwięk, to jednak bym oczekiwał czegoś więcej. Za to na plus mogę zaliczyć przesyłanie dźwięku przez protokół bluetooth. Czujniki Czujniki, w które został wyposażony Neffos C5 MAX, są raczej standardowe. Mamy tutaj akcelerometr, czujnik zbliżeniowy, czujnik światła no i magnetometr umożliwiający przerobienie smartfona na elektroniczny kompas: Niemniej jednak, brakuje mi tutaj żyroskopu, wysokościomierza, termometru, barometr no i oczywiście licznika Geigera. To tak na wypadek apokalipsy zombi. Może przesadzam ale ten licznik Geigera bardzo by mi się przydał. Łączność 2G/3G/LTE Neffos C5 MAX zalicza się do tej grupy smartfonów, które mają wbudowany modem LTE kategorii 4 (Cat4). Teoretycznie jesteśmy w stanie osiągnąć transfer na poziomie 150/50 mbit/s (download/upload), a jak wygląda realna prędkość? Muszę przyznać, że trochę się zdziwiłem: W sumie nigdy wcześniej się nie zbliżyłem do 100 mbit/s po LTE ale najwyraźniej mój operator GSM poprawił nieco swoją infrastrukturę sieci w okolicy. 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 C5 Max 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 Podobnie jak i bez LTE, szanujący się smartfon nie może się obejść bez WiFi. Neffos C5 MAX może i posiada obsługę WiFi ale jedynie w paśmie 2,4 GHz, a wiemy, że to pasmo jest ździebko zapchane. Obecnie dla mnie standardem jest obsługa sieć WiFi w paśmie 5 GHz. Bezprzewodowe routery oferujące takie połączenia są już praktycznie w zasięgu każdej osoby. Dlatego też uważam, że WiFi 5 GHz powinno w smartfonie się znaleźć. Ten nadajnik WiFi, który jest w Neffos'ie C5 MAX, obsługuje standard N do 150 mbit/s, czyli pojedynczy strumień przestrzenny. Transfer jaki udało mi się uzyskać za pomocą tego telefonu po WiFi oscylował w granicach 100 mbit/s, czyli mniej więcej standardowo. Jeśli zaś chodzi o zasięg WiFi, to też jest on raczej 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: Udostępnianie połączenia 3G/LTE oraz WiFi (tethering) Neffos C5 MAX 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 C5 MAX do portu USB komputera i przełączeniu telefonu w tryb tethering'u: kernel: usb 2-1.1: new high-speed USB device number 8 using ehci-pci kernel: usb 2-1.1: New USB device found, idVendor=2357, idProduct=031e kernel: usb 2-1.1: New USB device strings: Mfr=2, Product=3, SerialNumber=4 kernel: usb 2-1.1: Product: Neffos kernel: usb 2-1.1: Manufacturer: TP-LINK kernel: usb 2-1.1: SerialNumber: 8HCMMZFI89ROBI9H 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, 26:fa:ce:b5:72:9d kernel: usbcore: registered new interface driver rndis_host Jedne co musimy zrobić, to skonfigurować adresację IP na interfejsie usb0 . Warto jeszcze tutaj zaznaczyć, że funkcja Turbo Pobieranie (o tym za moment) nie działa, gdy tethering jest aktywny. Bluetooth v4.0 (LE) W Neffos C5 MAX nie mogło zabraknąć również Bluetooth w wersji 4.0. Może nie jest to najnowsza wersja tego standardu ale najważniejsze, że mamy tutaj do czynienia z technologią Low Energy (LE), czyli w zamian za obniżony transfer danych, moduł bluetooth konsumuje o wiele mniej energii, co wydłuża czas pracy na baterii. A-GPS oraz GLONASS Korzystanie z analogowych map i kompasów raczej wychodzi z mody. Może warto jest mieć taki przeżytek jako backup na wypadek jakiegoś globalnego kataklizmu ale o wiele większe korzyści i komfort użytkowania daje nawigacja satelitarna, którą możemy mieć w telefonie o ile ten ma nadajnik GPS. Na szczęście Neffos C5 MAX takowe urządzenie również posiada. Ten smartfon wpiera takżę mechanizm A-GPS (Assisted GPS) oraz GLONASS (Globalnaja Nawigacionnaja Sputnikowaja Sistiema). 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. Połączenie GPS i GLONASS daje możliwość bardzo akuratnych pomiarów, co przekłada się na szybsze i dokładniejsze ustalenie pozycji w terenie. Tu jeszcze tylko taka informacja, że Neffos C5 MAX ma wspólną antenę dla 2.4 GHz WiFi, 2.4 GHz Bluetooth i 1.575 GHz GPS. Radio FM Z radiem jest dokładnie taka sama sytuacja co w przypadku GPS. Mając internet raczej nie potrzebujemy już takiego wynalazku jak Radio FM, no bo przecie każda szanująca się rozgłośnia radiowa nadaje strumień w internecie, a mając dostęp do WiFi czy LTE/3G możemy bez problemu sobie dowolną stację włączyć i nie musimy przy tym się ograniczać do lokalnych stacji radiowych. Niemniej jednak, w przypadku cenzury, czy też na wypadek wojny, raczej internet zostanie zablokowany i dobrze jest mieć w zapasie zwykły odbiornik FM tak, by wiedzieć co się w świecie dzieje. By korzystać z tego radia trzeba mieć podłączone słuchawki, choć dźwięk można przesłać bezpośrednio na głośnik. OTG OTG to mechanizm umożliwiający podłączenie do portu mikro USB w smartfonie zewnętrznej klawiatury, myszy, dysku twardego, pendrive i innych tego typu urządzeń. Neffos C5 MAX jest póki co jedynym modelem, który wspiera OTG, choć w zestawie nie było dołączonego odpowiedniego adaptera. Generalnie taki przewód OTG nie jest drogi ale są dwie wersje. Ta bardziej ficzerzasta umożliwia dostarczenie zewnętrznego zasilania do podłączanych do smartfona urządzeń. Jeśli dysponujemy jedynie zwykłym adapterem, to taka klawiatura czy mysz jest zasilana przez smartfon. Ja akurat posiadam tylko zwykł kawałek przewodu ale mam też aktywny HUB USB 3.0 UH720, który może robić w roli zasilacza. Może i Neffos C5 MAX ma wsparcie dla OTG ale jest ono niepełne. Sprzęt taki jak klawiatura czy mysz będzie nam bez problemu na tym smartfonie działać, nawet bez dodatkowego zasilania ale już nie damy rady podłączyć dysku czy pendrive. Choć na dobrą sprawę nie wiem czemu, teoretycznie dioda na pendrive miga po podłączeniu do smartfona ale ten nie rozpoznaje urządzenia. Wygląda zatem na to, że brakuje w systemie jakiegoś modułu. Jestem zdania, że po ukorzenieniu Androida da radę obsługę zewnętrznych dysków włączyć, choć do końca jeszcze nie wiem jak ale jeśli będzie to możliwe to z pewnością to zrobię i podlinkuję tutaj stosowny artykuł. (FIXME) Turbo Pobieranie Kolejną ciekawą rzeczą, którą odróżnia smartfon Neffos C5 MAX od pozostałych modeli, to fakt wspierania czegoś co się nazywa Turbo Pobieranie. Standardowo w smartfonach z internetu możemy korzystać albo za sprawą domowego połączenia WiFi, albo też bezpośrednio przez łącze operatora GSM (dane pakietowe). Turbo Pobieranie oferuje nam możliwość wykorzystania obu tych łącz przy pobieraniu dużych plików. Gdy ta opcja jest aktywna, część pliku jest pobierana przez WiFi, a część przez operatora GSM. Jeśli zatem transfer na WiFi mamy 50 mbit/s i na łączu operatora GSM również 50 mbit/s, to taki plik będzie się pobierał w sumie 100 mbit/s. Wykorzystanie obu łącz jest monitorowane w czasie rzeczywistym: Android 5.1 Lollipop Smartfonem Neffos C5 MAX zarządza Android w wersji 5.1 (Lollipop). Szkoda, że jeszcze nie doczekaliśmy się aktualizacji do wersji 6.0. Nie wiem niestety czy i ewentualnie kiedy TP-LINK wypuści stosowny update. Niemniej jednak, ten system, który jest zainstalowany działa płynnie i nie mam mu praktycznie nic do zarzucenia. Komfort pracy na telefonie jest zadowalający. Smartfon się praktycznie nie grzeje i działa przyzwoicie. Jedyny minus to brak nowszej wersji systemu, no i może również fakt wykorzystywania oprogramowania FOTA od Adups, którego analiza wykazała, że przesyła ono prywatne informacje użytkowników gdzieś w świat. Poniżej jest zestawienie temperatur podczas standardowej pracy telefonu (po lewej) i przy 100% obciążeniu procesora (po prawej): Czy da radę przeprowadzić root na Neffos C5 MAX Proces ukorzeniania Androida na Neffos C5 MAX jest możliwy i jest on w miarę bezproblemowy. Opis jak przeprowadzić proces root smartfona Neffos C5 MAX jest dostępny tutaj. Jak Neffos C5 MAX sprawuje się pod linux Generalnie rzecz biorąc, Neffos C5 MAX 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 C5 MAX 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 Nie mam zbytnio większych zastrzeżeń do Neffos'a C5 MAX. W gry nie gram, a nawet jakbym grał, to z pewnością nie zadowoliłby mnie nawet smartfon za xxxx dolców (w x podstawić dowolną cyfrę). Aparat tylny mógłby być nieco lepszy i jeśli chodzi o mnie, to bez problemu bym poszedł na kompromis zakładający usunięcie przedniego aparatu, by tylko ten z tyłu smartfona robił zdjęcia w jeszcze lepszej jakości. Podoba mi się funkcja Turbo Pobierania jak i OTG. Skoda tylko, że OTG nie wspiera dysków czy pendrive. Najbardziej jednak mi się we znaki daje nie za dobra jakość dźwięku z głośnika no i brak WiFi 5 GHz. Gdyby te powyższe rzeczy poprawić, to w może w końcu trafię na niedrogi smartfon spełniający wszystkie moje oczekiwania.
  22. Ostatnio pisałem trochę o konfiguracji serwera VPN na Debianie oraz podłączaniu do niego różnych linux'owych klientów, w tym też smartfonów wyposażonych w system Android. O ile konfiguracja pojedynczego klienta OpenVPN nie jest jakoś szczególnie trudna, to mając w swojej sieci domowej kilka urządzeń zdolnych łączyć się z internetem zarówno przewodowo jak i bezprzewodowo, to dostosowanie konfiguracji na każdym z tych sprzętów może być ździebko problematyczne. To co łączy te wszystkie urządzenia w naszym domu, to router WiFi. Zwykle każdy komputer, nawet ten najmniejszy, łączy się z takim routerem w celu nawiązania połączenia ze światem. Dlatego też zamiast konfigurować osobno wszystkie te urządzenia elektroniczne, możemy skonfigurować sobie router w taki sposób, by cały zebrany ruch z sieci lokalnej przesłał do serwera VPN. Standardowej klasy routery nie wspierają połączeń VPN i by taki mechanizm zaimplementować potrzebne nam będzie alternatywne firmware pokroju LEDE/OpenWRT. W tym artykule postaramy się skonfigurować połączenie VPN dla sieci domowej w oparciu o router Archer C2600 od TP-LINK, który ma wgrany najnowszy snapshot LEDE Designated Driver (r2392). Niezbędne oprogramowanie na potrzeby VPN Nie da się ukryć, że oprogramowanie, które umożliwi nam nawiązanie połączenia VPN, trochę waży. Trzeba także brać pod uwagę fakt szyfrowania całego ruchu, co też obciąży mocno procesor routera. Te dwie rzeczy nie stanowią aż takiego problemu w przypadku Archer'a C2600, bo on ma flash 32 MiB i dwa rdzenie taktowane 1,2 GHz: Na innych routerach, które mają mniejszy flash i słabszy procesor, OpenVPN może sprawić drobne problemy, zwłaszcza przy mocniejszych szyfrach. O ile w przypadku wolnego miejsca na flash możemy coś poradzić, np przeprowadzić extroot, o tyle w przypadku procesora zbytnio nic nie zrobimy i taki dodatkowy narzut (overhead) odbije się spowolnieniem transmisji danych. Z tego co zauważyłem w LEDE mamy z grubsza trzy pakiety, które mogą nam posłużyć do skonfigurowania klienta VPN, są to: openvpn-nossl , openvpn-openssl oraz openvpn-polarssl . Ten pierwszy pakiet możemy sobie darować, bo nie zapewnia on wsparcia dla szyfrowanego połączenia z VPN. Musimy zdecydować się na jeden z dwóch pozostałych pakietów. Generalnie rzecz biorąc PolarSSL ma niby zastąpić OpenSSL ale znowu OpenVPN ma pewne ograniczenia w przypadku wykorzystywania PolarSSL. Dlatego też zainstalujemy sobie openvpn-openssl , z tym, że nasz router musi mieć minimum 1 MiB wolnego miejsca na flash'u. Logujemy się zatem na router i wydajemy w terminalu poniższe polecenia: # opkg update # opkg install openvpn-openssl Konfiguracja klienta VPN na LEDE/OpenWRT Z pakietem openvpn-openssl został dostarczony skrypt startowy zlokalizowany w /etc/init.d/openvpn i jeśli chcemy, aby klient VPN łączył się automatycznie z serwerem po starcie routera, to naturalnie przydałoby się dodać ten skrypt do autostartu w poniższy sposób: # /etc/init.d/openvpn enable Konfiguracja dla demona openvpn jest przechowywana w pliku /etc/config/openvpn i musimy ją sobie dostosować w oparciu o konfigurację serwera VPN, z którym zamierzamy się połączyć. Ten plik konfiguracyjny jest dość rozbudowany i ma około 400 linijek. Większość z nich to komentarze. Plik /etc/config/openvpn jest podzielony na trzy sekcje. Pierwsza z nich dotyczy konfiguracji klienta VPN za pomocą zewnętrznego pliku. Druga dotyczy konfiguracji serwera VPN na routerze (nas to zbytnio nie interesuje). Trzecia sekcja zaś umożliwia skonfigurowanie klienta VPN za pomocą interfejsu UCI. Konfiguracja OpenVPN w zewnętrznym pliku W przypadku, gdy skonfigurowaliśmy sobie połączenie z serwerem VPN na komputerze, to powinniśmy dysponować stosownym plikiem konfiguracyjnym, który możemy wgrać na router. Następnie w pliku /etc/config/openvpn musimy ustawić jedynie poniższe parametry: ... config openvpn custom_config option enabled 1 option config /etc/openvpn/morfitronik.conf ... W pliku /etc/openvpn/morfitronik.conf umieszczamy konfigurację dla klienta OpenVPN: client dev tun proto udp remote 11.22.33.44 1194 resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun cipher AES-256-CBC tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 auth SHA512 keysize 256 tls-version-min 1.2 comp-lzo verb 3 auth-nocache remote-cert-tls server verify-x509-name "morfitronik-server-vpn" name key-direction 1 <ca> -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- </cert> <key> -----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY----- </key> <tls-auth> -----BEGIN OpenVPN Static key V1----- .... -----END OpenVPN Static key V1----- </tls-auth> Po wyjaśnienie użytych tutaj opcji odsyłam do wpisu podlinkowanego we wstępie. Konfiguracja OpenVPN przez UCI Alternatywną metodą konfiguracji klienta OpenVPN na LEDE/OpenWRT jest skorzystanie z interfejsu UCI. W pliku /etc/config/openvpn na samym dole mamy odpowiednią sekcję. Włączamy ją przestawiając poniższy parametr: ... config openvpn sample_client option enabled 1 ... Dalej musimy uwzględnić wszystkie opcje, które zwykle podaje się w pliku konfiguracyjnym OpenVPN, z tym, że musimy je poprzedzić słówkiem option . Poniżej przykład: ... option client 1 option dev tun option proto udp list remote "11.22.33.44 1194" option resolv_retry infinite option nobind 1 option persist_key 1 option persist_tun 1 option user nobody option ca /etc/openvpn/certs/morfitronik-ca.crt option cert /etc/openvpn/certs/morfitronik-client-vpn-router-c2600.crt option key /etc/openvpn/certs/morfitronik-client-vpn-router-c2600.key option ns_cert_type server option tls_auth "/etc/openvpn/certs/morfitronik-ta.key 1" option cipher AES-256-CBC option tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 option auth SHA512 option keysize 256 option tls-version-min 1.2 option remote-cert-tls option verify-x509-name "morfitronik-server-vpn name" option comp_lzo yes option verb 4 Problem z UCI jest taki, że klucze/certyfikaty klienta i serwera trzeba niestety umieszczać w osobnych plikach. Certyfikaty klienckie Ja jestem zwolennikiem uwierzytelniania użytkowników za pomocą certyfikatów klienckich. Dlatego też mam w taki sposób skonfigurowany swój serwer VPN. Bez przedstawienia takiego certyfikatu, żaden klient nie będzie w stanie zestawić połączenia. Opis jak wygenerować takie certyfikaty w oparciu o easy-rsa został opisany osobno. Tutaj warto nadmienić, że w LEDE/OpenWRT mamy dostępny pakiet openvpn-easy-rsa , którym możemy się posłużyć przy generowaniu certyfikatów. Niemniej jednak, to rozwiązanie nie jest zbytnio zalecane ze względu na niewielką moc obliczeniową takiego przeciętnego routera WiFi, przez cały proces będzie trwał kilka godzin. Konfiguracja firewall'a na potrzeby OpenVPN W zasadzie bez znaczenia jest sposób, który sobie wybierzemy w celu dostarczenia konfiguracji dla demona OpenVPN. Jeśli w tej chwili byśmy uruchomili usługę, to router będzie w stanie przesłać wszystkie swoje dane bezpośrednio do serwera VPN. Problem jednak jest w tym, że klienci w sieci LAN za routerem nie mają połączenia z internetem. Możemy co prawda połączyć się z routerem ale nie mamy wyjścia na świat. Problem tkwi w konfiguracji zapory. Musimy zatem skonfigurować sobie forwarding dla nowych interfejsów i włączyć im również NAT. W tym celu trzeba poddać edycji dwa pliki i dodać do nich poniższą zawartość. Plik /etc/config/network : config interface 'vpn' option ifname 'tun0' option proto 'none' Plik /etc/config/firewall : config zone option name vpn list network 'vpn' option input DROP option output ACCEPT option forward DROP option masq 1 option mtu_fix 1 config forwarding option src 'lan' option dest 'vpn' Zapisujemy i resetujemy router. I to w zasadzie cała konfiguracja jeśli chodzi o przesyłanie ruchu ze wszystkich urządzeń w sieci domowej WiFi do serwera VPN. Jeśli zaś chodzi o ewentualne przecieki DNS, to zawsze możemy skonfigurować sobie szyfrowany DNS w oparciu o dnscrypt-proxy również na routerze. Test połączenia z serwerem VPN W zasadzie połączenie powinno działać OOTB po zresetowaniu routera. Jeśli jednak nie mamy pewności do tego czy cały mechanizm został poprawnie skonfigurowany, to naturalnie możemy zajrzeć w log ( logread ) i poszukać wpisów zaczynających się od openvpn . Jeśli nie znajdziemy żadnych błędów i będzie w logu figurować Initialization Sequence Completed , to oznacza to, że połączenie z serwerem VPN zostało pomyślnie ustawione. Jeśli zaś mamy w logu również PUSH_REPLY,redirect-gateway def1 , to cały ruch z routera wędruje do serwera VPN w formie szyfrowanej. Dla pewności można także podejrzeć regułki na zaporze ( iptables -nvL ) i poszukać interfejsu tun0 . Jeśli pakiety są zliczane, to ruch jest zarządzany przez OpenVPN. No i oczywiście możemy podejrzeć tablicę routingu via ip route show , gdzie obecność tras 0.0.0.0/1 oraz 128.0.0.0/1 oznacza, że żaden pakiet wysyłany do internetu nie leci poza szyfrowanym tunelem.
  23. W artykule o postawieniu serwera VPN poruszyłem jedynie kwestię konfiguracji klienta mającego system operacyjny z rodziny linux, a konkretnie była to dystrybucja Debian. Niemniej jednak, mając działający serwer VPN gdzieś tam za granicą, możemy również do niego podłączyć się za pomocą smartfona z Androidem i to praktycznie z dowolnego miejsca na ziemi. W ten sposób możemy zabezpieczyć nasze połączenie przed cenzurą internetu, która obecnie jest przeprowadzana na naszych oczach. Jako, że smartfony są popularniejsze od komputerów czy laptopów i zwykle przesyłamy z nich tak samo ważne (albo i ważniejsze) dane, to wypadałoby zaszyfrować cały ruch z takiego telefonu. Niniejszy wpis będzie właśnie dotyczył tego tematu, który zostanie opisany w oparciu smartfon Neffos C5 od TP-LINK mający na pokładzie Androida w wersji 5.1 (Lollipop). Aplikacje VPN na Androida Generalnie rzecz biorąc, Android ma wbudowany mechanizm VPN. Można go skonfigurować przechodząc pod Ustawienia => Więcej => VPN. By być w stanie skonfigurować takie bezpieczne połączenie, musimy również aktywować mechanizm blokady ekranu. Niemniej jednak, ku mojemu zdziwieniu, to domyślne oprogramowanie nie wspiera OpenVPN (albo ja nie potrafię skonfigurować tego połączenia): Potrzebne jest zatem alternatywne oprogramowanie. Z tego co znalazłem w sklepie Google Play i w repozytorium F-Droid, to w zasadzie są dwie aplikacje, które się nadają do wykorzystania przy OpenVPN. Jedna z nich to OpenVPN Connect, a druga to OpenVPN for Android. Z tego co znalazłem, to źródła OpenVPN Connect nie są do końca wolne, no i też ta aplikacja wyświetla reklamy. Natomiast jeśli chodzi o OpenVPN for Android, to on nie ma reklam i jest to projekt w pełni otwartoźródłowy. Inna różnica między tymi aplikacjami tkwi w możliwości konfiguracji połączenia z serwerem. W zasadzie OpenVPN Connect nie oferuje nam zbytnio żadnych opcji. Możemy jedynie zaimportować konfigurację klienta VPN, którą napisaliśmy sobie na komputerze. Natomiast OpenVPN for Android ma naprawdę sporo opcji i praktycznie każdy aspekt połączenia jesteśmy w stanie dostosować po zaimportowaniu pliku konfiguracyjnego. Obie te aplikacje nie wymagają ukorzenionego Androida (root) ale biorąc pod uwagę, że OpenVPN for Android jest i OpenSource i nie serwuje reklam, to niżej opiszę tylko to narzędzie. Jeśli zaś chodzi o Androidy, które przeszły proces root, to możemy pokusić się o instalację binarki OpenVPN, mniej więcej takiej jaka jest wykorzystywana w standardowym linux'ie. To rozwiązanie wymaga zainstalowania na smartfonie aplikacji OpenVPN Settings oraz OpenVPN Installer . Generalnie rzecz biorąc, ta druga aplikacja dostarczy demona openvpn , a ta pierwsza zaimportuje dla niego konfigurację. Niemniej jednak, te aplikacje są datowane na rok 2012, czyli ponad 4 lata nie były aktualizowane. Dlatego też nie będę opisywał procesu konfiguracji połączenia w oparciu o to rozwiązanie. Certyfikaty klienckie dla smartfonów Są z grubsza dwie metody uwierzytelniania się klientów na serwerze VPN. Jedna z nich zakłada wykorzystanie hasła i loginu, druga certyfikatów klienckich. Ja będę korzystał z certyfikatów, bo zapewniają większe bezpieczeństwo. Nie będę jednak tutaj opisywał całego procesu generowania takiego certyfikatu, bo to zostało zrobione już we wpisie poświęconemu generowaniu certyfikatów z wykorzystaniem easy-rsa. Jeśli nie mamy takich certyfikatów, to oczywiście musimy pierw zajrzeć do tego podlinkowanego wyżej artykułu i sobie je stworzyć. Unikajmy jednak wykorzystywania tego samego certyfikatu na każdym kliencie. Może OpenVPN daje nam taką możliwość ale jest to wielce niezalecane. Konfiguracja połączenia VPN z OpenVPN for Android Zakładam tutaj, że mamy już postawiony działający serwer VPN oraz, że wygenerowaliśmy sobie stosowne certyfikaty. Możemy teraz przejść na smartfon i zainstalować tam aplikację OpenVPN for Android: Po uruchomieniu aplikacji przywita nas informacja o braku połączeń VPN. Musimy zatem sobie stworzyć jakąś konfigurację ale nie musimy tego robić ręcznie. Jeśli dysponujemy plikiem konfiguracyjnym OpenVPN dla standardowego linux'a, to możemy go zaimportować: Pamiętajmy jednak, by certyfikaty/klucze zawrzeć w konfiguracji OpenVPN (znaczniki ca , cert , key oraz tls-auth ) zamiast dłączać je w osobnych plikach. Poniżej jest przykładowa konfiguracja dla mojego smartfona (nazwa pliku jest dowolna ale musi się kończyć .ovpn ): client dev tun proto udp remote 11.22.33.44 1194 resolv-retry infinite nobind ;user nobody ;group nogroup persist-key persist-tun cipher AES-256-CBC tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 auth SHA512 keysize 256 tls-version-min 1.2 comp-lzo verb 3 ;mute 20 script-security 2 up /etc/openvpn/update-resolv-conf.sh down /etc/openvpn/update-resolv-conf.sh auth-nocache ;auth-user-pass /etc/openvpn/auth/morfitronik.auth remote-cert-tls server verify-x509-name "morfitronik-server-vpn" name ;ca /etc/openvpn/certs/morfitronik-ca.crt ;cert /etc/openvpn/certs/morfitronik-client-vpn-morfik.crt ;key /etc/openvpn/certs/morfitronik-client-vpn-morfik.key ;tls-auth /etc/openvpn/certs/morfitronik-ta.key 1 key-direction 1 <ca></ca> <cert></cert> <key></key> <tls-auth></tls-auth> Po zaimportowaniu takiego pliku zostanie wyrzucone krótkie podsumowanie. W tym przypadku kilka opcji zostało zignorowanych ale nie ma to większego wpływu na połączenie. Konfiguracja zostanie również zapisana w katalogu aplikacji OpenVPN for Android, a sam plik, który przenieśliśmy na pamięć/kartę SD telefonu możemy usunąć. By się teraz połączyć z serwerem VPN i przesłać cały ruch ze smartfona szyfrowanym kanałem, wystarczy tapnąć w widoczną wyżej pozycję na liście: To w zasadzie cała istota podłączenia do VPN naszego smartfona. Rzućmy sobie jeszcze okiem na samą konfigurację połączenia. Dostosowanie konfiguracji połączenia w OpenVPN for Android Aplikacja OpenVPN for Android importując plik konfiguracyjny OpenVPN automatycznie dostosowała wszystkie opcje za nas. Jeśli z jakiegoś powodu konfiguracja serwera VPN ulegnie zmianie, to naturalnie możemy ponownie zaimportować plik konfiguracyjny ale też możemy ręcznie przestawić te opcje, które zmieniły się. W zasadzie jesteśmy w stanie wskazać pliki certyfikatów/kluczy jeśli te nie są dodane bezpośrednio w pliku konfiguracyjnym. Możemy także określić adres IP, port i protokół serwera VPN, jak i również dodać kilka serwerów: Są tez opcje przepisania konfiguracji DNS: Oraz parametry konfigurujące tablicę routingu: Konfiguracja szyfrów wykorzystywanych w kanale kontrolnym i kanale danych też może zostać dostosowana: W opcjach zaawansowanych możemy nieco dostosować sobie zachowanie klienta VPN oraz dodać niestandardowe parametry: Cały ruch ze smartfona będzie przesyłany do serwera VPN. Jeśli chcemy jakieś aplikacje wyłączyć spod działania tego mechanizmu, to możemy to jak najbardziej uczynić: Wszelkie zmiany jakie wprowadzimy w konfiguracji połączenia VPN zostaną zapisane, co wygeneruje nowy plik konfiguracyjny. Ten plik możemy wyeksportować w celu zaimportowania go na innym urządzeniu. Możemy także powielić go i użyć w celu skonfigurowania kolejnego serwera VPN zmieniając tylko określone parametry: Po podłączeniu się do serwera VPN, na belce systemowej powinniśmy zauważyć notyfikację z informacją o ilości przesłanych danych i aktualnej prędkości transferu: Połączenie VPN i oszczędzanie baterii Zastosowanie klienta VPN w smartfonach dość znacznie utylizować baterię. Jakby nie patrzeć, połączenie VPN standardowo jest utrzymywane, by transfer danych mógł być realizowany. To z kolei wymaga aktywnego WiFi czy LTE, a wiemy, że te moduły dają się mocno we znaki baterii. Możemy jednak tak skonfigurować aplikację OpenVPN for Android, by przy niewielkim obciążeniu łącza i zablokowanym ekranie rozłączała nam połączenie VPN. Jak widzimy wyżej, nie tylko możemy rozłączyć połączenie VPN, gdy smartfon jest nieużywany ale tez możemy automatycznie zestawiać takie połączenie po uruchomieniu/odblokowaniu urządzenia. Pamiętajmy jednak, że przy restarcie systemu część danych zawsze może się przedostać nieszyfrowanym tunelem zanim klient VPN zostanie uruchomiony. Tutaj raczej nic więcej nie da się zrobić, no może za wyjątkiem ręcznego dezaktywowania WiFi przed wyłączeniem telefonu. Po starcie systemu, WiFi będzie w dalszym ciągu wyłączone i wystarczy poczekać, aż klient VPN zostanie uruchomiony. Może i nie będzie połączenia jako takiego ale aplikacja OpenVPN for Android będzie oczekiwać na sieć: W takim wypadku już wszystko jest przygotowane do połączenia i wystarczy włączyć WiFi.
  24. 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.
  25. 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 C5 MAX. Testy pozostałych modeli smartfonów zostaną opisane osobno. Parametry sprzętowe Neffos C5 MAX Neffos C5 MAX jest póki co najmocniejszym smartfonem od TP-LINK dostępnym na polskim rynku. Ma on 8 rdzeniowy procesor MTK MT6753 (Cortex-A53) taktowany częstotliwością maksymalną 1,3 GHz. Jest tam również procesor graficzny ARM Mali-T720 MP3. Do tego mamy również 2 GiB pamięci operacyjnej RAM. Jeśli chodzi zaś o wyświetlacz, to ma on 5,5" i rozdzielczość 1920x1080 (403.4 PPI). Smartfon działa zaś pod kontrolą systemu operacyjnego Android 5.1 Lollipop. Poniżej są fotki z CPU-Z: Wiemy zatem co Neffos C5 MAX ma z grubsza pod maską oraz jakim oprogramowaniem będziemy go testować. Pora zatem sprawdzić jakie wyniki zwrócą nam poszczególne aplikacje. Neffos C5 MAX vs. AnTuTu Neffos C5 MAX 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 C5 MAX vs. PCMark PCMark również oferuje szereg testów, którym możemy poddać nasz smartfon. Poniżej jest rozpiska: Work 2.0 Performance Work 2.0 Battery Life Computer Vision Storage Work 1.0 Performance Neffos C5 MAX vs. 3DMark 3DMark również jest w stanie przeprowadzić kilka testów: Sling Shot ES 3.1 Sling Shot ES 3.0 Sling Shot Unlimited ES 3.1 Sling Shot Unlimited ES 3.0 Ice Storm Ice Storm Extreme Ice Storm Unlimited