Android mi ni všeč

Objavljeno: 28.12.2017 | Avtor: Matej Huš | Kategorija: Mobilno | Revija: Januar 2018

Četudi smo kupili telefon z Googlovim operacijskim sistemom Android, nismo obsojeni na tovarniško različico. Z malo truda ga lahko povsem legalno docela predrugačimo. Neuradnih različic operacijskih sistemov kar mrgoli, pri izboru pa smo odvisni le od priljubljenosti svojega telefona med razvijalci. Razlogi za to početje so mnogoteri: uradna različica ne ponuja dovolj, nastlana je s kramo in često zastarela.

Prii mobilnih telefonih imata Google in Apple diametralno drugačen pristop. Apple telefone oblikuje sam in natančno po njegovih specifikacijah jih izdelujejo na Kitajskem, Google pa pušča izdelovalcem proste roke. Na voljo so referenčni Googlovi telefoni (Nexus, Pixel), a veliko uporabnikov ima androidni telefon, ki ga je oblikoval in opremil eden iz množice izdelovalcev. Samsung, LG, HTC in še več kot tisoč drugih izdelovalcev si vsak nekoliko po svoje zamisli, kakšen naj bi bil idealen telefon.

Sestavni del te brozge je tudi operacijski sistem. Applovi iPhoni imajo eno različico operacijskega sistema iOS, ki se sproti posodablja na najnovejšo različico, dokler je naprava podprta. Najstarejši še podprt je iPhone 5S iz leta 2013, ki ima najnovejši iOS 11.2. Z Androidom je drugače. Ko Google izda novo različico operacijskega sistema, jo morajo izdelovalci telefonov posebej prilagoditi svojim modelom. To traja več mesecev, precej kmalu pa tudi obupajo in nehajo podpirati starejše telefone.

Samsungov Galaxy S7 je izšel marca 2016 z Androidom 6.0. Nadgradnjo na Android 7 je dobil šele 143 dni po izidu te različice. Galaxy S8 je izšel aprila 2017, a bo Android 8 dobil šele januarja ali februarja, pa čeprav je Android 8 izšel že avgusta. To velja za najdražje modele, pri cenejših se čaka še dlje, če se sploh dočaka. Podobno velja tudi za druge izdelovalce.

Oprto ali zaprto

Glavna razlika med Applom in Googlom pa je v filozofiji, kaj je dovoljeno. Android je odprtokoden in z malo truda lahko na telefonu spremenimo vse. Google daje možnost izdelovalcem telefonov in končnim uporabnikom, da si operacijski sistem predrugačijo po mili volji. Jedro platforme je z imenom AOSP (Android Open Source Project) dostopno vsakomur, da z njim počne karkoli že. Aplikacije, ki na njem tečejo, pa seveda večinoma niso. Applov iOS je zaprt in uporabniku ne daje niti administratorskega dostopa, ki si ga je treba prigoljufati z izkoriščanjem ranljivosti (jailbreak).

Brez Googlovih programov

Neuradni ROMi zaradi licenčnih omejitev ne vsebujejo Google Play in drugih Googlovih aplikacij, denimo Gmaila ali zemljevida Maps. To rešimo z namestitvijo GApps (projekt OpenGApps), ki ni nič drugega kot v samostojen komplet zapakirane Googlove aplikacije. Enake so kot izvirne, torej imajo tudi vse tiste za zasebnost problematične funkcionalnosti, ki jih dobimo na telefonu ob nakupu. Brez Google Play Services pa je telefon zgolj pogojno uporaben.

K sreči lahko do Googlove tržnice in povezanih storitev pridemo tudi brez namestitve uradne aplikacije. Možnosti je več. Projekt microG temelji na ROMu LineageOS, ki pa ima integriran neuradni odprtokodni nadomestek za Google Play Services.

Yalp Store je odprtokodni nadomestek Play Store in omogoča prenos aplikacij, tudi kupljenih, z Googlove spletne tržnice. To je sicer v nasprotju s pogoji rabe, a se še nikomur ni zgodilo kaj hudega. Raccoon je program, ki nam omogoča nameščanje programov na telefone brez Play Stora prek računalnika. F-Droid pa je zanimiva spletna tržnica, ki vse programe prevede sama. Prek nje so torej dostopne le aplikacije, ki imajo odprto kodo, pri čemer nam servira različico, ki jo prevede F-Droid in ne pisec, tako da smo prepričani, da ne vsebuje kakšnih poznejših dodatkov.

