Wyszukaj

Wyświetlanie wyników dla tagów 'neffos y5' .



Więcej opcji wyszukiwania

  • Wyszukaj za pomocą tagów

    Wpisz tagi, oddzielając je przecinkami.
  • Wyszukaj za pomocą nazwy autora

Typ zawartości


Forum

  • Kategoria Główna
    • Regulamin Forum - zasady korzystania
    • Kształt forum - dyskusja, propozycje, opinie.
    • FOTO GALERIA - TP-Link w twojej sieci
    • CONNECTED nr 4/2016 (13) - NOWY NUMER
  • TP-LINK Forum
    • ADSL, DSL, LTE, PLC, USB - jaki model TP-Linka kupić?
    • BAZAR - kupię sprzedam
    • DOMOWE SIECI KOMPUTEROWE
    • PORADNIKI - FAQ - KONFIGURACJA
    • FIRMWARE
    • NOWOŚCI
    • NEFFOS - wsparcie techniczne
    • OPINIE UŻYTKOWNIKÓW / OPINIE EKSPERTÓW
    • POGOTOWIE KONFIGURACYJNE TP-LINK
    • ZAUFANY DYSTRYBUTOR - SPRZEDAWCA TP-LINKa
  • TP-Link rozwiązania SOHO - katalog
    • Urządzenia bezprzewodowe - standard AD
    • Urządzenia bezprzewodowe - standard AC
    • Urządzenia bezprzewodowe Dual Band
    • Urządzenia bezprzewodowe - standard N, 300Mb/s
    • Urządzenia bezprzewodowe - standard N, 150Mb/s
    • Urządzenia ADSL
    • Wzmacniacze sygnału
    • Karty bezprzewodowe
    • Routery 3G/4G/LTE
    • Modemy 3G
    • Przełączniki SOHO - niezarządzalne
    • Transmitery sieciowe PLC
    • Kamery IP Cloud
    • Serwery druku
    • Anteny i akcesoria
    • Karty przewodowe
    • Wycofane z produkcji
  • TP-Link rozwiązania SMB - katalog
    • Katalog produktów SMB 2013
    • Katalog produktów SMB 2015
  • TP-Link alternatywne oprogramowanie
    • Kto i gdzie tworzy alternatywne oprogramowanie
    • Aktualny firmware Gargoyle, LEDE, DD-WRT, OpenWRT, Luci,
    • FAQ - alternatywne oprogramowanie
    • Pogotowie konfiguracyjne - alternatywne oprogramowanie
  • Sieci komputerowe, internet
    • FAQ - sieci komputerowe
    • Konfiguracja popularnych urządzeń sieciowych
    • Routery innych producentów
  • Inne dyskusje
    • Hydepark

Grupa podstawowa


AIM


MSN


Strona URL


ICQ


Yahoo


Jabber


Skype


Gadu-Gadu


Lokalizacja:


Zainteresowania


O mnie

