Uwolnić Smartfona, cz. 1 System

Słowem wstępu

Pierwszy wpis z serii poradników poświęcę temu, co prawie każdy z nas ma w kieszeni – smartfonowi – to właśnie w nim trzymamy nasze najwrażliwsze dane. Rozpoczynając od tak oczywistej zawartości jak kontakty, poprzez zdjęcia z wakacji, historię przeglądarki i naszych zakupów, kończąc na danych medycznych dotyczących naszego zdrowia. A to tylko kropla w morzu tego, czego powiernikiem są nasze smartfony. Skupię się na systemie Android, bo to w końcu on przejął lwią część rynku mobilnych systemów operacyjnych. Ominę tutaj całkowicie tematykę iOS, ponieważ jest to hermetycznie zamknięty ekosystem, z którym praktycznie nic nie da się zrobić. Jednym zdaniem nie ma dla niego nadziei 😉 Głównym celem wpisu jest zadbanie o swoją prywatność, jednak przy okazji trochę jako efekt uboczny, zniesiemy wiele ograniczeń.

(nie)wolny Android

Niektórzy powiedzą: co z tego że moje dane są wysyłane do korpo z Mountain View? W zamian za odebranie prywatności dają mi przecież bezpieczeństwo i wygodę w codziennym użytkowaniu. I jest w tym trochę racji. Jednak nie jest to pełen obraz problemu. W przypadku iOS sytuacja jest dosyć prosta: hermetyczny ekosystem (urządzenie i oprogramowanie) gromadzone dane powierza wyłącznie firmie z nadgryzionym jabłkiem. W przypadku ekosystemu Androida sprawy mają się nieco inaczej. Z jednej strony mamy Google jako dostawcę systemu operacyjnego i swoich usług, który operuje naszymi danymi. Z drugiej jednak mamy producentów sprzętu, którzy są zobowiązani do tego aby na telefonie działały bez zakłócenia usługi Google, ale mają względnie wolną rękę w kwestii modyfikowania systemu oraz instalowania swojego oprogramowania. Co się stanie jeśli kupimy smartfona z Chin? Spec od cyberbezpieczeństwa określił smartfona Xiaomi jako „backdoor z funkcją telefonu”. Jednak ów producent pozwala „łaskawie” po 14 dniach użytkowania odblokować bootloader i wyrzucić system z pokładu naszego smartfona. Dlaczego w takim razie nie pozwala na to Huawei? Czyżby miał jeszcze więcej za uszami? Zostawię Was drodzy czytelnicy z tym pytaniem retorycznym. Czy zatem inni producenci nic o nas nie wiedzą? Naiwni którzy w to wierzą. Powyższe przykłady są po prostu tymi skrajnymi. A więc podsumowując: mamy do wyboru mniejsze zło, czyli korpo z USA, które musi działać zgodnie z jakimiś przepisami dostosowując się do prawa unijnego – przynajmniej w teorii, albo korpo z Chin, które robi z naszymi danymi co jej się żywnie podoba. Jak się okazuje, wcale nie musimy wybierać pomiędzy mniejszym i większym złem. Jest jeszcze ścieżka prawości, którą podążają dzielni rycerze!

Część czytelników może nie zdawać sobie z tego sprawy, ale Android od początku swego istnienia jest systemem otwartoźródłowym opartym na jądrze Linuxa. No dobrze, skoro jest open source, tłumaczony jako wolny i otwarty, to po co go uwalniać? – zapyta część z Was. Jak zwykle diabeł tkwi w szczegółach (a owy szczegół powoli i niepokojąco rośnie). Sam system co prawda jest otwarty, czyli ma jawny kod źródłowy, jednak każdy smartfon wypuszczony na rynek zawiera zainstalowane tzw. „Usługi Google Play” czyli zamknięte własnościowe oprogramowanie (czytaj: nie wiemy co znajduje się pod maską) które stopniowo przyzwyczaja i uzależnia nas od ekosystemu giganta z Mountain View. Jest to co prawda wygodne, gdyż nie musimy praktycznie nic konfigurować, przenosić, tworzyć kopii zapasowych, zapamiętywać haseł itp. W końcu telefon (tj. wujek Google) zrobi to za nas. Ale nie ma nic za darmo, w tym przypadku oddajemy swoje dane, czytaj swoją prywatność. Usługi te – początkowo mało inwazyjne – z każdą kolejną edycją robocika zaczęły się rozrastać i przejmować kolejne funkcje systemu dążąc do całkiem podstawowych. Android – system z natury otwartoźródłowy – obecnie jest tak ściśle zintegrowany z Google, że pod tym względem niewiele różni się od swojego konkurenta z nadgryzionym jabłkiem. Usługi Google obecnie są odpowiedzialne za wiele rzeczy, w szczególności za: powiązanie telefonu z kontem Google, sieciowe kanały komunikacji zainstalowanych aplikacji, usługi lokalizacji, mapy, reklamy i wiele innych. Nie będę się za bardzo rozpisywał, internet jest pełen artykułów na ten temat. Dodam tylko że obecnie nawet tak podstawowe aplikacje jak Dialer (telefon) oraz Wiadomości są zintegrowane z usługami giganta. Po co? „Nie wiem, choć się domyślam”. Poza tym swoją cegiełkę w temacie zbierania danych dokłada sam producent urządzenia, jak zostało wcześniej wspomniane. Dobra, wystarczy tego straszenia, czas na rozwiązania 😉