Najbolj paranoični ali zavedni glede zasebnosti lahko namestijo ROM microG in omenjene aplikacije. Ker ne bodo imeli uradnih Google Play Services, morda kakšna trmasta aplikacija ne bo delovala.

Prav odprtost Androida je razlog, da ima Samsung lahko svojo inačico Androida, LG neko drugo, HTC pa tretjo. In prav to je tudi razlog, da je cel kup neuradnih različic Androida, ki jih lahko naložimo v priljubljene telefone. Te največkrat najdemo pod angleškim izrazom custom ROM.

Root

Pridobitev skrbniških pravic poznamo pod imenom rooting, saj se v Unixovih izpeljankah administratorski račun s polnimi pravicami imenuje root. V Androidu ima uporabnik privzeto običajne pravice, kar za vsakdanjo rabo telefona zadostuje. Če pa želimo globlje poseči v drobovje, denimo izbrisati kakšno tovarniško aplikacijo, namestiti program, ki posega globoko v sistemske nastavitve (npr. barva diod, nekatere ikone, delovanje tipal) ali posegati na sistemske particije (/system, /data), potrebujemo dostop do računa root. S tako odklenjenim telefonom lahko naredimo tudi popolno varnostno kopijo celotnega sistema, ki je drugače ne moremo. Za razliko od iOS pa v Androidu nameščanje aplikacij iz neuradnih virov (mimo Google Play) deluje tudi brez administratorskega dostopa.

V odklenjenem telefonu lahko enostavno vključimo skrbniške pravice (root).

Načini, kako telefon odkleniti, so odvisni od modela, zato se je najbolje obrniti na internet (www.xda-developers.com/root/). Ker je poganjanje vseh aplikacij v administratorskem načinu nevarno početje, je priporočljivo namestiti SuperSU, ki upravlja privilegije. S to aplikacijo določimo, katere aplikacije bodo imele dostop root in katere ne; velika večina ga namreč ne potrebuje, zagotovo pa ga ne bomo dali sumljivim.

Odklepa telefona izdelovalci ne prepovedujejo, niti ni nezakonito, a trdijo, da to razveljavi garancijo. Samsung je celo razvil sistem Knox, ki zazna, ali je telefon kdaj pognal nepodpisan ali odklenjen operacijski sistem. V tem primeru »pregori« e-varovalka in tega ne moremo spremeniti. V Evropi je sicer nekoliko drugače, saj zamenjava operacijskega sistema na napravi ne more biti razlog za izgubo garancije, razen če izdelovalec dokaže, da je to povzročilo okvaro.

Zaganjalnik

Za namestitev alternativnega operacijskega sistema ali pa zgolj odklep trenutnega (ne vedno) pa je treba odkleniti zaganjalnik (bootloader). To nam omogoči zapis in zagon drugih operacijskih sistemov oziroma poganjanje poljubne kode brez preverjanja podpisa. Odklep zaganjalnika izbriše vse podatke v telefonu, zato je pred početjem smiselno narediti varnostno kopijo vseh podatkov. Če vemo, da bomo nov telefon prej ali slej odklepali ali mu menjali operacijski sistem, je najenostavneje zaganjalnik odkleniti takoj po nakupu, še preden se lotimo nastavljanja in nameščanja programov.

adb je orodje za dostop do telefona na najnižji ravni.

Odklep zaganjalnika poteka prek povezave z računalnikom. Nanj moramo najprej naložiti ustrezne gonilnike za telefon in Android SDK. Ta vsebuje program adb (Android Debug Bridge), ki nam da dostop do telefona. Na telefonu moramo aktivirati razhroščevanje prek USB, to storimo s klikom na About Phone in sedmimi kliki na Build Number. To odpre kopico dodatnih nastavitev za razvijalce, med katerimi najdemo tudi USB Debugging. To telefon pripravi na upoštevanje ukazov adb iz računalnika, s katerimi bom odklenili zaganjalnik.

Mobilni telefoni se žal delijo v dve veliki skupini: na tiste, ki jim smemo odkleniti zaganjalnik, in druge. Kam sodi naš telefon, bomo najlaže ugotovili na spletni strani izdelovalca. Če sodi v prvo, bomo na njej našli navodila za odklep skupaj z obrazcem, kamor prekopiramo serijsko številko aparata, da dobimo kodo za odklep. V to skupino na primer sodijo Motorola, HTC in Googlovi telefoni. Če imamo telefon iz druge skupine, ni vse izgubljeno. V tem primeru se obrnemo na stran XDA Developers, kjer bomo z malo sreče našli navodila, kako neuradno odklenemo zaganjalnik na našem telefonu.