Znaleziono 15 wyników

  1. Neffos X1 Cloudy Grey Sunrise Gold Instrukcja obsługi (język polski | język angielski) Oficjalny Firmware Specyfikacja Techniczna --------|-------------------------- Czipset | Mediatek MT6755 CPU | 4*1.8 GHz + 4*1.0 GHz ARM Cortex A53 CPU GPU | ARM Mali-T860 MP2 Pamięć | 2 GB / 3 GB Wersja Androida | Android 6.0 Flash | 16 GB / 32 GB MikroSD | Up to 128 GB Bateria | 2250 mAh Wymiary | 142 x 71 x 7.95 mm Display | 1280 x 720 pixels 5.0" (293.7 PPI) Kamera Główna | 13.0 MP Kamera Selfie | 5.0 MP Data wypuszczenia | Wrzesień 2016 Neffos C5Max Kolor grafitowy Kolor Perłowy Instrukcja obsługi (język polski | język angielski) Oficjalny Firmware Specyfikacja Techniczna --------|-------------------------- Czipset | MediaTek MT6753 CPU | 1.3 GHz Octa-core ARM Cortex A53 CPU GPU | ARM Mali-T720 MP3 Pamięć | 2 GB Wersja Androida | Android 5.1 (Lollipop) Flash | 16 GB MikroSD | Up to 32 GB Bateria | 3045 mAh Wymiary | 152 x 76 x 8.95 mm Wyświetlacz | 1920 x 1080 pixels 5.5" (403.4 PPI) Kamera Główna | 13.0 MP Kamera Selfie | 5.0 MP Data Wypuszczenia | Styczeń 2016 Neffos C5 Kolor grafitowy Kolor Perłowy Instrukcja obsługi (język polski | język angielski ) Oficjalny Firmware Specyfikacja Techniczna --------|-------------------------- Czipset | MediaTek MT6735 CPU | 1.3 GHz Quad-core ARM Cortex A53 CPU GPU | ARM Mali-T720 MP2 Pamięć | 2 GB Wersja Androida | Android 5.1 (Lollipop) Flash | 16 GB MikroSD | Up to 32 GB Bateria | 2200 mAh Wymiary | 144 x 72 x 8.8 mm Wyświetlacz | 1280 x 720 pixels 5.0" (293,7 PPI) Kamera Główna | 8.0 MP Kamera Selfie | 5.0 MP Data Wypuszczenia | Styczeń 2016 Neffos C5L (wycofany z produkcji) Kolor grafitowy Kolor Perłowy Instrukcja obsługi (język polski | język angielski) Oficjalny Firmware Specyfikacja Techniczna --------|-------------------------- Czipset | Qualcomm MSM8909 Snapdragon 210 CPU | 1.1 GHz Quad-core ARM Cortex A7 CPU GPU | Adreno 304 Pamięć | 1 GB Wersja Androida | Android 5.1 (Lollipop) Flash | 8 GB MikroSD | Up to 32 GB Bateria | 2000 mAh Wymiary | 136 x 67.7 x 10.15 mm Wyświetlacz | 854 x 480 pixels 4.5" (217,7 PPI) Kamera Główna | 8.0 MP Kamera Selfie | 2.0 MP Data wypuszczenia | Styczeń 2016 Neffos Y5 Kolor grafitowy Kolor Perłowy Instrukcja obsługi (język polskii | język angielski) Oficjalny Firmware Specyfikacja Techniczna --------|-------------------------- Czipset | Qualcomm MSM8909 Snapdragon 210 CPU | 1.3 GHz Quad-core ARM Cortex A7 CPU GPU | Adreno 304 Pamięć | 2 GB Wersja Androida | Android 6.0 Flash | 16 GB MikroSD | Up to 32 GB Bateria | 2300 mAh Wymiary | 144 x 72 x 8.8 mm Wyświetlacz | 1280 x 720 pixels 5.0" (293.7 PPI) Kamera Główna | 8.0 MP Kamera Selfie | 2.0 MP Data Wypuszczenia | Lipiec 2016 Neffos Y5L Kolor grafitowy Kolor Perłowy Kolor Słoneczny Instrukcja obsługi (język polski | język angielski ) Oficjalny Firmware Specyfikacja Techniczna --------|-------------------------- Czipset | Qualcomm MSM8209 Snapdragon 210 CPU | 1.1 GHz Quad-core ARM Cortex A7 CPU GPU | Adreno 304 Pamięć | 1 GB Wersja Androida | Android 6.0 Flash | 8 GB MikroSD | Up to 32 GB Bateria | 2020 mAh Wymiary | 133.4 x 66.6 x 9.8 mm Display | 854 x 480 pixels 4.5" (220 PPI) Kamera Główna | 5.0 MP Kamera Selfie | 2.0 MP Data wypuszczenia | Lipiec 2016
  2. Jakiś czas temu opisywałem proces ukorzeniania (root) smartfonów Neffos, a konkretnie były to modele C5, C5 MAX, Y5 i Y5L. Od tamtego czasu zdążyłem się nieco bardziej zagłębić w struktury Androida i udało mi się ze źródeł OMNI ROM zbudować natwyne obrazy TWRP dla każdego z tych TP-LINK'owych smartfonów. Oczywiście TP-LINK ma w swojej ofercie jeszcze modele C5L, Y50, X1 oraz X1 MAX ale póki co nie będę w stanie przygotować obrazu TWRP i opisu jak ukorzenić Androidy w tych telefonach. Chodzi o to, że C5L został wycofany z produkcji i raczej nie wpadnie on w moje łapki. Natomiast pozostałe trzy modele nie są jeszcze dostępne w polskiej ofercie TP-LINK'a, przez co minie trochę czasu zanim uda mi się do nich dobrać. Postanowiłem napisać świeży artykuł dotyczący procesu root w smartfonach Neffos C5, C5 MAX, Y5 oraz Y5L. Po co pisać kolejny artykuł o ukorzenianiu Androida w Neffos'ach? Generalnie rzecz biorąc, w tych poprzednich wpisach było bardzo dużo informacji zbędnych z punktu widzenia przeciętnego użytkownika, który chce zrootować system w swoim telefonie. Teraz, gdy dysponuję natywnymi obrazami TWRP własnej roboty i zdobyłem nieco wiedzy z zakresu operowania na Androidzie, to proces root jest o wiele prostszy i właśnie dlatego przydałoby się to wszystko opisać na nowo. Narzędzia ADB, fastboot (linux) Przede wszystkim, by zabrać się za proces root'owania smartfonów Neffos C5, C5 MAX, Y5 i Y5L, musimy przygotować sobie odpowiednie narzędzia. Zapewnią one nam możliwość rozmawiania z telefonem. Będziemy potrzebować adb (Android Debug Bridge) oraz fastboot . Za obsługę adb w Debianie odpowiada pakiet android-tools-adb . Z kolei jeśli chodzi zaś o fastboot , to musimy doinstalować w systemie pakiet android-tools-fastboot : # apt-get install \ android-tools-adb \ android-tools-fastboot Jak odblokować bootloader w smartfonach Neffos By skorzystać z narzędzia fastboot do wgrywania obrazu TWRP, musimy odblokować bootloader. Zanim jednak odblokujemy bootloader, musimy włączyć opcje programistyczne. Przechodzimy zatem do Ustawienia => Informacje o telefonie i klikamy kilka razy w numer kompilacji do momentu aż dostaniemy informację o byciu programistą. W tej chwili w Ustawieniach pojawi się dodatkowa pozycja "Opcje programistyczne". Tam z kolei zaznaczamy opcję "Zdjęcie blokady OEM". Zdjęcie blokady OEM umożliwi odblokowanie bootloader'a. Pamiętajmy jednak, że proces odblokowania bootloader'a usuwa wszystkie dane użytkownika, tj. podczas odblokowywania jest inicjowany Factory Reset, który przywraca ustawienia telefonu do fabrycznych. Dane na karcie SD pozostają nietknięte. Odblokowanie bootloader'a w Neffos Y5 i Y5L Po zdjęciu blokady OEM wyłączamy urządzenie i włączamy je trzymając przyciski Volume Down + Power. Smartfon włączy się w trybie bootloader'a, a na jego ekranie będzie widoczne logo TP-LINK i Android. Następnie na komputerze w terminalu wpisujemy poniższe polecenie: # fastboot devices 8a8f289 fastboot Wynik zwrócony wyżej świadczy o tym, że nasz Neffos działa w trybie bootloader'a i możemy z urządzeniem się porozumieć za pomocą narzędzia fastboot . Bootloader odblokowujemy przy pomocy poniższego polecenia: # fastboot oem unlock-go Na ekranie smartfona powinien nam się pokazać zielony robocik informujący o przeprowadzaniu Factory Reset. Po chwili ten proces dobiegnie końca, a smartfon uruchomi się ponownie na ustawieniach fabrycznych. Odblokowanie bootloader'a w Neffos C5 i C5 MAX W przypadku smartfonów Neffos C5 i C5 MAX, jako, że te urządzenia posiadają SoC od MediaTek, nie trzeba zdejmować blokady bootloader'a, by wgrać obraz TWRP. Możemy zatem ten obraz wgrać bez uprzedniego przywracania smartfona do ustawień fabrycznych. Niemniej jednak, na potrzeby ujednolicenia kroków w tym HowTo, my tę blokadę ściągniemy. Wyłączamy urządzenie i włączamy je trzymając przyciski Volume Up + Power. Z menu wybieramy "fastboot mode". Następnie na komputerze w terminalu wpisujemy poniższe polecenia: # fastboot devices TSL7DA69OBSO49PJ fastboot # fastboot oem unlock Po wydaniu tej drugiej komendy, na ekranie smartfona powinno nam pokazać się poniższe ostrzeżenie: Unlock bootloader? If you unlock the bootloader, you will be able to install custom operating system software on this phone. A custom OS is not subject to the same testing as the original OS, and can cause your phone and installed application to stop working properly. To prevent unauthorized access to your personal data, unlocking the bootloader will also delete all personal data from your phone "factory reset". Press the Volume UP/Down buttons to select Yes/No. Wciskamy Volume Up, by potwierdzić chęć odblokowania bootloader'a, po czym restartujemy smartfon poniższym poleceniem: # fastboot reboot Tworzenie backup'u flash'a smartfona Użytkownicy smartfonów pomijają jedną niezwykle ważną rzecz podczas ukorzeniania Androida. Jest nią backup danych zgromadzonych w pamięci flash takiego urządzenia. Posiadając backup flash'a, jesteśmy w stanie wybrnąć z 99,9% krytycznych sytuacji, które zwykle objawiają się zapętleniem startu systemu telefonu. Jeśli tylko działa bootloader/preloader/loader, to posiadając kopię zapasową możemy bez większego problemu odratować swój smartfon. Backup flash'a można przeprowadzić z poziomu trybu recovery (TWRP) w przypadku każdego modelu Neffos. Jeśli chodzi o Neffos Y5 i Y5L, to obraz TWRP można załadować bezpośrednio do pamięci smartfona, nie czyniąc tym samym żadnych zmian w pamięci flash. Niemniej jednak, potrzebny nam jest odblokowany bootloader. Niestety w przypadku Neffos C5 i C5 MAX nie da rady załadować obrazu TWRP recovery bezpośrednio do pamięci telefonu. Możemy natomiast posłużyć się narzędziem SP Flash Tool i w zasadzie do zrobienia backup'u przy jego pomocy nie trzeba przeprowadzać żadnych dodatkowych zabiegów. Nie trzeba nawet odblokowanego bootloader'a. Jedyne co nam potrzebne, to odpowiedni plik scatter.txt . Nie będę tutaj opisywał procesu przeprowadzania backup'u każdego z modelów Neffos, bo to w zasadzie mija się z celem. Raz, że w starych wątkach ten proces został dość szczegółowo opisany, a dwa, że bardzo rzadko będzie nam potrzebny cały backup, tj. wszystkie jego partycje. Zwykle podczas procesu root są zmieniane jedynie partycje /boot/ , /recovery/ oraz /system/ i w zasadzie backup tylko tych obszarów flash'a telefonu należy przeprowadzić. Osoby, które są zainteresowane dokonaniem ręcznej kopi zapasowej flash'a czy też, którejś z pozostałych partycji urządzenia, odsyłam do starych wątków opisujących proces root: Neffos C5, Neffos C5 MAX, Neffos Y5 i Neffos Y5L. Dla wszystkich innych osób, wliczając do grona użytkowników te osobniki, które nie posiadają w ogóle kopi zapasowych, przygotowałem obrazy stock'owych partycji /system/ , /boot/ i /recovery/ . Wszystkie poniższe pliki są spakowane. Nie są to jednak te same pliki, które można pobrać ze strony TP-LINK/Neffos. Moje obrazy zwierają kopię binarną tego co znajdowało się na flash'u smartfona, a konkretnie na tych trzech partycjach. Te obrazy można wgrać przez SP Flash Tool (w przypadku C5 i C5 MAX) i przez TWRP (w przypadku C5, C5 MAX, Y5 i Y5L). Obrazy dla Neffos C5 | Obrazy dla Neffos C5 MAX | Obrazy dla Neffos Y5 | Obrazy dla Neffos Y5L W przypadku znalezienia się w podbramkowej sytuacji, te powyższe obrazy można wykorzystać, ale przed wgraniem ich na smartfon via SP Flash Tool lub TWRP recovery trzeba te ZIP'y pierw wypakować. Paczki ZIP w zasadzie automatycznie weryfikują poprawność obrazów. Jeśli archiwum zostało uszkodzone w jakiś sposób podczas przesyłu danych, to podczas próby wypakowania obrazu zostanie napotkany błąd. W takim przypadku trzeba jeszcze raz pobrać stosowny plik. Nigdy nie ważmy się wgrywać pliku, który nie wypakował się pomyślnie. To samo tyczy się obrazu, który został przeznaczony na inny model smartfona. Jeśli taki obraz wgramy, to jest niemal pewne, że uwalimy sobie telefon na dobre. Dlatego upewnijmy się, że pobraliśmy odpowiednie pliki. Obrazy TWRP recovery dla Neffos C5, C5 MAX, Y5 i Y5L Smartfony Neffos C5, C5 MAX, Y5 i Y5L nie są jeszcze oficjalnie wspierane przez TWRP recovery. Niemniej jednak, na moim GitHub'ie znajduje się konfiguracja, która umożliwia zbudowanie obrazów TWRP recovery ze źródeł Androida, a konkretnie ze źródeł OMNI ROM. Poniżej są zamieszczone gotowe obrazy recovery dla poszczególnych modeli smartfonów Neffos, które można pobrać i z powodzeniem wgrać na telefon via fastboot czy też SP Flash Tool. Obok obrazów są także linki do repozytoriów z konfiguracją obrazów. Gotowy obraz TWRP dla Neffos Y5 | Repo z konfiguracją dla Neffos Y5 Gotowy obraz TWRP dla Neffos Y5L | Repo z konfiguracją dla Neffos Y5L Gotowy obraz TWRP dla Neffos C5 | Repo z konfiguracją dla Neffos C5 Gotowy obraz TWRP dla Neffos C5 MAX | Repo z konfiguracją dla Neffos C5 MAX Wgrywanie obrazu TWRP na smartfon Neffos Mając odblokowany bootloader oraz pobrany stosowny plik TWRP recovery, możemy przejść do etapu flash'owania smartfona. Ten proces w zasadzie nie różni się co do zasady ale w przypadku modeli Y5 i Y5L mamy możliwość załadowania obrazu TWRP do pamięci smartfona, np. gdy chcemy jedynie ukorzenić Androida ale jednocześnie chcemy pozostać przy stock'owym recovery. Przełączamy zatem telefon w tryb bootloader'a i przy pomocy narzędzia fastboot wgrywamy obraz TWRP na partycję /recovery/ wskazując w ostatnim argumencie ścieżkę do obrazu: # fastboot flash recovery tp-link-neffos-twrp-recovery.img Po wgraniu obrazu musimy uruchomić smartfon w trybie recovery przez przyciśnięcie przycisków VolumeUP + Power. Trzeba to zrobić natychmiast po procesie flash'owania. Gdyby nam się telefon uruchomił ponownie tuż po wgraniu obrazu, to system weryfikując partycję /recovery/ stwierdzi, że znajduje się na niej nieoczekiwany kontent. Android podejmie próbę odtworzenia tej partycji podczas startu systemu i w efekcie wygeneruje on sobie nowy obraz i wgra go na partycję /recovery/ przywracając stock'owy tryb recovery w naszym smartfonie. Jeśli do tego dojdzie, to trzeba będzie jeszcze raz ponowić proces flash'owania obrazem TWRP. Po wejściu w tryb recovery, naszym oczom powinien pokazać się poniższy obrazek: Mamy tutaj zapytanie odnośnie wprowadzania zmian przez TWRP na partycji /system/ . Zmiana jest w zasadzie tylko jedna i polega ona na przepisaniu nazwy pliku /system/recovery-from-boot.p na /system/recovery-from-boot.bak . W ten sposób Android nie będzie w stanie przeprowadzić procesu weryfikacji partycji /recovery/ i nie będzie jej próbował przepisać podczas startu smartfona. Jeśli nie zezwolimy TWRP na wprowadzenie tej zmiany, to jak tylko zresetujemy smartfon, Android przywróci stock'ową partycję /recovery/ i w późniejszym czasie trzeba będzie jeszcze raz wgrywać obraz TWRP. Trzeba tutaj wyraźnie zaznaczyć, że wyłączenie mechanizmu sprawdzania zawartości partycji /recovery/ może utrudnić odratowanie smartfona w przypadku, gdy coś stanie się z oprogramowaniem rezydującym na tej partycji. Zwykle jednak nic złego się nie dzieje i można bez problemu zezwolić TWRP na wprowadzenie wymaganych zmian. Instalacja SuperSU Ostatnią rzeczą na drodze do ukorzenienia Androida na smartfonach Neffos jest wgranie aplikacji umożliwiającej korzystanie różnym programom z praw administratora systemu w telefonie. W obrazach TWRP recovery znajduje się odpowiedni moduł w pełni automatyzujący proces root w smartfonie. Nie trzeba zatem manualnie pobierać paczki z SuperSU. Jedyne co musimy zrobić to z menu TWRP wybrać Reboot => System. Przed zresetowaniem urządzenia, TWRP wyrzuci informację, że to urządzenie nie ma jeszcze root'a i zapyta nas czy chcemy zainstalować SuperSU. Naturalnie instalujemy: TWRP zainstalował również swoją aplikację, która ma na celu umożliwić łatwą aktualizację obrazów TWRP, gdy zostanie wypuszczona nowa wersją tego trybu recovery. Na tych dodatkowych ikonkach widocznych wyżej trzeba kliknąć i postępować zgodnie z instrukcjami aktualizacji: Po zainstalowaniu, restartujemy smartfon. Test root na smartfonach Neffos Po zresetowaniu urządzenia możemy sprawdzić czy Android w naszym Neffos'ie został już ukorzeniony, np. doinstalowując sobie jedną z aplikacji, która nam ten sam rzeczy oznajmi. Poniżej jest fotka obrazująca root smartfonów Neffos C5, C5 MAX, Y5 i Y5L: Unroot Standardowo w Androidzie każda aplikacja zainstalowana w telefonie ma przypisane indywidualne UID/GID (użytkownika i grupę). Żadna aplikacja nie jest w stanie odczytać danych innych programów, które zainstalowaliśmy w systemie. Zaprzęgając mechanizm root dajemy możliwość pewnym aplikacjom na dostęp do danych każdego innego programu. Jeśli teraz wgramy podejrzaną aplikację, to może ona wykorzystać fakt ukorzenienia Androida i uzyskać dostęp do poufnych danych czy nawet przejąc całkowitą kontrolę nad systemem operacyjnym telefonu, wliczając to podsłuch z mikrofonu, kamery i klawiatury. Dlatego też w pewnych sytuacjach root Androida nie jest wskazany. Podczas ukorzeniania Androida poczyniliśmy zmiany na partycji /recovery/ (wgrane TWRP) oraz /system/ i /boot/ (na potrzeby SuperSU). By teraz powrócić do fabrycznego firmware, te zmiany trzeba cofnąć. Jeśli nie instalowaliśmy żadnych dodatkowych aplikacji wymagających praw administratora root, to wystarczy odinstalować SuperSU oraz przywrócić stock'owe obrazy partycji /recovery/ oraz /boot/ . Natomiast w przypadku instalowania dodatkowego oprogramowania, to niestety trzeba już wgrać stock'owy obraz na partycję /system/ . Najprościej jest po prostu wgrać wszystkie te trzy ww. obrazy i wtedy będziemy mieć pewność, że powrócimy do fabrycznego oprogramowania. Obrazy wgrywamy przy pomocy narzędzia fastboot : # fastboot flash system orig-system.img # fastboot flash recovery orig-recovery.img # fastboot flash boot orig-boot.img Następnie czyścimy cache: # fastboot format cache No i na koniec zakładamy blokadę na bootloader, co zainicjuje również proces Factory Reset, czyszcząc tym samym wszystkie dane użytkownika: # fastboot oem lock Pamiętajmy, by po uruchomieniu smartfona wejść w opcje programistyczne i założyć również blokadę OEM. Proces Root Integrity Check Smartfony Neffos są wyposażone w mechanizm, który jest w stanie zweryfikować integralność danych w systemie. W przypadku powracania ze zrootowanego Androida do stock'owego firmware TP-LINK'a, dobrze jest przeprowadzić proces Root Integrity Check z poziomu trybu recovery tak, by upewnić się, że faktycznie powróciliśmy do oryginalnego oprogramowania oraz, że nie będzie problemów z ewentualnymi aktualizacjami systemu telefonu w późniejszym czasie. Brak wolnego miejsca i zmiana układu partycji flash'a Neffos C5 i C5 MAX mają wydzielone 4 GiB na partycję /system/ . Jest to dość sporo biorąc pod uwagę fakt, że TP-LINK'owy ROM jest w stanie się zmieścić na około 2 GiB. Z kolei w przypadku Neffos'ów Y5 i Y5L, partycja /system/ ma około 1,8 GiB i w zasadzie zostaje nam do dyspozycji bardzo niewiele wolnego miejsca. Jest to rząd wielkości 30-50 MiB. We wszystkich tych modelach smartfonów, układ partycji na flash'u jest do wymiany. Oczywiście nic nie stoi na przeszkodzie by w Neffos C5 i C5 MAX mieć przeznaczone 4 GiB na partycję /system/ ale wtedy tracimy trochę cennej przestrzeni, którą można by dołączyć do partycji /data/ , a tym samym mieć więcej miejsca na dane użytkownika. Poważny problem za to zaczyna się w przypadku Neffos Y5 i Y5L, gdzie mało miejsca na partycji /system/ może prowadzić do niestabilności systemu lub niemożliwości jego uruchomienia się. Tutaj mamy po prostu idealnie wykrojoną część flash'a pod stock'owy ROM. Natomiast, gdy przychodzi do zabaw z prawami administratora root i wgrywaniem aplikacji, które operują na partycji /system/ , to niestety musimy się liczyć z faktem, że w przypadku tych dwóch smartfonów może nam tego wolnego miejsca zwyczajnie zabraknąć. Rozwiązaniem jest naturalnie fizyczne usunięcie szeregu partycji z pamięci flash telefonu i stworzenie ich od podstaw. To zadanie jednak wykracza poza ramy tego artykułu. Niemniej jednak, planuję tego typu zabieg przeprowadzić i dokładnie go opisać. (link FIXME). Informacje na temat zmiany układu partycji na flash'u w smartfonach Neffos C5 i C5 MAX można znaleźć tutaj. Problemy i niebezpieczeństwa związane z procesem root Ja posiadam kilka smartfonów, które mają ukorzenionego Androida, tj. został na tych urządzeniach przeprowadzony proces root. Tego typu zabieg wyłącza praktycznie wszystkie (albo znaczną większość) mechanizmów obronnych naszego telefonu. Biorąc pod uwagę fakt, że cała masa użytkowników smartfonów (nie tylko Neffos'ów od TP-LINK) ukorzenia te urządzenia bez wiedzy co tak naprawdę robi, to postanowiłem napisać kilka słów odnośnie problemów, którym użytkownik ukorzenionego systemu będzie musiał stawić czoła. Przede wszystkim, muszę tutaj zaznaczyć, że samymi smartfonami, a właściwie systemem Android, interesuję się od kilku miesięcy i w zasadzie nie poznałem go jeszcze w pełni. Niemniej jednak, od czasu do czasu rozpracowuje sobie pewne rzeczy w oparciu o dwie wersje Androida: 5.1 (Lollipop) oraz 6.0 (Marshmallow). W tym miejscu chciałbym zebrać wszystkie swoje artykuły, które pokazują jak proces root wpływa na bezpieczeństwo systemu oraz które z jego funkcji przestają działać lub tez są w znacznym stopniu upośledzone. To, że akurat ja korzystam z ukorzenionego Androida, nie znaczy, że i ty powinieneś, zwłaszcza w przypadku, gdy bezpieczeństwo danych przechowywanych w telefonie ma dla ciebie nadrzędne znaczenie. W zasadzie wszystkie z czterech modeli smartfonów Neffos dostępnych na polskim rynku, tj. C5, C5 MAX, Y5 i Y5L, można zrootować bez większego problemu, co widzieliśmy wyżej. Jeśli chodzi o mnie, to proces root bardzo ułatwia mi rozpracowanie samego systemu i sprawia, że mam wgląd w miejsca, w które standardowy użytkownik telefonu zajrzeć nie może, bo Android odmawia mu dostępu właśnie ze względów bezpieczeństwa. Dlatego też jeśli nie potrzebujesz rootować systemu w telefonie, to tego po prostu nie rób. Problemy z lokalizacją skradzionego smartfona Jednym z bardziej podstawowych mechanizmów ochronnych, które oferuje Google w Androidzie, to usługa lokalizacji smartfona na wypadek jego utraty czy kradzieży. No w przypadku zwykłego zawieruszenia się naszego telefonu raczej nic nam nie grozi ale, gdy takie urządzenie zostanie nam skradzione, to wtedy mamy bardzo poważny problem. Przede wszystkim, mając odblokowany bootloader, który jest wymagany do ukorzenienia Neffos'ów, dajemy złodziejowi narzędzie zresetowania smartfona i obejścia tym samym blokady Factory Reset Protection Lock (FRP Lock). Gdy złodziej obejdzie tę blokadę jest w stanie przywrócić system urządzenia do ustawień fabrycznych, np. w celu odsprzedania telefonu komuś trzeciemu. W takim przypadku nasz smartfon nie będzie już dłużej powiązany z konkretnym kontem Google i zlokalizowanie go przez ww. usługę będzie zwyczajnie niemożliwe. Więcej informacji na temat lokalizacji zagubionych/skradzionych smartfonów można znaleźć w osobnym wątku. Możliwość obejścia blokady ekranu Standardowo każdy z nas korzysta z blokady ekranu w swoich telefonach. Ja akurat mam opcję "Przesuń palcem" ale jakby nie patrzeć, to też blokada. Ci z was, którzy wykorzystują PIN, wzór albo hasło, mogą nieco się zawieść w przypadku, gdy mają ukorzenionego Androida. Cały ten mechanizm blokady ekranu opiera się o ustawienia stosownej aplikacji i klucz zabezpieczający. Wszystkie te dane są przechowywane w plikach na flash'u smartfona. Jeśli teraz mamy zdjętą blokadę bootloader'a, bo chcieliśmy sobie ukorzenić system, to dostęp do tych kluczy i ustawień pozostaje niechroniony i można zresetować blokadę ekranu przez tryb recovery. Więcej informacji na temat resetowania ustawień blokady ekranu można znaleźć w osobnym wątku (ostatni nagłówek). Odszyfrowanie zawartości karty SD sformatowanej jako pamięć wewnętrzna Nowsze wersje Androidów (6.0+) są w stanie rozbudować pamięć flash w smartfonach przy wykorzystaniu Adoptable Storage. Ten mechanizm zakłada sformatowanie karty SD systemem plików, który daje możliwość wykorzystania uprawnień do plików w celu poprawienia bezpieczeństwa systemu i poufności danych przechowywanych na samej karcie SD. Domyślnie dane na tej karcie SD są szyfrowane i nie da rady do tych informacji uzyskać dostępu z poziomu innego urządzenia. Możemy w zasadzie korzystać z tej karty na smartfonie, gdzie została ona sformatowana jako pamięć wewnętrzna i nic poza tym. Do szyfrowania zawartości karty jest wykorzystywany losowy klucz szyfrujący, który jest tworzony w procesie formatowania karty SD. Ten klucz nie jest zabezpieczony żadnym hasłem (np. tym od blokady ekranu) i leży sobie jak gdyby nigdy nic na flash'u smartfona. Mając przeprowadzony proces root, ten klucz jest dostępny praktycznie dla każdego, przez co jakiekolwiek szyfrowanie danych na karcie SD jest tylko złudzeniem bezpieczeństwa i niepotrzebnie obciąża procesor telefonu. Więcej informacji na temat odszyfrowania zawartości karty SD sformatowanej jako pamięć można znaleźć w osobnym wątku. Inne problemy Oczywiście, te powyżej wypisane niedogodności nie są jedynymi. Prawdopodobnie jest ich jeszcze cała masa ale, jako, że mam ciągle "niewielkie" doświadczenie z Androidem, to jeszcze nie wszystkie rzeczy udało mi się wyłapać. Niemniej jednak, jak tylko coś ciekawego znajdę, to naturalnie opiszę i dodam tutaj stosowny nagłówek, tak by ta lista była możliwie rozbudowana, co może przyczyni się do większej świadomości osób korzystających z Androida i zaowocuje zastanowieniem się nad tym, czy faktycznie dany użytkownik potrzebuje ukorzenionego Androida w swoim smartfonie.
  3. Po uszkodzeniu jednego z moich smartfonów TP-LINK i skasowaniu na nim wszystkich danych na partycji /system/ trzeba było pomyśleć nad przywróceniem tego urządzenia do życia. Jednym z rozwiązać było binarne wgranie obrazu systemowej partycji bezpośrednio na flash przy pomocy narzędzia dd. Co jednak w przypadku, gdy nie mamy dostępu do backup'u lub tez zwyczajnie go nie zrobiliśmy? Co w takiej sytuacji uczynić i czy jest jakaś nadzieja dla naszego telefonu? Odpowiedź jest naturalnie twierdząca ale wymagane są dwie rzeczy: działający tryb recovery (najlepiej TWRP) ze wsparciem dla trybu "ADB sideload" oraz paczka update.zip z firmware, którą można pobrać bezpośrednio ze strony TP-LINK/Neffos. By ulżyć nieco osobom, które do mnie piszą z zapytaniem o pomoc w przypadku skasowania danych na partycji /system/ (czy uszkodzenia jej w jakiś sposób), postanowiłem napisać krótkie howto na temat używania trybu ADB sideload. W tym artykule w rolach głównych weźmie udział Neffos Y5 ale bez problemu można te kroki przeprowadzić chyba na każdym innym smartfonie. Objawy usunięcia danych z partycji /system/ Usuwając dane z partycji /system/ pozbawiamy nasz telefon praktycznie całego oprogramowania. Taki smartfon nie może działa bez Androida czy innego systemu operacyjnego i w zasadzie urządzenie resetuje się co około minutę po włączeniu. W takim stanie po włączeniu smartfona, na ekranie można zobaczyć jedynie loga TP-LINK i Androida. Natomiast w logu systemowym mojego Debiana można zaobserwować poniższe komunikaty: kernel: usb 2-1.1: new high-speed USB device number 7 using ehci-pci kernel: usb 2-1.1: New USB device found, idVendor=2357, idProduct=0328 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: usb 2-1.1: USB disconnect, device number 6 Gdy dane z partycji /system/ zostały usunięte, to nie damy rady wgrać nic na smartfon przy pomocy narzędzia fastboot . Dlatego właśnie wymagany jest działający tryb recovery. Jeśli ten również z jakiegoś powodu nie działa, to niestety uwaliliśmy telefon na dobre i trzeba będzie go odesłać do serwisu. Działający TWRP recovery z trybem ADB sideload Dla osób, które nie wiedzą czym jest ADB sideload, wyjaśniam, że jest jeden z trybów pracy ADB. Standardowo przy pomocy adb możemy rozmawiać z systemem smartfona przez wysyłanie do niego różnych poleceń i w zasadzie możemy operować na takim urządzeniu mniej więcej tak jakbyśmy działali na zwyczajnym linux'ie. W przypadku trybu ADB sideload, te standardowe polecenia są nieaktywne ale mamy za to dostęp do komendy adb sideload , która jest w stanie wgrać świeży firmware z paczki update.zip . TWRP recovery począwszy od wersji 2.3 wspiera tryb ADB sideload. Dlatego też trzeba się upewnić, że mamy wgraną na smartfonie w miarę nową wersję tego oprogramowania. Gotowe obrazy TWRP recovery dla smartfonów Neffos (aktualnie C5 MAX, Y5 i Y5L) są dostępne w tym wątku. W przypadku, gdy mamy starszą wersję TWRP (< 2.3), no to niestety musimy zaktualizować to oprogramowanie wgrywając binarnie obraz przy pomocy dd mniej więcej w taki sam sposób jak zostało to opisane przy okazji odzyskiwania partycji /system/ (link we wstępie). ADB sideload i stock'owy recovery Nie jestem pewien czy ADB sideload działa na stock'owym recovery. Wiem, że smartfony oferują możliwość wgrywania pliku update.zip z trybu recovery ale nie wiem jak się zachowa system, gdy jedna lub kilka partycji ( /boot/ , /system/ , /recovery/ ) zostały w jakiś sposób zmienione. Dlatego to HOWTO dotyczy jedynie TWRP recovery, na którym pomyślnie udało mi się przetestować ADB sideload. Pozyskanie pliku update.zip zawierającego firmware smartfona ADB sideload potrzebuje pliku z obrazem firmware (ROM). Stock'owy ROM można pobrać ze strony TP-LINK/Neffos. Linki do działu download: Neffos Y5, Neffos Y5L, Neffos C5, Neffos C5 MAX. Pliki są w miarę duże i ważą około 1 GiB. Każdy z tych plików w nazwie zawiera oznaczenie modelu, np. C5_Max_TP702A , Y5L_TP801 . Tutaj mamy TP702 i TP801 oraz w przypadku tego pierwszego mamy również literkę A , która odpowiada za wersję geograficzną i w tym przypadku A jest dla smartfonów na rynku europejskim. Jak wgrać update.zip przez ADB sideload z poziomu TWRP recovery Pobrany firmware jest w postaci spakowanego pliku .zip . Tego pliku nie wypakowujemy. Zostanie on załadowany do pamięci RAM komputera, a jego zawartość w locie przesłana na smartfon bez potrzeby wgrywania tego pliku na flash urządzenia. Ta paczka zawiera nie tylko oprogramowanie, które jest wgrywane na partycję /system/ ale również obraz partycji /boot/ , za sprawą którego zostanie wygenerowany też świeży obraz partycji /recovery/ . Wszystkie te trzy partycje będą poddane procesowi flash'owania i po jego ukończeniu powinniśmy powrócić do stock'owego firmware. Pliki update.zip są podpisane cyfrowo i domyślnie nie damy rady ich wgrać przez TWRP recovery, bo zostanie nam wygenerowany poniższy błąd: sideload-host file size 968174348 block size 65536 Installing zip file '/sideload/package.zip' Verifying zip signature... I:read key e=3 hash=20 I:1 key(s) loaded from /res/keys I:comment is 1428 bytes; signature 1410 bytes from end I:TWFunc::Set_Brightness: Setting brightness control to 5 I:TWFunc::Set_Brightness: Setting brightness control to 0 I:failed to verify against RSA key 0 E:failed to verify whole-file signature I:Zip signature verification failed: 1 Zip signature verification failed! I:Signaling child sideload process to exit. I:Waiting for child sideload process to exit. sideload_host finished Problem jak widać dotyczy weryfikacji sygnatury pliku .zip . Musimy zatem poinstruować TWRP by nie weryfikował sygnatury. Możemy to zrobić odhaczając opcję ZIP signature verification w ustawieniach: Teraz możemy aktywować tryb ADB sideload przechodząc w Advanced => ADB Sideload: Czyszczenie cache jest opcjonalne ale można je zaznaczyć. Dane użytkownika i tak pozostaną nietknięte, zatem bez obaw. Niemniej jednak, trzeba pamiętać, że w przypadku modyfikacji partycji /system/ , np. przez Xposed, możemy napotkać dziwne problemy, które mogą uniemożliwić start lub też poprawne działanie systemu i wymagane będzie przeprowadzenie procesu Factory Reset. Po przesunięciu trzech strzałek na prawą stronę, ADB przełączy się w tryb sideload. Teraz wracamy na komputer i ładujemy plik update.zip przy pomocy poniższego polecenia (trzeba doinstalować narzędzie adb): # adb sideload /neffos/Y5_H10S100D00B20161207R1344_update.zip serving: '/neffos/Y5_H10S100D00B20161207R1344_update.zip' (~24%) Proces flash'owania plikiem update.zip zajmie dłuższą chwilę ale ostatecznie powinien zakończyć się powodzeniem: Uruchamiamy smartfon ponownie i ignorujemy przy tym informację, że to urządzenie nie mam zainstalowanego systemu operacyjnego (w zasadzie właśnie go zainstalowaliśmy): Po chwili powinien nam się załadować ekran z wyborem języka systemu: Po skonfigurowaniu systemu warto sprawdzić czy są dostępne jakieś aktualizacje. To na wypadek, gdybyśmy chcieli wgrać sobie jeszcze raz TWRP recovery czy przeprowadzać proces root Androida. W przypadku wprowadzenia jakichkolwiek zmian na partycji /boot/ , /system/ lub /recovery/ nie będziemy w stanie tych aktualizacji wgrać na smartfon i warto o tym pamiętać.
  4. Stock'owe Androidy w smartfonach mają ten problem, że zawierają całą masę preinstalowanych aplikacji od Google. Nie to by jakoś mnie to bolało, no może za wyjątkiem braku możliwości ich wywalenia czy wyłączenia. To co mnie trochę irytuje, to fakt obecności reklam w aplikacji YouTube. Nie da rady się ich pozbyć praktycznie w żaden sposób. Zdaję sobie sprawę, że serwis YT można przeglądać w Firefox'ie i jeśli mamy zainstalowanego w telefonie adblock'a, np. AdAway, czy też wdrożony podobny filtr na domowym routerze WiFi z LEDE/OpenWRT, to te reklamy mogą zostać z powodzeniem odfiltrowane, przynajmniej w Firefox'ie. Jestem też świadom istnienia aplikacji NewPipe , która jest zubożonym klientem YouTube. Niemniej jednak, te opisane wyżej sposoby mają jedną podstawową wadę. Mianowicie tracimy lwią część funkcjonalności serwisu YouTube. Przykładem mogą być powiadamiania w przypadku, gdy na jeden z subskrybowanych kanałów zostanie wrzucony jaki materiał video. Taką opcję ma ta aplikacja od Google ale klikając w powiadomienie jest niemal pewne, że włączy nam się jakaś wredna reklama o wiele głośniejsza niż sam filmik, który zamierzamy obejrzeć. Innym problemem w przypadku tej góglowskiej aplikacji jest brak możliwości odtwarzania video w tle czy też przy zgaszonym wyświetlaczu. Postanowiłem w końcu wziąć się za ogarnięcie tej góglowskiej aplikacji YouTube i wyeliminować te drażniące mnie problemy instalując w smartfonie framework Xposed wraz z odpowiednimi modułami: YouTube Background Playback oraz YouTube AdAway. Jako, że nie jest to proces łatwy, to postanowiłem go opisać krok po kroku. Ukorzeniony Android (root) oraz backup flash'a smartfona Może i Instalator Xposed można zainstalować na Androidzie, który nie przeszedł procesu root, ale pełna funkcjonalność framework'a Xposed zostanie aktywowana dopiero w momencie, gdy ukorzenimy sobie system. Naturalnie ta pełna funkcjonalność obejmuje instalowanie dodatkowych modułów. Zatem jak widzimy, bez root sam instalator jest w zasadzie bezużyteczny. Ten artykuł jest pisany w oparciu o smartfony Neffos, a konkretnie o modele C5 MAX oraz Y5, jako, że dysponują one różnymi platformami sprzętowymi (Mediatek i Qualcomm) oraz różnymi wersjami Androida (Lollipop oraz Marshmallow). Jeśli dysponujemy smartfonami Neffos C5 lub Y5L, to naturalnie poniżej opisane kroki można zastosować również i do tych modeli. Niemniej jednak, by cokolwiek zacząć robić potrzebny jest ukorzeniony system. Stosowne howto można znaleźć w osobnych wątkach: Neffos C5 MAX, Neffos C5, Neffos Y5L i Neffos Y5. Druga sprawa, to backup danych zgromadzonych w telefonie. Niby nic naszemu smartfonowi nie powinno się stać z racji instalowania w nim framework'a Xposed ale lepiej dmuchać na zimne i zrobić sobie kopię zapasową partycji /system/ oraz /data/ , a w ogóle to najlepiej zrobić pełny backup flash'a i w razie problemów przywrócić konkretne partycje. Informacje na temat tworzenia kopi zapasowej flash'a w smartfonach Neffos można znaleźć w wyżej podlinkowanych artykułach dotyczących przeprowadzania procesu root. Poniższa część artykułu zakłada, że mamy już ukorzeniony system i w razie ewentualnych problemów wiemy jak cofnąć w nim wprowadzone zmiany. Instalacja instalatora Xposed W zasadzie to musimy zainstalować w systemie dwie rzeczy: Instalator Xposed do zarządzania modułami oraz właściwy framework Xposed. Oba te pliki są dostępne w oficjalnym wątku na XDA. Sam instalator instalujemy z poziomu działającego Androida. Jeśli mamy dodatkowo zainstalowany F-Droid lub XDA Labs, to z ich repozytoriów również możemy ten instalator sobie wgrać na smartfona. Natomiast framework można zainstalować przez instalator Xposed lub też z poziomu TWRP recovery (ręcznie lub inicjując proces za pomocą instalatora Xposed). Instalacja framework'a Xposed Plik instalatora Xposed jest wspólny dla każdej wersji Androida (5.0, 5.1 i 6.0). Natomiast plik z framework'iem Xposed trzeba dobrać w zależności od wersji Androida i architektury systemowej. W tym przypadku mamy Androida 6.0 Marshmallow oraz Androida 5.1 Lollipop. Architektury z kolei to ARM64 i ARM32. Framework Xposed i Android 6.0 (Marshmallow) Niezależnie od wybranego sposobu instalacji instalatora Xposed (ręczne wgranie pliku .apk , F-Droid czy XDA Labs), musimy jeszcze sobie zainstalować sam framework. Odpalamy zatem instalator Xposed i klikamy na numerku wersji, by zainstalować framework: Jak widzimy, mamy do wyboru dwie opcje. Ja wybrałem sobie "Install" ale można też bez problemu zainstalować przez TWRP recovery. Po chwili proces instalacji powinien się zakończyć powodzeniem, a smartfon uruchomi się ponownie: Urządzenie się będzie dość długo uruchamiać ponownie i nie powinniśmy się tym faktem przejmować. Pojawi się także informacja o optymalizowaniu wszystkich aplikacji w smartfonie, co potrwa dłuższą chwilę. Warto tutaj zaznaczyć, że to optymalizowanie aplikacji będzie miało miejsce zawsze po instalowaniu jak i usuwaniu framework'a Xposed. Mając zainstalowany framework możemy przejść do instalacji interesujących nas modułów. Framework Xposed i Android 5.1 (Lollipop) Instalacja framework'a Xposed na smartfonach Neffos C5 MAX oraz C5 sprawia nieco więcej problemów, niż w przypadku Neffos'ów Y5 i Y5L. Prawdopodobnie winna jest tutaj starsza wersja Androida, która nie jest zbytnio kompatybilna z samym framework'iem. Niemniej jednak, w dalszym ciągu Xposed może zostać zainstalowany i uruchomiony z powodzeniem o ile zastosujemy się do poniższych wskazówek. Przede wszystkim, nie możemy zainstalować najnowszej wersji frameworka (obecnie jest to v87). Ta wersja powoduje jakieś bliżej nieznane problemy objawiające się następującym komunikatem w oknie instalatora: Wersja 87 Xposed framework jest zainstalowana ale nie jest aktywna. Proszę sprawdzić logi, aby poznać szczegóły. Po zajrzeniu w logi, mamy taką informację: ----------------- Starting Xposed version 87, compiled for SDK 22 Device: Neffos C5 Max (TP-LINK), Android version 5.1 (SDK 22) ROM: H10S103D01B20160812R1035 Build fingerprint: Neffos/TP702A/C5_Max:5.1/LMY47D/H10S103D01B20160812R1035.160811:user/release-keys Platform: arm64-v8a, 64-bit binary, system server: yes SELinux enabled: yes, enforcing: yes : ----------------- : Added Xposed (/system/framework/XposedBridge.jar) to CLASSPATH : Detected ART runtime : Found Xposed class 'de/robv/android/xposed/XposedBridge', now initializing : Error while loading XResources class 'android/content/res/XResources': : java.lang.IncompatibleClassChangeError: xposed.dummy.XResourcesSuperClass : at java.lang.Class dalvik.system.DexFile.defineClassNative(java.lang.String, java.lang.ClassLoader, long) (DexFile.java:-2) : at java.lang.Class dalvik.system.DexFile.defineClass(java.lang.String, java.lang.ClassLoader, long, java.util.List) (DexFile.java:226) : at java.lang.Class dalvik.system.DexFile.loadClassBinaryName(java.lang.String, java.lang.ClassLoader, java.util.List) (DexFile.java:219) : at java.lang.Class dalvik.system.DexPathList.findClass(java.lang.String, java.util.List) (DexPathList.java:321) : at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:54) : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511) : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:504) : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469) : at java.lang.Class dalvik.system.DexFile.defineClassNative(java.lang.String, java.lang.ClassLoader, long) (DexFile.java:-2) : at java.lang.Class dalvik.system.DexFile.defineClass(java.lang.String, java.lang.ClassLoader, long, java.util.List) (DexFile.java:226) : at java.lang.Class dalvik.system.DexFile.loadClassBinaryName(java.lang.String, java.lang.ClassLoader, java.util.List) (DexFile.java:219) : at java.lang.Class dalvik.system.DexPathList.findClass(java.lang.String, java.util.List) (DexPathList.java:321) : at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:54) : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511) : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469) : at boolean de.robv.android.xposed.XposedBridge.initXResourcesNative() (XposedBridge.java:-2) : at void de.robv.android.xposed.XposedInit.hookResources() (XposedInit.java:217) : at void de.robv.android.xposed.XposedBridge.main(java.lang.String[]) (XposedBridge.java:87) : Cannot hook resources : Cannot load any modules because /data/data/de.robv.android.xposed.installer/conf/modules.list was not found : ----------------- Wersja, która zdaje się działać, to v85 i to ją musimy sobie wgrać na smartfona. Wystarczy, że w oknie instalatora Xposed, z prawego górnego rogu rozwiniemy menu i wybierzemy "Show outdated versions", a pojawi nam się lista wersji, które będziemy w stanie zainstalować. Jest tam też min. v85. Wybieramy i instalujemy ją: Naturalnie smartfon się będzie dłużej uruchamiał i w tym przypadku również doświadczymy optymalizowania aplikacji, co potrwa kilka minut. Po uruchomieniu instalatora Xposed, zobaczymy ten sam komunikat ostrzeżenia, który był widoczny wyżej. By go zlikwidować, trzeba wejść w Ustawienia i zaznaczyć opcję "Wyłącz zasoby konfliktów". Po zresetowaniu systemu, framework powinien już się załadować bez problemu: Ta opcja "Wyłącz zasoby konfliktów" powoduje, że część modułów Xposed nie będzie nam funkcjonować prawidłowo (min. YouTube AdAway). Niemniej jednak, dobrze chociaż, że jakiekolwiek moduły w ogóle będą w stanie działać. Instalacja modułów Xposed Moduły do Xposed możemy instalować bezpośrednio z instalatora. Możemy też do tego celu zaprzęgnąć aplikację XDA Labs, która również ma wbudowane repozytorium modułów Xposed. W tym przypadku interesują nas dwa moduły: YouTube Background Playback oraz YouTube AdAway. Ich instalacja sprowadza się do odszukania konkretnego modułu i pobrania go: Po zainstalowaniu modułów Xposed, te nie są z automatu aktywne, o czym jesteśmy informowani w notyfikacjach systemowych. Wszystkie moduły mają swój własny autostart i możemy je dowolnie włączać lub wyłączać: Wszystkie te wyżej zaznaczone moduły będą startowane wraz z systemem. Jeśli jakieś moduły chcemy czasowo wyłączyć, to nie musimy ich wywalać z systemu, tylko wystarczy odptakować stosowną pozycję na liście modułów. Każda zmiana konfiguracji modułów musi być załadowana ponownie, a do tego celu trzeba uruchomić ponownie system w telefonie. Odinstalowanie framework'a Xposed i jego modułów Cały framework Xposed wraz z jego modułami można naturalnie odinstalować. W tym celu wystarczy odpalić instalator Xposed i odinstalować framework: Tutaj również mamy opcje usuwania bezpośrednio z systemu jak i przez tryb TWRP recovery. Oba działają bez zarzutu. Jeśli mieliśmy wgrane jakieś moduły Xposed, to one nie zostaną usunięte przy deinstalacji framework'a. Każdy moduł trzeba ręcznie usunąć, np. przez XDA Labs lub instalator Xposed. Po usunięciu modułów, instalator można usunąć w XDA Labs lub F-Droid.
  5. System Android w większej lub mniejszej części zmienia się z wydania na wydanie. Te nowsze wersje zwykle zawierają całą masę nowych mechanizmów i rozbudowują te już istniejące, tak by ten OS w lepszym stopniu zaspokajał zachcianki użytkowników smartfonów. Problem w tym, że niektóre kroki deweloperów Androida potrafią wprawić w zastanowienie niejednego logicznie myślącego osobnika. Przykładem może być przestawienie domyślnego trybu USB w Marshmallow z MTP na Charge-Only (tylko ładowanie). Jedni mówią, że takie posunięcie jest podyktowane względami bezpieczeństwa, a inni, że chodzi o performance przy ładowaniu baterii, gdzie moduł USB nie działa w tym drugim trybie i nie konsumuje energii, przez co ładowanie ma przebiegać szybciej. Ile w tym prawdy, tego nie wiem ale ja za bardzo nie widzę żadnych wymiernych korzyści z przestawienia tego trybu na Charge-Only. Natomiast widzę bardzo wyraźnie utrudnienia przy interakcji telefonu z komputerem za sprawą tej zmiany. Poszukałem trochę informacji na ten temat i znalazłem rozwiązanie w postaci aplikacji MTP enabler. Domyślny tryb USB w Marshmallow i Lollipop W Androidzie 5.1 Lollipop nie było żadnego problemu. Podłączało się smartfon do komputera i można było wymieniać dane na linii tych dwóch urządzeń. Natomiast w Androidzie 6.0 Marshmallow trzeba dodatkowo ręcznie przestawić tryb USB ilekroć podłączamy telefon do portu USB. Ta czynność jest mało wygodna, gdy się często podłącza telefon do komputera i takie ciągłe przestawianie tego trybu może nawet spokojnego człowieka wyprowadzić z równowagi: Konfiguracja trybu USB w opcjach programistycznych Gdzieniegdzie można się spotkać z opinią, że domyślny tryb USB w Marshmallow można trwale przestawić w opcjach programistycznych. No i faktycznie stosowna opcja jest tam obecna: Jeśli teraz byśmy podłączyli smartfon do komputera, to naturalnie zostanie ustawiony tryb przesyłu plików, a nie ładowania. To czego ludzie zapominają zrobić, to przetestowanie trwałości tej konfiguracji przez proste odłączenie urządzenia od komputera i ponowne jego podłączenie do portu USB. W takim przypadku z niewiadomych przyczyn system wraca do trybu ładowania i musimy ręcznie go przestawić na przesył plików. Nie wiem, która opcja jest wygodniejsza. Root Androida i MTP enabler Niestety próżno szukać w ustawieniach Androida opcji, która mogłyby nam umożliwić wybranie domyślnego trybu USB. Dlaczego? O to już trzeba zapytać deweloperów tego systemu. W efekcie mamy do wyboru jeden z dwóch scenariuszy. Opcja pierwsza to zaakceptowanie domyślnego trybu, który został ustawiony w Marshmallow. Drugim rozwiązaniem jest naturalnie próba obejścia tego całego mechanizmu i zdefiniowanie sobie takiego trybu USB, który najlepiej nam odpowiada. Stosowna aplikacja, która umożliwi nam swobodne operowanie na porcie USB w naszym telefonie, niestety wymaga praw administratora root, czyli musimy posiadać ukorzenionego Androida. Innej opcji o zgrozo nie ma. Aplikacja, o której mowa, nazywa się MTP enabler, a link do jej darmowej wersji widnieje na forum XDA. Instalacja tej aplikacji raczej nie powinna sprawić żadnych problemów. Po zainstalowaniu tego programiku, uruchamiamy go. Tak prezentują się opcje tej aplikacji: Jak widać jest ich dość sporo. Ta najważniejsza opcja wyboru domyślnego trybu jest naturalnie dostępna. Wybranie tutaj MTP zamiast Charging zaowocuje przestawieniem trybu domyślnego i ilekroć tylko będziemy podłączać smartfon do portu USB, to ten tryb będzie automatycznie aplikowany. Jeśli chcemy, by przy każdym podłączeniu smartfona do komputera pojawiała nam się notyfikacja z opcjami wyboru konkretnego trybu (tak jak to widać na pierwszej fotce wyżej), to również mamy taką możliwość. Tryb przesyłu plików (MTP) można także sobie zabezpieczyć w oparciu o znany ESSID sieci bezprzewodowej WiFi. W przypadku podłączenia smartfona do komputera przy braku WiFi lub też będąc podłączonym do innej sieci, aplikacja MTP enabler załączy nam jedynie tryb ładowania. Nie mogło także zabraknąć notyfikacji dźwiękowych. Czy przestawienie domyślnego trybu USB jest bezpieczne Naprawdę ciężko mi jest zrozumieć dlaczego przestawienie domyślnego trybu USB z MTP na Charge-Only ma miejsce w Androidzie Marshmallow. Wątpię, by ktoś odczuł jakąś różnicę przy ładowaniu smartfona przez port USB komputera za sprawą tej zmiany. Natomiast jeśli chodzi o kwestię bezpieczeństwa, to i tak przecież hasło blokady ekranu uniemożliwia zamontowanie zasobów smartfona w systemie operacyjnym komputera, przez co mając domyślny tryb MTP i tak trzeba wpisać hasło, by móc cokolwiek ze smartfonem robić. Może ktoś dysponuje argumentami, które przemawiają za przestawieniem trybu USB na Charge-Only? Bardzo chętnie bym się z nimi zapoznał.
  6. Każdy nowszy smartfon z Androidem oferuje możliwość zaszyfrowania wszystkich danych użytkownika zlokalizowanych na partycji /data/ . Cały proces można przeprowadzić w bardzo prosty sposób i bez większych problemów. Raz zaszyfrowanego telefonu nie da rady cofnąć do stadium przed szyfrowaniem i w zasadzie to zabezpieczenie można zdjąć jedynie przez przywrócenie urządzenia do ustawień fabrycznych. My tutaj jednak nie będziemy zajmować się samym szyfrowaniem smartfona i skupimy się bardziej na hasłach zabezpieczających mających stać na straży dostępu do naszych cennych danych, które mamy w telefonie. Większość z nas wykorzystuje krótkie hasło do odblokowania ekranu. To samo hasło z kolei jest wykorzystywane do zaszyfrowania klucza używanego w procesie szyfrowania/deszyfrowania danych na flash'u smartfona. W ustawieniach Androida nie ma jednak opcji rozdzielenia tych haseł i można by pomyśleć, że wykorzystanie czterocyfrowego kodu PIN jako zabezpieczenie mija się z celem. Na pewno w części smartfonów tak ale niekoniecznie we wszystkich modelach. Tak się składa, że akurat leży u mnie nieużywany Neffos Y5 od TP-LINK, to postanowiłem przyjrzeć się nieco bliżej tej kwestii haseł i sprawdzić czy jest się czego obawiać stosując krótkie hasła w zaszyfrowanych Androidach. Krótkie hasło zabezpieczające i szyfrowanie danych Proces szyfrowania i deszyfrowania danych jest jako taki transparentny dla użytkownika ale by był on możliwy, potrzebny jest nam stosowny klucz szyfrujący. Taki klucz jest przechowywany zwykle na końcu partycji /data/ , na przestrzeni ostatnich 16 KiB. Nie jest to jednak reguła ale w przypadku tych TP-LINK'owych telefonów, klucz znajduje się właśnie w tym miejscu. W niektórych modelach smartfonów, do tego celu jest wykorzystywana osobna partycja ale generalnie zasada działania mechanizmu szyfrującego jest taka sama, tj. trzeba ten klucz załadować do pamięci telefonu. Gdyby ten klucz szyfrujący sobie leżał w formie czytelnej na partycji /data/ , to szyfrowanie danych byłoby pozbawione sensu. Dlatego też ten klucz trzeba również zaszyfrować i robi się to drugim kluczem, który pochodzi od hasła użytkownika. W taki sposób klucz szyfrujący dane na smartfonie nie jest przechowany w formie jawnej, co utrudnia, bądź też uniemożliwia, jego odzyskanie. No chyba, że do zaszyfrowania tego klucza zostało użyte krótkie hasło. Krótkie hasła mają ten problem, że są bardzo podatne na ataki siłowe mające na celu odgadnięcie hasła przez próbowanie wszystkich możliwych kombinacji. W przypadku standardowego kodu PIN, to jest raptem 10000 możliwości, a praktycznie każdy domowy komputer jest w stanie znaleźć ten właściwy kod w czasie paru czy parunastu minut. Może i nasz smartfon ma zabezpieczenia, które po kilku nieudanych próbach odblokowania ekranu spowolnią kolejne próby zdjęcia blokady lub też żądają zresetowania telefonu albo nawet przeprowadzają bez pytania proces Factory Reset ale ten mechanizm chroni nasz telefon jedynie, gdy ten działa. Nie ochroni nas on jednak w przypadku, gdy telefon wyłączymy i zrobimy sobie kopię binarną całej partycji /data/ , na której mamy zaszyfrowany klucz główny. Tutaj ogromne znaczenie ma skomplikowane i długie hasło, które potrafi wydłużyć czas jego łamania do rzędu dziesiątek czy setek lat. Jak już zostało wspomniane we wstępie, Android domyślnie korzysta z tego samego hasła zarówno w przypadku blokady ekranu jak i do odszyfrowania klucza szyfrującego dane na smartfonie. W ustawieniach Androida nie mamy praktycznie żadnej opcji zmiany hasła szyfrującego klucz główny, no chyba, że zmienimy również hasło blokady ekranu. Problem w tym, że raczej nikt z nas nie będzie wpisywał długiego hasła za każdym razem, gdy chce skorzystać z telefonu. Część smartfonów z nowszą wersją Androida (5.0+) wspiera sprzętowe szyfrowanie i tak samo jest w przypadku Neffos'a Y5. Tutaj główną rolę odgrywa TEE (Trusted Execution Environment). W starszych wersjach Androida, klucz główny jest szyfrowany kluczem wygenerowanym przez scrypt na podstawie hasła użytkownika i przechowywanej soli. W przypadku nowszych smartfonów, takie urządzenia mają zaszyty w SoC dodatkowy unikalny klucz szyfrujący, którego nie da rady w żaden sposób wydobyć. To właśnie ten dodatkowy klucz sprawia, że odszyfrowanie danych w trybie off-line jest praktycznie niemożliwe. Dlatego też hasło użytkownika nie ma tutaj zbyt dużego znaczenia. Trzeba jednak mieć na uwadze, że nie wszystkie smartfony posiadają wsparcie dla sprzętowego szyfrowania i w ich przypadku przydałoby się używać dwóch różnych haseł. Choć ja uważam, że również i w każdym innym przypadku dwa różne hasła są lepsze niż jedno. Zmiana hasła szyfrowania przez adb Technicznie rzecz biorąc, mając w smartfonie wsparcie dla sprzętowego szyfrowania możemy sobie darować zmianę hasła. Niemniej jednak, dla tych osób, które chcą jeszcze bardziej poprawić bezpieczeństwo danych przechowywanych na smartfonie, istnieje możliwość rozdzielenia haseł, tak by z jednej strony telefon miał krótkie hasło blokady ekranu, a zarazem długie hasło wykorzystywane przy szyfrowaniu danych. Możemy to zrobić w zasadzie na dwa sposoby: przy pomocy aplikacji Cryptfs Password (źródła) lub też przy pomocy adb . To co łączy te dwie metody, to niestety ukorzeniony system (root), a jak wiadomo większość użytkowników smartfonów nie posiada root'a. W przypadku tego Neffos'a Y5, proces root można przeprowadzić bez większego problemu i naturalnie mój model ma już ten proces za sobą. Jeśli nie zamierzamy instalować dodatkowych aplikacji w telefonie, to naturalnie możemy skorzystać z adb . Podłączamy zatem nasz telefon do portu USB komputera i logujemy się na użytkownika root: # adb shell shell@Y5:/ $ su root@Y5:/ # Luzujemy nieco politykę bezpieczeństwa SELinux tak, by widzieć komunikaty zwracane przez vdc . Zmiany są jedynie tymczasowe i po zresetowaniu smartfona wszystko wróci do normy. Same komunikaty potrzebne nam są natomiast do zweryfikowania czy polecenia, które będziemy wykonywać, wykonały się z powodzeniem, czy też wystąpił jakiś błąd. root@Y5:/ # supolicy --live 'allow vdc devpts chr_file {read write getattr ioctl}' supolicy v2.79 (ndk:armeabi-v7a) - Copyright (C) 2014-2016 - Chainfire Patching policy ... (Android M policy compatibility mode) -allow:vdc:devpts:chr_file:read=ok -allow:vdc:devpts:chr_file:write=ok -allow:vdc:devpts:chr_file:getattr=ok -allow:vdc:devpts:chr_file:ioctl=ok - Success W tym przypadku hasło do odblokowania ekranu jest ustawione na PIN 1111. By odszyfrować telefon, podczas jego startu również trzeba ten kod wprowadzić. Po zmianie hasła, kod do blokady ekranu zostanie taki sam, natomiast hasło przy starcie będzie już inne. Hasło zmieniamy w poniższy sposób (w zależności od wersji Androida, polecenia do zmiany hasła się różnią): root@Y5:/ # vdc cryptfs changepw password 1111 jakies-haslo 200 0 0 Te cyferki wyżej ( 200 0 0 ) wskazują, że hasło zostało zmienione. Gdyby tutaj było 200 0 -1 , wtedy wystąpił jakiś błąd przy zmianie hasła i dalej mamy stare hasło. To hasło można zweryfikować poniższym poleceniem: root@Y5:/ # vdc cryptfs verifypw jakies-haslo 200 0 -1 Problem jednak w tym, że jak widać wyżej po cyferkach, mamy błąd, a to oznacza, że przy pomocy tego hasła nie da rady odszyfrować telefonu. Do końca nie wiem w czym tkwi problem ale samo hasło działa jak najbardziej i można przy jego pomocy odszyfrować telefon. Być może są jakieś błędy w kodzie Androida, który jest wgrany na ten smartfon, np. podobne do tych opisanych tutaj. Niemniej jednak, to o czym warto pamiętać, to jeśli zmienimy to hasło i podczas startu smartfona nie będziemy w stanie go odszyfrować, to czeka nas przywracanie ustawień urządzenia do domyślnych, czyli utracimy bezpowrotnie wszelkie dane z partycji /data/ . Dlatego też lepiej na firmowym smartfonie nie przeprowadzać procesu zmiany hasła bez absolutnej pewności co do późniejszego odszyfrowania zawartości telefonu. Po zmianie hasła resetujemy telefon i podczas startu podajemy już nowe hasło. W taki oto prosty sposób mamy dwa różne hasła (jedno do blokady ekranu, a drugie do szyfrowania partycji /data/ ). Jeśli kogoś interesuje zagadnienie szyfrowania danych w Androidzie, to naturalnie może sobie poczytać o szczegółach tutaj, tutaj, tutaj oraz tutaj. Czy zmiana hasła blokady ekranu wpływa na hasło klucza szyfrującego Czytając kilka artykułów, natknąłem się na wzmiankę, że zmiana hasła do blokady ekranu ma zmieniać również hasło od klucza szyfrującego. Nie wiem jak jest w przypadku innych telefonów czy wersji Androida ale w przypadku Neffos'a Y5, tego typu problem nie występuje. Hasło do blokady można zmienić bez większego problemu w ustawieniach ale hasło od klucza pozostaje takie jak zostało ustawione przez adb .
  7. 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.
  8. 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.
  9. 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:
  10. 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.
  11. 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:
  12. Ten temat, choć w dalszym ciągu aktualny, zawiera sporo informacji zbędnych przeciętnemu użytkownikowi przeprowadzającemu proces root Androida w swoim smartfonie. Dlatego też powstała uproszczona wersja tego tutoriala wykorzystująca natywne obrazy TWRP, co daje możliwość ukorzenienia Androida w kilku prostych krokach. Link do nowego HowTO. 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
  13. 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.
  14. 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.
  15. Dzięki uprzejmości TP-LINK Polska od jakiegoś czasu mam możliwość bawić się smartfonami Neffos, co można odczuć po sporej ilości artykułów dotyczących tych urządzeń. Postanowiłem przetestować możliwości każdego z tych telefonów dostępnymi benchmarkami na Androida, które można pobrać ze sklepu Google Play. Mnie generalnie tego typu benchmarki średnio interesują, bo zwykle nijak się mają do standardowego użytkowania telefonu ale wiem, że sporo użytkowników mobilnych technologi chciałaby tego typu test zobaczyć. Dlatego w oparciu o AnTuTu, 3DMark, PCMark oraz GFXBench zrobiłem kilka testów na każdym z podesłanych mi przez TP-LINK urządzeń. Smartfony, które wzięły udział w tym teście to: Neffos C5 MAX, Neffos C5, Neffos Y5 oraz Neffos Y5L. Ten artykuł dotyczy jedynie smartfona Neffos Y5. Testy pozostałych modeli smartfonów zostaną opisane osobno. Parametry sprzętowe Neffos Y5 Neffos Y5 ma 4 rdzeniowy procesor Qualcomm MSM8909AA (Cortex-A7) taktowany częstotliwością maksymalną 1,27 GHz. Jest tam również procesor graficzny Adreno 304. Do tego mamy również 2 GiB pamięci operacyjnej RAM. Jeśli chodzi zaś o wyświetlacz, to ma on 5,0" i rozdzielczość 1280x720 (293,7 PPI). Smartfon działa zaś pod kontrolą systemu operacyjnego Android 6.0 Marshmallow. Poniżej są fotki z CPU-Z: Wiemy zatem co Neffos Y5 ma z grubsza pod maską oraz jakim oprogramowaniem będziemy go testować. Pora zatem sprawdzić jakie wyniki zwrócą nam poszczególne aplikacje. Neffos Y5 vs. AnTuTu Neffos Y5 vs. GFXBench GFXBench ma w swojej ofercie kilka testów, których rozpiska jest zamieszczona poniżej: GFXBench jest w stanie rysować ciekawe wykresy podczas przeprowadzania konkretnych testów. Są tam min. wykresy temperatury i aktualnej częstotliwości pracy procesowa. Niemniej jednak, z nieznanych mi przyczyn te dwa wykresy nie były rysowane na żadnym z testowanych przeze mnie Neffos'ów. Dlatego też załączam jedynie podsumowanie oraz te wykresy, które zostały narysowane poprawnie:. Neffos Y5 vs. PCMark PCMark również oferuje szereg testów: Work 2.0 Performance Work 2.0 Battery Life Computer Vision Storage Work 1.0 Performance Neffos Y5 vs. 3DMark 3DMark również jest w stanie przeprowadzić kilka testów: Sling Shot ES 3.1 i Sling Shot Unlimited ES 3.1 Sling Shot ES 3.0 Sling Shot Unlimited ES 3.0 Ice Storm Ice Storm Extreme Ice Storm Unlimited