Remedium? LineageOS!

LineageOSnasz główny bohater tego wpisu. Jest to implementacja systemu Android tworzona przez niemałą społeczność wolontariuszy. Tutaj może pojawić się pytanie o stabilność systemu. LineageOS jest dojrzałym projektem i z własnego doświadczenia mogę powiedzieć że nie posiada żadnych problemów z działaniem. Jest to projekt open source, więc definicji nie zawiera żadnego własnościowego oprogramowania, czyli ani usług Google, ani aplikacji producenta. Jest to czysty android bez wodotrysków i zależności. Zawiera za to dodatkowe przydatne funkcjonalności i zestaw podstawowych aplikacji. Co najważniejsze, jest regularnie aktualizowany, więc możemy czuć się bardziej bezpieczni w przypadku smartfonów, dla których producent porzucił swoje wsparcie.

microG – czyli zjeść ciastko i mieć ciastko

Można oczywiście zainstalować dodatkowo wspomniane wcześniej Usługi Google, na stronie LineageOS podane są nawet oficjalne instrukcje i linki. Ale po co iść na łatwiznę? Nie po to tutaj jesteś 😉 My skupimy się na otwartoźródłowym zamienniku wspomnianych usług.

microG services czyli usługi microG. Jak sama nazwa wskazuje, muszą być niewielkie, i tak właśnie jest: zajmują około 43Mb. Dla porównania najmniejszy pakiet usług Google zajmuje niemal 500Mb! Ale nie w tym rzecz, przede wszystkim ich kod źródłowy jest dostępny publicznie na githubie. Mimo niewielkiego rozmiaru, microG zapewniają większość funkcjonalności oferowanej przez Google. Dlaczego nie zawierają pełniej? Pewnie dlatego, że jest to szalenie trudne do osiągnięcia gdy nie ma się dostępu do kodu źródłowego od Google. Poza tym niektóre funkcjonalności, takie jak reklamy, są celowo niezaimplementowane. Nie mniej jednak najważniejsza funkcjonalność jest zachowana, a większych niedogodności w codziennym użytkowaniu nie zauważyłem.

Najważniejsze pytanie: dlaczego korzystać z microG, skoro Google robi to lepiej? Przede wszystkim microG nie przesyła żadnych informacji o nas, na które nie wyrazimy zgody. Nawet jeśli wyrazimy, to wiemy na co (a jest to minimum danych niezbędnych do działania danych funkcji). Ponadto microG mają marginalny wpływ na czas pracy baterii. Możemy dowolnie skonfigurować je pod swoje potrzeby i wymagania a nawet selektywnie włączać czy wyłączać dostęp danej aplikacji do Cloud Messaging czyli serwisu będącego googlowym pośrednikiem pomiędzy aplikacją a jej docelowym serwerem. Bardzo istotnym argumentem przemawiającym za microG jest fakt, że do działania nie musimy zakładać konta Google.

A nie można prościej? Można – LineageOS for microg

Autor microG buduje gotowe obrazy LineageOS for microG. Jest to wcześniej wspomniany LineageOS z wbudowanym microG, dodatkowo posiada zainstalowany otwartoźródłowy sklep F-Droid (alternatywa dla Sklepu Play) zawierający tylko otwartoźródłowe oprogramowanie (uff… sporo tego otwartego).