Namestitev alternativnega operacijskega sistema

Najprej poglejmo, kaj domuje na telefonu in kdo koga požene. Ko telefon vključimo, se najprej zažene zaganjalnik (bootloader). Ta mora biti prilagojen strojni opremi, zato ima vsak telefon svojega, visoko specializiranega. Ob normalnem zagonu zaganjalnik pokliče jedro (kernel), ki naloži celoten operacijski sistem (ROM). Vsak telefon pa ima tudi zelo primitiven operacijski sistem za obnovitev (recovery), do katerega pridemo z držanjem posebne kombinacije tipk ob zagonu (npr. gumb za manjšo glasnost). V tem načinu lahko izvedemo osnovno diagnostiko ali ponastavimo napravo, ki se ne zažene več.

Zaganjalnik (bootloader) ob normalnem zagonu pokliče jedro (kernel), to pa naloži operacijski sistem (ROM). Obnovitev (recovery) je namenjena reševanju težav.

Prvi korak pri namestitvi novega operacijskega sistema je zamenjava tovarniškega recoveryja z alternativnim. Najboljša sta TWRP in ClockWorkMod. Katerega uporabimo, niti ni tako pomembno. Dala nam bosta bistveno več funkcionalnosti, med katerimi bo tudi možnost prepisa (flash) operacijskega sistema. Ko torej z adb namestimo v telefon nov recovery, je vse nared. V internetu poiščemo želeni operacijski sistem (glej v nadaljevanju), ga z adb prekopiramo v telefon, v recoveryju pobrišemo obstoječi operacijski sistem in namestimo novega. Če želimo imeti tudi Google Play in s tem druge Googlove aplikacije ter dostop do tržnice za nameščanje novih, moramo obenem v recoveryju namestiti še paket GApps. Razlog je pravne narave, saj licence ne dovolijo, da bi jih zapakirali v alternativne operacijske sisteme.

Natančna navodila, kako namestiti posamezen ROM v posamezen model telefona, najdemo v internetu. Ob tem poudarimo, da mora biti ROM napisan natanko za naš model telefona, do črke natančno. Če nam uspe namestiti ROM druge različice, v najboljšem primeru pol stvari ne bo delovalo, precej verjetneje pa se telefon ne bo zagnal. K sreči je androidne telefone zelo težko dokončno umoriti, zato v takem primeru navadno pomaga, da ga pobrišemo in v recoveryju namestimo pravi ROM. To je tudi glavni razlog, da pri sicer široki paleti ROMov nimamo tako veliko izbire, kot se zdi. Večina jih podpira le manjše število telefonov, le najbolj priljubljeni (npr. LineageOS) pa sto in več. A ker je na tisoče različnih modelov telefonov, niso redkih primeri, ko za naš telefon alternativnega operacijskega sistema ni. Na to moramo misliti pred nakupom.

Zakaj da ali ne

Razlogov, zakaj bi želeli namestiti neuraden ROM, je vrsta. Prvi vidik je varnost oziroma nadgradnja različice. Ko izdelovalec telefona neha podpirati naš model, je edini način za pridobitev novejše različice Androida (in s tem tudi krpanje lukenj) nadgradnja na neuradni ROM. Pisec teh vrstic še vedno uporablja Moto G prve generacije iz leta 2013, ki je izšel z Androidom 4.3 in ga je uradno moč posodobiti do Androida 5.1. Z neuradnim ROMom LineageOS (naslednik CyanogenModa, glej v nadaljevanju) pa na njem teče predelan Android 7.1, v pripravi je tudi različica 8. Telefon, ki je že ob nakupu stal le kakšno tretjino najdražjih modelov, bo očitno še dolgo časa zadovoljno vibriral.

Drugi razlog je čiščenje. Zlasti nekateri kitajski izdelovalci v telefone integrirajo toliko nesnage (bloatware), ki je ne moremo odstraniti, da je telefon boleče že pogledati. Včasih si želimo zgolj odstraniti izdelovalčeve predelave in poganjati neokrnjen (vanilla) Android. Zelo močan argument je tudi zasebnost (glej tudi okvir), saj so ROMi, ki skrbijo, da ne puščamo svojih podatkov vsenaokoli. Z njimi lahko navadno tudi natančno določimo, katere pravice dobi posamezna aplikacija. Programom za obdelavo slik lahko na primer prepovemo dostop do imenika, kalkulatorju do fotoaparata ipd. Zadnji argument za namestitev pa povezuje vse druge – tak telefon lahko predrugačimo do skrajnosti.

