Go to english version of this post / Przejdź do angielskiej wersji tego wpisu
Nie ma co ukrywać, iż na rynku systemów dla urządzeń mobilnych (smartfonów) mamy bardzo ograniczony wybór, bo możemy w zasadzie wybrać spośród dwóch systemów – iOS od Apple lub Android od Google (pofragmentowany na nakładki od poszczególnych producentów). To wersja dla zwykłych śmiertelników, bo istnieje jeszcze przeogromny świat Custom ROMów, czyli wariacji systemu Android tworzonych przez entuzjastów. Dla chętnych, którzy chcą zgłębić temat polecam Forum XDA Developers, które od lat króluje w zakresie tej tematyki. Ja jednak chciałbym w tym wpisie pokazać coś wyróżniającego się z tłumu, a mianowicie mobilną wersję Ubuntu, którą zainstaluję na telefonie Google Pixel 3a XL, który już teraz jest dość leciwym sprzętem, bo jego oficjalna premiera była w maju 2019 roku. Specjalnie na potrzeby tego wpisu zakupiłem egzemplarz za 500 zł.
Zakup odpowiedniego telefona
Lista urządzeń wspierających Ubuntu Touch w momencie pisania tego wpisu składa się z 55 pozycji, więc nie jest tak krótka jakby się mogło wydawać. Tak jak napisałem we wstępie ja postawiłem na Pixela 3a XL. I to właśnie dla tego modelu oraz dla jego mniejszej wersji Pixel 3a (bez XL w nazwie) będę opisywał całą procedurę.
Jeżeli chodzi o zakup to istotne jest, aby był to model posiadający możliwość odblokowania bootloadera (czyli takiego telefonowego programu rozruchowego). Nie wszystkie Pixele mają taką możliwość i nie da się tego ustalić np. po numerze seryjnym. Niestety trzeba to sprawdzić indywidualnie dla wszystkich telefonu. W przypadku zakupu online musimy o to poprosić sprzedawcę, a przy zakupie bezpośrednim zrobić to samemu po uzyskaniu zezwolenia sprzedawcy.
Jak to sprawdzić? Będę to opisywał dla angielskiej wersji językowej systemu, bo tak będzie mi najłatwiej. Wszystkie wskazane nazwy mają prawdopodobnie swoje odpowiedniki po polsku, ale jakby ktoś miał problem z ich znalezieniem to proponuję zmienić język systemu na angielski. Wracając do meritum… Należy wejść do ustawień telefonu, następnie About phone, odnaleźć na samym dole Build number i naciskać to tak długo aż wyświetli się napis You are now a developer!. W taki sposób odblokowuje się dodatkowe (ukryte dla standardowego użytkownika) ustawienia dla deweloperów.
Teraz wracamy do głównego okna ustawień i przechodzimy do System i dalej Developer options, które właśnie odblokowaliśmy. Potrzebujemy tutaj włączyć dwie opcje:
- OEM unlocking (Allow the bootloader to be unlocked) – tak jak mówi podpowiedź, jest to opcja, która umożliwia odblokowanie bootloadera tego urządzenia,
- USB debugging (Debug mode when USB is connected) – tryb debugowania urządzenia poprzez USB, a po ludzku jest to opcja umożliwiająca manipulowanie w urządzeniu poprzez USB, tj. przez komputer, do którego później podłączymy Pixela i wgramy w ten sposób nowy system oraz wszystkie potrzebne do tego składniki.
Telefony, które mają zablokowaną możliwość odblokowania bootloadera będą miały tą pierwszą opcję (OEM unlocking) wyszarzoną, tj. niedostępną. Po tym właśnie można rozpoznać telefon, którego nie należy kupować.
W przypadku wyskoczenia komunikatu dotyczącego tego czy zezwalamy na debugowanie USB (Allow USB debugging?) zaznaczamy opcję Always allow from this computer (z ang. Zawsze pozwalaj z tego komputera) i klikamy Allow (z ang. Zezwól).
Przed rozpoczęciem dalszych czynności proponuję zrobić dwie rzeczy:
- zrestartować telefon,
- naładować go do pełna.
W trakcie ładowania weźmiemy się za odpowiednie przygotowanie komputera.
Przygotowanie komputera do odblokowania bootloadera
Przed rozpoczęciem procesu odblokowywania bootloadera i flashowania (wgrywania) nowego systemu musimy przygotować komputer przy pomocy którego będziemy robić te czynności. Ja postawiłem na mój laptop do zadań specjalnych (pancerny Getac S410) działający na Windowsie, jednakże nic nie stoi na przeszkodzie, aby zrobić to samo na komputerze z Linuxem, a choćby macOS. Po prostu niektóre kroki mogą się delikatnie różnic, ale ogólnie chodzi o to samo i uzyska się ten sam efekt. Dobrze jest też zaopatrzyć się w sprawdzony i przede wszystkim działający kabel USB, który pozwala na transfer danych, a nie tylko na ładowanie (tak, są takie na rynku jakby ktoś nie miał styczności). Do tego tak ryzykowane działania jak wgrywanie systemu do innego urządzenia zaleca się robić na laptopie. Dlaczego? To proste. W przypadku zaniku prądu laptop przeskoczy na zasilanie bateryjne zamiast je utracić i uceglić nam telefon.
Na komputerze z Windows musimy w zasadzie wykonać cztery czynności:
- zainstalować (jeżeli nie mamy) Microsoft Visual C++, które można pobrać ze strony Microsoftu (to wersja 2015, ale gdzieś przeczytałem, iż zaleca się też instalację 2012 dostępnej tutaj),
- zainstalować Minimal ADB and Fastboot, do którego zawsze aktualny link znajduje się w tym wątku na forum XDA Developers,
- zainstalować instalator od UBports, który jest dostępny pod tym linkiem,
- zainstalować sterownik Google USB Driver dostępny pod tym linkiem.
O ile krok 1-3 nie powinny dla nikogo stanowić problemu tak chciałbym się pochylić na moment nad czynnością wskazaną w punkcie 4. Pod podanym linkiem dostępna jest paczka .ZIP (archiwum), która należy rozpakować w dowolnym miejscu. Następnie trzeba podłączyć telefon do komputera, na telefonie otworzyć Centrum powiadomień (ruch palcem od górnej krawędzi urządzenia w dół), znaleźć opcję Charging this device via USB (Tap for more options) i nacisnąć na nią. To ustawienia USB Preferences, które pozwalają zmienić to w jaki sposób telefon ma komunikować się z komputerem. Domyślnie zaznaczoną opcją jest pozwolenie jedynie na ładowanie telefonu bez wymiany danych (No data transfer) my jednak chcemy zmienić to na (Use USB for) File transfer / Android Auto. W ten sposób pozwalamy na transfer danych pomiędzy obydwoma urządzeniami, a telefon pojawi się na naszym komputerze jako dysk zewnętrzny.
Na komputerze przechodzimy do Menu Start i następnie Menedżer urządzeń (Device Manager). Zostanie wyświetlona lista wszystkich urządzeń znajdujących się w naszym komputerze lub do niego podłączonych. o ile nie instalowaliśmy wcześniej sterownika Google USB Driver to na tej liście powinniśmy mieć jedną pozycję, której ikona będzie miała znak żółtego trójkąta z wykrzyknikiem i być podpisana Android, Pixel 3a lub coś w tym stylu. Gdy to zobaczysz na pewno będziesz wiedział/a o co chodzi. Gwoli doprecyzowania będzie to prawdopodobnie w sekcji Inne urządzenia (Other devices). Klikamy prawym przyciskiem myszy na to urządzenie i z menu kontekstowego wybieramy Aktualizuj sterownik (Update driver). Zostanie odpalone okno, w którym wybieramy drugą opcję, czyli Przeglądaj mój komputer w poszukiwaniu sterowników (Browse my computer for drivers). Następnie wybieramy Pozwól mi wybrać z listy dostępnych sterowników na moim komputerze (Let me pick from a list of available drivers on my computer), przycisk Dalej (Next) i gdy już jesteśmy w oknie proszącym Wybierz sterownik, który chcesz zainstalować dla tego sprzętu (Select the device driver you want to install for this hardware) korzystamy z przycisku Z dysku… (Have Disk…). Wyskoczy kolejne okienko, w którym musimy odnaleźć przycisk Przeglądaj… (Browse…), naciskamy go i wskazujemy plik android_winsub.inf, który znajduje się z pobranej i wypakowanej paczce Google USB Driver. Dalej już tylko przeklikujemy Otwórz (Open), OK, Dalej (Next), Tak (Yes), Instaluj (Install) i po pomyślnej instalacji kończymy przyciskiem Zamknij (Close). Po tym wszystkim urządzenie, które wcześniej miało żółty trójkąt z wykrzyknikiem już nie powinno go mieć i zostać rozpoznane jako normalne urządzenie z zainstalowanymi poprawnymi sterownikami.
Jeżeli ktoś potrzebuje wizualnego przewodnika po powyższych czynnościach to polecam filmik tego Pana (chyba) Hindusa.
Odblokowanie bootloadera
Pixela zostawiamy dalej podłączonego do komputera. Na komputerze uruchamiamy wcześniej zainstalowany program Minimal ADB and Fastboot, co powinno skutkować otworzeniem okna wiersza poleceń (windowsowy terminal). Zaczynamy od sprawdzenia czy nasz telefon jest prawidłowo podłączony, skonfigurowany i widoczny dla narzędzia do odblokowania bootloadera:
adb devicesPrzy pierwszym wpisaniu tego polecenia pod List of devices attached może nam zostać wyświetlony komunikat z identyfikatorem urządzenia (numer seryjny) i obok niego frazą unauthorized, co oznacza, iż musimy jeszcze raz wyrazić na telefonie zgodę na debugowanie przez USB. Wykonujemy powyższe polecenie jeszcze raz i tym razem powinniśmy już zobaczyć frazę device obok identyfikatora urządzenia. To potwierdza, iż wszystko do tego momentu wykonaliśmy prawidłowo.
Następnym poleceniem wywołamy przejście telefonu w tryb Bootloadera:
adb reboot bootloaderNa telefonie powinno się pojawić coś podobnego do widocznego na poniższym zdjęciu:
Jak widać weszliśmy do Bootloadera, ale Device state widnieje jako locked. Naszym celem jest zmiana tego stanu na unlocked. Wracamy do wiersza poleceń na komputerze i tym razem wpisujemy:
fastboot flashing unlockPrzechodzimy na telefon, gdzie musimy potwierdzić, iż bootloader ma zostać odblokowany. W tym celu naciskamy jednokrotnie dowolny z przycisków głośności (w tym trybie służą one do przełączania opcji, które chcemy wybrać), tak aby wybrana została opcja Unlock the bootloader, i potwierdzamy wybór przyciskiem Power.
Po krótkiej chwili wrócimy z powrotem do głównego menu bootloadera, gdzie powinniśmy już zobaczyć Device state: unlocked. Sukces! Bootloader odblokowany, urządzenie stoi przed nami otworem.
Na koniec dobrze pozostało prawidłowo zakończyć działanie narzędzia Minimal ADB and Fastboot wydając polecenie:
adb kill-serveri następnie zamknąć okno wiersza poleceń.
Przywrócenie wymaganej wersji systemu Android
W dokumentacji UBports można przeczytać, iż w celu wgrania Ubuntu Touch konieczne jest cofnięcie wersji systemu operacyjnego Android, działającego na naszym urządzeniu, do konkretnego wydania. W momencie pisania tego poradnika jest to wydanie o oznaczeniu PQ3B.190801.002. Piszę o tym, gdyż nie wiem ile czasu minęło od napisania tego poradnika do momentu kiedy z niego korzystasz i możliwe jest, iż nowsze wersje Ubuntu Touch będą wymagały innej wersji Androida do instalacji. Dlatego zawsze polecam wejść tutaj i sprawdzić tę informację na chwilę przed podjęciem dalszych działań. Istotne są też tak zwane code name’y (z ang. nazwy kodowe), które dla wszystkich modelu Pixela są inne:
- dla Google Pixela 3a jest to SARGO,
- dla Google Pixela 3a XL jest to BONITO.
Jest to istotne później, a znajomość tych nazw pozwoli uniknąć pomylenia obrazów systemów i wzięcia obrazu dla niewłaściwego modelu, co w zasadzie może w najgorszym wypadku uceglić całkowicie telefon. Ja będę operował na Bonito, bo mam Pixela 3a XL, ale te same kroki można wykonać dla Pixela 3a korzystając z obrazu podpisanego Sargo.
Flashowanie (wgrywanie) systemu na urządzenia Pixel dokonuje się przy użyciu przeglądarki Chrome. Cóż… Telefon od Google, więc zrobili tak, aby ich przeglądarka była niezbędna. Sprytne, prawda? Może i tak, ale my jesteśmy bardziej przebiegli, bo może kilka osób wie, ale tak naprawdę nie potrzeba konkretnie przeglądarki Chrome, a dowolną działającą na silniku Chromium, czyli możemy równie dobrze użyć przeglądarki Microsoft Edge! Do tego użyjemy jej, aby zrobić krok do pozbycia się z telefonu systemu od Google, więc totalnie ucieramy nosa tejże korporacji
Odpalamy przeglądarkę Microsoft Edge, wchodzimy na stronę https://developers.google.com/android/images?hl=pl, zjeżdżamy na sam dół, gdzie widnieje niebieski przycisk Potwierdzam przy Znam i akceptuję powyższe warunki korzystania z usługi, naciskamy go. Zostaniemy przeniesieni do listy obrazów fabrycznych dla telefonów Nexus oraz Pixel. Tak jak wcześniej już wspomniałem znajdujemy na niej wydanie o oznaczeniu PQ3B.190801.002, uważając przy tym, aby był to obraz dedykowany do naszego urządzenia.
Po odnalezieniu odpowiedniego obrazu naciskamy obok W formacie Flash (dziwne tłumaczenie na polski, bo w wersji angielskiej jest to po prostu Flash). Zostaniemy przeniesieni do webowego narzędzia do wgrywania systemów Android. Tym razem nie będę opisywał dokładnie przebiegu procesu, bo to co należy po kolei zrobić widać idealnie na poniższych zrzutach ekranu.
Efektem będzie przywrócenie systemu Android 9 na naszego Pixela. Telefon został także wyczyszczony, więc ponownie trzeba na nim zrobić podstawową konfigurację, gdzie proponuję pominąć większość opcji i po prostu korzystać z przycisku Skip. Nie ma choćby sensu konfiguracji Wi-Fi, bo za chwilę telefon zostanie znowu wyczyszczony po wgraniu systemu docelowego (Ubuntu Touch). Jedyne co jest istotne po podstawowym skonfigurowaniu systemu to wejść do ustawień, znowu odblokować opcje deweloperskie i sprawdzić czy debugowanie USB jest włączone. o ile nie jest to oczywiście je włączamy i zgadzamy się na debugowanie USB z naszego laptopa (tak jak opisałem wcześniej).
Flashowanie Ubuntu Touch
Ubuntu Touch wgramy wcześniej zainstalowanym instalatorem UBports. Tak jak wcześniej cały proces pokazałem na zrzutach ekranu poniżej.
Ubuntu Touch – pierwsze wrażenia
Inicjatywa jaką jest projekt Ubuntu Touch jest bardzo, ale to bardzo, istotna, warta szacunku i godna wsparcia. Jest to ewidentnie próba dania ludziom wolności w zakresie wyboru systemu operacyjnego, który nie będzie ich szpiegował na każdym kroku. Do tego jest otwarty i kompletnie darmowy. System jest całkiem nieźle dopasowany do urządzeń wielkości na jakich ma być uruchomiony i widać, iż autorzy w pierwszej kolejności postawili na to, aby działały wszystkie podstawowe funkcjonalności telefonu. Mam tutaj działające takie podstawy jak Wi-Fi, czy transmisja danych komórkowych, ale także takie szczegóły jak czytnik linii papilarnych.
Jednakże wyżej wymienione podstawy to nie wszystko. To co najgorzej boli, gdy używa się Ubuntu Touch, to absolutny brak aplikacji. Niestety w „sklepie” z aplikacjami jest dramatycznie mało pozycji, co widać na poniższych zrzutach ekranu. Pobawiłem się w aptekarza i policzyłem wszystkie z nich – na moment pisania tego wpisu są to 184 pozycje…
Czy Ubuntu Touch zainstalowane na telefonie Google Pixel 3a XL może być urządzeniem do codziennego użytku? W mojej ocenie niestety nie. Jednak jest to na pewno bardzo interesujący temat i każdemu polecam sprawdzić „z czym to się je”. Marzę, aby ten projekt został doprowadzony znacznie dalej niż to gdzie znajduje się teraz. Na pewno będę go dalej obserwował.