Podsumowując: mamy najnowszą, na bieżąco aktualizowaną wersję systemu Android, możemy korzystać z usług Google, mamy zainstalowany odpowiednik Sklepu Play – F-Droid. Czego na ten moment chcieć więcej? Samego Sklepu Play? Nic prostszego, ale o tym później.

Jaki Telefon?

Żeby nie było tak kolorowo, nie na każdym telefonie jesteśmy w stanie zainstalować wspomniany wyżej system. Co prawda lista wspieranych urządzeń z wersji na wersję rozrasta się, jednak w dalszym ciągu jest ich mniej niż byśmy sobie tego życzyli.

Producenci wspierani przez LineageOS w kolejności od najbardziej polecanych do najmniej
Google Pixel, OnePlus, Nothingodblokowanie bootloadera jedną komendą
Samsungodblokowanie jednym klawiszem, do flashowania wymagany Windows, wymóg podłączenia wifi
LGbrak oficjalnej metody odblokowania bootloadera, istnieją nieoficjalne – dość skomplikowane, ale nie wymagające zgody producenta
Sony, Motorola, Fairphone, F(x)tecodblokowanie bootloadera wymaga uzyskania klucza na stronie producenta
Xiaomi14 dni oczekiwania na kod, wymóg zainstalowania karty sim! Nie polecam.
Huaweibrak możliwości odblokowania bootloadera
bezwzględnie omijamy producenta
Iphoneomijamy! – hahaha, nie mogłem się powstrzymać 😉

Dlaczego sortuję producentów wyłącznie poprzez kryterium odblokowania bootloadera? Jest to szalenie istotne czy możemy odblokować samodzielnie, czy prosić łaskawie producenta o zgodę. Producent może się rozmyślić i zakazać odblokowania. Historia to potwierdziła na przykładzie Huawei: niegdyś zezwalał na odblokowanie, jednak zmienił zdanie.

Pełna lista modeli wspieranych przez LineageOS

Otwieramy stronę LineageOS z listą wspieranych urządzeń. Jeśli chcemy poszukać model, który możemy kupić jeszcze jako nowy, polecam ustawić filtry:

 [*] Hide devices without official BL unlock method

przesuwamy suwakiem Min release year na 2021 lub późniejszy

Jeśli chcemy kupić używany:

 [*] Hide devices without official BL unlock method

A jeśli np. mamy starszy telefon i chcemy sprawdzić, czy zainstalujemy na nim LineageOS, to odznaczamy:

[ ] Hide discontinued devices

i szukamy swojego modelu. Jeśli nasz model będzie akurat miał status „discontinued”, to na stronie LineageOS nie znajdziemy zbudowanych dla niego obrazów. Dlatego kopiujemy nazwę kodową (w nawiasie – zaraz obok nazwy modelu), wchodzimy na tą stronę, wklejamy nazwę i mamy aktualne obrazy LineageOS for microG 🙂

Nie znalazłeś swojego modelu? Nic straconego, Istnieje ogromne forum XDA Developers, gdzie prawdopodobnie znajdziesz nieoficjalny port LOS, który z jakichś powodów nie znalazł się na oficjalnych listach (najprawdopodobniej jest jeszcze „niedojrzały” wg. standardów LOS – jednak w pełni funkcjonalny)

Myślę że temat jest dość wyczerpany, więc przechodzimy do sedna.

Zaczynamy!

Instalacja LineageOS for microG

Przygotowanie komputera:

Aby rozpocząć procedurę, potrzebujemy mieć zainstalowane ADB i Fastboot:

  • Jeśli mamy system Windows to pobieramy niezbędne pliki
  • Wypakowujemy je do %USERPROFILE%\adb-fastboot\platform-tools
  • W przypadku linuxa instalujemy z repozytorium oprogramowania: android-tools (arch-pochodne, np. Manjaro) lub android-tools-adb i android-tools-fastboot z repo Ubuntu-pochodnych

Jako przykład instalacji posłuży mi mój stary poczciwy OnePlus 6T. Dla każdego wspieranego modelu na stronie dostępne są szczegółowe instrukcje w języku angielskim.