Razdrobljenost Androida

Eden izmed glavnih problemov platforme Android je razdrobljenost po različicah, saj izdelovalci telefonov sorazmerno kmalu nehajo podpirati svoje telefone, zato njihovi uporabniki obtičijo s starejšimi inačicami. V začetku novembra letos je največ, skoraj tretjino telefonov poganjal Android 6, preostanek pa so si razdelile različice 4, 5 in 7. Najnovejšega Androida 8 nismo videli niti v odstotku telefonov. Neuradni ROMi so upoštevani pri različici, na kateri temeljijo (glede na različico API).

Uporaba različnih inačic Androida na telefonih od 2. do 9. novembra 2017. Vir: Android.com

So tudi razlogi, zakaj tega morda ne bi počeli. Načeloma ne moremo kaj dosti uničiti, saj postopek vedno vsebuje izdelavo varnostne kopije izdelovalčevega sistema, a če se zelo potrudimo, lahko telefon trajno onesposobimo (bricking). Ker so ROMi neuradni in večinoma v beta različici, je možno, da kakšna funkcija (Wi-Fi, LTE, GPS, mobilni podatki, bliskavica …) ne bi delovala. To je redko, se pa lahko zgodi. Kar zadeva baterije, te predstavljajo dvorezen meč. Po eni strani nimajo nepotrebne šare, ki bi jih praznila, po drugi strani pa niso nujno tako zelo optimizirane za konkretno strojno opremo kakor izdelovalčev ROM. In kot pri vsaki programski opremi se lahko v njih skriva kak grd hrošč.

Kaj izbrati

Predpostavimo, da ste srečni lastnik priljubljenega telefona, za katerega je na voljo več ROMov. Katerega bomo izbrali, je odvisno od naših želja in tudi izkušenj drugih uporabnikov z njim, za kar se splača pobrskati po internetu. Odvisno od konkretnega modela telefona so nekateri zelo izpopolnjeni, drugi pa še v hroščati fazi. Izpustili bomo tiste, ki jih razvijajo velika podjetja za svoje telefone, denimo Xiaomijev MIUI.

LineageOS. Nekoč je bil prva dama CyanogenMod, ki je podpiral več kot petsto naprav. Steve Kondik je leta 2013 za razvoj pridobil sredstva poslovnih angelov in postavil istoimensko podjetje. CyanogenMod Inc. je sredi leta 2016 začel množično odpuščati in konec leta je bil projekt končan. Razvijalci pa ga k sreči niso pustili propasti, temveč so ga razvejili (fork) v LineageOS, ki živi še danes. LineageOS podpira skoraj dvesto naprav, na starejše pa lahko še vedno namestimo CyanogenMod. To je najbolj splošen neuradni operacijski sistem in primeren za tiste, ki nimajo kakšnega res trdnega razloga, da bi si želeli kaj drugega. Podpira vse, kar ima osnovni Android, poleg tega pa na primer še FLAC, navijanje procesorja, Privacy Guard (nastavljanje posameznih pravic na ravni aplikacij), ki jih v starejših različicah Androida ni. Čeprav imajo trenutne različice LineageOS oznako nightly, so že dovolj stabilne za vsakdanjo rabo. LineageOS je najbolj podoben izvirnemu Androidu.

LineageOS je najbolj podoben izvirnemu Androidu.

Resurrection Remix. Drugi najbolj razširjen neuradni ROM je znan po tem, da najlepše dela z baterijo. Poleg tega omogoča več prilagoditev uporabniškega vmesnika kakor LineageOS, saj lahko spremenimo vsako ikono, animacijo ali okvir. Vsebuje tudi nekaj osnovnih aplikacij, kot so brskalnik, odjemalec za elektronsko pošto, predvajalnik glasbe, a je vse mogoče odstraniti.

Paranoid Android. Svoj čas je bil velik konkurent CyanogenModa, danes pa ni nič manj priljubljen, čeprav podpira manj kot petdeset naprav. Njegova glavna odlika so možnosti prilagoditve in zanimiv uporabniški vmesnik. Funkcija Pie Controls je najbolj znana in omogoča navigacijo brez uporabe fizičnih gumbov v vmesniku, ki je podoben polovici torte. Immersive Mode pa je način, v katerem izgine sistemska vrstica. Lebdeča obvestila (Notification Hover) omogočajo odziv, ne da bi vplivala na trenutno aplikacijo.

