RemixOS, czyli Android systemem na biurko
Panowie i Panie, stanęliśmy o to w obliczu długo oczekiwanego przetasowania na rynku. Detronizacji Windowsa i Mac OS, zrzucenia ich do ról OS‑ów uruchamianych na komputerach dla profesjonalistów wykorzystywanych już tylko do tworzenia treści, zamiast ich konsumpcji. Nie bez znaczenia okazały się ceny procesorów kolosów świata x86, schizofrenii Windows 10 dominatus, niewielkiego apetytu na prąd ARM i potopu Androidowych cudaków. I wszystko to za sprawą małej rewolucji (zapożyczając z terminologii PR‑owców od WWW) responsywnych UI telefonów-komputerów.
A nie… to jednak był tylko sen. Wciąż mamy 2016 (ale kto wie jak to będzie w 2047 ). Na szczęście jednak coś ruszyło się już w temacie - Android nieśmiało wkracza na małe komputerki i to nie jak można by oczekiwać za sprawą Google, ale małej nikomu nieznanej firmy startującej na jednym z serwisów croudfoundingowych. Pomysł na taki „responsywny UI” nie jest nowy, nieudolnie i niezwykle opornie wprowadza go Microsoft w mobilnej mutacji Windows 10 (aka funkcja Continuum), Cannonical wciąż tkwi w betach swojego Ubuntu Touch, a Tizen Samsunga póki co osiadł na mieliźnie SmartTV. Firma Jide Technology wydała niedawno publiczną betę swojej wizji Androida-x86, przechrzczonego na RemixOS i jest pierwszą sensowną próbą zrównania obu światów desktopu i mobile, tak przecież różnych w kwestii ergonomii. Przyjrzyjmy się mu bliżej.
LiveUSB
Twórcy tej egzotyki nie umożliwiają instalacji na dysku twardym (brak instalatora) co oczywiście nie oznacza braku takiej możliwości. Domyślnie jest to dystrybucja typu LiveCD/USB, czyli taka którą można pobawić się bez instalowania czegokolwiek i ewentualnie zapisać zmiany.
RemixOS udostępniany jest w postaci obrazu *.iso który można nagrać na płytę lub na pamięć masową na USB (karta, pendrive, zewnętrzny dysk twardy). W paczce można znaleźć instrukcję i stosowny program, który z zasady ograniczonego zaufania nie uruchomiłem. Zamiast tego wypaliłem ISO za pomocą Rufusa, do którego zaufanie mam już nieco większe (na Linuksie można użyć starego, poczciwego dd klepiąc poematy w terminalu).
Po uruchomieniu i wybraniu opcji Resident (czyli z zapisywaniem zmian, w przeciwieństwie do Guest), RemixOS sprawdzi prędkość nośnika. Autorzy zalecają USB 3.0 i 8GB wolnego miejsca. Na szczęście to tylko psychologia, a rzeczywiste miejsce wymagane to waga obrazu (w buildzie który testowałem 2.2GB, w nowszych skompresowane SquashFS do ~700MB) plus 4GB. Skąd te dodatkowe cztery? Na plik "data.img", który jak zresztą sama nazwa sugeruje, będzie później za każdym razem montowany jako odpowiednik partycji "/Data". Dlaczego tak dziwacznie? Zapewne ze względu na ograniczenia systemu plików FAT32 (co do maksymalnej wielkości pliku i systemu przydzielania uprawnień obecnych w EXT).
Jeśli chciałbyś montować „data” jako fizyczną partycję to potrzebujesz linuksowego boot managera (np. GRUB2) i partycję z systemem plików np. EXT4. Jeśli posiadasz wyłącznie Windowsa, możesz przemordować się z BURGiem. Osobiście testowałem na notebooku Lenovo IdeaPad S210 Touch, który posiada dotykowy ekran i już zainstalowanego Linuksa.
Na początku musisz zdecydować gdzie chcesz umieścić pliki wydłubane z obrazu płyty, czyli: "initrd.img", "install.img", "kernel", "ramdisk.img" i "system.img" (pozostałe są zbędne). W moim przypadku jest to folder "RemixOS" na partycji z "/home" (sdb1). W tym miejscu stworzyłem także folder "data", który będzie służył za Androidową "/Data".
Jeśli posiadasz zainstalowaną dowolną dystrybucję Linuksa z GRUB2 to najlepiej jak będziesz edytował plik "/etc/grub.d/40_custom" (nie zapomnij potem aktualizować skryptu via "sudo grub-update"). Jeśli posiadasz np. Windowsa i do tego sam GRUB2 lub BURG, edytuj od razu "grub.cfg" lub "burg.cfg".
menuentry "RemixOS" --class android_x86 { insmod part_gpt search --file --no-floppy --set=root /RemixOS/system.img linux /RemixOS/kernel root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive quiet SRC=/RemixOS DATA=/home/RemixOS/data initrd /RemixOS/initrd.img }
W ten sposób zabootujesz system z dysku twardego, a jednocześnie będziesz miał (z poziomu Linuksa) dostęp do zapisanych danych przez RemixOS.
Jeśli chcesz bootować system z dysku twardego, ale zapisywać zmiany do obrazu (czyli tak jak wersja LiveUSB), "DATA=" zostaw puste i dodaj "CREATE_DATA_IMG=1".
menuentry "RemixOS" --class android_x86 { insmod part_gpt search --file --no-floppy --set=root /RemixOS/system.img linux /RemixOS/kernel root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive SRC=/RemixOS DATA= CREATE_DATA_IMG=1 initrd /RemixOS/initrd.img }
"system.img", w nowszych wersjach został zastąpiony przez "system.sfs" i taką też nazwę należy przyjąć w powyższym skrypcie. Ja jednak wolę nieskompresowany (czyli *.img) ponieważ szybciej się wczytuje i taki też polecam.
Korzeń
Niby wgrany jest SU, ale o dziwo nie daje dostępu do wszystkich zasobów systemu. Z jego poziomu, niewiele można zrobić dlatego należy albo zamontować "system.img" na „normalnym Linuksie” i wgrać wszystkie pliki dające „dostęp do roota” albo posłużyć się gotową aplikacją dla Windows o wymownej nazwie RMXtools. Program ten potrafi przepakować pliki "system.sfs|system.img" i "data.img", a do tego „zrootować”.
A więc na samym początku wypakuj z obrazu płyty lub przekopiuj z pendrive'a plik "system.img". Uruchom program, wczytaj *.img i kliknij w "Extract". RMXtools wypakuje jego zawartość do folderu "system_" (nie zmieniaj tej nazwy).
W zależności od tego dla jakiej rodziny procesorów przeznaczony jest RemixOS, kliknij w przycisk "Root-32/64". Powinien pojawić się komunikat "Root Files Installed Successfully".
W tym miejscu możesz także wrzucić od razu swoje aplikacje do "/system_/app/<nazwa aplikacji>/" (przykład niżej) lub wyrzucić niechciane systemowe.
Na koniec spakuj wszystko z powrotem do pliku "system.img" klikając w przycisk "Repack".
Po chwili powinien pojawić się plik o nazwie "RePacked.img", który zmień na "system.img" i zastąp nim oryginalny.
W nowszych wersjach niż ta którą testowałem, "system.img" spakowany jest dodatkowo do "system.sfs". W takim przypadku po prostu pierwszą czynnością będzie kliknięcie w "Unpack" i wskazanie *.sfs. Program wypakuje *.img do folderu "UnpackedSFS". Reszta jest bez zmian. Analogicznie ostatnią czynnością będzie wskazanie przerobionego "system.img" i kliknięcie w "Pack".
Zwiady
Po uruchomieniu systemu i przebiciu się przez wstępną, uproszczoną konfigurację (języka polskiego nie ma na liście, ale jest w ustawieniach systemu – niestety niepełny, zaś polskiej klawiatury po zainstalowaniu nie widać w opcjach do wybrania), użytkownika wita znany z telefonów Android, w paskudnej stylistyce Material Design. Gdzie jest zatem ta (r)ewolucja? W opakowaniu okien dekoracjami: minimalizuj (czyli zamróź), maksymalizuj i zamknij. De facto całym Launcherem i dedykowanymi aplikacjami.
Pulpit
Pierwsze moje skojarzenie to nieślubne dziecko Windows 10 z Elementary OS. ;) Z pierwszego zapożyczono niespójną stylistykę (kolorowe, ubogie w detale, płaskie ikony, do tego brak przezroczystości, kontrastowa kolorystyka, pasek śmiertelnie czarny, zaś belki i dash białe). Z drugiego – delikatnie mówiąc – prostotę.
W lewym rogu znajduje się przycisk, który wywołuje menu ze wszystkimi aplikacjami. Niestety w testowanej wersji niemożna żadnej ukryć, ani nie są w żaden sposób kategoryzowane. Na domiar złego, w ogóle się nie powiększa adekwatnie do ilości zainstalowanych programów. Pojawia się za to... suwak.
Każdą aplikację można przypiąć na stałe do paska (pod ppm, ewentualnie przytrzymując chwilę palcem na ikonie) lub przeciągając na pulpit utworzyć do niej aktywator (skrót). Wszystkie oprócz systemowych, można także w ten sposób usuwać.
Menu - lub jak kto woli dash - można przeszukiwać, sortować programy (po nazwie, dacie i częstości używania). Tutaj także wyłącza się komputer, usypia i restartuje.
Drugi w kolejności przycisk na pasku odpowiada strzałce w telefonie (w nowszych: trójkątowi, który znajduje się także w dekoracji okien). Służy do cofania się w menu, wychodzenia z aplikacji etc. Trzeci zamraża wszystkie programy.
Dalej osadzane są ikony uruchomionych (lub tylko przypiętych programów) skąd można je np. zamykać. Zamrożone oznaczane są krótką kreską, rozwinięte długą, nieuruchomione a tylko przypięte nie mają żadnej.
W zasobniku znajdziesz „prędkościomierz”, który pokazuje zajętość RAM wyrażoną zarówno procentowo jak i w MB (niestety brakuje informacji z ilu). Klikając w „Memory cleanup”, usuniesz wszystkie zamrożone programy. Dalej jest Bluetooth i suwak głośności. Wszystkie trzy można zwinąć klikając w strzałkę.
W kolejnej grupie znajdują się „klawiatura” gdzie można szybko przełączyć się na inną, Wi‑Fi i prosty kalendarz z datą i godziną (można szybko przeskakiwać pomiędzy miesiącami – tego mi brakuje na Windows i Linuksie).
[join][img=tray_calnd]
W wersjach sprzed lutego 2016, brakowało ikonki informującej o stanie naładowania baterii, ba w ogóle w systemie takiej funkcji. Na szczęście już jest i w moim przypadku działa poprawnie.
Ostatnia ikona to centrum powiadomień, w którym pojawiają się wszystkie komunikaty systemu i używanych programów. Tak jak na Androidzie można jednym przyciskiem usunąć wszystkie lub przesunięciem myszką/palcem tylko wybrane. Na samym dole znajdują się ikony:
- Dzwonek „do not disturb”. Prawdopodobnie używany przez komunikatory (nie testowałem).
- Włączenie lub wyłączenie automatycznego obracania ekranu.
- Włączenie lub wyłączenie automatycznego ukrywania paska.
- Skrót do wykonywania zrzutów ekranu - choć łatwiej i szybciej jest wcisnąć Prt Scr na klawiaturze.
- Skrót do ustawień systemu.
Okna
Wszystkie programy „zamykane” są w oknie – tak jak na każdym innym biurkowym OS‑ie. Problem jednak w tym, że aplikacje nie są i nigdy nie będą do tego dostosowane. W praktyce wyglądają dobrze albo w pionowym prostokącie, albo zmaksymalizowane albo na całym ekranie (domyślny widok można zdefiniować w opcjach dla każdej z osobna). Kiedy użytkownik postanowi zmienić rozmiar okna, większość GUI albo na to nie zareaguje albo zacznie glitchować. Dobrym przykładem jest Calculator++. Rozszerzony na cały ekran wygląda tak jak na telefonie w poziomie, gdy jednak zmieni się rozmiar na niestandardowy (co zresztą działa w testowanej wersji dość ociężale), nie są wyświetlane wszystkie zakładki, a cyferblat ma poucinane grafiki.
Oprogramowanie
Czy wszystkie aplikacje działają? Tylko te, które całe napisane są w kodzie zarządzanym. Ale tak jak na „zwykłym Androidzie”, tak i tutaj wiele zależy od wsparcia karty graficznej i bliżej nieokreślonych rzeczy. ;) Na przykład 2048 Plus wyświetla się od połowy w górę, SketchBookX nie pokazuje w ogóle obszaru do malowania, a Papyrus pozwala malować wyłącznie palcem, ignorując podłączoną myszkę.
Aplikacje systemowe, czyli domyślne dołączone do systemu są bardzo proste i ubogie (z wyjątkiem MX Player). Ale taka jest filozofia tego OS‑u i jeśli komuś to nie odpowiada to zawsze możne dograć własne tak jak na każdym Androidzie (mając nadzieję, że będą u niego poprawnie działać – również jak na każdym Androidzie ^^).
Zacznę od managera plików, czyli jednym z kluczowych programów w każdym systemie operacyjnym. Po jego uruchomieniu użytkownika wita "My Remix", który jest po prostu katalogiem głównym partycji "/Data" (fizycznie "/data/media/0/"). Znajdują się tam przyporządkowane foldery mediom, dokumentom, śmietnikowi i pulpitowi (podpięte także pod "Bookmarks") plus cały bałagan jaki robią programy innych deweloperów...
Elementy znajdujące się w folderach można sortować względem nazwy, rozmiaru, typu i daty modyfikacji. Z jakiegoś tajemniczego powodu, katalogi wyświetlane są za plikami i nie można tego w żaden sposób zmienić. Widok może być albo w formie kafelkowej dużych ikon albo szczegółowy. Brakuje najprzydatniejszego, czyli kompaktowego/listy. W widoku szczegółowym odstępy pomiędzy elementami są zbyt duże, a do tego ikony „zgniecione”. Z kolei w widoku kafelkowym długie nazwy są ucinane.
Nawigacja po drzewie też jest dziwna. Deweloperzy RemixOS zdecydowali się umieścić „pasek adresowy” na samym dole okna i nie da się wprowadzać własnych ścieżek (w zasadzie to nie jest nawet nawigacja po folderach, a po ich abstraktach). Niektórych nie da się usunąć (np. "Alarms"), a w trybie dotyku aby zaznaczyć kilka pozycji, trzeba najpierw dotknąć ikony z ptaszkiem. Mało tego, z poziomu tego programu w ogóle nie można nawet podejrzeć zawartości partycji systemowej.
Czy można podłączyć pamięć masową (np. pendrive, czytnik kart itp.)? Można, jest automatycznie wykrywana (a przynajmniej FAT32 i NTFS na MBR – innych nie sprawdzałem) i montowana. Tak jak na Windows czy Linux, pojawia się po lewej w panelu pod nazwą taką jak etykieta partycji. Aby jednak nie było za kolorowo, wszystkie takie pamięci traktowane są jak "/ext_card", przez co wszystkie programy które używają tego punktu montowania, zapiszą tam swoje ustawienia. Sam Remix z automatu stworzy foldery: ".android_secure", ".Trash" (czyli śmietnik) i "LOST.DIR".
A jak wyglądają ustawienia? Zupełnie nijak. :) Można jedynie włączyć pokazywanie ukrywanych plików i folderów (czyli tych, których nazwa zaczyna się kropką) i wyłączyć pokazywanie wybranych „zakładek”.
W tym menu wyświetlane są także bardzo ogólne informacje o systemie - na domiar złego nieprawdziwe. Błędnie zlicza wagę typów plików i pojemność partycji. W tym konkretnym przypadku "/System" jest zamontowany z obrazu (2.2GB), zaś "/Data" to tak naprawdę "/home/RemixOS/data/", którego zawartość Linux oblicza na ~200MB, a gdzie ilość wolnego na całym home (czyli sdb1) jest ~460GB.
Następna aplikacja nad którą się „powyżywam” to Galeria. Obsługuje pliki graficzne i z jakiegoś powodu muzyczne.
W przypadku zdjęć brakuje widoku z wszystkimi plikami, folderami i ich nazwami etc. Co również jest karygodne, nie można wybranego ustawić na tło pulpitu, ani nawet przesłać na telefon przez Bluetooth. Jedyne co ten program potrafi to wyświetlić aktualnie otworzony plik graficzny z poziomu managera plików i ruchem myszki/palca w lewo bądź prawo przechodzić na kolejne… Dlatego zalecam od razu zastąpić go QuickPic.
Podobnie jest z muzyką i filmami, ale tutaj od razu można wybrać preinstalowany MX Player.
Google Play
Na chwilę obecną nie ma możliwości wgrania aplikacji i usług Google – ewentualnie ja tego nie potrafię. RemixOS w testowanej wersji bazuje na Androidzie 5.1.1. Pobrałem "gapps-5.1-x86-2015-07-17-15-08", zastąpiłem zawartość "common" i "arch" na partycji systemowej, ale tylko kilka aplikacji Google pojawiło się na liście, niestety bez sklepu i bez usług (z ZIP niemożna zainstalować, ponieważ nie ma recovery takiego jak w telefonach i tabletach ;)).
Ktoś napisał program GMSInstaller, który wszyscy polecają i opisują w poradnikach, a który ściąga potrzebne pliki (nie wiadomo skąd, nie chciało mi się sprawdzać) i nie wiadomo do końca co robi (też nie chciało mi się tego sprawdzać). Z komentarzy na YT, różnych serwisach i tematu autora programu, wynika że nie jest to skuteczne narzędzie. Jeśli nie boisz się utraty swojego konta Google lub nie masz zamiaru trzymać żadnych prywatnych danych na tym systemie, możesz zaryzykować...
Robale
Oprócz przy okazji wymienionych wyżej w tekście błędów i mankamentów, znalazłem jeszcze sporo innych:
- niespójna kolorystyka GUI - ikony płaskie, mdłe, pasek niemal czarny, a wszystkie menu białe z niebieskim akcentem
- lekko rozmyte czcionki
- niektóre okna da się maksymalizować, inne nie (bez względu na ustawienia w opcjach dotyczących aplikacji)
- nie można usunąć śmietnika z pulpitu
- nie działa dodawanie widget-ów na pulpit
- brak windowsowych skrótów klawiaturowych pod Fn
- brak interoperacyjności (np. kopiując dane z pędraka, nie można nic innego robić w managerze plików)
- brak możliwości ustawienia tapety w domyślnym managerze plików pod ppm. Można to zrobić jedynie za pomocą zewnętrznych programów
- manager plików nie pyta o nadpisanie pliku/folderu tylko automatycznie zmienia nazwę nowemu
- brak możliwości ukrywania ikon w menu
- brak możliwości usuwania aplikacji systemowych (z poziomu ustawień systemu
- instalując programy (można z po za sklepu, wystarczy dwukliknąć w *.apk), dodają się skróty zarówno do dasha jak i pulpitu (dla niektórych to akurat może być zaleta)
- system wykrywa podłączenie słuchawek, ale dźwięk jest znacznie cichszy niż na głośnikach
Bezpieczeństwo
Czy jest to system bezpieczny? Z racji popularności Androida nie jest - lub może inaczej - zależy to od tego czy twórcy RemixOS będą aktualizować swojego forka i od tego czy użytkownik sam nie wgra sobie złośliwego oprogramowania z chomików lub innych e‑sklepów (włączając w to także Google Play). Pamiętaj że jest to Android-x86 w przebraniu, czyli port z ARM na x86 Androida jakiego znasz z telefonów i tabletów. Nie montuje systemów plików wewnętrznej pamięci masowej, a zmiany zapisywane są do obrazów partycji (o ile nie zechcesz inaczej), więc trudno tutaj nawet o przekazanie ładunku innemu OS‑owi (chyba, że via wykrywany przez wszystkie programy antywirusowe autorun dla Windows lub przez infekcję UEFI (ale to temat na zupełnie inny wpis i takich zagrożeń na Androidzie nie ma i pewnie jeszcze długo nie będzie)).
Obowiązkowa jest instalacja programu do kontroli reguł ogniomurka (polecam AFWall+ ), aby móc zarządzać ruchem wychodzącym i przychodzącym. Dobrze byłoby też kontrolować uprawnienia aplikacji, aby móc decydować do jakich zasobów będzie mieć dostęp. W tej wersji pozostaje tylko Xposed Framework z XPrivacy, ale tych nie testowałem (więc mogą nie działać zgodnie z oczekiwaniami). Pamiętaj też aby nie dawać zwiększonych uprawnień aplikacjom, które (posługując się własną logiką i wiedzą) ich nie potrzebują.
Podsumowanie
W czym lepszy jest RemixOS od Androida-x86? Jedynie w dedykowanym launcherze, o którym rozpisałem się kilka akapitów wcześniej. Na protoplaście nie da się używać systemu na notebookach, ponieważ te zwykle nie posiadają ekranu dotykowego (lub bez wielodotyku) i nie ma możliwości łatwej zmiany orientacji ekranu, a to jest już ekstremalnie uciążliwe. I tak jak Androida-x86 wgrałem kiedyś dla zabawy i jeszcze tego samego wieczora wyrzuciłem, tak RemixOS zagości u mnie na dłużej właśnie dlatego, że jest to pierwszy Android jakiego da się używać na desktopie.
Linux czy RemixOS? Nawet dla zwykłego użytkownika lepszy będzie Linux. Choćby tylko ze względu na wsparcie osprzętu (drukarki, skanery itd.) i na oprogramowanie, które potrafi coś więcej niż wyświetlić trzy opcje na krzyż. Po za tym to wciąż stadium alpha i nie zaleca się powierzania takiemu systemowi żadnych istotnych danych. Szczerze powiedziawszy nie wiem komu polecić ten wynalazek. Nawet dla ZU okaże się za ubogi. Może dla dziecka? Na pewno dla nerdów do zabawy na dwa wieczory. W końcu to co wyśniło mi się na początku wpisu, zaczyna się powoli spełniać. Dziś stawiane są pierwsze kroki, a za kilka lat - kto wie - może będzie to już norma.