Wyszukaj

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



Więcej opcji wyszukiwania

  • Wyszukuj po tagach

    Wpisz tagi, oddzielając je przecinkami.
  • Wyszukuj po autorze

Typ zawartości


Forum

  • Kategoria Główna
    • Regulamin Forum - zasady korzystania
    • Kształt forum - dyskusja, propozycje, opinie.
    • tplinklogin.net oraz tplinkextender.net
    • Przydatne adresy internetowe
    • ftp://tplink-forum.pl
    • 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
    • PORADY SERWISOWE
    • 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 22 wyników

  1. 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ć.
  2. Smartfony mają to do siebie, że ogromna większość z nich pracuje pod kontrolą systemu linux, a konkretnie jest to jakiś Android. Tak też jest w przypadku Neffos'a C5 od TP-LINK, gdzie mamy zainstalowaną wersję 5.1 (Lollipop). My linux'iarze chcemy mieć pełny dostęp do systemu operacyjnego, by bez większych przeszkód móc zarządzać urządzeniem, które pod jego kontrolą pracuje. Problem w tym, że ten Neffos C5 nie ma w standardzie root'a i nie mamy administracyjnego dostępu do całego systemu plików telefonu. Jest kilka metod root'owania smartfona, np. za pomocą Kingoroot/Kingroot ale nie działają one w przypadku tego telefonu (i całe szczęście). W tym artykule zostanie pokazany sposób na root systemu Neffos'a C5 przy zachowaniu wszelkich norm bezpieczeństwa, które w sytuacjach podbramkowych pomogą nam odzyskać kontrolę nad telefonem. Narzędzia ADB i fastboot Przede wszystkim, by zabrać się za proces root'owania smartfona Neffos C5, musimy przygotować sobie odpowiednie narzędzia. Zapewnią one nam możliwość rozmawiania z telefonem. Będziemy potrzebować adb (Android Debug Bridge) oraz fastboot . Proces instalacji tych narzędzi na linux, a konkretnie w dystrybucji Debian, został opisany osobno. Narzędzie SP Flash Tool Kolejnym narzędziem, które będzie nam niezbędne jest SP Flash Tool. Niestety nie jest ono włączone do dystrybucji Debian i musimy posiłkować się paczką, którą można znaleźć w podanym wyżej linku. Tutaj ważna uwaga. SP FLash Tool jest przeznaczony tylko dla smartfonów mających SoC od Mediatek. Pobieramy paczkę .zip dla linux'a i wypakowujemy ją. Jako, że SP Flash Tool wykorzystuje do komunikacji interfejs /dev/ttyACM0 , to do poprawnej pracy wymaga on operowania na tym interfejsie. Standardowo tylko administrator systemu oraz członkowie grupy dialout są w stanie korzystać z tego interfejsu. Musimy zatem dodać naszego użytkownika do tej grupy w poniższy sposób: # gpasswd -a morfik dialout Kompletny backup flash'a Neffos C5 Mając zainstalowane te powyższe narzędzia, możemy przejść do zrobienia backup'u całego flash'a, który jest w naszym smartfonie. Proces backup'u najprościej przeprowadzić za pomocą SP Flash Tool. Niemniej jednak, potrzebne nam są pewne informacje, które możemy uzyskać przy pomocy adb . Podpinamy zatem telefon do portu USB komputera i w terminalu wpisujemy poniższe polecenie: # adb shell cat /proc/partinfo Name Start Size pgpt 0x0000000000000000 0x0000000000080000 proinfo 0x0000000000080000 0x0000000000300000 nvram 0x0000000000380000 0x0000000000500000 protect1 0x0000000000880000 0x0000000000a00000 protect2 0x0000000001280000 0x0000000000a00000 lk 0x0000000001c80000 0x0000000000080000 para 0x0000000001d00000 0x0000000000080000 boot 0x0000000001d80000 0x0000000001000000 recovery 0x0000000002d80000 0x0000000001000000 logo 0x0000000003d80000 0x0000000000800000 expdb 0x0000000004580000 0x0000000000a00000 seccfg 0x0000000004f80000 0x0000000000080000 oemkeystore 0x0000000005000000 0x0000000000200000 secro 0x0000000005200000 0x0000000000600000 keystore 0x0000000005800000 0x0000000000800000 tee1 0x0000000006000000 0x0000000000500000 tee2 0x0000000006500000 0x0000000000500000 frp 0x0000000006a00000 0x0000000000100000 nvdata 0x0000000006b00000 0x0000000002000000 metadata 0x0000000008b00000 0x0000000002500000 system 0x000000000b000000 0x0000000100000000 cache 0x000000010b000000 0x0000000019000000 userdata 0x0000000124000000 0x000000027ed80000 flashinfo 0x00000003a2d80000 0x0000000001000000 sgpt 0x00000003a3d80000 0x0000000000080000 Ten zwrócony wyżej wynik jest dla smartfona Neffos C5. W przypadku innych telefonów, ta tabelka może mieć inną postać i nie możemy kopiować z niej wartości jeśli mamy inne urządzenie. Generalnie rzecz biorąc, to te dane potrzebne nam są do zbudowania pliku scatter.txt , w oparciu o który działa SP Flash Tool. Ten plik to zwyczajna mapa przestrzeni flash'a telefonu, który podzielony jest na szereg widocznych wyżej partycji. Plik scatter.txt dla Neffos C5 Tutaj znajduje się plik scatter.txt, który ja wykorzystałem do pracy z Neffos C5 (mt6735-neffos-c5-tp-link-scatter.txt). Kluczowa sprawa, to opisanie każdej partycji. W sumie to musimy odpowiednio dostosować pole partition_index , które jest zwyczajnie kolejnym numerkiem. Z kolei w partition_name podajemy nazwę partycji, którą uzyskaliśmy przez adb . Dalej w linear_start_addr oraz physical_start_addr wpisujemy tę wartość, która została wypisana przez adb w kolumnie Start . Na podobnej zasadzie uzupełniamy partition_size , podając wartość, którą widzieliśmy w adb w kolumnie Size . I to w zasadzie wszystkie zmiany, które musimy wprowadzić do pliku scatter.txt . Póki co nie mam informacji co do pozostałych opcji w tym pliku, wiem tylko, że część z nich jest uzupełniana przez SP Flash Tool podczas przeprowadzania działań w tym programie. Tworzenie backupu Mając plik scatter.txt możemy go wskazać w SP Flash Tool. Przechodzimy zatem do katalogu z wypakowaną zawartością pobranej paczki i uruchamiamy SP Flash Tool wpisując w terminalu ./flash_tool . Powinniśmy zobaczyć okienko, z kilkoma zakładkami. Na jednej z nich widnie napis Download . W niej z kolei znajduje się pozycja Scatter-loading file . To tutaj musimy wskazać ścieżkę do pliku scatter.txt , który utworzyliśmy wcześniej: Teraz przechodzimy na zakładkę Readback i tam dodajemy nową pozycję w tabelce. To tutaj określamy przestrzeń flash'a w telefonie, która zostanie skopiowana na dysk komputera. Nas interesuje cały flash. Dlatego też początek ustawiamy na 0x0 , a koniec musimy obliczyć z danych dostarczanych przez adb . Interesuje nas ostatnia partycja. Ma ona początek na 0x3a3d80000 , a jej rozmiar to 0x80000 . Te dwie wartości musimy do siebie dodać, w wyniku czego otrzymujemy 0x3a3e00000 i to tę wartość wpisujemy w SP Flash Tool. Region określamy jako EMC_USER : Dodajemy również drugą pozycję, która zrobi nam backup preloader'a. Z tym, że tutaj wybieramy region EMMC_BOOT_1 i określamy początek jako 0x0 , a koniec jako 0x40000 : Teraz wyłączamy telefon i podłączamy go do portu USB komputera. Następnie w SP Flash Tool aktywujemy proces backup'u Neffos'a C5 przyciskając Read Back . Włączamy teraz telefon przyciskając i trzymając przycisk Volume Up + Power do momentu aż nam zawibruje. Smartfon się nie włączy ale za to rozpocznie się kopiowanie danych z telefonu na dysk. Proces backup'u potrwa dłuższą chwilę. W moim przypadku trwało prawie dwie godziny (transfer na poziomie 3 MiB/s). Ten backup jest nas w stanie zabezpieczyć na wypadek popełnionych błędów przy flash'owaniu telefonu. Podejrzymy jeszcze ten obraz w fdisk/gdisk , by mieć absolutną pewność, że jest w nim faktyczna kopia flash'a Neffos'a C5: Jak odblokować bootloader w Neffos C5 Mając zrobiony kompletny backup flash'a, możemy przejść do odblokowania bootloader'a. Chodzi o to, że na smartfonach zwykle jest ulokowana partycja /recovery/ . Na niej znajduje się oprogramowanie umożliwiające przeprowadzanie operacji na poziomie systemowym, np. backup lub też flash'owanie ROM'u. Problem w tym, że to oprogramowanie w standardzie zwykle za wiele nie potrafi i by przeprowadzić proces root'owania Androida, musimy pozyskać bardziej zaawansowany soft, np. ClockworkMod czy TWRP, i wgrać go na partycję /recovery/ . By to zrobić musimy pierw odblokować bootloader. Proces odblokowania bootloader'a usuwa wszystkie dane, które wgraliśmy na flash telefonu, tj. podczas odblokowywania jest inicjowany factory reset. Dane na karcie SD pozostają nietknięte. By ten proces zainicjować zaczynamy od przestawienia jednej opcji w telefonie. W tym celu musimy udać się w Ustawienia => Opcje Programistyczne i tam przełączyć Zdjęcie blokady OEM : Następnie wyłączamy telefon i włączamy go trzymając Volume Up + Power. Z menu wybieramy tryb fastboot. Następnie w terminalu wpisujemy poniższe polecenia: # fastboot devices TSL7DA69OBSO49PJ fastboot # fastboot oem unlock Na ekranie smartfona powinno nam pokazać się poniższe ostrzeżenie: Unlock bootloader? If you unlock the bootloader, you will be able to install custom operating system software on this phone. A custom OS is not subject to the same testing as the original OS, and can cause your phone and installed application to stop working properly. To prevent unauthorized access to your personal data, unlocking the bootloader will also delete all personal data from your phone "factory reset". Press the Volume UP/Down buttons to select Yes/No. Wciskamy Volume Up, by potwierdzić chęć odblokowania bootloader'a, po czym restartujemy smartfon: # fastboot reboot Jako, że proces odblokowania bootloader'a usunął wszelkie ustawienia, to jeszcze raz musimy włączyć Opcje programistyczne, a w nich tryb debugowania portu USB. Wyodrębnianie obrazu partycji /recovery/ z obrazu Neffos'a C5 Mając zrobiony backup flash'a telefonu, możemy z niego wyciągnąć obraz partycji /recovery/ . Musimy tylko zamontować ten obraz w systemie za pomocą losetup . Pamiętajmy, że ten obraz ma wiele partycji. Trzeba zatem nieco dostosować moduł kernela, by wszystkie z tych partycji zostały zamontowane za pomocą jednego polecenia. Informacje na temat tego jak dostosować moduł loop znajdują się tutaj. Przechodzimy zatem w miejsce, w którym zapisaliśmy obraz i montujemy go w poniższy sposób: # cd /path/to/image/ # losetup /dev/loop0 ROM_0 Teraz tworzymy obraz partycji /recovery/ . W tym przypadku /dev/loop0p8 jest urządzeniem, które musimy podać dd : # dd if=/dev/loop0p8 of=./recovery.img # file recovery.img recovery.img: Android bootimg, kernel (0x40080000), ramdisk (0x44000000), page size: 2048, cmdline (bootopt=64S3,32N2,64N2) Pozyskanie obrazu recovery.img z TWRP Musimy także pozyskać obraz recovery.img zawierający TWRP. Niestety, póki co nie ma obrazów dla Neffos'a C5. Dlatego też musimy sobie taki obraz recovery.img stworzyć sami przerabiając inny obraz, który jest przeznaczony na telefon zbliżony parametrami do naszego urządzenia (ten sam SoC, wielkość flash i rozdzielczość ekranu). Warto tutaj zaznaczyć, że nie zawsze taki obraz będzie nam działać bez problemu. W takim przypadku trzeba próbować innych obrazów, aż któryś zadziała. Nie musimy się tez obawiać wgrania złego obrazu na partycję /recovery/ . Jeśli zdarzy nam się wgrać niedziałający obraz recovery.img , to nie uszkodzimy smartfona. Zamiast tego telefon się zrestartuje i przywróci sobie starą partycję /recovery/ , a nas zaloguje do systemu jak gdyby nigdy nic. Moje pierwsze podejście do wgrania obrazu recovery.img na Neffos'a C5 się nie powiodło. Prawdopodobnie obraz nie był odpowiednio przygotowany i w efekcie trzeba było wgrać inny obraz. Ja skorzystałem z obrazu podrzuconego przez użytkownika @GWJ. Musiałem go tylko dostosować pod Neffos'a C5 (recovery-neffos-c5-tp-link-twrp.img). Przepakowanie obrazu recovery.img z innego smartfona By przepakować obraz przeznaczony na inny smartfon, który jest zbliżony parametrami do naszego Neffos'a C5, musimy pierw pozyskać odpowiednie narzędzia. Na linux'ie możemy skorzystać tego celu z abootimg lub też ze skryptów Android Image Kitchen. Ja będę korzystał z tego drugiego rozwiązania. Tworzymy sobie jakiś katalog roboczy i kopiujemy do niego zarówno oryginalny obraz partycji /recovery/ jak i ten z innego smartfona. Następnie znajdując się w tym katalogu roboczym, pobieramy skrypty z github'a (wymagane zainstalowane narzędzie git w systemie) i przechodzimy do utworzonego w ten sposób katalogu. W nim zaś tworzymy dwa podkatalogi stock/ oraz port/ : $ git clone https://github.com/ndrancs/AIK-Linux-x32-x64/ $ chmod +x ./AIK-Linux-x32-x64/* $ chmod +x ./AIK-Linux-x32-x64/bin/* $ cd ./AIK-Linux-x32-x64/ $ mkdir stock/ port/ Kopiujemy oryginalny obraz partycji /recovery/ z katalogu nadrzędnego i wypakowujemy go za pomocą skryptu unpackimg.sh . Następnie przenosimy tak wyodrębnioną zawartość do katalogu stock/ : $ cp ../recovery_orig.img ./recovery.img $ ./unpackimg.sh recovery.img $ mv split_img/ ramdisk/ stock/ $ rm recovery.img Kopiujemy teraz obraz partycji /recovery/ mający TWRP i wypakowujemy go. Przenosimy jego zawartość do katalogu port/ : $ cp ../recovery_twrp.img ./recovery.img $ ./unpackimg.sh recovery.img $ mv split_img/ ramdisk/ port/ $ rm recovery.img Zgodnie z informacją zawartą w tym HOWTO (windows), musimy przekopiować kilka plików z oryginalnego obrazu naszego Neffos'a C5 do obrazu TWRP: $ cp ./stock/split_img/recovery.img-kerneloff ./port/split_img/ $ cp ./stock/split_img/recovery.img-zImage ./port/split_img/ $ cp ./stock/ramdisk/fstab.mt6735 ./port/ramdisk/ $ cp ./stock/ramdisk/meta_init.modem.rc ./port/ramdisk/ $ cp ./stock/ramdisk/meta_init.project.rc ./port/ramdisk/ $ cp ./stock/ramdisk/meta_init.rc ./port/ramdisk/ $ cp ./stock/ramdisk/ueventd.rc ./port/ramdisk/ Z tak przygotowanych plików w katalogu port/ trzeba zrobić nowy obraz recovery.img przy pomocy skryptu repackimg_x64.sh : $ rm -R stock/ $ mv port/ramdisk ./ $ mv port/split_img ./ $ rmdir port/ $ ./repackimg_x64.sh W katalogu roboczym powinien zostać utworzony nowy plik o nazwie image-new.img . To jest właśnie nasz nowy obraz partycji /recovery/ , który musimy wgrać na telefon w trybie fastboot. Wgrywanie przepakowanego obrazu recovery.img na Neffos'a C5 Wyłączamy telefon i podpinamy go do portu USB. Następnie włączamy go trzymając VolumeUP + Power. Z menu, które nam się pokaże na ekranie telefonu wybieramy tryb fastboot. Wracamy na komputer i przy pomocy narzędzia fasboot wgrywamy wyżej wygenerowany obraz na telefon. # fastboot flash recovery image-new.img target reported max download size of 134217728 bytes sending 'recovery' (12642 KB)... OKAY [ 1.301s] writing 'recovery'... OKAY [ 0.279s] finished. total time: 1.580s Restartujemy telefon ( fastboot reboot ) i wchodzimy w tryb recovery (VolumeUp + Power), by potwierdzić, że nasz nowy obraz recovery się wgrał pomyślnie. W przypadku wgrania poprawnego obrazu, powinniśmy zobaczyć logo TWRP. Jeśli wgrany obraz był nieprawidłowy, to zobaczymy jedynie czarny ekran i nasz Neffos C5 się po chwili uruchomi ponownie w normalnym trybie przywracając oryginalną partycję /recovery/ . SuperSU, BusyBOX, RootCheck i emulator terminala Ostatnią rzeczą na drodze do zrobienia root na Neffos C5 jest wgranie aplikacji umożliwiającej korzystanie różnym programom z praw administratora systemu w telefonie. My skorzystamy z SuperSU. Dodatkowo, musimy wgrać sobie BusyBOX, który zawiera minimalistyczne odpowiedniki linux'owych narzędzi, co pozwoli nam swobodnie operować w Androidzie, tak jakbyśmy to robili pod pełnowymiarowym pingwinem. Potrzebny nam także będzie jakiś emulator terminala, w którym to będziemy wpisywać wszystkie nasze polecenia. Instalacja SuperSU Zacznijmy od pobrania stosownej paczki z SuperSU. Jako, że my nie mamy jeszcze zrobionego root'a, to musimy pobrać TWRP / FlashFire installable ZIP . Tej paczki nie wypakowujemy, tylko wrzucamy ją w pobranej formie na kartę SD w telefonie. Odpalamy teraz tryb recovery w smartfonie (VolumeUp + Power) i przechodzimy kolejno do Instaluj (TWRP jest również w języku polskim): Następnie wskazujemy paczkę .zip , którą umieściliśmy na karcie SD. Tam z kolei zaznaczamy Weryfikuj sygnatury pliku zip i przeciągamy trzy strzałki na prawą stronę. Teraz możemy uruchomić ponownie Neffos'a C5 i zainstalować jakąś aplikację, która pokaże nam czy nasz smartfon ma root'a. Sprawdzenie czy Neffos C5 ma root'a Po uruchomieniu się systemu na smartfonie, instalujemy aplikację RootCheck, po czym uruchamiamy ją. Powinien się pojawić monit informujący, że ta aplikacja żąda praw administracyjnych, na co zezwalamy. Jeśli nasz telefon ma root'a, to powinien się pojawić stosowny komunikat: Instalacja BusyBOX Kolejnym krokiem jest instalacja BusyBOX'a. Po wgraniu tej aplikacji na smartfona, musimy ją uruchomić i wcisnąć w niej przycisk install . BusyBOX również nas poprosi o dostęp do praw administracyjnych: Po zainstalowaniu, weryfikujemy jeszcze, czy aby wszystko zostało pomyślne wgrane. Możemy to zrobić zarówno w samej aplikacji BusyBOX, jak w w CheckRoot: Instalacja terminala Z BusyBOX'em zostały dostarczone niskopoziomowe narzędzia, które mogą korzystać z uprawnień administratora systemu za sprawą SuperSU. Niemniej jednak, by móc odpalać te programiki, musimy w czymś je uruchomić. Do tego celu potrzebny jest nam shell oraz emulator terminala. Domyślny shell ash jest dostarczany razem z BusyBOX. Terminal musimy doinstalować osobno. Generalnie to znalazłem dwa terminale, które są OpenSource i bez reklam/opłat. Są to Android-Terminal-Emulator oraz Termux. Wybieramy sobie jeden z nich i instalujemy w systemie. Tutaj warto jeszcze zaznaczyć, że ten drugi terminal instaluje sobie również shell dash (domyślny shell w Debianie) . Również w jego przypadku możemy łatwo doinstalować sobie aplikacje za pomocą apt , podobnie jak w Debianie (do tego celu nie jest wymagany root). Jako, że ja korzystam na co dzień z Debiana, to instaluje Termux'a. Aplikacje i prawa administracyjne Teraz już pozostało nam tylko odpalenie terminala i zalogowanie się na użytkownika root. Do tego celu służy polecenie su . Wpiszmy je zatem w okienku Termux'a: I teraz możemy uruchamiać aplikacjie z prawami admina, tak jak to zwykliśmy robić w każdym innym linux'ie. Pamiętajmy tylko, że standardowo system plików jest zamontowany w trybie tylko do odczytu (RO) i by móc zmieniać pliki systemowe z poziomu tego terminala, musimy przemontować system plików w tryb do zapisu (RW). Robimy to w poniższy sposób: $ su # mount -o remount,rw /system Gdy skończymy się bawić, to montujemy ten system plików ponownie w tryb RO: # mount -o remount,ro /system
  3. Jako, że w końcu udało mi się zbudować obraz TWRP recovery ze źródeł Androida dla jednego z moich smartfonów Neffos, to postanowiłem, że zbuduję sobie podobne obrazy dla pozostałych TP-LINK'owych telefonów. Cała konfiguracja pod konkretne modele Neffos'ów będzie wersjowana i trzymana na GitHub'ie. Tego typu rozwiązanie sprawi, że w niedługim okresie czasu, smartfony Neffos będą oficjalnie wspierane przez TWRP, no i otwiera to oczywiście drogę do budowy alternatywnych ROM'ów ale tu jeszcze trochę będzie trzeba posiedzieć. Tak czy inaczej własnoręczne budowanie ze źródeł obrazu daje możliwość bardzo prostej aktualizacji oprogramowania dla trybu recovery. Do tej pory w wątkach poświęconych ukorzenianiu smartfonów (root) były wykorzystywane pseudo porty obrazów z innych urządzeń zbliżonych pod kątem podzespołów. Te obrazy nie zawsze działały tak jak powinny i w zasadzie nadawały się jedynie dla procesu root. Poniżej zaś znajdują się gotowe obrazy recovery dla poszczególnych modeli Neffos'ów, które można pobrać i z powodzeniem wgrać na telefon via fastboot. Obok obrazów są także linki do repozytoriów z konfiguracją obrazów. Gotowy obraz recovery-twrp-tp-link-neffos-y5.img | Repo z konfiguracją dla Neffos Y5 Gotowy obraz recovery-twrp-tp-link-neffos-y5l.img | Repo z konfiguracją dla Neffos Y5L Gotowy obraz recovery-twrp-tp-link-neffos-c5.img | Repo z konfiguracją dla Neffos C5 Gotowy obraz recovery-twrp-tp-link-neffos-c5-max.img | Repo z konfiguracją dla Neffos C5 MAX By wgrać taki obraz na telefon, trzeba mieć zainstalowane w systemie wspomniane wyżej narzędzie fastboot. By dodatkowo móc wykonać szereg akcji z poziomu tego trybu recovery, potrzebne jest nam także narzędzie adb. Proces instalacji i konfiguracji tych narzędzi pod linux (Debian) został opisany tutaj.
  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. 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 .
  6. 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.
  7. Jak już zapewne wielu użytkowników tego forum wie, ja posiadam kilka smartfonów, które mają ukorzenionego Androida, tj. został na tych urządzeniach przeprowadzony proces root. Tego typu zabieg wyłącza praktycznie wszystkie (albo większość) mechanizmów obronnych naszego telefonu. Biorąc pod uwagę fakt, że cała masa użytkowników smartfonów (nie tylko Neffos'ów od TP-LINK) ukorzenia te urządzenia bez wiedzy co tak naprawdę robi, to postanowiłem napisać kilka słów odnośnie problemów, którym użytkownik ukorzenionego systemu będzie musiał stawić czoła. Przede wszystkim, muszę tutaj zaznaczyć, że samymi smartfonami, a właściwie systemem Android, interesuję się od kilku miesięcy i w zasadzie nie poznałem go jeszcze w pełni. Niemniej jednak, od czasu do czasu rozpracowuje sobie pewne rzeczy w oparciu o dwie wersje Androida: 5.1 (Lollipop) oraz 6.0 (Marshmallow). Ten wpis ma na celu zebranie wszystkich artykułów, które pokazują jak proces root wpływa na bezpieczeństwo systemu oraz, które z jego funkcji przestają działać lub tez są w znacznym stopniu upośledzone. To, że akurat ja korzystam z ukorzenionego Androida, nie znaczy, że i ty powinieneś, zwłaszcza w przypadku, gdy bezpieczeństwo danych przechowywanych w telefonie ma dla ciebie nadrzędne znaczenie. W zasadzie wszystkie z czterech modeli smartfonów Neffos dostępnych na polskim rynku, tj. C5, C5 MAX, Y5 i Y5L, można zrootować bez większego problemu. W moim przypadku, proces root bardzo ułatwia mi rozpracowanie samego systemu i sprawia, że mam wgląd w miejsca, w które standardowy użytkownik telefonu zajrzeć nie może, bo Android odmawia mu dostępu właśnie ze względów bezpieczeństwa. Dlatego też jeśli nie potrzebujesz rootować systemu w telefonie, to tego po prostu nie rób. Problemy z lokalizacją skradzionego smartfona Jednym z bardziej podstawowych mechanizmów ochronnych, które oferuje Google w Androidzie, to usługa lokalizacji smartfona na wypadek jego utraty czy kradzieży. No w przypadku zwykłego zawieruszenia się naszego telefonu raczej nic nam nie grozi ale, gdy takie urządzenie zostanie nam skradzione, to wtedy mamy bardzo poważny problem. Przede wszystkim, mając odblokowany bootloader, który jest wymagany do ukorzenienia Neffos'ów, dajemy złodziejowi narzędzie zresetowania smartfona i obejścia tym samym blokady Factory Reset Protection Lock (FRP Lock). Gdy złodziej obejdzie tę blokadę jest w stanie przywrócić system urządzenia do ustawień fabrycznych, np. w celu odsprzedania telefonu komuś trzeciemu. W takim przypadku nasz smartfon nie będzie już dłużej powiązany z konkretnym kontem Google i zlokalizowanie go przez ww. usługę będzie zwyczajnie niemożliwe. Więcej informacji na temat lokalizacji zagubionych/skradzionych smartfonów można znaleźć w osobnym wątku. Możliwość obejścia blokady ekranu Standardowo każdy z nas korzysta z blokady ekranu w swoich telefonach. Ja akurat mam opcję "Przesuń palcem" ale jakby nie patrzeć, to też blokada. Ci z was, którzy wykorzystują PIN, wzór albo hasło, mogą nieco się zawieść, w przypadku, gdy mają ukorzenionego Androida. Cały ten mechanizm blokady ekranu opiera się o ustawienia stosownej aplikacji i klucz zabezpieczający. Wszystkie te dane są przechowywane w plikach na flash'u smartfona. Jeśli teraz mamy zdjętą blokadę bootloader'a, bo chcieliśmy sobie ukorzenić system, to dostęp do tych kluczy i ustawień pozostaje niechroniony i można zresetować blokadę ekranu przez tryb recovery. Więcej informacji na temat resetowania ustawień blokady ekranu można znaleźć w osobnym wątku (ostatni nagłówek). Odszyfrowanie zawartości karty SD sformatowanej jako pamięć wewnętrzna Nowsze wersje Androidów (6.0+) są w stanie rozbudować pamięć flash w smartfonach przy wykorzystaniu Adoptable Storage. Ten mechanizm zakłada sformatowanie karty SD system plików, który daje możliwość wykorzystania uprawnień do plików w celu poprawienia bezpieczeństwa systemu i poufności danych przechowywanych na samej karcie SD. Domyślnie dane na tej karcie SD są szyfrowane i nie da rady do tych informacji uzyskać dostępu z poziomu innego urządzenia. Możemy w zasadzie korzystać z tej karty na smartfonie, gdzie została ona sformatowana jako pamięć wewnętrzna i nic poza tym. Do szyfrowania zawartości karty jest wykorzystywany losowy klucz szyfrujący, który jest tworzony w procesie formatowania karty SD. Ten klucz nie jest zabezpieczony żadnym hasłem (np. tym od blokady ekranu) i leży sobie jak gdyby nigdy nic na flash'u smartfona. Mając przeprowadzony proces root, ten klucz jest dostępny praktycznie dla każdego, przez co jakiekolwiek szyfrowanie danych na karcie SD jest tylko złudzeniem bezpieczeństwa i niepotrzebnie obciąża procesor telefonu. Więcej informacji na temat odszyfrowania zawartości karty SD sformatowanej jako pamięć można znaleźć w osobnym wątku. Inne problemy Oczywiście, te powyżej wypisane niedogodności nie są jedynymi. Prawdopodobnie jest ich jeszcze cała masa ale, jako, że mam ciągle niewielkie doświadczenie z Androidem, to jeszcze nie wszystkie rzeczy udało mi się wyłapać. Niemniej jednak, jak tylko coś ciekawego znajdę, to naturalnie opiszę i dodam stosowny nagłówek w tym wątku, tak by ta lista była możliwie rozbudowana, co może przyczyni się do większej świadomości osób korzystających z Androida i zaowocuje zastanowieniem się na tym, czy faktycznie dany użytkownik potrzebuje ukorzenionego Androida w swoim smartfonie.
  8. 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:
  9. 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.
  10. By nieco ogarnąć informacje na temat ukorzeniania Androidów w smartfonach Neffos, postanowiłem zebrać je w tym wątku. To tak na wypadek, gdyby ktoś potrzebował szybkiego przekierowania do odpowiednich tematów opisujących proces root każdego z modeli tych telefonów. Póki co zdołałem opisać proces root na smartfonach Neffos C5, Neffos C5 MAX i Neffos Y5 ale na tym na pewno nie poprzestanę. Część informacji zawartych w poradnikach opisujących proces uzyskiwania dostępu root została spisana w celach informacyjnych. W zasadzie to nie trzeba przeprowadzać wszystkich kroków, by ukorzenić Androida na swoim Neffos'ie. Jedyne czego potrzebujemy to obraz recovery.img, do którego link jest zamieszczony w każdym z poradników. Taki obraz trzeba wgrać na flash telefonu via fastboot. Opcjonalnie można zrobić backup flash'a smartfona. Natomiast pozyskiwanie i przepakowanie obrazu recovery.img z innego smartfona można sobie odpuścić zupełnie. Narzędzia ADB i FASTBOOT HowTo: Instalacja narzędzi ADB i fastboot pod linux Neffos C5 HowTo: Root smartfona Neffos C5 od TP-LINK Jak przeprowadzić unroot na smartfonie Neffos C5 od TP-LINK Neffos C5 MAX HowTo: Root smartfona Neffos C5 MAX od TP-LINK Jak przeprowadzić unroot na smartfonie Neffos C5 MAX od TP-LINK Neffos Y5 HowTo: Root smartfona Neffos Y5 od TP-LINK Jak przeprowadzić unroot na smartfonie Neffos Y5 od TP-LINK Neffos Y5L HowTo: Root smartfona Neffos Y5L od TP-LINK Jak przeprowadzić unroot na smartfonie Neffos Y5L od TP-LINK Proces Root Integrity Check Smartfony Neffos są wyposażone w mechanizm, który jest w stanie zweryfikować integralność danych w systemie. W przypadku powracania ze zrootowanego Androida do stock'owego firmware TP-LINK'a dobrze jest przeprowadzić proces Root Integrity Check z poziomu trybu recovery tak, by upewnić się, że faktycznie powróciliśmy do oryginalnego oprogramowania oraz, że nie będzie problemów z ewentualnymi aktualizacjami systemu telefonu w późniejszym czasie. Problemy z bezpieczeństwem Trzeba sobie zdawać, że przeprowadzenie procesu root godzi w bezpieczeństwo danych przechowywanych w telefonie. Jeśli zamierzamy przeprowadzić proces root swojego Neffos'a, to koniecznie zapoznajmy się z tym wątkiem pokazującym mechanizmy bezpieczeństwa, które przestają spełniać swoje funkcje.
  11. W jaki sposób na Neffos'ach wgrywa się dane na kartę SD? Nie wiem czy ten problem, który ja doświadczam, dotyczy tylko Neffos'ów (albo tylko mojego smartfona), czy jest to problem z Androidem ogólnie ale po podłączeniu telefonu do portu USB komputera, jestem w stanie zamontować go w systemie (linux) bez większego problemu przy pomocy jmtpfs. Mam dostęp zarówno do karty SD jak i pamięci telefonu: Wrzucam zatem przykładowy plik na kartę SD i niby zostaje on wrzucony: Przeglądając teraz zawartość karty SD z poziomu telefonu, mam coś takiego: Brakuje jednego zip'a. Okazuje się, że jest on w pamięci telefonu, a nie na karcie SD: To, że jest root na tym Neffos'ie C5 nie ma znaczenia. Bo taki sam stan rzeczy był przed root'em. Ciekawą rzeczą jest jednak fakt, że gdy zamontuję jeszcze raz system plików telefonu na kompie i podejrzę kartę SD, to ten plik tam fizycznie istnieje ale jak tylko podejrzę jego właściwości, to coś dziwnie one wyglądają: Chodzi o pozycję Size On Disk. Dlaczego ona ma 0 bajtów? Za każdym razem jak coś wgrywam na telefon/pendrive, to daję sync + ręczny unmount partycji, tak by czasem nie odłączyć telefonu podczas przesyłu danych. Ten plik nie jest uszkodzony. Znajduje się tylko.... dokładnie nie wiem gdzie... ale można go przekopiować z poziomu telefonu na kartę SD i wtedy będzie już widoczny na karcie SD. Ktoś się spotkał z takim zachowaniem i wie może coś więcej na ten temat?
  12. Dzięki uprzejmości TP-LINK Polska od jakiegoś czasu mam możliwość bawić się smartfonami Neffos, co można odczuć po sporej ilości artykułów dotyczących tych urządzeń. Postanowiłem przetestować możliwości każdego z tych telefonów dostępnymi benchmarkami na Androida, które można pobrać ze sklepu Google Play. Mnie generalnie tego typu benchmarki średnio interesują, bo zwykle nijak się mają do standardowego użytkowania telefonu ale wiem, że sporo użytkowników mobilnych technologi chciałaby tego typu test zobaczyć. Dlatego w oparciu o AnTuTu, 3DMark, PCMark oraz GFXBench zrobiłem kilka testów na każdym z podesłanych mi przez TP-LINK urządzeń. Smartfony, które wzięły udział w tym teście to: Neffos C5 MAX, Neffos C5, Neffos Y5 oraz Neffos Y5L. Ten artykuł dotyczy jedynie smartfona Neffos C5. Testy pozostałych modeli smartfonów zostaną opisane osobno. Parametry sprzętowe Neffos C5 Neffos C5 ma 4 rdzeniowy procesor MTK MT6735 (Cortex-A53) taktowany częstotliwością maksymalną 1,3 GHz. Jest tam również procesor graficzny ARM Mali-T720 MP2. Do tego mamy też 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 5.1 Lollipop. Poniżej są fotki z CPU-Z: Wiemy zatem co Neffos C5 ma z grubsza pod maską oraz jakim oprogramowaniem będziemy go testować. Pora zatem sprawdzić jakie wyniki zwrócą nam poszczególne aplikacje. Neffos C5 vs. AnTuTu Neffos C5 vs. GFXBench GFXBench ma w swojej ofercie kilka testów, których rozpiska jest zamieszczona poniżej: GFXBench jest w stanie rysować ciekawe wykresy podczas przeprowadzania konkretnych testów. Są tam min. wykresy temperatury i aktualnej częstotliwości pracy procesowa. Niemniej jednak, z nieznanych mi przyczyn te dwa wykresy nie były rysowane na żadnym z testowanych przeze mnie Neffos'ów. Dlatego też załączam jedynie podsumowanie oraz te wykresy, które zostały narysowane poprawnie:. Neffos C5 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 C5 vs. 3DMark 3DMark również jest w stanie przeprowadzić kilka testów: Sling Shot ES 3.1 Sling Shot ES 3.0 Sling Shot Unlimited ES 3.1 Sling Shot Unlimited ES 3.0 Ice Storm Ice Storm Extreme Ice Storm Unlimited
  13. Chciałem zobaczyć jak wygląda ładowanie smartfona Neffos C5 z innego źródła niż z gniazdka za sprawą tej dołączonej do zestawu ładowarki. Na niej proces ładowania działa bez problemu ale ona ma 5V/1A. Ja mam nieco mocniejszą ładowarkę bo 5V/2A i 5V/2.1A. Na obu z nich ładowanie działa bez problemu. Przetestowałem też porty ładujące w HUB'ie USB UH720 z podłączonym zasilaczem. Tu też działa ładowanie smarfona. Podpiąłem nawet Neffos'a do mojego lapka z USB 2.0 i też daje radę ładować. Natomiast, gdy podłączam Neffos'a pod power bank TL-PB10400 , to się zaczynają problemy. Objawy są takie jakby co dwie sekundy coś odcinało zasilanie i smartfon traci połączenie. W efekcie jest przerywany proces ładowania. Po paru sekundach następuje podłączenie i po kilku następnych zostaje ono przerwane i tak cały czas. Nie ma znaczenia czy próbuję ładować z gniazda 2A czy 1A na power banku. Sam power bank jest naładowany w pełni. Co może być przyczyną takiego stanu rzeczy i czy da radę jakoś naładować Neffos'a z tego power banku?
  14. Mam w swoim Neffos'ie C5 kartę SD 32G. Aktualnie na niej jest zajętych około 20G. Niemniej jednak podczas kopiowania plików bezpośrednio na telefon (na kartę), proces kopiowania zatrzymuje się po zapisaniu około 250M z błędem, że nie ma więcej wolnego miejsca. Wyciągnąłem kartę z telefonu i wsadziłem ją bezpośrednio do kompa i tutaj nie ma już problemów z wgraniem danych na kartę. Wolne miejsce odczytane z poziomu telefonu również zwraca wolnych około 10 G. Inny problem związany z kartą SD jaki obserwuję na swoim smartfonie, to kasowani danych z karty SD z poziomu telefonu. Niby w menadżerze plików w smartfonie te pliki po skasowaniu nie są widoczne ale po podłączeniu telefonu i zamontowaniu karty SD w systemie komputera, te pliki już widać, tak jakby nie zostały skasowane. Czy ktoś ma takie problemy w swoich Neffos'ach?
  15. Większość z nas zawierała już jakaś umowę abonamentową na telefon z operatorami GSM. Ja jestem chyba jednym z nielicznych wyjątków, które tego jeszcze nie uczyniły. Mam prepaid'a od lat i w sumie nie uśmiecha mi się wiązanie na dłuższy okres czasu umową z operatorem, którego stosunek do użytkownika zwykle się drastycznie obniża tuż po podpisaniu papierowego świstka. Niemniej jednak, prepaid'y mają tę wadę (dla niektórych zaletę), że sami musimy zadbać o odpowiednie urządzenie, za pomocą którego będą realizowane usługi telefoniczne. Problem w tym, że te bardziej zaawansowane technicznie smartfony są w stanie kosztować niemałe pieniądze, przez co niewielu z nas jest w stanie pokusić się o ich zakup i z reguły pozostaje nam tylko opcja pakietowa przy zawieraniu umowy z operatorem GSM. Jeśli już się jednak zdecydujemy na zakup takiego sprzętu, to ciężko jest też znaleźć takie urządzenie, które będzie w miarę tanie i jednocześnie dostosowane do realiów otaczającej nas rzeczywistości. TP-LINK był chyba tego samego zdania i od jakiegoś już czasu wypuszcza na rynek smartfony. Czym ten producent może się pochwalić jeśli chodzi o te urządzenia? Na pewno niewygórowaną ceną. A jak sprawa wygląda w przypadku parametrów technicznych oferowanych nam telefonów? To trzeba by sprawdzić i tak się składa, że mam właśnie na wyposażeniu taki smartfon, a konkretnie jest to model Neffos C5 (TP701A). Zawartość opakowania Smartfon Neffos C5 to chyba jedyna rzecz, która dotarła do mnie za pośrednictwem Poczty Polskiej nietknięta. Nie jest to raczej zasługa tego przewoźnika, a raczej samego pudełka, które moim zdaniem jest Poczta-Polska-Proof. Samo pudełko jest w kolorze, którego faceci nie rozróżniają, a w nim znajduje się kilka ciekawych rzeczy: W zestawie mamy oczywiście smartfon Neffos C5, którego obudowa jest wykonana w całości z matowego plastiku, przez co nie zbiera tak łatwo odcisków palców i trudniej tez o zarysowania na powierzchni: Mamy także ładowarkę 5V/1A z standardowym gniazdem USB: Oraz przewód mikro USB, dzięki któremu będziemy w stanie podpiąć naszego Neffos'a C5 do ładowarki lub portu USB komputera: Do zestawu są także dołączone słuchawki posiadające złącze audio minijack (3,5 mm): Nie mogło też zabraknąć akumulatora 2200 mAh, model NBL-42A2200: Do zestawu jest także dołączona skrócona instrukcja obsługi w języku polskim i kilka innych papierzysk oraz kawałek plastikowej osłony naklejanej na wyświetlacz. Specyfikacja Neffos'a C5 No to już wiemy co było w pudełku. Pora przyjrzeć się nieco bliżej samemu smartfonowi. Poniżej znajduje się fotka obrazująca część urządzenia tuż nad wyświetlaczem: Najbardziej z lewej strony mamy aparat selfie 5 mpix. Rozdzielczość zdjęć wykonywanych przy pomocy tego aparatu to 2560 x 1920 pikseli. Można nim także tworzyć materiały video, z tym, że tutaj już rozdziałka nam nieco siada, bo nie damy rady wyjść poza granice 640 x 480 pikseli. Dalej mamy standardowy głośnik. A na prawo od głośnika znajduje się czujnik światła oraz czujnik zbliżeniowy. Z tyłu telefonu mamy zaś główny aparat 8 mpix z przysłoną f/2.0, oraz dwie diody w roli lampy błyskowej: Może i ten aparat ma 8 mpix ale jakość zdjęć pozostawia trochę do życzenia, szczególnie przy słabszym oświetleniu. W takich warunkach, autofokus ma problemy ze złapaniem ostrości, a jak już złapie, to bardzo szybko może ją stracić. Jeśli chcemy robić zdjęcia tym aparatem, to trzeba zadbać o dość przyzwoite oświetlenie, w przeciwnym wypadku nasycenie obrazu szumem będzie dość mocno widoczne. Na plus można za to zaliczyć bardzo mocne doświetlenie za sprawą lampy błyskowej. Te diody znakomicie znajdują zastosowanie także w przypadku latarki, która potrafiłaby pewnie przyćmić nawet sam blask Earendil'a. Choć przy niskim stanie baterii (poniżej 15%) nie damy rady jej włączyć. Rozdzielczość zdjęć wykonywanych przy pomocy tego aparatu to 3264 x 2448 pikseli. Jeśli zaś chodzi o rozdzielczość video, to tutaj jest już nieco lepiej, bo jesteśmy w stanie nagrywać filmy w rozdzielczości 1920 x 1080 pikseli, przy 30 FPS. Rodzaj wykorzystywanego kodeka to h264 (bitrate na poziomie 17250 kbps). Również z tyłu obudowy mamy głośnik multimedialny: Na prawej krawędzi obudowy mamy trzy przyciski: power, volume down i volume up: Z kolei zaś na górnej krawędzi znajduje się gniazdo słuchawkowe oraz mikrofon z redukcją szumów: No i standardowo na dolnej krawędzi mamy port mikro USB typ B oraz zwykły mikrofon do rozmów telefonicznych: Zajrzyjmy jeszcze do wnętrza Neffos'a C5: Mamy tutaj miejsce na akumulator oraz trzy sloty. Dwa z nich są na karty mini SIM. Jeśli mamy adapter mikro-mini, to możemy także korzystać z karty mikro SIM. Standardowych rozmiarów karty SIM są niestety za duże i trzeba będzie postarać się o mniejsze odpowiedniki. Trzeci zaś slot jest na kartę mikro SDHC (max 32 GiB). W to duże zagłębienie zaś wchodzi bateria i jak widać, przysłania ona wszystkie trzy sloty, przez co nie damy rady wyciągnąć żadnej karty bez wyciągania akumulatora i wyłączania telefonu: Procesor MediaTek MT6735 Smartfon Neffos C5 został wyposażony w 64-bitowy procesor MediaTek MT6735 (datasheet) dysponujący 4 rdzeniami opartymi na architekturze ARM Cortex-A53 taktowanymi zegarem od 300 MHz do 1,3 GHz (dynamicznie). Mamy też tutaj układ graficzny ARM Mali-T720 MP2 taktowany zegarem 450 MHz będący w stanie obsłużyć wyświetlacz w rozdzielczości 720 x 1280 pikseli (HD) oraz nagrywać i odtwarzać materiały wideo w rozdzielczości maksymalnej 1080p przy 30 FPS'ach. Procesor graficzny posiada także wsparcie dla API takich standardów jak OpenGL ES 1.1/2.0/3.0, OpenCL 1.0/1.1/1.2 oraz DirectX9. Proces technologiczny tego SoC'a to 28 nm. Pamięć RAM oraz flash Niewątpliwą zasługą bardzo płynnego działania systemu smartfona (Android 5.1) jest fakt, że ten Neffos C5 ma zainstalowane 2 GiB pamięci operacyjnej RAM (LPDDR3). Nie jestem pewien jaka jest częstotliwość tej pamięci. Wpadła mi w oczy wartość 640 MHz. Po wyłączeniu zbędnych rzeczy z autostartu, mamy około 1,4 GiB pamięci na odpalane w systemie aplikacje. Neffos C5 jest wyposażony także w pamięć flash o pojemności 16 GiB. Niemniej jednak, jak to zwykle bywa w smartfonach, część przestrzeni tego flash'a zjada nam już system operacyjny i preinstalowane aplikacje dodatkowe. Odliczając te rzeczy, zostaje nam do użytku nieco poniżej 10 GiB ale to i tak całkiem przyzwoita ilość miejsca. Dla wymagających zawsze jest opcja skorzystania z kart SD, które mogą pomóc nam tę pamięć rozbudować o dodatkowe 32 GiB. Pasywny Dual SIM Dual SIM działa w trybie pasywnym (Dual Standby), czyli możemy wykorzystywać tylko jedną kartę SIM w danym czasie. Oczywiście obie karty SIM działają równolegle i mamy możliwość skonfigurowania ich niezależnie pod rozmowy, SMS i pakiety danych. Karty SIM mogą być 2/3/4G przez co mamy wygodny dostęp do technologi LTE: Możemy także bez problemu skonfigurować limity danych dla każdej karty SIM osobno: Po zamianie kart miejscami w slotach, czy też po ich fizycznej podmianie, po włączeniu telefonu zostaniemy o tym fakcie powiadomieni i poproszeni o zdefiniowanie nowej konfiguracji dla dual SIM. Wyświetlacz IPS Cały smartfon ma wymiary 144 x 72 x 8,8 mm (wy/sz/gr). Waży nieco ponad 140 gram. Sporą część Neffos'a C5 zajmuje wyświetlacz 5.0" o rozdzielczości 720 x 1280 pikseli. Sam wyświetlacz jest zrobiony w technologi IPS (In-Plane Switching). Kąty widzenia są zadowalające i nie ma zbytniego przekłamania kolorów przy spoglądaniu na wyświetlacz stojąc obok osoby trzymającej w ręku telefon. W sumie mi więcej nie potrzeba, w końcu to jest małe urządzenie, które zwykle trzyma się w łapkach zaraz obok pyszczka. Automatyczna regulacja jasności ekranu działa z lekkim opóźnieniem. Chodzi o to, że przy przejściu z ciemnego pomieszczenia do jasnego, musimy odczekać około 5 sekund aż jasność ekranu zostanie dostosowana. Podobnie przy przechodzeniu z bardziej oświetlonej lokalizacji do pomieszczenia, gdzie mamy mniej światła. Niestety nie mamy możliwości dostosowania tego zachowania. Sama regulacja jasności jest bardzo płynna bez nagłych skoków podświetlenia/przyciemnienia ekranu. Maksymalna jasność ekranu tego smartfona jest nam w stanie zapewnić komfortową pracę na zewnątrz przy bardzo słonecznej pogodzie, co jest niewątpliwym plusem tego urządzenia. Wzrok nie meczy się od patrzenia na ekran i czytania tekstu, a literki są bardzo wyraźne. Gęstość upakowania pikseli w przypadku Neffos'a C5 to około 300 PPI. Warto tutaj zaznaczyć, że producenci zwykli zawyżać tę wartość. A jak sprawa wygląda w przypadku TP-LINK'a i jego Neffos'a C5? Jako, że znamy rozdzielczość wyświetlacza oraz jego przekątną, to bez problemu możemy wyliczyć ilość pikseli na cal ze wzoru sqrt((1280^2) + (768^2)) ∕ 5 . Co daje nam około 298 PPI (Pixel Per Inch). Jest to przyzwoita wartość, bo ludzkie oko z reguły nie jest w stanie dostrzec tak małych pikseli, choć na rynku są również wyświetlacze mające ponad 300 PPI. Zasada jest jedna: im więcej PPI, tym ostrzejszy obraz i mniej wzrok się będzie nam męczył od patrzenia na wyświetlacz. Nie wiem czy jest jakaś realna korzyść z wyświetlaczy 300+ PPI. Bateria Neffos C5 dysponuje akumulatorem litowo-jonowy o pojemności 2200 mAh, model NBL-42A2200. Nie należy on może do najpojemniejszych ale niewątpliwą jego zaletą jest możliwość wymiany bez odwiedzania serwisu, bo nie jest wmontowany na stałe. Czas ładowania od 0-100% przy zastosowaniu ładowarki 5V/2A wynosi około 3 godzin. Zatem to urządzenie nie wspiera szybkiego ładowania. Nie jest wspierane także ładowanie bezprzewodowe. Żywotność baterii przy włączonym ciągle module GPS i WiFi jest w granicach 12-14 godzin. W stanie czuwania bez tych wszystkich modułów, telefon potrafi wytrzymać jakieś 14 dni. Przynajmniej taka wartość została zwrócona przez ten wbudowany mechanizm szacujący czas rozładowania. Choć jeśli spojrzy się na wykres rozładowania baterii, to można zauważyć, że niewiele jej ubywa podczas stanu czuwania: Jeśli chodzi zaś o temperaturę baterii, to w stanie spoczynku telefonu ma ona w granicach 20 stopni. Ta wartość rośnie trochę podczas procesu ładowania akumulatora, choć rzadko przekracza 30 stopni. Maksymalna wartość temperatury do jakiej rozgrzała mi się ta bateria podczas pracy, to około 36 stopni (przeglądanie YT w 720p). Jak dla mnie, to nie są zbyt wysokie wartości. Napięcie baterii w stanie totalnego rozładowania jest na poziomie 3,4 V. Przy maksymalnym naładowaniu jakieś 4,35 V. Poniżej jest jeszcze fotka zestawiająca te trzy powyższe wykresy razem: Głośnik, słuchawki i wydobywający się z nich dźwięk Neffos C5 dysponuje niezbyt dobrej jakości głośnikiem. Do odtwarzania głosu może i się nada ale słuchanie muzyki na nim sprawia, że moje uszy krwawią. Nieco lepiej sprawa wygląda w przypadku tych dołączonych do zestawu słuchawek ale pewnej części ciała one nie urywają. Sprawdziłem jaka jest faktyczna jakość dźwięku wydobywająca się z tych słuchawek po podłączeniu ich do mojego leciwego już mp3player'a iAudio U2. Dlaczego akurat do niego? A to z tego względu, że to urządzenie dysponuje naprawdę przyzwoitym układem dźwiękowym. Dźwięk w słuchawkach był sporo lepszej jakości, zatem nie jest to problem z samymi słuchawkami, a raczej ze smartfonem, który niezbyt radzi sobie z obróbką dźwięku (te same piosenki, ten tam bitrate MP3/320). Niemniej jednak, temu mp3player'owi raczej niewiele urządzeń jest w stanie dorównać, choć jakby nie patrzeć, to w końcu dedykowany sprzęt do odtwarzania muzyki. W opcjach smartfona dotyczących poprawy dźwięku mamy niby kilka rzeczy, które teoretycznie mają za zadanie poprawiać jakoś odtwarzanej muzyki: By być szczerym, na moje ucho, to one tylko pogarszają jakość dźwięku zarówno przez głośnik jak i przez słuchawki. Nie powiem, że różnicy nie ma ale to jest w zasadzie taka różnica, że "nie wiem, które lepsze, ale żadne z nich mi się nie podoba". Generalnie to nie jest źle ale przydałoby się popracować nad jakością dźwięku. Same słuchawki mają przewód raczej standardowy o długości 120 cm zakończony wtykiem minijack 3,5 mm. Jeśli chodzi zaś o możliwości sterujące przy pomocy słuchawek, to przy mikrofonie mamy trzy przyciski. Dwa z nich regulują głośność, a ten trzeci służy do odbierania i rozłączania rozmów oraz do odpalania i pauzowania odtwarzacza muzyki. Czujniki Na pokładzie Neffos'a C5 mamy także zaszytych kilka czujników. Są to akcelerometr, czujnik zbliżeniowy, czujnik światła oraz magnetometr: Ten ostatni z kolei wykrywa zmiany w polu elektromagnetycznym przez co możemy przerobić nasz telefon na kompas. Trzeba tylko pilnować, by nie zbliżyć się zbytnio do jakiegoś magnesu, bo wtedy wynik może nie być zbyt wiarygodny. Te standardowe czujniki są w porządku ale zabrakło mi tutaj żyroskopu oraz wysokościomierza. Przydałby mi się też termometr, barometr no i oczywiście licznik Geigera, choć pewnie przesadzam nieco. Dobrze, że ten Neffos C5 nie posiada żadnego syfu biometrycznego. Chodzi oczywiście o różnego rodzaju czytniki linii papilarnych czy skanerów siatkówki. Takie bajery budują tylko fałszywe poczucie bezpieczeństwa. Do tego podnoszą tylko koszt samego smartfona nie dając przy tym realnie żadnej korzyści. 2G/3G/LTE Neffos C5 posiada wbudowany modem LTE kategorii 4 (Cat4) umożliwiający osiągnięcie maksymalnego transferu w tej technologi 150/50 mbit/s (download/upload). Przy mojej lokalizacji poniżej 900 metrów od BTS'a (widoczność zachowana), w nocy około 2-3 godziny, transfer jest na poziomie 40/20 mbit/s. Może jest to daleko do tych obiecanych 150/50 mbit/s ale i tak jest to prawie dwukrotnie lepiej co w przypadku zewnętrznego modemu Huawei E3372s (pomiary przeprowadzane w budynku). Ten modem obsługuje standardowe europejskie pasma częstotliwości w technologi FDD, kanały B1/B3/B7/B8/B20 (2100/1800/2600/900/800 MHz). Neffos C5 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 Nie mogło także zabraknąć obsługi bezprzewodowej sieci WiFi. Jeśli o nią chodzi, to Neffos C5 potrafi obsługiwać jedynie pasmo 2,4 GHz w standardzie 802.11 b/g/n do 150 mbit/s (pojedynczy strumień). Trochę szkoda, bo nie ułatwia to jakże wielce potrzebnej migracji na 5 GHz. Zasięg jest raczej przeciętny ze wskazaniem na dobry. Poniżej są fotki zasięgu z moich AP, które w czasie pomiaru były rozlokowane w różnych pomieszczeniach (ten sam pokój, 4m + ściana, 6m + trzy ściany): Jeśli chodzi zaś o rzeczywisty transfer, to jest on na poziomie trochę powyżej 100 mbit/s (mierzone w tym samym pomieszczeniu co główny router): Standardowo też nie mamy wsparcia dla roamingu WiFi i trzeba ratować się zewnętrzną aplikacją SWIFI, która i tak ma defekt w postaci realizowania jedynie roamingu w przypadku różnych ESSID. Udostępnianie połączenia 3G/LTE Jeśli nie dysponujemy routerem 3G/LTE, lub też nie posiadamy dedykowanego modemu 3G/LTE, a chcielibyśmy korzystać z internetu w tej technologi, to możemy pokusić się przerobienie naszego Neffos'a C5 na hotspot sieci WiFi i przy jego pomocy udostępnić połączenie 3G/LTE w sieci lokalnej (max. 8 użytkowników). Oczywiście trzeba liczyć się z większą utylizacją baterii ale ta funkcjonalność jest jak najbardziej wpierana przez ten smartfon. Neffos C5 jest także w stanie świadczyć połączenie przez Bluetooth czy nawet za pośrednictwem przewodu USB, tzw. Tethering. Po podłączeniu smartfona przez przewód USB do komputera, w systemie linux pojawia się nowy interfejs usb0 , który możemy skonfigurować sobie jak każdy inny interfejs przewodowy. Poniżej jest log ze zdarzenia: kernel: usb 2-1.3: new high-speed USB device number 7 using ehci-pci kernel: usb 2-1.3: New USB device found, idVendor=2357, idProduct=0318 kernel: usb 2-1.3: New USB device strings: Mfr=2, Product=3, SerialNumber=4 kernel: usb 2-1.3: Product: Neffos kernel: usb 2-1.3: Manufacturer: TP-LINK kernel: usb 2-1.3: SerialNumber: TSL7DA69OBSO49PJ kernel: usbcore: registered new interface driver cdc_ether kernel: rndis_host 2-1.3:1.0 usb0: register 'rndis_host' at usb-0000:00:1d.0-1.3, RNDIS device, ce:44:9f:7e:fc:dc kernel: usbcore: registered new interface driver rndis_host Jak widać, obsługą tego interfejsu usb0 będzie zajmował się moduł rndis_host . Transfer jaki udało mi się osiągnąć to 111 mbit/s (USB-WiFi), także całkiem przyzwoicie. Bluetooth v4.0 Jak w każdym smartfonie, również i tutaj mamy Bluetooth. Nie jest to może najnowsza wersja tego standardu bo jedynie 4.0 ale zawiera ona w sobie technologię Low Energy (LE), czyli ma zmniejszone zapotrzebowanie na energię kosztem prędkości transferu danych (max. do 1 mbit/s). Jeśli zatem gdzieś w naszym domu leżą odłogiem słuchawki Bluetooth, to możemy z nich zrobić teraz użytek i sparować je z Neffos'em C5. Oczywiście możemy także zamienić ten smartfon w pilot telewizyjny, o ile nasz TV wspiera Bluetooth. GPS Następna sprawa to GPS, czyli system nawigacji satelitarnej. Neffos C5 wspiera dwa ciekawe mechanizmy: A-GPS (Assisted GPS) oraz GLONASS (Globalnaja Nawigacionnaja Sputnikowaja Sistiema). A-GPS to system znacznie skracający czas potrzebny na pierwsze ustalenie położenia w systemie GPS (połączenie z satelitami). System ten wykorzystuje do działania serwery operatorów sieci GSM, przez co operator sieci komórkowej musi wspierać taką usługę. W przeciwnym razie będziemy mieli do dyspozycji jedynie zwykły GPS. GLONASS, z kolei to radziecki/rosyjski system nawigacyjny. To taka alternatywa dla amerykańskiego systemu GPS. Połączenie GPS i GLONASS daje możliwość bardzo akuratnych pomiarów, co przekłada się na szybsze i dokładniejsze ustalenie pozycji odbiornika. Tu jeszcze tylko taka informacja, że Neffos C5 ma wspólną antenę dla 2.4 GHz WiFi, 2.4 GHz Bluetooth i 1.575 GHz GPS. Radio FM Przydatną właściwością Neffos'a C5 jest również obsługa radia FM. Zakres częstotliwości tego radia to 87,5-108 MHz, z przeskokiem co 0,1 MHz. By korzystać z tego radia, musimy mieć podłączone słuchawki, bo przewód słuchawkowy robi w tym przypadku za antenę. Niemniej jednak, samego radia można także słuchać z tylnego głośnika. Android 5.1 Lollipop Na Neffos C5 jest wgrany Android 5.1 Lollipop. Nie mamy póki co możliwości aktualizacji tego Androida do nowszej wersji. Być może w przyszłości TP-LINK wypuści stosowną aktualizację. Jeśli jednak chcielibyśmy zaktualizować tego Androida do 6.0 ręcznie, to musimy root'ować telefon. Niemniej jednak, nie musimy się z tym spieszyć, bo TP-LINK wypuścił mniejszą aktualizację systemu, która jest dostępna jako Over-The-Air Update (OTA) i możemy ją sobie wgrać bez większego problemu korzystając z wbudowanego mechanizmu aktualizacji. System działa stabilnie i płynnie, a sam telefon się za nadto nie grzeje. Podczas dłuższego odtwarzania filmu na YT w rozdzielczości 720p, czujniki temperatury zlokalizowane wewnątrz smartfona wskazują poniższe wartości: Ten Android co jest w Neffos'ie C5 jest praktycznie czysty i zawiera jedynie prostą nakładkę TP-LINK'a. Nie będę o niej zbytnio pisał, bo to czy ona komuś przypadnie do gustu czy też nie, to raczej sprawa indywidualna każdego użytkownika. Trzeba samemu poużywać i dopiero zdecydować bez jałowego opierania się na kilku fotkach i subiektywnych uczuciach osób, których się na oczy nie widziało. Dla mnie użyteczny okazał się menadżer zainstalowanych w telefonie aplikacji. Dzięki niemu jesteśmy w stanie bardzo łatwo zweryfikować uprawnienia konkretnych aplikacji i w prosty sposób je sobie dostosować: Inną ciekawą rzeczą jest możliwość zaprogramowania Neffos'a C5 by ten się automatycznie włączał i wyłączał o określonej godzinie. Bardzo użyteczna rzecz zwłaszcza w przypadku godzin nocnych, gdzie podczas snu nie chcemy by nam ktoś dzwonił. No a skoro też w tym czasie nie korzystamy z telefonu w ogóle to czemu go nie wyłączyć na okres snu? Jedyny problem jaki mam z tym ficzerem to możliwość zaprogramowania tylko jeden akcji włączenia i jednej akcji wyłączenia. Kolejna ciekawa sprawa, to możliwość zaszyfrowania telefonu. Dokładnie nie wiem jak jest realizowane to szyfrowanie ale na necie znalazłem informację, że ten SoC MediaTek MT6735 ma wsparcie dla szyfrowania AES. Na pewno przyjrzę się tej opcji i sprawdzę, czy faktycznie jest ona godna rozważenia. Idąc dalej mamy tryb oszczędzania energii, który jest w stanie bardzo przyzwoicie ograniczyć funkcjonalność Neffos'a C5 ale też dość znacznie wydłużyć jego czas pracy na baterii. Przy wyłączonym wyświetlaczu jest to czas rzędu 14+ dni. Czy da radę przeprowadzić root na Neffos C5 Nie powiem, że proces root'owania Neffos'a C5 przebiegł bez większego problemu ale udało się ten telefon ukorzenić. Chodzi oczywiście o odblokowanie zabezpieczeń i uzyskanie administracyjnego dostępu do całego systemu plików na flash'u w telefonie (artykuł jest osobno). Praca pod linux'em Ja należę do grona linux'iarzy, którzy na co dzień korzystają z alternatywnych systemów operacyjnych. Niby zainstalowany w Neffos'ie C5 Android to również linux ale Android Androidowi nie jest równy i niektóre modele smartfonów mają jakieś dziwne problemy po podłączeniu ich do komputera z pełnowymiarowym pingwinem na pokładzie. Na szczęście z tym telefonem nie ma praktycznie żadnych problemów. Póki co biblioteka libmtp (v1.1.12) jeszcze nie rozpoznaje Neffos'a C5 ale wkrótce to się powinno zmienić. Niemniej jednak, system plików telefonu można zamontować za pomocą jmtpfs i bez trudu wymieniać dane z Androidem po USB. Transfer plików jest na poziomie 6-8 MiB/s. Podsumowanie Przeglądając znalezione na necie opinie użytkowników/recenzentów tego smartfona Neffos C5, nie wiem czemu spora część ludzi narzeka na ten telefon. Ma on praktycznie wszystkie potrzebne człowiekowi rzeczy. Pod pewnymi względami faktycznie mogłoby być lepiej (dopracowany dźwięk i aparat, wystarczy ten tylny). Jednym z zarzutów pod adresem Neffos'a C5 jest problem z grami. Nie wiem dlaczego ktoś w ogóle chciałby brać to pod uwagę. Komfort grania na stacjonarnym PC w full-mega HD z gamingową klawiaturą/myszą oraz z dźwiękiem 10.1 wyszedł już z mody? Na dobrą sprawę to nie wiem czemu taki smartfon zbiera baty za to, że na nim tną się gry. Mi to kompletnie nie przeszkadza, ale ja to w końcu linux'iarz, a my w gry przecie nie gramy. Innym zarzutem, który pada w komentarzach jest jakoś wykonania tego telefonu. No fakt, Neffos C5 nie jest zrobiony ze stali nierdzewnej i do tego nie ma totalnego ogumienia, dzięki któremu byłby w stanie wyjść bez szwanku puszczony w swobodnym spadku gdzieś z orbity. Ale czy na pewno tego typu ficzery są nam potrzebne? To jest przecie ogromny koszt, a do rzucania nadają się przecie o wiele lepiej inne rzeczy. Nie wiem czemu te dwa powyższe elementy są topowe pod względem wymienianych wad pod adresem tego smartfona. Dla mnie liczy się niezawodność sprzętu, jego funkcjonalność oraz zdolność realizowania powierzonych mu zadań, a pod tym względem nie mam Neffos'owi C5 prawie nic do zarzucenia.
  16. Smartfony to takie małe komputery, z których praktycznie każdy z nas korzysta na co dzień. Nie różnią się one zbytnio od tych domowych PC czy laptopów, no może za wyjątkiem rozmiarów. Wszystkie elementy tyczące się spraw sieciowych, np. korzystanie z internetu za pomocą przeglądarki, są dokładnie taka same co w przypadku zwykłych komputerów. Na smartfonach domeny również trzeba jakoś rozwiązać. Standardowo w Androidzie są wykorzystywane serwery od Google (8.8.8.8 i 8.8.4.4). Jeśli nasza sieć WiFi oferuje inne DNS'y, to wtedy one mają pierwszeństwo. Niemniej jednak, nie zawsze będziemy w stanie kontrolować środowisko sieciowe, do którego zostaniemy podłączeni. W takiej sytuacji będziemy zdani na łaskę admina obcej sieci w kwestii poufności odwiedzanych przez nas stron www czy jakichkolwiek innych domen w internecie. Z doświadczenia wiem, by nie składać swojej prywatności w czyjeś ręce i dlatego też postanowiłem poszukać sposobu na zaszyfrowanie zapytań DNS bezpośrednio na smartfonie. Długo nie musiałem szukać, bo okazuje się, że dnscrypt-proxy jest dostępny również na Androida. Root smartfona Jak to w życiu bywa, do tych bardziej zaawansowanych czynności przeprowadzanych na naszych smartfonach potrzebny jest dostęp root. Podobnie jest w przypadku przekierowania zapytań DNS. Jeśli nasz Android nie jest ukorzeniony i nie znamy sposobu by ten fakt zmienić, to niestety pozostaje nam korzystanie z DNS'ów Google lub tych sieci, do których zostaniemy podłączeni. Ja posiadam smartfon od TP-LINK, a konkretnie jest to model Neffos C5. Jakiś czas temu udało mi się na nim przeprowadzić proces root'owania, przez co mam pełny dostęp do systemu plików tego telefonu, co z kolei otworzyło mi drogę do eksperymentowania z wymuszeniem szyfrowania zapytań DNS. Jak pozyskać dnscrypt-proxy na Androida Mając ukorzeniony system na smartfonie, możemy przejść do pozyskania dnscrypt-proxy i jego instalacji w Androidzie. Na tym Neffos C5 siedzi Android w wersji 5.1 (Lollipop). W starszych wersjach Androida mogą pojawić się błędy, przez co instalacja i prawidłowe funkcjonowanie tego narzędzia nie zawsze będzie możliwe. Trzeba także wziąć pod uwagę fakt, że tej aplikacji nie ma w sklepie Google Play ani w repozytorium F-Droid i trzeba posiłkować się zewnętrznym źródłem. Odpowiedni plik można pobrać stąd, konkretnie chodzi o dnscrypt-proxy-android-armv7-a-1.7.0.zip . Musimy go zainstalować z poziomu trybu recovery mając przy tym wgrany TWRP lub CWM. Ja będę korzystał z TWRP. W pobranej paczce .zip znajduje się plik system/etc/init.d/99dnscrypt . W nim zaś jest zmienna RESOLVER_NAME zawierająca nazwę serwera DNS, do którego będą wysyłane zapytania o domeny w formie szyfrowanej. Jeśli nie odpowiada nam ta nazwa, to zawsze możemy wybrać inną. Pełna lista serwerów DNS, z których możemy skorzystać znajduje się w pliku system/etc/dnscrypt-proxy/dnscrypt-resolvers.csv . Tę zmienną możemy sobie dostosować przed instalacją paczki .zip , jak i później już po jej wgraniu do systemu. Paczkę .zip wrzucamy na kartę SD czy flash smartfona i uruchamiamy urządzenie w trybie recovery. Na Neffos C5 trzeba wyłączyć telefon i włączyć go trzymając jednocześnie VolumeUp i Power. Będąc w trybie recovery, przechodzimy do Instaluj i wskazujemy lokalizację paczki .zip . W procesie instalacji odznaczamy weryfikację sygnatury pliku. Wsparcie dla skryptów init Tak zainstalowany dnscrypt-proxy dostarcza skrypt init, który ma za zadanie uruchamiać tę aplikację na starcie systemu. Problem w tym, że nie każdy Android zawiera natywne wsparcie dla skryptów init. To, czy kernel naszego Androida ma takie wsparcie, możemy łatwo ustalić sprawdzając czy na flash'u telefonu mamy katalog /system/etc/init.d/ . Jeśli on jest, to wsparcie również jest. Jeśli zaś nie mamy tego katalogu, to musimy postarać się o alternatywny menadżer uruchamiania skryptów init, który będzie je nam inicjował na starcie systemu. Ten Neffos C5 nie ma wsparcia dla skryptów init, zatem trzeba zainstalować Universal Init.d. Ta aplikacja będzie wymagać dostępu root ale jest ona OpenSource, także bez obaw: Po instalacji, uruchamiamy aplikację. Powinno nam się pojawić poniższe okienko: Jak widzimy wyżej, skrypt init 99dnscnrypt został wykryty. Jest też opcja przetestowania kernela pod kątem wsparcia dla skryptów init. Na wypadek gdybyśmy nie byli pewni klikamy w przycisk Test. Przy teście będzie wymagany restart urządzenia: Podczas testu został stworzony tymczasowy skrypt, który miał na celu wgranie na kartę SD małego pliku. Po restarcie systemu, obecność tego pliku jest weryfikowana. Jeśli nie został stworzony, to kernel nie ma wsparcia dla skryptów init. Widoczny wyżej brak wsparcia nie stanowi żadnego problemu, bo właśnie ta aplikacja zajmie się wywoływaniem skryptów przy starcie Androida. Ten test ma jedynie na celu zapewnienie nas, że skrypty nie zostaną wywołane dwukrotnie, tj. raz przez sam kernel, a drugi przez aplikację Universal Init.d. W przypadku braku wsparcia musimy jeszcze zrobić jedną rzecz. Chodzi o przestawienie przełącznika z OFF na ON. W przypadku, gdyby nasz kernel obsługiwał skrypty init natywnie, to przełącznika nie ruszamy. Po przestawieniu pozycji przełącznika i wykonaniu testu, powinien nam zostać zwrócony komunikat, że nasz kernel posiada już wsparcie dla skryptów init: Ostatnia rzeczą jest przetestowanie startu skryptu 99dnscnrypt . Zaznaczamy go zatem i przy górnej krawędzi ekranu powinno nam się pojawić menu. Klikamy na strzałkę w kółku po prawej stronie: Teraz możemy odpalić terminal, np. termux i sprawdzić, czy proces dnscrypt-proxy został uruchomiony: Jak widzimy, działa on sobie tak jak powinien. Możemy naturalnie uruchomić ponownie smartfona, by się przekonać czy autostart działa należycie. Problemy Oczywiście nasłuchujący demon, to tylko połowa drogi. Trzeba jeszcze jakoś przekierować do niego zapytania DNS. Tym zadaniem zajmują się reguły w iptables . Skrypt 99dnscnrypt na starcie pociąga za sobą tworzenie dwóch reguł w tablicy NAT w łańcuchu OUTPUT. Pakiety przesyłane na port 53 TCP/UDP są kierowane na adres 127.0.0.1:53 , a tutaj już nasłuchuje demon dnscrypt-proxy . W zasadzie nie musimy nic robić, by resolver DNS w Androidzie nam działał. Jest jednak jeden problem. Jako, że wykorzystujemy przekierowanie na poziomie firewall'a, to aplikacje Androida nie są o tym fakcie powiadomione. W efekcie wartości dostępne w getprop wskazują na adresy DNS uzyskane z lease DHCP sieci, do której zostaliśmy podłączeni, czy też w przypadku ich braku na adresy DNS Google. Poniżej przykład: Za sprawą takiego stanu rzeczy, niektóre aplikacje mogą zwracać mylące adresy, choć wszystkie nazwy DNS są wrzucane w szyfrowany kanał i przesyłane do serwerów DNS, które sobie wybraliśmy w konfiguracji dnscrypt-proxy . Test szyfrowania DNS pod Androidem W przypadku, gdy dnscrypt-proxy przesyła zapytania do serwerów DNS od OpenDNS ( cisco w konfiguracji ), to bardzo prosto możemy sprawdzić czy zapytania są naprawdę szyfrowane i czy na pewno są przesyłane do tego providera DNS: Widzimy wyraźnie, że zapytanie jest szyfrowane. Możemy również przetestować stronę w przeglądarce. Odpalmy zatem, np. Firefox'a i odwiedźmy adres https://www.opendns.com/welcome/ :
  17. Proces root na smartfonie Neffos C5 od TP-LINK można przeprowadzić w miarę bez większych problemów, choć nie jest to rozwiązanie działające OOTB. Niemniej jednak, taki root telefonu czyni go bardziej podatnym na zagrożenia ze strony wrogich aplikacji. Ponadto, kasując czy też zmieniając pliki systemowe, możemy sprawić, że nasze urządzenie zwyczajnie przestanie nam działać, tj. już się nie uruchomi. Niektórzy użytkownicy smartfonów nie zdają sobie z tego sprawy i ukorzeniają Androida bez głębszego zastanowienia się. Mi jako linux'iarzowi, root jest niezbędny do pracy ale czy aby na pewno każdy musi go mieć? Ci z was, którzy taki root systemu przeprowadzili i nie korzystają z niego praktycznie wcale, zastanawiają się pewnie czy istnieje sposób, by cofnąć wprowadzone zmiany i przywrócić Androida do stanu pierwotnego. Krótka odpowiedź brzmi: "oczywiście, że tak" i temu procesowi przyjrzymy się w niniejszym artykule. Czy potrzebny mi jest root Android'a Standardowo w Androidzie każda aplikacja zainstalowana w telefonie ma przypisane indywidualne UID/GID (użytkownika i grupę). Żadna aplikacja nie jest w stanie odczytać danych innych programów, które zainstalowaliśmy w systemie. Zaprzęgając mechanizm root dajemy możliwość pewnym aplikacjom na dostęp do danych każdego innego programu. Jeśli teraz wgramy podejrzaną aplikację, to może ona wykorzystać fakt ukorzenienia Androida i uzyskać dostęp do poufnych danych czy nawet przejąc całkowitą kontrolę nad systemem operacyjnym telefonu, wliczając to podsłuch z mikrofonu, kamery i klawiatury. Dlatego też w pewnych sytuacjach root Androida nie jest wskazany. Trzymając się pewnych zdroworozsądkowych zasad można uniknąć zagrożeń, które niesie ze sobą root systemu. Niemniej jednak, jeśli niezbyt rozważnie korzystamy z telefonu, np. pobieramy aplikacje bez ich uprzedniej weryfikacji, to root może tylko przyczynić się do kompromitacji zabezpieczeń telefonu, przez co potencjalny atakujący może bez problemu uzyskać dostęp, np. do danych konta bankowego. Jakie zmiany po przeprowadzaniu procesu root można cofnąć Standardowo na smartfonie z Androidem mamy min. partycję /system/ oraz /data/ . Na /system/ znajduje się fabryczny Android, czyli ten system, który w tym przypadku został wypuszczony przez TP-LINK. Tej partycji nie można zapisać bez przeprowadzenia procesu ukorzeniania systemu. Z kolei zaś na partycji /data/ są przechowywane wszystkie zmiany jakie użytkownik telefonu wprowadził, np. za sprawą wgrania plików, zmiany konfiguracji/ustawień czy aktualizacji poszczególnych aplikacji. W przypadku posiadania smartfona, który przeszedł proces root, to na takim urządzeniu zostały poczynione pewne zmiany. Przede wszystkim, aplikacje SuperSU i BusyBox wgrały nam pliki do katalogu /system/xbin/ (przynajmniej na Android 5.1 Lollipop). Dodatkowo, każda aplikacja wymagająca uprawnień administratora mogła również wprowadzić jakieś zmiany na partycji /system/ . Wszelkie niestandardowe zmiany (edycja/dodanie/usunięcie plików systemowych) wprowadzane czy to przez nas czy przez aplikacje wymagające root mogą zostać cofnięte przez wgranie wcześniej zrobionego backup'u flash'a telefonu. Oczywiście nie musimy wgrywać całego backupu, a jedynie tę część, na której znajduje się partycja /system/ oraz /data/ . O ile przywrócenie partycji /system/ jest wielce niezbędne, o tyle przywrócenie partycji /data/ może trwać sporo czasu. Biorąc pod uwagę, że są tam jedynie dane użytkownika, których nie ma za wiele tuż po wyjęciu smartfona z pudełka, to przydałoby się wyczyścić również i tę przestrzeń przed odkorzenieniem Androida. Ten proces możemy przeprowadzić korzystając z Factory Reset z poziomu systemu. Powinien nam on efektywnie te dane bardzo szybko usunąć. Trzeba także pamiętać, że zmiany wprowadzone w procesie ukorzeniania telefonu nie ograniczają się jedynie do partycji /system/ . Została zmieniona przecież także partycja recovery , bez której nie byłby możliwy root Neffos'a C5. Tę partycję również musimy przywrócić. Odinstalowanie SuperSU (unroot) Od czego zatem zacząć powrót do stock'owego oprogramowania naszego Neffos'a C5? To pytanie trzeba rozważyć pod kątem wprowadzanych zmian po dokonaniu procesu root. Jeśli nie były one zbyt zaawansowane, np. instalowaliśmy jedynie kilka aplikacji wymagających praw administracyjnych w celu odczytu plików systemowych, to możemy skorzystać z opcji dostępnej w SuperSU, tj. Pełny unroot : Pamiętajmy tylko, by usunąć wszelkie aplikacje wymagające root przed usunięciem SuperSU. W przypadku mojego Neffos'a C5, opcja unroot widoczna w SuperSU nie zadziałała z początku. Po przyciśnięciu na ekranie pojawiła się jedynie informacja o czyszczeniu, a proces się zawiesił. Jeśli też natrafiliśmy na tego typu problem, to trzeba zresetować smartfon i ponowić proces unroot bezpośrednio po włączeniu urządzenia. Po odinstalowaniu SuperSU trzeba uruchomić smartfon ponownie. Spróbujmy się teraz zalogować na użytkownika root z poziomu jakiegoś terminala. Powinniśmy zobaczyć poniższy komunikat: Nie musimy się obawiać o dane zgromadzone na partycji /data/ , bo nie zostaną one ruszone w żaden sposób. Podobnie sprawa ma się w przypadku karty SD. No i nie zostaną cofnięte żadne zmiany na partycji /system/ , oczywiście w przypadku, gdy coś zmienialiśmy. Zatem widzimy, że proces likwidacji root w Neffos C5 jest praktycznie automatyczny. Niemniej jednak, co w przypadku, gdy mamy jakieś zmiany na partycji /system/ lub też wgraliśmy niestandardowy ROM? Odpowiedź jest prosta: trzeba przeprowadzić Factory Reset, który wyczyści dane na partycji /data/ oraz przywrócić partycję /system/ z wcześniej utworzonego backupu flash'a smartfona. Trzeba będzie także przywrócić partycję recovery , bo nie została ona odtworzona w procesie unroot przeprowadzonym z poziomu SuperSU. Factory Reset W przypadku wprowadzenia zmian na partycji /system/ (innych niż wgranie SuperSU i BusyBox) dobrze jest pierw usunąć wszystkie dane znajdujące się na partycji /data/ . Chodzi o to, że pliki zgromadzone na tej partycji mogą generować różne problemy w sytuacji, gdy przywraca się oryginalny ROM. Nie jest to regułą ale jeśli chcemy uniknąć błędów, to zalecane jest przeprowadzić pierw Factory Reset. Oczywiście możemy ten krok całkowicie pominąć. W przypadku ewentualnych problemów po flash'owaniu telefonu, Factory Reset będziemy mogli przeprowadzić z poziomu trybu recovery (przyciski Power + Volume UP trzymane podczas startu telefonu). Jeśli jednak chcemy wyczyścić wszystkie dane na partycji /data/ przed flash'owaniem telefonu, to możemy to zrobić z poziomu działającego systemu przechodząc do Ustawienia => Kopia i kasowanie danych => Ustawienia fabryczne: Przywrócenie partycji /system/ na Neffos C5 Jak już zostało wspomniane wyżej, na partycji /system/ znajduje się ROM TP-LINK z Androidem 5.1. By powrócić do niego musimy przywrócić całą partycję. Możemy to zrobić z poziomu aplikacji SP Flash Tool, oczywiście zakładając, że pierw utworzyliśmy backup flash. Zamontujmy ten backup w systemie przy pomocy poniższego polecenia: # losetup /dev/loop0 /media/Kabi/neffos/backup_phone/NeffosC5-orig.img W systemie powinniśmy mieć dostęp do szeregu partycji tego obrazu. Jeśli się tak nie stało to musimy odpowiednio skonfigurować moduł loop. Podejrzymy także w gdisk jak prezentuje się tablica partycji samego obrazu. Interesuje nas generalnie pozycja system : # gdisk -l /media/Kabi/neffos/backup_phone/NeffosC5-orig.img Number Start (sector) End (sector) Size Code Name ... 20 360448 8749055 4.0 GiB 0700 system ... Widzimy przy niej numer 20. Teraz w systemie odszukujemy urządzenie loop mające numer 20. W moim przypadku jest to /dev/loop0p20 . Możemy także zamontować tę partycję, by się upewnić, że faktycznie znajduje się na niej stock'owy system: # mount /dev/loop0p20 /mnt Jeśli nie ma żadnego błędu i możemy przeglądać katalog /mnt/ bez problemu, oznacza to, że jest to ta partycja, której dane musimy przesłać na smartfona. Odmontujmy ją zatem i zrzućmy dane z tego urządzenia loop do pliku przy pomocy dd : # dd if=/dev/loop0p20 of=./orig_system.img bs=2M 2048+0 records in 2048+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 216.991 s, 19.8 MB/s Mając wyodrębnioną partycję /system/ możemy ją wgrać na smartfon przy pomocy SP Flash Tool. Potrzebna nam jest tylko mapa przestrzeni flash, a ta siedzi w pliku mt6735-neffos-c5-tp-link-scatter.txt. Jest tam również pozycja dotycząca partycji /system/ . Odpalamy zatem SP Flash Tool i przechodzimy na zakładkę Download, gdzie wskazujemy nasz plik scatter.txt : Mamy tutaj wyszczególnione obszary pamięci flash w Neffos C5, które możemy zapisać. Nas interesuje w tej chwili tylko pozycja system . Zaznaczamy ją i upewniamy się, że nad tabelką wybraliśmy Download Only . Może i tutaj jest słówko Download ale trzeba patrzyć na ten proces z perspektywy telefonu, czyli to on będzie pobierał dane z komputera. Podłączamy teraz Neffos'a C5 do portu USB komputera. Następnie w SP Flash Tool przyciskamy przycisk Download i wyłączamy telefon. Następnie próbujemy go uruchomić w trybie recovery przyciskając przycisk Power + Volume UP jednocześnie. Smartfon się nie uruchomi ale rozpocznie się proces flash'owania. Sam proces powinien zakończyć się powodzeniem. Teraz można wyciągnąć smartfona z portu USB i uruchomić. Przywrócenie partycji recovery W przypadku partycji recovery możemy postąpić dokładnie w taki sam sposób, tj. wgrać stock'owy obraz przy pomocy SP Flash Tool. Niemniej jednak, nie musimy tego robić po wgraniu obrazu partycji /system/ . W moim przypadku, partycja recovery została automatycznie odtworzona po wgraniu obrazu partycji /system/ . Sprawdzenie czy Neffos C5 ma root'a Ostatnią rzeczą, która nam została to na własne oczy przekonanie się czy wszystkie zmiany zostały cofnięte. Factory reset powinien nam wyczyścić wszystkie dane na partycji /data/ . Powinniśmy mieć także stock'ową partycję /system/ oraz recovery . Z kolei root możemy sprawdzić za pomocą Root Check: Zablokowanie bootloader'a Ostatnią rzeczą, którą musimy zrobić, to zablokowanie bootloader'a. Odpalamy zatem smartfon w trybie fastboot (Power + VolUp). Podłączamy także urządzenie do portu USB komputera i wpisujemy w terminalu poniższe polecenie: # fastboot oem lock ... (bootloader) Start lock flow OKAY [4.132s] finished. total time: 4.132s Po wydaniu tej komendy, na ekranie smartfona pojawi się poniższa informacja: If you lock the bootloader you will need to install official operating system software on this phone. To prevent unauthorized access to your personal data, locking the bootloader will also delete all personal data from your phone (a "Factory data reset"). Press the Volume Up/Down button to select Yes or No. Yes (Volume Up) Lock bootloader No (Volume Down) Do not lock bootloader Proces zablokowania bootloader'a usuwa wszystkie dane użytkownika (Factory Reset), zatem upewnij się, że zrobiliśmy ewentualny backup. Przyciskamy teraz Volume Up. Po chwili zostaniemy przeniesieni do menu wyboru. Restartujemy telefon wpisując w terminalu poniższe polecenie: # fastboot reboot Smartfon zrestartuje się parokrotnie podczas procesu blokowania bootloader'a ale ostatecznie system powinien się bez większego problemu załadować na domyślnych ustawieniach.
  18. Ci z was, którzy czytali moją recenzję na temat smartfona Neffos C5 od TP-LINK, widzą, że niezbyt spodobał mi się aparat/kamera zaimplementowany w tym telefonie. Niby jest tutaj 8 mpix na aparacie głównym (i 5 mpix na selfie) ale przy niezbyt dobrym oświetleniu jakość zdjęć siada dość znacznie. Abstrahując od samej jakości aparatu, chciałbym się nieco bardziej skupić na oprogramowaniu do jego obsługi, które Neffos C5 oferuje. Jest ono dość ubogie pod względem funkcjonalności i mi generalnie przydałoby się nieco więcej opcji, z których mógłbym zrobić jakiś użytek. Jest wiele aplikacji na Androida, które oferują poszerzenie możliwości aparatu czy kamery w telefonie. Większość z nich zawiera jednak reklamy, które niezbyt pasują na smartfonie wyrafinowanego linux'iarza. Postanowiłem zatem poszukać nieco głębiej i w repozytorium F-Droid'a znalazłem OpenCamera. Programik bardzo przyzwoity, bez reklam, no i najważniejsze jest on OpenSource. W tym artykule rzucimy sobie okiem na ten kawałek oprogramowania i zobaczymy jaką funkcjonalność ono oferuje. Standardowe oprogramowanie aparatu/kamery w Neffos C5 Przeanalizujmy sobie pierw standardowe oprogramowanie kamery/aparatu, które jest zainstalowane domyślnie w Neffos C5. Po wejściu w aplikację "Aparat" przywita nas bardzo prosty interfejs z możliwością łatwego przełączania się miedzy trybem aparatu i kamery. Z głównego okna interfejsu mamy też możliwość wyboru aparatu głównego lub selfie: Aparat główny Sprawdźmy zatem jakie opcje zostały nam oddane do dyspozycji jeśli chodzi o aparat główny. Przede wszystkim, mamy możliwość dostosowania lampy błyskowej. Możemy ją wyłączyć, włączyć na stałe, lub też zostawić tę kwestię smartfonowi, który na podstawie danych z czujnika światła oceni czy lampa ma zostać włączona podczas robienia zdjęcia. Możemy także wybrać sobie filtr w celu lepszego efektu wizualnego robionych fotek: Z lewej krawędzi ekranu możemy także wyciągnąć menu, w którym to mamy możliwość ustawienia kilku przydanych opcji. Możemy tutaj włączyć stempel czasu, za sprawą którego na fotce zostanie uwzględniona data i godzina (w prawym dolnym rogu). Możemy również ustawić samowyzwalacz 5/10 sekund, który sygnalizuje odliczany czas napisami na ekranie oraz też dźwiękiem na chwilę przed cyknięciem fotki. Mamy także możliwość dostosowania trybu robienia zdjęć. Teoretycznie to oprogramowanie umożliwia robienie zdjęć po tapnięciu w ekran, jak przy wykryciu ruchu czy uśmiechu. Te dwa ostatnie u mnie nie działają lub też nie mam pojęcia jak je zmusić do działania. No i oczywiście fotki można robić przez wciśnięcie niebieskiego przycisku widocznego na ekranie jak i za pomocą przycisków Volume Up/Down na obudowie smartfona. Z poziomu opcji aparatu możemy także wyłączyć dźwięk migawki co daje nam możliwość robienia zdjęć z ukrycia. Bardzo przydatna rzecz. Aparat główny ma 8 mpix ale to nie znaczy, że musimy robić fotki w takiej rozdzielczości. Im większa rozdziałka, tym większy rozmiar zdjęcia, a przecie nie wszystkie fotki wymagają takiej szczegółowości. W domyślnym oprogramowaniu Neffos'a C5 mamy możliwość przełączania się między 8 mpix (3264x2448 px, 4:3), 5 mpix (2560x1920 px, 4:3), 4 mpix (2560x1440 px, 16:9), 3 mpix (2048x1536 px, 4:3) i 2 mpix (1600x1200 px, 4:3). Wybrane ustawienia zawsze można przywrócić do domyślnych za pomocą jednego prostego tapnięcia w ekran. Natomiast nie mamy możliwości dostosowania zachowania autofokusa. Przy repozycjonowaniu aparatu, pojawia nam się białe kółko, które po wyostrzeniu obrazu przybiera kolor zielony, po czym znika. Można naturalnie wybrać obszar na którym aparat ma się skupić przed zrobieniem fotki stukając w interesującą nas część ekranu. Kamera główna Aparat możemy także przełączyć w tryb kamery, w efekcie czego będziemy mieli możliwość nagrywania filmów. Jeśli chodzi zaś o dostępne opcje w trybie kamery, to jest ich niewiele. Mamy możliwość włączenia i wyłączenia mikrofonu, przez co na nagraniu może pojawić się ścieżka dźwiękowa. Jeśli zaś chodzi o jakoś nagrywanego materiału video, to mamy do dyspozycji trzy opcje: wysoka (1920x1080 px, 30 FPS, 128 kbit/s audio), średnia (1280x720 px, 30 FPS, 128 kbit/s audio) i niska (640x480 px, 30 FPS, 128 kbit/s audio). W ustawieniach aparatu nie mamy informacji na temat rozdzielczości i bitrate, choć ten można wyciągnąć z informacji o pliku a/v. Jest też możliwość włączenia lampy błyskowej na stałe podczas kręcenia filmu, choć nie ma możliwości wyłączenia jej w trakcie nagrywania. Aparat selfie Neffos C5 dysponuje także aparatem selfie 5 mpix. Nie posiada on jednak autofokusa w stosunku do głównego aparatu i ma trochę mniej opcji. Niemniej jednak, opcja stempla czasu, samowyzwalacza, trybu robienia zdjęć jak i dźwięku migawki jest dokładnie taka sama co w przypadku głównego aparatu. Jedynymi widocznymi różnicami ą uszczuplony wybór filtrów, jak i rozdzielczość robionych fotek. W tym przypadku mamy do wyboru 5 mpix (2560x1920 px, 4:3), 4 (2560x1440 px, 16:9) mpix, 3 (2048x1536 px, 4:3) mpix, 2 (1600x1200 px, 4:3) mpix, 1,3 mpix (1280x960 px, 4:3). Kamera selfie Po przełączeniu aparatu selfie w tryb kamery, praktycznie nie mamy dostępu do żadnych opcji za wyjątkiem zmiany rozdzielczości materiału video, która może być wysoka (640x480 px, 30 FPS, 128 kbit/s audio) albo niska (176x144 px, 30 FPS, 64 kbit/s audio) oraz też włączenia i wyłączenia mikrofonu. Jak widać, to oprogramowanie, które jest domyślnie zainstalowane w Neffos C5 daje nam jedynie podstawową funkcjonalność aparatu i kamery. Te wyżej wymienione opcje raczej powinny zadowolić przeciętnych użytkowników smartfonów. Ja jednak potrzebuję czegoś więcej. Dla przykładu weźmy geotagowanie zdjęć na podstawie aktualnego położenia z GPS. Idąc dalej, chciałbym mieć także możliwość dostosowania stopnia kompresji fotek jak i bitrate video. Sprawdźmy zatem co może nam zaoferować alternatywne oprogramowanie w postaci OpenCamera. Instalacja oprogramowania OpenCamera W wstępie nadmieniłem, że aplikacja OpenCamera jest dostępna w alternatywnym repozytorium aplikacji jakim jest F-Droid. Oczywiście nie musimy instalować sobie od razu F-Droid'a, bo OpenCamera jest także dostępny w sklepie Google Play. Poniżej jest ofotkowany proces instalacji: A tak z kolei wygląda interfejs OpenCamera: Informacja na temat aktualnie ustawionej rozdzielczości fotki/video zawsze jest pokazywana po uruchomieniu aplikacji. Praktycznie wszystkie wyżej widoczne elementy interfejsu można sobie dowolnie dostosować, wliczając w to całkowite ich ukrycie. Konfiguracja aparatu/kamery z OpenCamera Przejdźmy zatem do tej kwestii, którą linux'iarze lubią najbardziej, tj. do opcji konfiguracyjnych, które oferuje OpenCamera. W porównaniu do opcji dostępnych w standardowej aplikacji będącej na wyposażeniu Neffos'a C5, przeciętny użytkownik telefonu może czuć się nieco przytłoczony, bo jakby nie patrzeć opcji jest naprawdę sporo: To co odróżnia OpenCamera od standardowego oprogramowania zawartego w Neffos C5, to przede wszystkim możliwość dostosowania sobie praktycznie każdego aspektu pracy aparatu czy kamery. Mamy po prostu większą dowolność i swobodę przy dostosowaniu poszczególnych parametrów. Praktycznie cała funkcjonalność domyślnej aplikacji aparatu została w OpenCamera zaimplementowana. Takie opcje jak wykrywanie twarzy, robienie zdjęć poprzez dotyk ekranu, powiadamianie dźwiękowe przy robieniu zdjęcia, czy reset ustawień do domyślnych są naturalnie dostępne w OpenCamera. Są też opcje, których w standardowym oprogramowaniu nie znajdziemy. Poniżej jest krótka ich lista. Dostosowanie czasu wyzwalacza Czas wyzwalacza w domyślnym sofcie można było również dostosować. Z tym, że mieliśmy do wyboru między 5 i 10 sekund. W przypadku OpenCamera również możemy ustawić 5 i 10 sekund ale mamy także do dyspozycji 1, 2, 3, 15, 20, 30 sekund oraz 1, 3 i 5 minut. Przy robieniu zdjęć z opóźnieniem mamy także opcję beeper'a, który nam będzie sygnalizował dźwiękiem upływający czas (co sekundę). Jest też możliwość aktywowania odliczania głosowego i wtedy system ludzkim głosem nam to odliczanie przeprowadzi (<60 sekund). Te dwie funkcje mogą być włączone równocześnie ale też można z nich zrezygnować zupełnie, przez co odliczanie będzie przeprowadzane po cichu. Wciąż jednak będziemy widzieli na ekranie upływający czas. Robienie kilku zdjęć pod rząd Inną ciekawą opcją jest robienie szeregu zdjęć jedno po drugim, tzw. burst. Co ciekawe, mamy możliwość określenia co ile sekund ma być robione kolejne zdjęcie oraz ile fotek życzymy sobie pstryknąć naraz. Nie ma minimalnego interwału, natomiast maksymalny to 2 godziny. Jeśli zaś chodzi o ilość robionych zdjęć, to mogą być to dwie, trzy, cztery, pięć, dziesięć lub bez ograniczeń. Trzeba tylko pamiętać o autofokusie, który między fotkami może wymagać czasu na wyostrzenie zdjęcia, przez co może się pojawić dodatkowe opóźnienie. Głosowa aktywacja aparatu/kamery Mizianie ekranu, czy wciskanie przycisków by zrobić zdjęcie czy rozpocząć rejestrowanie obrazu wymaga od nas fizycznego kontaktu z urządzeniem. Możemy jednak sterować aparatem/kamerą przy pomocy dźwięku. Generalnie są dwie opcje, z których możemy skorzystać: słówko "cheese" lub głośny hałas. By być szczerym "cheese" średnio działa, natomiast nie udało mi się aktywować ani aparatu, ani kamery głośnymi dźwiękami. Nie wiem czy to problem z samą aplikacją czy moim Neffos'em C5. Przypisywanie akcji pod klawisze Volume Up/Down Standardowo do klawiszy Volume Up/Down jest przypisana akcja robienia zdjęcia i w domyślnym oprogramowaniu nie możemy jej zmienić. Jeśli zaś chodzi o OpenCamera, to tutaj te przyciski możemy całkowicie wyłączyć. Możemy też przy ich pomocy robić fotki czy zainicjować/zatrzymywać nagrywanie materiału video. Możemy także zmienić poziom ekspozycji jak i zwiększyć/zmniejszyć zoom. Jest też opcja włączenia i wyłączenia stabilizacji obrazu oraz zmiany głośności urządzenia. Możemy także aktywować fokus, z tym, że zawsze będzie on skupiał się na środkowej części obszaru robionego zdjęcia. Ścieżki do zapisu i nazwy plików To co mi się także bardzo podoba w OpenCamera, to możliwość wyboru ścieżki zapisu zdjęć czy nagrań video. Nie tylko możemy stworzyć sobie drzewo katalogów i zapisywać fotki z pewnych sytuacji w konkretnych folderach ale także możemy przenieść tworzony materiał na kartę SD. Problem w tym, że Android od wersji 4.4 nie zezwoli OpenCamera na zapis fotek na karcie. Można jednak to obejść przez uchylenie pewnych obostrzeń ale do tego jest znowu potrzebny root smartfona. Kolejna sprawa, to nazwy zapisywanych plików. Przede wszystkim, jesteśmy w stanie zmienić prefiks nazwy pliku. Dla zdjęć jest osobny prefiks, a dla materiałów video osobny. Nazwa pliku zawsze przybierze format daty i czasu. My natomiast możemy ten czas dostosować w oparciu o czas lokalny lub też o czas UTC. Dla Polski różnica będzie wynosić jedną lub dwie godziny (czas zimowy/letni). Te powyższe opcje dają nam możliwość grupowania fotek/filmów bezpośrednio na telefonie w czasie rzeczywistym, co z pewnością przekłada się na lepszą organizację plików w telefonie, przez co łatwiej możemy odszukać interesujące nas materiały. Opcje specyficzne dla aparatu (zdjęcia) Przejdźmy zatem do opcji specyficznych dla aparatu. które możemy ustawić. Jest ich również dość sporo: Rozdzielczość robionych zdjęć W przypadku domyślnego oprogramowania mieliśmy do dyspozycji tylko kilka rozdzielczości aparatu określanych w mpix (megapikselach). W przypadku OpenCamera jest nieco inaczej. Tak samo mamy informację o mpix ale dodatkowo mamy też określoną rozdzielczość fotki oraz proporcje ekranu. Te informacje naprawdę ułatwiają rozeznanie co do tego jaką fotkę spodziewamy się zrobić: Stopień kompresji zdjęć OpenCamera udostępnia nam możliwość kontroli kompresji plików .jpg , przez co możemy wpływać na jakość robionych zdjęć. Jesteśmy w stanie ustawić tutaj zarówno jakość zdjęcia na 100% (brak kompresji) jak i na 1% (duży stopień kompresji). Możemy również wybrać pośredni stopień kompresji. Domyślnym jest 90%: Znakowanie zdjęć Sprawa oznaczeń zdjęć też wygląda o wiele lepiej w stosunku do standardowego oprogramowania. Możemy sobie wybrać format daty (np. rrrr/mm/dd) jak i format czasu (12/24/brak). Gdy robimy zdjęcia przy włączonym GPS, możemy także na fotce zawrzeć informacje o lokalizacji. Jakby tego było mało to możemy umieścić własny tekst na zdjęciu oraz dostosować styl czcionki jej kolor i wielkość: Po ustawieniu wszystkich tych opcji otrzymamy mniej więcej taki podpis: Pauzowanie po zrobionym zdjęciu Gdy robimy zdjęcia, to są one automatycznie zapisywane na flash (ew. kartę SD) telefonu. Jeśli znajdujemy się w sytuacji takiej, że po cyknięciu fotki chcemy coś z nią zrobić, to możemy zaoszczędzić trochę czasu zaznaczając opcję pauzowania. W takim przypadku po cyknięciu fotki ekran zostanie zamrożony, a my będziemy mieli podgląd zdjęcia, które właśnie zostało wykonane. Ponadto będziemy mieli także opcję skasowania pliku czy podzielenia się nim w sieci. Opcje specyficzne dla kamery (obraz) Opcje zdjęć mamy z grubsza z głowy. Pora zając się opcjami video. Na dobrą sprawę mamy ich jeszcze więcej niż w przypadku fotek. Rozdzielczość, bitrate i FPS video W standardowym oprogramowaniu kamery mieliśmy możliwość wyboru kilku trybów video. Wszystkie z nich były określone w mpix. W przypadku OpenCamera mamy również informację o danej rozdzielczości użytej przy nagrywaniu materiału video. Możemy także określić jakość takiego materiału definiując ręcznie bitrate obrazu. Jest też opcja od ustawienia niestandardowej ilości FPS (klatek na sekundę): Może i mamy bardzo dużą swobodę w dostosowaniu tych trzech powyższych parametrów ale trzeba sobie zdawać sprawę, że nasz smartfon niekoniecznie musi obsługiwać dany tryb pracy kamery. Generalnie to jesteśmy tutaj ograniczeni przez możliwości sprzętowe. Maksymalna długość/rozmiar video i automatyczny restart nagrywania Ciekawą funkcją tez jest ustawienie maksymalnej długości czy rozmiaru nagrywanego materiału video. Możemy także określić czy po osiągnięciu ustawionego progu ma nastąpić restart nagrywania, oczywiście materiał będzie zapisywany w osobnym pliku. Określenie źródła nagrywanego dźwięku W przypadku, gdy zamierzamy nagrywać jedynie obraz video, możemy bez większego problemy wyłączyć nagrywanie dźwięku. Jeśli jednak chcemy, by w nagraniu się pojawił dźwięk, to mamy możliwość określenia źródła dźwięku: Blokada ekranu przed przypadkowym wyłączeniem nagrywania Kolejną ciekawą funkcją jest blokada ekranu tuż po wciśnięciu przycisku nagrywania filmu. W ten sposób nie będziemy mieli możliwości wyłączenia nagrywania, no chyba, że wcześniej odblokujemy ekran. Szkoda tylko, że przyciski w dalszym ciągu są w stanie wyłączyć nagrywanie. Zatrzymanie nagrywania, gdy stan baterii jest krytycznie niski Gdy nagrywamy jakiś materiał video, to najgorszą rzeczą jaka może nam się przytrafić jest wyczerpanie się baterii. W takiej sytuacji jest niemal pewne, że film zostanie uszkodzony i stracimy cały nagrany materiał albo jakąś jego cześć. Można się przed tym zabezpieczyć przerywając nagrywanie przed wyczerpaniem się baterii (~3%). OpenCamera oferuje nam tego typu funkcjonalność. Dioda sygnalizująca proces nagrywania Jeśli zamierzamy zostawić naszego smartfona gdzieś w oddali w celu uwiecznienia zdarzeń na filmie, możemy włączyć opcję sygnalizowania procesu nagrywania przy pomocy lampy błyskowej. Wtedy nawet siedząc kilkanaście metrów od telefonu wystarczy spojrzeć na niego by być pewnym, że nic nie przerwało nagrywania. Opcje lokalizacji (GPS) Kolejną grupą ustawień są te dotyczące lokalizacji. Standardowo geotagowanie zdjęć/filmów jest wyłączone. Możemy je nie tylko włączyć ale również je wymusić, przez co nie będziemy w stanie zrobić zdjęcia, gdy funkcja GPS będzie wyłączona. W zdjęciach możemy zaszyć także informacje ze wskazania kompasu. Poniżej się prezentują dane EXIF, które można wyciągnąć po włączeniu GPS i otagowaniu obrazka przez aplikację OpenCamera: Dostosowanie interfejsu OpenCamera Ostatnią grupą opcji są te dotyczące wyglądu interfejsu graficznego aparatu/kamery. Możemy usunąć czarne obramowanie, tak by podgląd obrazu wypełnił całą dostępną przestrzeń ekranu. Z kolei jeśli zaś chcemy zmienić pozycję menu interfejsu, to możemy przenieść je z prawej strony na lewą. Możemy także schować cały interfejs jeśli nam on przeszkadza. Oczywiście będziemy w stanie wywołać interfejs w każdej chwil po tapnięciu w ekran. Jest także możliwość pokazania/ukrycia tylko pewnych części interfejsu, np. przycisków/paska zoom, informacji o ilości wolnego miejsca na pamięci flash, aktualnego czasu czy stanu baterii. Jest tez opcja zapobiegania wyłączeniu ekranu, gdy włączony jest podgląd z kamery/aparatu. Jeśli natomiast drażni nas nieco maksymalna jasność ekranu w trybie robienia zdjęć/video to też możemy tę funkcję łatwo tutaj wyłączyć. Te powyższe opcje dotyczą jedynie samego wyglądu interfejsu aparatu/kamery. Niemniej jednak, istnieją jeszcze opcje, do których możemy uzyskać dostęp z poziomu tego interfejsu: Z lewej lub prawej strony mamy kilka ikonek. Licząc od góry, odpowiadają one za przełączenie aparatu głównego/selfie, przełączenie trybu aparatu/kamery, dostosowanie i zablokowanie poziomu ekspozycji, dostęp do bardziej rozbudowanego menu interfejsu oraz menu opcji. Jeśli zaś chodzi o rozbudowane menu interfejsu jakim dysponuje aparat/kamera, to wygląda on mniej więcej tak: Trochę tego jest i to przewijane menu jest moim zdaniem trochę zbyt długie. Przydałby się je pociąć i ulokować pod osobnymi ikonkami na pasku interfejsu. Niemniej jednak, widzimy, że w bardzo łatwy sposób można wybrać sobie filtry jak i rozdziałkę kamery/aparatu. Co ciekawe lampa błyskowa może być włączona cały czas, nawet przed zrobieniem zdjęcia. Szkoda tylko, że miga ona tuż przed zrobieniem fotki. Jeśli chodzi zaś opcje dotyczące ostrości obrazu, to mamy możliwość nie tylko włączenia/wyłączenia autofokusa ale także możemy ustawić go na pewien określony punkt i zablokować to ustawienie. Jest także Focus Infinity oraz możliwość dostosowania wartości ISO. Informacje o aparacie/kamerze Jako, że nie wszystkie wyżej opisane funkcje są dostępne w każdym smartfonie, to warto zaznajomić się z informacjami, które widnieją pod pozycją "About" w menu opcji OpenCamera. Dla modelu Neffos C5 od TP-LINK są one następujące: Open Camera v1.34 Code: 41 (c) 2013-2016 Mark Harman Released under the GPL v3 or later Package: net.sourceforge.opencamera Android API version: 22 Device manufacturer: TP-LINK Device model: Neffos C5 Device code-name: mt6735 Device variant: C5 Language: pl Standard max heap?: 128 Large max heap?: 256 Display size: 720x1184 Current camera ID: 0 Camera API: Camera Preview resolutions: 176x144, 320x240, 352x288, 480x320, 480x368, 640x480, 720x480, 800x480, 800x600, 864x480, 960x540, 1280x720, 1440x1080, 1920x1080, 1920x1088, 1680x1248 Preview resolution: 1280x720 Photo resolutions: 320x240, 640x480, 1024x768, 1280x720, 1280x768, 1280x960, 1600x1200, 1920x1088, 2048x1536, 2560x1440, 2560x1920, 3264x2448 Photo resolution: 3264x2448 Video qualities: 1, 5_r1920x1080, 5_r1280x736, 5, 4_r864x480, 4, 3_r640x480, 3_r480x320, 3, 7, 2 Video resolutions: 1920x1088, 1920x1080, 1280x736, 1280x720, 864x480, 720x480, 640x480, 480x320, 352x288, 320x240, 176x144 Video quality: 5_r1920x1080 Video frame width: 1920 Video frame height: 1080 Video bit rate: 9000000 Video frame rate: 30 Auto-stabilise?: Available Auto-stabilise enabled?: false Face detection?: Available RAW?: Not available Video stabilization?: Not available Flash modes: flash_off, flash_auto, flash_on, flash_torch, flash_red_eye Focus modes: focus_mode_auto, focus_mode_infinity, focus_mode_macro, focus_mode_locked, focus_mode_continuous_picture, focus_mode_continuous_video Color effects: none, mono, negative, sepia, aqua, whiteboard, blackboard, posterize, nashville, hefe, valencia, xproll, lofi, sierra, walden Scene modes: auto, portrait, landscape, night, night-portrait, theatre, beach, snow, sunset, steadyphoto, fireworks, sports, party, candlelight, hdr White balances: auto, incandescent, fluorescent, warm-fluorescent, daylight, cloudy-daylight, twilight, shade ISOs: auto, 100, 200, 400, 800, 1600 ISO key: iso-speed Using SAF?: false Save Location: OpenCamera Save Location SAF: Parameters: 3dnr-mode=on; 3dnr-mode-values=on,off; afeng-max-focus-step=1023; afeng-min-focus-step=0; aflamp-mode=off; aflamp-mode-values=off,on,auto; antibanding=off; antibanding-values=off,50hz,60hz,auto; auto-exposure-lock-supported=true; auto-whitebalance-lock-supported=true; brightness=middle; brightness-values=low,middle,high; brightness_value=0; burst-num=1; cap-mode=normal; cap-mode-values=normal,face_beauty,continuousshot,smileshot,bestshot,autorama,mav,asd,motiontrack; capfname=/sdcard/DCIM/cap00; chutter-value=0; contrast=middle; contrast-values=low,middle,high; cshot-indicator=true; cshot-indicator-supported=true; dynamic-frame-rate=true; dynamic-frame-rate-supported=true; edge=middle; edge-values=low,middle,high; effect=none; effect-values=none,mono,negative,sepia,aqua,whiteboard,blackboard,posterize,nashville,hefe,valencia,xproll,lofi,sierra,walden; eng-mfll-e=false; eng-mfll-s=true; eng-s-shad-t=0; eng-shad-t=0; exposure-compensation=0; exposure-compensation-step=1.0; face-beauty=false; face-beauty-supported=true; fb-enlarge-eye=0; fb-enlarge-eye-max=4; fb-enlarge-eye-min=-4; fb-extreme-beauty=true; fb-extreme-beauty-supported=false; fb-face-pos=-2000:-2000; fb-sharp=0; fb-sharp-max=12; fb-sharp-max-values=12; fb-sharp-min=-12; fb-sharp-min-values=-12; fb-skin-color=0; fb-skin-color-max=12; fb-skin-color-max-values=12; fb-skin-color-min=-12; fb-skin-color-min-values=-12; fb-slim-face=0; fb-slim-face-max=12; fb-slim-face-max-values=12; fb-slim-face-min=-12; fb-slim-face-min-values=-12; fb-smooth-level=0; fb-smooth-level-max=12; fb-smooth-level-max-values=12; fb-smooth-level-min=-12; fb-smooth-level-min-values=-12; fb-touch-pos=-2000:-2000; feature-max-fps=24@VFB+EIS; flash-duty-max=1; flash-duty-min=0; flash-duty-value=-1; flash-mode=off; flash-mode-values=off,on,auto,red-eye,torch; flash-step-max=0; flash-step-min=0; focal-length=3.5; focus-areas=(0,0,0,0,0); focus-distances=0.95,1.9,Infinity; focus-fs-fi=0; focus-fs-fi-max=65535; focus-fs-fi-min=0; focus-mode=continuous-video; focus-mode-values=auto,macro,infinity,continuous-picture,continuous-video,manual,fullscan; gesture-shot=false; gesture-shot-supported=true; horizontal-view-angle=62; hsvr-size-fps=640x480x120; hsvr-size-fps-values=640x480x120; hue=middle; hue-values=low,middle,high; iso-speed=auto; iso-speed-values=auto,100,200,400,800,1600; jpeg-quality=90; jpeg-thumbnail-height=128; jpeg-thumbnail-quality=100; jpeg-thumbnail-size-values=0x0,160x128,256x192; jpeg-thumbnail-width=160; m-sr-g=0; m-ss=0; max-exposure-compensation=3; max-num-detected-faces-hw=15; max-num-detected-faces-sw=0; max-num-focus-areas=1; max-num-metering-areas=9; max-num-ot=1; max-zoom=10; metering-areas=(0,0,0,0,0); mfb=off; mfb-values=off,mfll,ais; min-exposure-compensation=-3; mnr-e=0; mnr-s=true; mtk-123-shad-s=true; mtk-awb-s=true; mtk-cam-mode=0; mtk-shad-s=true; native-pip=false; native-pip-supported=false; picture-format=jpeg; picture-format-values=jpeg; picture-size=2560x1440; picture-size-values=320x240,640x480,1024x768,1280x720,1280x768,1280x960,1600x1200,1920x1088,2048x1536,2560x1440,2560x1920,3264x2448; pip-fps-zsd-off=30; pip-fps-zsd-on=30; preferred-preview-size-for-video=1920x1088; preview-format=yuv420sp; preview-format-values=yuv420sp,yuv420p,yuv420i-yyuvyy-3plane; preview-fps-range=5000,60000; preview-fps-range-values=(5000,60000); preview-frame-rate=30; preview-frame-rate-values=10,20,15,24,30,60,120; preview-size=1280x720; preview-size-values=176x144,320x240,352x288,480x320,480x368,640x480,720x480,800x480,800x600,864x480,960x540,1280x720,1440x1080,1920x1080,1920x1088,1680x1248; rotation=0; saturation=middle; saturation-values=low,middle,high; scene-mode=auto; scene-mode-values=auto,portrait,landscape,night,night-portrait,theatre,beach,snow,sunset,steadyphoto,fireworks,sports,party,candlelight,hdr; sen-mode-s=0; sensor-type=252; smooth-zoom-supported=true; sr-awb-s=true; sr-shad-s=true; stereo-capture-frame-rate=15; stereo-preview-frame-rate=15; sv1-s=3; sv2-s=3; vdr-cc2m-s=true; vdr-r=0; vdr-r2m-s=true; vdr-r4k2k-s=true; vertical-view-angle=37; vfb-supported=true; vfb-supported-values=true; video-frame-format=yuv420p; video-hdr=off; video-hdr-values=off; video-size=640x480; video-size-values=176x144,320x240,352x288,480x320,640x480,864x480,1280x720,1920x1080,720x480,1280x736,1920x1088; video-snapshot-supported=true; video-stabilization=false; video-stabilization-supported=false; vr-buf-count=10; vrd-mfr-e=true; vrd-mfr-high=30; vrd-mfr-low=15; vrd-mfr-max=30; vrd-mfr-min=15; vrd-mfr-s=true; whitebalance=auto; whitebalance-values=auto,incandescent,fluorescent,warm-fluorescent,daylight,cloudy-daylight,twilight,shade; zoom=0; zoom-ratios=100,114,132,151,174,200,229,263,303,348,400; zoom-supported=true; zsd-mode=off; zsd-mode-values=off,on
  19. Może i obecne smartfony dają nam w standardzie sporo wolnego miejsca na swoim flash'u ale dla niektórych to ciągle za mało. Nie ważne ile tej pamięci będziemy mieć dostępnej, to i tak zawsze będzie nam jej brakować. Mój Neffos C5 ma na pokładzie 16 GiB flash, z czego około 10 GiB jest udostępnione użytkownikowi. Mi by się przydał flash 64 GiB. Jako, że ten telefon obsługuje karty SDHC, max 32 GiB, to postanowiłem dokupić tego typu kartę i zamontować ją w smartfonie. Problem pojawił się w momencie próby przeniesienia danych aplikacji z pamięci wewnętrznej na pamięć zewnętrzną jaką jest karta SD. Chodzi na przykład o zapisywanie zdjęć czy filmów z kamery bezpośrednio na karcie SD. Okazuje się jednak, że Android począwszy od wersji 4.4 zablokował możliwość umieszczania danych aplikacji na karatach SD. Czy słusznie i czy istnieje jakiś sposób by wybrnąć z tej sytuacji? Prywatność i bezpieczeństwo danych na karcie SD Wygląda na to, że cały problem z możliwością zapisu kart SD przez aplikacje wziął się z winy systemu plików FAT, którym jest taka karta sformatowana. Ten system plików nie wspiera uprawnień, tak jak to ma, np. miejsce w linux'owym systemie plików EXT4. W efekcie jeśli aplikacje mają możliwość zapisu danych na karcie SD, to każda z nich jest w stanie odczytać informacje zapisane przez sąsiadujące programy, a to nie jest już w porządku. Dlatego Android zablokował taką możliwość. Oczywiście w dalszym ciągu jesteśmy w stanie zapisywać kartę SD ręcznie przez kopiowanie danych z pamięci telefonu na kartę SD. Jest to jednak czasochłonne, mało wygodne i raczej niezbyt praktyczne rozwiązanie. Jakby nie patrzeć trzeba dokonać dwukrotnego zapisu danych, raz na flash'u telefonu, a drugi raz na karcie SD, a to pociąga za sobą większą utylizację zasobów. Sformatowanie karty SD jako pamięć wewnętrzna Jednym z rozwiązań zaistniałego problemu może być sformatowanie karty SD jako pamięć wewnętrzna. Ten pomysł został mi podsunięty przez użytkownika @szopen ale jak zawsze nie obyło się bez problemów. Okazuje się, że opcja takiego formatowania karty jest dostępna jedynie w wybranych modelach smartfonów. Z nieznanych mi przyczyn, TP-LINK nie umieścił takiego ficzera w Neffos'ie C5. Stoją za tym jakieś argumenty? Sformatowanie karty SD z wykorzystaniem systemu plików EXT4 My linux'iarze zdajemy sobie sprawę z problemu praw dostępu do plików, bo bezpieczeństwo naszych systemów operacyjnych jest właśnie o takie prawa oparte. Każdy plik musi mieć swojego właściciela oraz grupę i odpowiednie prawa dla zapisu, odczytu czy wykonywania. To nic nowego dla osób korzystających z alternatywnych systemów operacyjnych. Przyglądając się bliżej Androidowi, a konkretnie systemowi plików jego partycji, możemy zauważyć, że on również wykorzystuje system plików EXT4. Poniżej fotka: Niby nic wielkiego, podłączam zatem kartę SD do mojego Debiana i odpalam gparted . Tam zaś formatuję kartę z wykorzystaniem systemu plików EXT4: Wsadzam tak sformatowaną kartę do telefonu, uruchamiam system i co widzą moje oczyska? Jak to jest możliwe, że linux jakim jest Android, mający systemowe partycje sformatowane na EXT4, ma problemy z czytaniem karty SD, która również ma taki sam system plików? Mając root na moim Neffos'ie C5, postanowiłem, że sprawdzę, czy da radę ręcznie zamontować tę kartę w systemie. I co się okazało? Oczywiście kartę SD można zamontować i jest ona widoczna w systemie ale Androidowe aplikacje tego faktu zdają się nie zauważać. Partycjonowanie karty SD z poziomu Android'a Wygląda na to, że nie damy rady zrobić użytku z karty SD w sposób taki jak by tego oczekiwał przeciętny linux'iarz. Karta będzie formatowana domyślnie na FAT, który ma całą masę ograniczeń i podatności. Na necie można spotkać się z kilkoma sposobami obejścia tego problemu. Jeśli zrobiliśmy root na naszym Neffos C5, to możemy spróbować sformatować tę kartę SD z poziomu Androida. Problem z tym rozwiązaniem jest taki, że karta przestanie nam działać po przeniesieniu do czytnika kart SD w komputerze. Więc albo będziemy korzystać z niej tylko i wyłącznie na smartfonie albo musimy korzystać z systemu pliku FAT i zaakceptować problemy z nim związane. W przypadku Neffos'a C5 sformatowanie karty SD z poziomu Androida nie pomaga. Czytając ten wyżej podlinkowany watek, znalazłem tam informację, która mówi, że winny jest tutaj moduł FUSE, który w stock'owym ROM'ie nie obsługuje systemu plików EXT4. W efekcie Android nie będzie w stanie zamontować karty SD posiadającej na partycji taki system plików. Jedyna alternatywa to wgranie niestandardowego ROM'u, np. CyanogenMod. Jak to zrobić wychodzi poza ramy tego artykułu i w przypadku Neffos'a C5 nie obejdziemy tutaj niedogodności związanych z systemem plików FAT. Trzeba zatem powrócić do głównego problemu jakim jest umożliwienie aplikacjom zapisu danych na karcie SD. Zdjęcie restrykcji co do zapisu danych na karcie SD Ostatnią rzeczą, której możemy się podjąć jest zdjęcie restrykcji dotyczących zapisu danych przez aplikacje na karcie SD. Krótko mówiąc, wyłączenie całego mechanizmu bezpieczeństwa i umożliwienie każdej aplikacji na czytanie/zapisanie/zmianę wszystkich danych na karcie SD. Krok niezbyt rozważny ale czego to się nie robi by poznać inne systemy operacyjne? Do zdjęcia blokady będą nam potrzebne prawa administracyjne. Dlatego też upewnijmy się, że nasz telefon ma root'a przed próbą podjęcia poniższych działań. Odpalamy zatem terminal logujemy się na root'a i montujemy partycję /system/ w trybie do zapisu: $ su # mount -o remount,rw /system Następnie przy pomocy vi edytujemy plik /system/etc/permissions/platform.xml . Musimy w nim odszukać WRITE_EXTERNAL_STORAGE i dopisać w nim grupę media_rw : Zapisujemy zmiany i restartujemy smartfona. Odpalamy teraz aplikację, która ma mieć możliwość zapisywania karty SD (w tym przypadku jest to oprogramowanie aparatu), zmieńmy ścieżkę zapisu fotek na kartę SD i przetestujemy czy wszystko działa w porządku: Jak widać fotka została zapisana w folderze na karcie SD. Wyłączenie tych zabezpieczeń rozwiązuje też problem przy wgrywaniu plików z komputera bezpośrednio na kartę SD w telefonie. Niemniej jednak, szybkość zapisu karty spadła mi z 8,5 MiB/s do około 3 MiB/s. Aplikacja SDFIX Jeśli chcielibyśmy zautomatyzować cały proces związany z modyfikacją uprawnień, to istnieje dedykowana aplikacja SDFIX, która pomoże nam tę kwestię ogarnąć. Teraz już wystarczy tylko odpalić program. Jego obsługa jest banalna i sprowadza się do zaznaczenia jednej opcji, za której sprawą SDFIX poprosi nas o prawa root w celu zmiany piku /system/etc/permissions/platform.xml : Aplikacja SDFIX tworzy backup pliku /system/etc/permissions/platform.xml przed dokonaniem w nim zmian (nazwa backupu to platform.xml.original-pre-sdfix ). Gdy będziemy chcieli powrócić do ustawień systemowych, wystarczy odinstalować ten program i przywrócić ww. plik backupu.
  20. Jedną z rzeczy, która wychodzi przy użytkowaniu smartfona Neffos C5 od TP-LINK jest ździebko problematyczny interfejs. Chodzi o launcher aplikacji, do których odnośniki mamy na pulpicie. Standardowo jest tutaj podziałka 4x4, czyli na jednym pulpicie możemy mieć maksymalnie tylko 16 ikonek. Gdy do tego jeszcze dojdą nam widżety, to korzystanie z pewnych aplikacji może być dość uciążliwe. Ja korzystam z bardzo wielu programów i standardowo w Neffos'ie C5 muszę mieć co najmniej 5 pulpitów, a jeszcze nie skończyłem się bawić aplikacjami. Nie byłoby pewnie żadnego problemu, gdyby nie fakt, że nie można zmienić ilości wyświetlanych ikonek, przynajmniej ja nie znalazłem takiej opcji. Dlatego też byłem zmuszony rozejrzeć się za innym launcher'em i znalazłem Nova Launcher. Standardowy launcher w Neffos C5 vs Nova Launcher Niezbyt mi się uśmiecha ciągłe przewijanie ekranu, by odszukać pewne aplikacje, które moim zdaniem powinny być na głównym pulpicie. Niby nie ma problemu, bo wystarczy przenieść tam odpowiednie ikonki. W standardzie na pulpicie Neffos'a C5 jest pogoda 4x1 i widżet Google, również 4x1. W moim przypadku na tym głównym pulpicie chciałem umieścić inny widżet pogody, który ma rozmiar 4x2, a ten pasek od Google zmienić na 2x1. Jak łatwo policzyć, zostaje mi do dyspozycji tylko 6 pozycji. To stanowczo za mało. Niektórzy mogą się ratować folderami, w których można upychać aplikacje ale nie jest to tym czego ja bym oczekiwał od mojego pulpitu. Poniżej jest zestawienie domyślnego launcher'a Neffos'a C5 i mojego już dostosowanego pulpitu na bazie Nova Launcher: Różnica jest znaczna. Nie chodzi tylko o ilość ikonek ale także o sposób ich formatowania. Na pierwszy rzut oka widać, że układ siatki jest inny. W tym schemacie mamy 8x8. Oczywiście dla niektórych osób ikonki mogą być za małe ale ten aspekt można sobie bez problemu dostosować w Nova Launcher. Dla mnie układ 8x8 wydaje się być optymalny. Druga sprawa to odstępy między ikonkami. W Nova Launcher są one niewielkie w porównaniu do tych standardowych, które mamy w Neffos'ie C5. Idąc dalej, widżet pogody również jest nieco mniejszy, bo w Nova Launcher rozmiarem tych widżetów można zarządzać. Oczywiście rozmiar czcionek będzie odpowiednio mniejszy, tak jak to widać na powyższej fotce. Ostatnia rzecz to dock, czyli ten pasek przy dolnej krawędzi ekranu. Standardowo w Neffos'ie C5 możemy wyciągnąć tylko 4 ikonki. W Nova Launcher możemy zarządzać ilością ikonek w dock'u (maksymalnie 7), z tym, że takich dock'ów możemy mieć 1-5. Instalacja Nova Launcher Nova Launcher jest bardzo konfigurowalnym narzędziem. Musimy je pierw sobie zainstalować. Odpowiednia aplikacja jest dostępna w Google Play. Mamy tam dwie wersje: darmową i płatną. Darmowa wersja nie zawiera reklam, co cieszy. Niemniej jednak, ta wersja jest pozbawiona kilku użytecznych funkcji. Przy pisaniu tego artykułu korzystałem z wersji Free. Poniżej jest ofotkowany proces instalacji: Po otworzeniu Nova Launcher mamy do dyspozycji czysty pulpit, tak jak to widać na fotce wyżej. By dodać do pulpitu nową ikonkę, musimy otworzyć listę aplikacji, tj. tapnąć to białe kółko z sześcioma dziurkami, które jest ulokowane w dolnej części ekranu. Otworzy nam się lista zainstalowanych w systemie programów. Jednym z nich są ustawienia Nova Launcher (pierwsza ikonka na poniższej fotce). Po otworzeniu ustawień, mamy dostęp do całej masy opcji konfigurujących zachowanie launcher'a: Dostęp do menu konfiguracyjnego jak i tapet oraz widżetów możemy także uzyskać przez dłuższe przytrzymanie pustej przestrzeni pulpitu: Jak widać, trochę tego jest, a i tak nie wszystkie opcje udało się uchwycić. Przejdźmy zatem do konfiguracji pulpitu. Konfiguracja pulpitu Pierwszą pozycją na liście w menu konfiguracyjnym jest Pulpit. Możemy tutaj skonfigurować sobie nie tylko rozdzielczość siatki ikon ale także podpisy pod nimi, oczywiście jeśli ktoś ich w ogóle potrzebuje. Jeśli się przyjrzeliśmy porównaniu launcher'ów (na tej pierwszej fotce), to mogliśmy zauważyć brak podpisów pod ikonkami. Ja ich zwyczajnie nie potrzebuję i uważam, że są one całkowicie zbędne i psują tylko całą estetykę, zwłaszcza przy większej ilości ikon na pulpicie. Poniżej jest zaś fotka wszystkich opcji dotyczących pulpitu: Siatka pulpitu To tutaj możemy dostosować rozdzielczość siatki pulpitu. Minimalna wartość to 2x2, maksymalna zaś to 12x12. Zatem całkiem przyzwoite konfiguracje można tworzyć. Oczywiście możemy również ustawić niestandardowy układ, np. 4x6, mamy tutaj pełną dowolność: Opcja widoczna wyżej, umożliwia nam nieco swobodniejsze rozmieszczenie widżetów i ikonek. Układ ikon Czcionkę tekstu, który jest pod ikonami, możemy sobie również bez większego problemu dostosować. W grę wchodzą takie ustawienia jak rozmiar czcionki, jej kolor, a nawet rzucane cienie na pulpit. Możemy także zlikwidować wielolinijkowość tekstu, jak i całkowicie go wyłączyć (zostaną nam same ikonki). Wszystkie nasze ustawienia są widoczne w podglądzie, dzięki czemu w bardzo prosty sposób dostosujemy wygląd podpisów do własnych potrzeb. Margines poziomy i pionowy Siatka aplikacji może wypełniać całą dostępną przestrzeń pulpitu. Niemniej jednak, przy mniejszym rozmiarze ikon, ikonki mogą nam się przysunąć zbyt blisko krawędzi ekranu, co psuje nieco estetykę. Można ten problem wyeliminować przez ustawienie marginesu poziomego i pionowego. Do wyboru mamy: brak, mały, średni i duży. Efekty przewijania i wskaźnik strony W przypadku posiadania wielu pulpitów, możemy się między nimi przełączać. Temu procesowi z reguły towarzyszy jakaś animacja, której zachowaniem możemy sterować. Gdy już mamy kilka pulpitów, to w dolnej części ekranu mamy również informację na temat aktualnej pozycji. Kształt i kolor tego wskaźnika możemy zmienić. Możemy także wyłączyć go całkowicie. Standardowo też nie mamy możliwości przewijać ekranu po przejściu do ostatniego pulpitu z lewej lub prawej strony. Jeśli chcielibyśmy zmienić to zachowanie i móc przełączyć się z 3 pulpitu bezpośrednio na 1 pulpit przewijając w prawą stronę, to możemy naturalnie zaznaczyć sobie opcję "Przewijanie w nieskończoność": Automatyczne dodawanie skrótów Mając listę aplikacji schowaną pod guzikiem umiejscowionym w dock'u, raczej nie potrzebujemy automatycznego dodawania skrótów na pulpicie tuż po zainstalowaniu jakiejś aplikacji. Niektórych programów nie używamy tak często i zaśmiecają one nam tylko cenną przestrzeń pulpitu. Niemniej jednak, jeśli są użytkownicy, którzy nie potrafią wręcz żyć bez tej opcji, to nic nie stoi na przeszkodzie by ją włączyć: Blokada pulpitu Gdy skończymy się bawić ustawieniami pulpitu, dobrze jest zablokować jego układ. Ta opcja jest dostępna w ustawieniach zaawansowanych pulpitu. Po jej aktywowaniu, nie będziemy mogli przeciągać ikonek, tak jak to możemy robić bez blokady. Niemniej jednak, gdy zajdzie potrzeba zmiany układu pulpitu, blokada może być zdjęta tymczasowo. Wystarczy przytrzymać dłużej ikonkę, którą zamierzamy przemieścić. Pojawi nam się monit informujący o zablokowaniu pulpitu. Będzie tam kłódka, której dłuższe przytrzymanie dezaktywuje blokadę: Lista aplikacji Dostosowanie pulpitu mamy z grubsza z głowy. Drugim elementem Nova Launcher, którym warto się zainteresować, jest lista aplikacji. W jej przypadku mamy do dyspozycji nawet więcej opcji, niż mieliśmy przy konfigurowaniu panelu: Lista aplikacji niczym nadzwyczajnym się nie wyróżnia ale skrywa ona dwie ciekawe właściwości. Jedną z nich jest możliwość wyszukiwania aplikacji. Wystarczy wyciągnąć szukajkę spod górnej krawędzi listy, do momentu aż pojawi się niebieska lupa. Po puszczeniu zobaczymy listę ostatnio instalowanych aplikacji, no i oczywiście formularz, w którym możemy zacząć wpisywać tekst: W pierwszym rzędzie mamy najczęściej używane aplikacje. Możemy je naturalnie wyłączyć jeśli komuś one przeszkadzają. Do tego celu służy opcja "Często używane aplikacje" w ustawieniach listy aplikacji. Styl siatki aplikacji Podobnie jak w przypadku pulpitu, lista aplikacji również ma do skonfigurowania siatkę. Możemy także zmienić jej zachowanie. Chodzi o przewijanie z lewej na prawą (poziomy) lub z góry na dół (pionowy). Jeśli żadna z tych opcji nas nie zadowala, to możemy zrobić faktyczną listę aplikacji: Pozostałe opcje konfigurujące widok listy aplikacji Szereg elementów konfiguracyjnych jest podobnych do tych, które były wykorzystywane przy konfiguracji pulpitu, np. dostosowanie podpisów pod ikonkami na liście, efekty przejścia czy przewijanie aplikacji w nieskończoność. Reszta opcji okazała się dla mnie praktycznie nieprzydatna i nie sądzę, aby ktoś z nich zrobił większy użytek Jeśli się mylę to zawsze możecie dopisać do czego one wam się przydały. Jeśli się przekonam do tych opcji, to ich opis uwzględnię tutaj. Dock Ostatnim z elementów Nova Launcher jest dock, czyli ten pasek z aplikacjami, które widnieją u dołu ekranu i nie podlegają zmianie przy przechodzeniu do innych pulpitów. W zasadzie jest tutaj niewiele opcji ale za to jakże niezbędnych z perspektywy użytkownika telefonu. Przede wszystkim mamy możliwość dostosowania wyglądu samego dock'a. Możemy nie tylko zmienić jego kształt czy kolor ale także przezroczystość. Możemy także dostosować ilość dock'ów, które będziemy mieć do dyspozycji po przesunięciu palcem w lewo lub prawo (max 2 w lewo i max 2 w prawo, co łącznie daje 5 dock'ów). Jest też opcja zmiany ilości ikonek, maksymalnie 7: Również na dock'u jesteśmy w stanie dostosować sobie układ ikon i napisy pod nimi. Choć zwykle w przypadku dock'ów ta opcja jest kompletnie zbędna. Warto także zsynchronizować sobie margines poziomy i pionowy z tym co ustawiliśmy w przypadku pulpitu. Możemy także pokusić się o włączenie przewijania w nieskończoność, choć ja akurat nie korzystam z tej opcji zupełnie. Jeśli chodzi zaś o opcje zaawansowane, to mamy jedną bardzo przydatną rzecz. Chodzi o umiejscowienie dock'u. Standardowo jest on ulokowany nad dolną krawędzią ekranu smartfona. Możemy zmienić jego położenie, tak by był pod górną krawędzią. U mnie ten ficzer nie działa albo nie potrafię go włączyć. Foldery Foldery są powiązane bezpośrednio z pulpitem. Standardowo ikonka każdej aplikacji zajmuje jedno pole. Niemniej jednak, jeśli przeciągniemy kilka ikonek w to samo miejsce, utworzoną one folder, w którym możemy przechowywać więcej aplikacji niż tylko dwie. Widok folderu na pulpicie można dostosować. Pozostałe opcje animacji i układu ikon są takie same jak w powyższych przypadkach. Ja generalnie usunąłem całe formatowanie z folderów uzyskując w ten sposób coś na wzór mniejszych ikonek w stosunku do tych standardowych. Jest to złudzenie, bo każdy folder pokazuje w podglądzie cztery pierwsze aplikacje, które są w nim ulokowane. Kolejnością aplikacji w folderach możemy dowolnie zarządzać: Po kliknięciu w folder otwiera się małe okienko z zawartością folderu. Ikonki są tutaj już pełnowymiarowe (kolor tła i przezroczystość można dostosować): Styl i wygląd Nova Launcher Kolejną pozycją na liście opcji, które mamy dostępne w ustawieniach Nova Launcher, jest Wygląd i Styl: Mamy tutaj możliwość wyboru zestawu ikon. Póki co dostępne są dwie opcje: ikonki systemowe oraz ikonki z Androida 6.0 (Marshmallow). Możemy także wyrównać nieco rozmiar ikonek, tak by były zgodne z zasadami Material Design. Generalnie część większych ikonek będzie nieco mniejsza co uczyni sam pulpit bardziej czytelnym. Nie wiem czemu nie wszystkie duże ikonki są pomniejszane (Google Chrome vs Firefox): Standardowo też Nova Launcher jest skonfigurowany dla orientacji pionowej telefonu i przy obrocie smartfona układ pulpitu się nam nie zmienia. Jeśli pracujemy więcej w układzie poziomym, to możemy taki tryb wymusić albo przestawić Nova Launcher w tryb automatycznego dopasowania w zależności od położenia telefonu. Ja pozostanę przy pionowej orientacji. Mamy także możliwość dostosowania prędkości animacji i przewijania, co bardzo przydaje się w przypadku, gdy mają dla nas ogromne znaczenie efekty wizualne. Również efekt animacji przy otwieraniu aplikacji możemy sobie wybrać: Bardziej użytecznymi funkcjami są jednak te dotyczące paska powiadomień (przy górnej krawędzi ekranu). Możemy ten pasek ukryć, choć będzie się on pojawiał automatycznie przy mizianiu ekranu tuż przy górnej krawędzi. Możemy także ustawić jego przezroczystość, a nawet ukryć zegar, co zwolni trochę cennego miejsca. Z tym, że w przypadku ukrycia zegara potrzebny nam jest root telefonu. Tryb nocny Dla lunatyków i innych wilkołaków, Nova Launcher przewidział także tryb nocny, który możemy ustawić na kilka sposobów. Jeśli mamy w systemie skonfigurowany tryb nocny, to Nova Launcher może te ustawienia wykorzystać i dostosować przełączanie trybu. Możemy także wybrać tryb automatyczny, który ustawi godziny przełączania w oparciu o naszą strefę czasową. Jeśli natomiast chcielibyśmy sobie dostosować owe godziny przełączania, to nic nie stoi na przeszkodzie, by tak uczynić. Z kolei zaś, gdy chcemy non stop korzystać z trybu nocnego, to również i z tym nie ma najmniejszego problemu. Pamiętajmy tylko, by dostosować sobie również wygląd poszczególnych elementów w trybie nocnym: Bakcup i ustawienia domyślne Jak widać po powyższym opisie, Nova Launcher dysponuje całą masą opcji, których konfiguracja może nam zająć trochę czasu. Jeśli nie zmienialiśmy za dużo ustawień, to i tak problematyczne może się okazać odtworzenie choćby układu ikon na pulpicie. By ulżyć nieco użytkownikom, ten launcher ma wbudowany mechanizm backup'u ustawień: Nie wiem czemu ale nie mogłem tych ustawień wyeksportować bezpośrednio na kartę pamięci. Domyślny launcher Jeśli Nova Launcher przypadł nam do gustu, to możemy go uczynić domyślnym launcher'em w naszym Androidzie. Możemy to zrobić przechodząc w Ustawienia => Ekran główny, albo też możemy tapnąć w przycisk Home na ekranie smartfona: Warto na zakończenie wspomnieć, że ikonki na pulpicie w Nova Launcher możemy nie tylko przyciskać ale też możemy za ich sprawą aktywować pewne akcje. Wystarczy taką ikonkę trochę przytrzymać, a po chwili pojawi nam się menu odnoszące się do konkretnej pozycji na pulpicie. Możemy tutaj odinstalować aplikację, do której skrót należy. Mamy też możliwość zmiany nazwy skrótu, o ile korzystamy z podpisów ikonek. Jest też odwołanie do informacji o aplikacji. No i oczywiście możemy taki skrót z pulpitu usnąć: Jeśli chodzi zaś o widżety, to je również możemy usuwać, czy uzyskiwać informacje o aplikacjach, do których one przynależą. Możemy także zmieniać rozmiar widżetów, zarówno w pionie jak i poziomie: Istotną funkcją jest też możliwość buforowania danych w pamięci przez Nova Launcher. Poprawia to znacznie wydajność działania aplikacji, bo system nie musi w kółko na nowo rysować interfejsu graficznego aplikacji. Tę opcję znajdziemy w ustawieniach zaawansowanych: I to w sumie już wszystko co tyczy się wymiany launcher'a w Neffos C5. Myślę, że TP-LINK powinien trochę popracować nad tą jakże kluczową aplikacją, bez której raczej żaden użytkownik smartfona nie potrafi się obejść. Moim zdaniem jest szereg elementów, które przydałoby się przenieść z Nova Launcher i zaimplementować w domyślnej nakładce Neffos'a C5.
  21. Na samym początku myślałem, że może to CPU-Z w moim Neffos'ie C5 coś przekłamuje zwracane wyniki ale wygląda na to, że inne aplikacje również coś nie do końca widzą poprawnie procesor, który jest w tym telefonie. Chodzi o liczbę rdzeni. Niby Neffos C5 ma mieć 4 rdzenie ale ta poniższa fotka z htop pokazuje tylko 3: CPU-Z pokazuje co prawda na głównym ekranie 4 rdzenie ale statystyki temperatur są już tylko dla trzech rdzeni: Podobnie sprawa wygląda w /proc/cpuinfo: To jak to jest z tym prockiem w końcu?
  22. Czy ktoś się może orientuje czy te Neffos'y C5, albo jakiekolwiek, można zrootować? Próbowałem póki co zrobić root przez kingoroot, wgrany bezpośrednio na telefon oraz z poziomu windowsa ale żaden z tych sposobów nie daje rady. Z tego co czytam na necie to najwyraźniej są problemy z tym Androidem 5.1 (lollipop) i nie wiem czy coś więcej kombinować. Zainstalowałem u siebie na linux te Androidowe narzędzia SDK, konkretnie ADB i fastboot. Jestem w stanie gadać ze smartfonem zarówno przez jeden jak i drugi program ale za bardzo nie wiem co teraz. Ktoś się tym bawił i może coś podpowie? Niby jest tam opcja, by wgrać nowy firmware na telefon ale skąd wziąć obraz?