SailfishOS je zanimiv, ker ga razvija podjetje Jolla in ga tovarniško najdemo na pametnih telefoni Jolla in Jolla C. Podjetje so ustanovili prebežniki iz Nokie, ki so se ukvarjali s projektom MeeGo. Nekaj preostalih manj znanih izdelovalcev v dogovoru z Jollo ponuja Sailfish OS na svojih telefonih, poleg teh pa je še dobrih trideset telefonov, kamor je odprtokodni Sailfish OS spravila skupnost. Med njimi so tudi Nexusi, HTC Desire, Motorolini Moto G, Samsung Galaxy in Xiaomi. Sailfish OS ne podpira Google Play Store, a so še drugi načini pridobivanja aplikacij (glej okvir).

Poleg naštetih je še cela vrsta drugih ROMov, izmed katerih nekateri podpirajo zgolj prgišče naprav, drugi pa več deset. AOKP, SlimRom, AICP in crDroid jih največ.

Nadgraditi ali ne nadgraditi?

To sploh ni vprašanje. Če le imate primeren telefon, ki ni več najnovejši, razlogov za vztrajanje pri tovarniškem ROMu ni. Ker nadgradnja terja popoln izbris (stiki in aplikacije se ob prijavi z Googlovim računom avtomatično povrnejo, za drugo je treba poskrbeti prej), bo telefon že zaradi tega deloval hitreje, pa še navlake se bomo iznebili. Če pa telefonu privoščite še novo baterijo, mu lahko življenjsko dobo z nadgradnjo bistveno podaljšate.

Nova arhitektura Androida 8

Šestindvajset inačic (merjeno v različicah API) je trajalo, da je Google končno ugotovil, da se problem fragmentacije le poglablja in da tako ne bo šlo naprej. Čeprav so leta 2011 zagnali Android Update Alliance, h kateremu so pristopili izdelovalci telefonov s prisego, da bodo urno izdajali nove različice, in četudi so večkrat objavili seznam največjih zamudnikov, se ni zgodilo nič. Če imamo zelo drag telefon, dobimo nadgradnjo čez šest mesecev, drugače pa sploh ne. Razlog ni v lenobi, temveč zgradbi Androida.

Android 8 ima modularno zgradbo, kjer ima vsak modul svojega skrbnika.

Ko Google izda novo različico, morajo najprej izdelovalci (vendor) čipov SoC (Qualcomm, Samsung, Mediatek, Intel …) posodobitev prilagoditi svojim čipom. Šele nato izdelovalci telefonov (OEM) dobijo v roke Android in ga prilagodijo svojim telefonom in oblikovanju. Na koncu mora posodobitev preveriti še operater, kadar je telefon zaklenjen.

Problem je, da Google nikoli ni natančno dorekel meje med AOSP (Android Open Source Project) in spodnjimi deli sistema (od izdelovalca odvisne knjižnice, ki komunicirajo s strojno opremo). Čeprav je koda AOSP odprta, je ni mogoče preprosto prevesti in namestiti v telefon. Vsak izdelovalec jo poveže z zaprtimi skupki kode (binary blobs), da teče na strojni opremi.

Projekt Treble v Androidu 8 ločuje operacijski sistem in gonilnike.

Z Androidom 8 je tega konec. Prihaja projekt Treble, ki uvaja enoten izdelovalčev vmesnik (Vendor Interface). Ta sedi med strojno opremo in Androidom in jima omogoča, da se pogovarjata. Nadgradnje operacijskega sistema bodo odslej enostavnejše in ne bodo več potrebovale sodelovanja izdelovalcev čipov. Ti bodo svoje nadgradnje pisali in izdajali posebej, nikomur jih ne bo treba čakati. Treble prinaša kopico HALov (Hardware Abstraction Layer), ki se delijo na kakšnih 60 večjih podsistemov (kamera, lokacija, telefonija itd.). To bo poenostavilo tudi pripravo neuradnih ROMov, saj ne bo treba mučno popravljati kode za vsak telefon. Vse te novosti bodo popolnoma zaživele v Androidu 9, za katerega ima Google smele načrte, da bi ga ob izidu takoj dobile vse združljive naprave. Že zdaj pa lahko rečemo, da je Treble največja revolucija v arhitekturi Androida doslej. V resnici bi bil moral biti tak že od začetka.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!
Prijava

ph

Komentirajo lahko le prijavljeni uporabniki