Pobieramy LineageOS for microG dla naszego modelu:

  • Z listy urządzeń LineageOS wybieramy interesujący nas model
  • kopiujemy nazwę kodową (w nawiasie) i wklejamy ją tutaj
  • pobieramy 2 pliki (mogą być wymagane dodatkowe zależności od modelu):
    • lineage-[wersja]-[data_wydania]-microg-[model].zip
    • lineage-[wersja]-[data_wydania]-microg-[model]-boot.img
  • Dla uproszczenia procesu zmieniamy nazwy na kolejno lineage.zip i boot.img
  • przenosimy pliki do głównego katalogu (/home) lub otwieramy terminal w katalogu z pobranymi plikami.

Postępujemy zgodnie z instrukcjami na stronie, czyli wracamy do telefonu i włączamy debugowanie USB (może się różnić w zależności od modelu telefonu):

  • wchodzimy w Ustawienia, klikamy Informacje o telefonie
  • lokalizujemy Numer kompilacji i klikamy w niego 7 razy (pojawi się informacja, że opcje programistyczne zostały odblokowane
  • Wracamy do menu Ustawienia, wchodzimy do zakładki System, następnie wybieramy menu Opcje programistyczne
  • zaznaczamy Zdjęcie blokady OEM
  • zaznaczamy Debugowanie USB.

W tym momencie tworzymy kopię zapasową wszystkich plików na telefonie, gdyż w procesie odblokowania bootloadera zostaną wyczyszczone wszystkie nasze dane!

Unlock, or do not unlock, that is the question.

Odblokowujemy Bootloader:

  • Podłączamy telefon do komputera
  • otwieramy terminal (Windows: menu start -> wyszukaj „terminal” -> uruchom jako Admin)
  • wpisujemy
    • adb devices
  • telefon zapyta czy zezwolić na debugowanie. Odpowiadamy OK
  • powinno się pojawić coś w stylu
    • oznacza to, że telefon został poprawnie wykryty
  • następnie usuwamy całkowicie konto google z telefonu aby zapobiec blokadzie.
  • Upewniamy się że wersja oprogramowania producenta jest taka sama jak w instrukcji (zazwyczaj jest to najnowsza) jeśli nie, to najłatwiej zaktualizować poprzez aktualizator systemu producenta.
  • w okno z linią poleceń wpisujemy
    • adb -d reboot bootloader
  • kiedy telefon uruchomi się w trybie bootloadera wpisujemy polecenie
    • fastboot devices
  • powinno pojawić na się coś w stylu
    • oznacza to że telefon został poprawnie rozpoznany
  • wpisujemy
    • fastboot oem unlock
  • pojawi się ekran z pytaniem czy potwierdzamy odblokowanie bootloadera oraz ostrzeżenie że nasze dane zostaną wymazane. Wybieramy OK
  • Gratulacje! Właśnie odblokowałeś swój telefon. Teraz ogranicza Cię wyobraźnia a nie producent 😉

Wgrywamy LineageOS

  • Po ponownym uruchomieniu telefonu powtarzamy procedurę z włączeniem debugowania USB
  • na komputerze wpisujemy polecenie
    • adb -d reboot bootloader. Nastąpi restart urządzenia
  • Telefon powinien włączyć się w trybie fastboot, wpisujemy
    • fastboot devices, aby upewnić się, że telefon został poprawnie wykryty
  • wgrywamy recovery poleceniem
    • fastboot flash boot boot.img
  • przyciskami głośności wybieramy tryb recovery
  • potwierdzamy przyciskiem zasilania
  • po uruchomieniu się telefonu w trybie recovery wybieramy
    • Factory Reset
  • następnie
    • Format data / factory reset, potwierdzamy:
    • Format data
  • wracamy do menu, wybieramy
    • Apply Update, następnie:
    • Apply from ADB
  • na komputerze w linii poleceń wpisujemy
    • adb -d sideload lineage.zip (instalacja może się zatrzymać na 47% – to jest normalne, czekamy aż się zakończy)
  • gdy proces instalacji się zakończy, wracamy do menu i wybieramy
    • Reboot system now

Po restarcie ukaże nam się okno wstępnej konfiguracji systemu – ustawiamy wg. potrzeb.

Wreszcie możemy nacieszyć oko zainstalowanym LineageOS! Jak widać na screenach, wsparcie telefonu przez producenta zostało porzucone w 2021 roku wraz z Androidem 11 na pokładzie.

Pozostaje jeszcze tylko sprawdzenie czy microG ma wszystkie niezbędne uprawnienia: w głównym menu (screen 1) wchodzimy do Samo-sprawdzenie (screen 2) i zaznaczamy brakujące haczyki. Wracamy do głównego menu i po kolei zaznaczamy najważniejsze, czyli Rejestracja urządzenia Google, Cloud Messaging i Google SafetyNet. Wchodzimy też do Lokalizacji (screen 3) i włączamy wszystkie przełączniki. Widzimy też wyjaśnienie jakie dane identyfikacyjne i są wysyłane (screen 4).

Uff… dobrnęliśmy do końca. Wiem że wpis był dość przydługi, ale mam nadzieję ze proces przebiegł bez większych komplikacji. Jeśli tak, to gratulacje! Udało Ci się zainstalować pełnoprawny otwartoźródłowy system! Jeśli jednak utknąłeś na jakimś etapie, napisz komentarz lub odezwij się na Mastodonie. Na zachętę mogę powiedzieć, że następny wpis będzie być może ciekawszy ciekawszy, ale na pewno mniej skomplikowany. Zaczniemy wykorzystywać możliwości, jakie właśnie się przed nami otworzyły 😀

Zalety i wady

Zalety? Musiałbym napisać osobny artykuł 😉 wymienię chociaż te najistotniejsze.

  • Pozbyliśmy się ciekawskich oczy i uszy wujka G i producenta telefonu,
  • Czysty, stabilny i wydajny system, bez zbędnego balastu od Google i producenta,
  • Pochodną czystego systemu jest brak potencjalnego problemu z działaniem aplikacji, jak ma to niekiedy miejsce u producentów mocno modyfikujących Robocika,
  • Zawsze aktualna wersja Androida, więc nie grozi nam brak kompatybilności aplikacji powiązany z wiekową wersją systemu,
  • Bezpieczeństwo, czyli wsparcie telefonu jeszcze przez dłuuugi czas po porzuceniu przez producenta (najprawdopodobniej smartfon szybciej dokona żywota 😉 )
  • Spójność interfejsu – system wygląda identycznie na każdym modelu każdego producenta,
  • Firewall – możliwość zablokowania dostępu do internetu dla dowolnej aplikacji
  • i wiele, wiele innych

Z obowiązku muszę przedstawić też wady

  • Próg wejścia – trzeba posiadać peceta/laptopa, minimum wiedzy i maksimum chęci,
  • Nie każdy producent/model nadaje się do instalacji alternatywnego oprogramowania,
  • Samodzielne pilnowanie niektórych kwestii, np. dużych aktualizacji systemu (producent lub wujek G już za nas już tego nie zrobi),
  • Tworzenie kopii zapasowych, menedżer haseł itp. wszystko odbywa się na własną rękę (dla mnie to zaleta),
  • Problemy z działaniem niektórych aplikacji bankowych spowodowane przez googlowy system „bezpieczeństwa” zwany SafetyNet (obejście problemu w kolejnym artykule),

Alternatywy dla LineageOS?

GrapheneOS – najbardziej ciekawy i wart uwagi system oparty na Androidzie skupiony na bezpieczeństwie i prywatności bez kompromisów. Niestety dostępny tylko na smartfony Google Pixel – jak takowego pozyskam to pojawi się artykuł.

/e/ OS – Pochodna LineageOS z wbudowanymi usługami microG – jak znajdę czas, to porównam go z LOS

CalyxOS – Podobnie jak powyżej – silnie skupiony na prywatności, niestety krótka lista wspieranych urządzeń

– Oraz wiele innych pomniejszych pochodnych LineageOS dla lubiących eksperymenty i bajery, np. crDroid, EvolutionX, AICP itp. (osobiście próbowałem i wróciłem do stabilnego LineageOS)

Coś z innej beczki.

PostmarketOS – Prawdziwy Linux na naszych smartfonach – tylko dla zapaleńców, gdyż w obecnej fazie raczej nie nadaje się do codziennego użytku. Nie mniej jednak świetny projekt, któremu gorąco kibicuję.

W kolejnym wpisie skupię się na uzyskaniu uprawnień roota (administratora) i przede wszystkim instalacji aplikacji będących zamiennikami tych od Google.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *