Tutustumme custom-ROM:in asentamiseen käyttämällä esimerkkialustana Xiaomi Redmi Note 4 -puhelinta.

Android-käyttöjärjestelmän avoimuuden ansiosta Android-laitteille on saatavilla jälkeenpäin muokattuja laiteohjelmistoja eli niin kutsuttuja custom ROM:eja, joilla voidaan korvata laitteen mukana tullut ohjelmisto ja muuttaa käyttökokemus täysin erilaiseksi. Parhaimmassa tapauksessa custom ROM:in avulla voidaan parantaa Android-laitteiden paljon parjattua päivitystukea, tietoturvaa ja jopa yksityisyydensuojaa irtautumalla esimerkiksi Googlen palveluista.

Tässä artikkelissa tutustutaan Android-käyttöjärjestelmän rakenteeseen ja custom ROM:ien maailmaan asentamalla Redmi Note 4 -puhelimeen Android Pie 9.0 -versiolla varustettu AospExtended -custom ROM. Asennusprosessi käydään läpi artikkelissa esimerkinomaisesti askel askeleelta ja lopuksi luodaan yhteenveto lopputuloksesta.

 

Xiaomi Redmi Note 4 -älypuhelin

Kiinalainen Xiaomi on tällä hetkellä maailman neljänneksi suurin älypuhelinvalmistaja, joka on tullut tunnetuksi aggressiivisesti hinnoitelluista tuotteistaan. Yritys on kasvanut viime vuosina voimakkaasti ja laajentanut toimintaansa Euroopan markkinoille. Myös useat suomalaiset jälleenmyyjät ovat ottaneet yrityksen tuotteita valikoimiinsa ja niiden saatavuus on kehittynyt ainakin älypuhelimien osalta verrattain hyväksi.

Redmi Note 4 on io-techissäkin testatun Redmi 5 Plussan edeltäjä, joka julkaistiin tammikuussa 2017. Se asettui julkaisun yhteydessä noin 200 euron hintaluokkaan tarjoten varsin houkuttelevia ominaisuuksia hintaansa nähden. Kiinassa puhelinta myytiin ensimmäisen kymmenen minuutin aikana 250 000 kappaletta ja Suomessa puhelin tuli saataville joidenkin jälleenmyyjien kautta, mutta nyt puhelin on jo poistunut markkinoilta uudempien mallien tieltä.

Redmi Note 4 tarjoaa hyvin samanlaisia ominaisuuksia kuin vuotta myöhemmin julkaistu seuraajansa. Järjestelmäpiiri on sama 14 nanometrin LPP -tekniikalla valmistettu Snapdragon 625, joka on varustettu kahdeksalla Cortex-A53 -ytimellä. Muistikonfiguraatiot ovat niin ikään samat (3 & 32 Gt tai 4 & 64 Gt) ja grafiikkasuorituskyvystä vastaa Adreno 506 GPU. Kyseinen kombinaatio tarjoaa edelleen kelvollista suorituskykyä uudempiin alemman keskiluokan älypuhelimiin verrattuna.

Tekniset ominaisuudet:

  • Snapdragon 625 –järjestelmäpiiri (8 x 2,0 GHz Cortex-A53, Adreno 506 GPU)
  • 3/4 Gt LPDDR3 RAM
  • 32/64 Gt tallennustilaa, muistikorttipaikka (max. 256 Gt)
  • 5,5-tuumainen 16:9 IPS LCD –näyttöpaneeli (1080 x 1920 pikseliä, 401 PPI)
  • 13 megapikselin takakamera (f/2.0, 1.12µm, PDAF)
  • 5 megapikselin etukamera (f/2.0)
  • LTE Cat6, Dual-SIM, Wi-Fi 802.11 a/b/g/n, Bluetooth 4.1, GPS, Galileo, GLONASS, BDS
  • 4100 mAh akku, micro-USB 2.0
  • Mitat: 151 x 76 x 8,5 mm
  • Paino: 165g

Muissa komponenteissa samankaltaisuudet jatkuvat, sillä Redmi Note 4:ssä on 13 megapikselin takakamera (f/2.0, 1,12 µm) verrattuna seuraajansa 12 megapikselin kameraan (f/2.2, 1.25 μm). Valmistuserien välillä on kuitenkin eroavaisuuksia, sillä kamerasensorin saattaa olla valmistanut joko Sony, Samsung tai OmniVision. Kameramoduuli on laitteen keskellä yläosassa samalla tasolla takakuoren kanssa ja sen alapuolelta löytyy salamavalo ja sormenjälkilukija. Kuorimateriaali on molemmissa puhelimissa alumiinia päätyjen muovia lukuun ottamatta ja paksuutta Redmi Note 4:llä on 0,4 mm enemmän hieman suuremmasta 4100 mAh akusta johtuen. Lataaminen tapahtuu puhelimen alapäätyyn sijoitetun micro-USB 2.0 -liitännän kautta ilman pikalatausta. Laitteen yläpäätyyn on sijoitettu 3,5 mm:n ääniliitäntä ja Euroopassa melko harvinainen infrapunasensori.

Suurimmat eroavaisuudet laitteiden välillä tulevat näytön osalta, sillä Redmi Note 4:ssä on noin puoli tuumaa pienempi 5,5 tuumaan Full HD LCD -näyttö, joka perustuu 16:9-kuvasuhteeseen modernimman 18:9-kuvasuhteen sijaan ja jonka suojalasi on reunoilta pyöristetty. Perinteisen kuvasuhteen myötä Redmi Note 4 on 7,5 mm lyhyempi ja 0,5 mm leveämpi sekä näytön ja ulkomittojen suhde on nykymittapuulla vaatimaton 72,7 %. Huomionarvoisena seikkana navigointipainikkeet on sijoitettu fyysisesti näytön alapuolelle toisin kuin Redmi 5 Plussassa. Näytön yläpuolelta löytyy vasemmalta oikealle lueteltuna ilmoitusvalo, puhelinkuuloke ja etukamera.

 

Monien aasialaisten valmistajien tavoin Xiaomi on varustanut puhelimensa vakio-Androidiin nähden raskaasti kustomoidulla käyttöliittymällä, joka jakaa kuluttajien mielipiteitä. MIUI-nimeä kantavan käyttöliittymän hyviin puoliin voidaan lukea varsin kattavat käyttöä helpottavat lisäominaisuudet ja muokkausmahdollisuudet aina teemavalitsinta myöten. Toisaalta MIUI-käyttöliittymän toiminnassa on havaittu aiemmissa io-techin puhelintesteissä käytännön kannalta harmittavia puutteita ja esimerkiksi tuki suomen kielelle saapui käyttöliittymään vasta hiljattain.

Vaikka Xiaomi tarjoaakin laitteille pitkän päivitystuen, on yritys usein tyytynyt päivittämään vain laitteen MIUI-versiota Android-version jäädessä päivittymättä. Tämä koskee myös esimerkkialustaksi valitsemaamme Redmi Note 4 -puhelinta, jonka Android-versio on jäänyt Nougat 7.0 -versioon lokakuussa saapuneesta tuoreesta MIUI 10 -päivityksestä huolimatta.

Kokonaisuutena Redmi Note 4 onkin erinomainen lähtökohta Custom ROM:in asentamiselle. Mallilla on jo hieman ikää, mutta sisällä on edelleen hyvinkin käyttökelpoista rautaa. Edellä mainituista syistä Custom ROM:in asennus saattaa hyvinkin tuoda toivottua piristystä laitteen toimintaan ja antaa sille jopa täysin uuden elämän. Näistä syistä päädyimme käyttämään Note 4:ää esimerkkialustana tässä artikkelissa. Testilaitteen toimitti ystävällisesti käyttöömme Xiaomi-mi Suomi.

 

Android ja Google

Android on Googlen kehittämä mobiililaitteisiin suunnattu käyttöjärjestelmä, joka perustuu Linux-ytimeen. Suurin osa käyttöjärjestelmästä on avointa lähdekoodia, jota Google ylläpitää Android Open Source Projectin (AOSP) puitteissa. Kuka tahansa voi siis rakentaa käyttöjärjestelmästä oman version AOSP:n pohjalta. Täysin vapaasti Android-ekosysteemiä ei kuitenkaan pääse muokkaamaan, sillä Google on eriyttänyt Google Mobile Services (GMS) -paketin avoimesta lähdekoodista. GMS pitää sisällään Googlen palvelut ja sovellukset rajapintoineen, mikä antaa Googlelle vahvan valtikan Androidin hallinnassa. Tällaisia palveluita ovat muun muassa Google Play -sovelluskauppa, Google Maps ja YouTube. Mikäli laitevalmistajat haluavat käyttää Googlen palveluita laitteissaan, täytyy Googlen ensin hyväksyä valmistajien käyttöjärjestelmään tekemät muutokset. Tällä tavoin Google ehkäisee Androidin pirstaloitumista ja varmistaa eri laitteiden yhteensopivuuden.

Toisaalta GMS-paketin avulla Google kykenee ujuttamaan omia palveluitaan valmistajien laitteisiinsa, sillä yritys on tähän saakka myöntänyt GMS-paketin käyttöoikeuden ”kaikki tai ei mitään” -periaatteella. Valmistajat eivät ole voineet valita vain tiettyjä Googlen palveluita laitteisiinsa vaan ehtoihin on kuulunut ottaa kaikki Googlen nimeämät palvelut. Lisäksi ehdot ovat kieltäneet laitevalmistajia lisäämään tuotevalikoimaansa Googlen kanssa kilpailevia Android-versioita. Hiljattain Google on joutunut ongelmiin edellä mainitun toiminnan vuoksi ja viime vuonna EU antoi Googlelle 4,3 miljardin euron sakot määräävän markkina-aseman väärinkäytöstä.

 

Android-käyttöjärjestelmän rakenne

Kuva: Google (1)(2)

Android-käyttöjärjestelmä on useista kokonaisuuksista muodostuva ohjelmistopino, jossa käyttöliittymä ja sovellukset ovat vain käyttäjille näkyvä jäävuoren huippu. Ohjelmistopinon keskimmäinen osa muodostuu Googlen ylläpitämän AOSP:n sisällöstä, joka määrittelee käyttöjärjestelmän ominaisuudet ja toiminnan. Juuri tätä osaa käyttöjärjestelmästä laitevalmistajat muokkaavat omiin tarpeisiinsa sopivaksi. AOSP pitää sisällään Androidin perusrungon, jonka ympärille ominaisuuksia voidaan lisätä. Kun puhutaan puhtaasta Androidista, viitataan sellaiseen Android-versioon, johon on tehty vain pieniä muutoksia AOSP:iin nähden. Käytännössä Android One -laitteetkaan eivät ole täysin ”puhtaita”, sillä niihin on lisätty Googlen palvelut ja joitain valmistajien omia sovelluksia.

Jotta Android-käyttöjärjestelmä saadaan toiminaan yksittäisessä laitteessa, täytyy ohjelmisto saada myös keskustelemaan käytettävien rautakomponenttien kanssa. Ohjelmistopinon alimmaisena on Linux-ydin eli kernel, joka huolehtii kyseisestä tehtävästä. Käytännössä jokaiselle Android-laitteelle täytyy rakentaa kernel erikseen, sillä laitteet ovat keskenään erilaisia ja vaativat erilaisia ajureita. Aiemmin kernel täytyi jopa rakentaa jokaisen Android-versiopäivityksen yhteydessä uusiksi, mikä vaikeutti Android-laitteiden päivittämistä. Android Oreon myötä esitelty Project Treble on edesauttanut tilannetta tällä saralla, sillä nykyään Android voidaan päivittää uudempaan versioon muuttamatta käyttöjärjestelmän alinta kerrosta.

Ennen Trebleä:

Treblen jälkeen:

Kuvat: Google

Kernelin muodostamisesta vastaavat laitevalmistajat, sillä valmistajat päättävät yksittäisen laitteen komponentit. Samsungia ja Huaweita lukuun ottamatta laitevalmistajat eivät kuitenkaan itse suunnittele järjestelmäpiirejä, minkä johdosta piirivalmistajilla on suuri rooli kernelin muodostumisessa. Piirivalmistajat toimittavat laitevalmistajille Board Support Packagen (BSP), jonka avulla järjestelmäpiiri saadaan keskustelemaan halutun käyttöjärjestelmän kanssa. Yleensä piirivalmistajat suunnittelevat BSP:n yhdelle referenssilaitteelle, ja mitä enemmän laitevalmistajat tekevät muutoksia referenssilaitteeseen nähden, sitä enemmän heidän täytyy muokata myös laitteen lopullista kerneliä.

Kuva: Google

Androidin lisensointiehtojen mukaan sekä laite- että piirivalmistajien tulisi julkaista kernel lähdekoodit kaikkien saataville. Qualcomm on toiminut tässä suhteessa esimerkillisesti, sillä yritys julkaisee referenssilaitteidensa lähdekoodit Code Aurora Forumin (CAF) kautta. MediaTek sen sijaan on perinteisesti ollut erittäin vastahakoinen julkaisemaan lähdekoodejaan. Laitevalmistajien kohdalla käytännöt vaihtelevat, sillä osa valmistajista julkaisee lähdekoodit viiveellä tai vajavaisina ja pahimmassa tapauksessa lähdekoodeja ei julkaista ollenkaan lisenssiehtojen vastaisesti. Laitevalmistajista muun muassa Google, OnePlus ja Sony ovat julkaisseet lähdekoodejaan hyvin. Xiaomi on viime aikoina parantanut toimintaansa lähdekoodien suhteen ja viime huhtikuussa yritys lupasi julkaista lähdekoodit jatkossa kolmen kuukauden sisällä laitteen julkaisusta.

 

Custom ROM:it

Custom ROM:illa (eli custom firmwarella) tarkoitetaan mitä tahansa muokattua Android-ohjelmistoa, joka asennetaan laitteeseen jälkeenpäin. Tällaisia ovat esimerkiksi laitteen vakio ohjelmistosta kevyesti muokatut custom ROMit, joista on poistettu häiritseviä oletusohjelmia eli bloatwarea. Tällä tavoin Android-laitteen ohjelmistoversiota ei kuitenkaan voida päivittää, sillä muutokset rajoittuvat käyttöjärjestelmän pintakerroksiin. Yleensä custom ROM:illa tarkoitetaankin AOSP:n pohjalta kokonaan uudelleen rakennettua Android-ohjelmistoa, joka ei ole suoraan sidottu vakio ohjelmistoon. Kehitys perustuu avoimeen lähdekoodiin vapaaehtoisten kehittäjien voimin ikään kuin laitevalmistajan asemasta. Tämän vuoksi lähdekoodien saatavuus vaikuttaa merkittävästi custom ROM:ien valikoimaan tietylle laitteelle.

Erilaisia custom ROM:eja on lähes yhtä paljon kuin tekijöitäkin, mutta tunnetuin niistä lienee CyanogenModin raunioista ponnistanut Lineage OS, joka on tällä hetkellä saatavilla 163 eri laitteelle ja käytössä 1,8 miljoonassa laitteessa. Lineage OS:n kaltaisia organisoituja yhteisöjä ovat muun muassa OmniROM, Paranoid Android, Mokee OS, Resurrection Remix ja AospExtended. Tällaisilla custom ROM:eilla on aktiivinen kehittäjäkunta, joka kehittää custom ROM:ia jatkuvasti eteenpäin. Jokaiselle virallisesti tuetulle Android-laitteelle valitaan yhteisön sisältä ylläpitäjä, joka huolehtii kyseisen laitteen päivityksistä. Päivitykset ovat yleensä saatavilla langattomasti Over The Air (OTA) -paketteina viikoittain tai jopa päivittäin.

Custom ROM:eista on myös olemassa epävirallisia (unofficial) variantteja, jotka ovat yksittäisten kehittäjien julkaisuja yhteisön ulkopuolelta esimerkiksi sellaisille laitteille, joilla ei ole virallista tukea yhteisön toimesta. Epävirallisissa julkaisuissa saattaa olla joitain pieniä eroavaisuuksia virallisen julkaisuun nähden ja päivitystuki on usein epäsäännöllinen riippuen kehittäjän omista resursseista. Lisätietoa eri custom ROM:eista on saatavilla TechBBS-keskustelupalstalta.

Qualcommin avoimuuden johdosta Redmi Note 4:n kaltaisille Snapdragon-prosessorilla varustetuille laitteille on yleisesti ottaen runsaasti custom ROM:eja saatavilla. Aina kaikkia yksittäisiä ominaisuuksia ei kuitenkaan saada toimimaan edes Snapdragon-laitteissa, jos laitevalmistaja on esimerkiksi tehnyt huomattavia muutoksia Qualcommin referenssilaitteeseen nähden eikä ole julkaissut kattavia kernel-lähdekoodeja. Lisäksi laitevalmistajia ei velvoiteta julkaisemaan aivan kaikkea laitteiden toimintaan liittyvää informaatiota. Esimerkiksi kameran toimintaan liittyvät algoritmit ovat liikesalaisuuksia eivätkä suoranaisesti liity Androidin toimintaan, joten laitevalmistajat voivat jättää suljetut binary blobit lisenssiehtojen mukaisten kernel-lähdekoodien ulkopuolelle. Puuttuvien ajurien johdosta kehittäjät joutuvat usein etsimään vaihtoehtoisia ajureita muista vastaavista laitteista, takaisinmallintamaan avoimeen lähdekoodin perustuvia ratkaisuja tai koodaamaan yksittäisiä ominaisuuksia toimintakuntoiseksi yrityksen ja erehdyksen kautta. Lisätietoa kehittäjien kohtaamista haasteista löytyy XDA-sivuston artikkelista.

 

Custom ROMin asentaminen

Custom ROM:in asennusprosessi on jokaisen merkin ja mallin kohdalla hieman erilainen, minkä vuoksi kaikille laitteille yleispätevää ohjenuoraa on mahdotonta muodostaa. Tässä artikkelissa esitetty asennusprosessi Redmi Note 4 -puhelimella tulee käsittää suuntaa antavana esimerkkinä. Pääpiirteittäin asennusprosessi koostuu bootloaderin eli käynnistyslataajan avaamisesta ja custom recoveryn asentamisesta tietokoneen välityksellä, minkä jälkeen itse custom ROM voidaan asentaa laitteeseen recoveryn kautta. Halutessaan käyttäjä voi asentaa laitteeseen myös Google Apps (GAPPS) ja pääkäyttäjän oikeudet mahdollistavan root -paketit sekä muun muassa ylikellotuksen mahdollistavan custom kernelin.

Windows 10 tietokoneella suoritettavat operaatiot:

  • Bootloaderin avaaminen Mi Unlock -ohjelmalla
  • Custom recoveryn (TWRP) asentaminen ADB:n kautta

Custom recoveryssä suoritettavat operaatiot:

  • Nandroid-varmuuskopiointi
  • Puhelimen tyhjentäminen
  • Custom ROMin asentaminen
  • GAPPS-paketin asentaminen

Huomio! Custom ROM:in asentaminen on lähes poikkeuksetta vastoin valmistajien takuuehtoja, minkä vuoksi laitteen takuu yleensä menetetään custom ROMin asentamisen myötä. Lisäksi bootloaderin avaamisen yhteydessä laite palautetaan takaisin tehdasasetuksiin, joten ennen projektin aloittamista kannattaa ottaa tärkeät tiedot talteen. Projektin aikana jokin voi myös mennä pieleen, jolloin laitteen saaminen takaisin toimintakuntoon voi olla erittäin työlästä tai jopa mahdotonta. Ongelmien välttämiseksi laitteen lukitus tulee poistaa ja akku ladata täyteen ennen projektin aloittamista. Artikkelin kirjoittaja ja io-tech eivät ota mitään vastuuta mahdollisista ongelmatilanteista.

Bootloaderin avaus

Asennusprosessin haasteellisin osuus on yleensä bootloaderin avaaminen, sillä laitevalmistajien käytännöt vaihtelevat suuresti avaamisen suhteen. Bootloader on laitteen alin ohjelmistokerros, joka käynnistää varsinaisen käyttöjärjestelmän. Se ei siis ole osa itse käyttöjärjestelmää, vaan verrattavissa PC-maailmasta tuttuun BIOSiin. Oletuksena bootloader on aina lukittu, sillä sen avaaminen on tietyllä tapaa tietoturvariski. Jos laite päätyy väärin käsiin bootloaderin ollessa avattuna, voidaan käyttäjän tietoihin päästä käsiksi, vaikka käyttöjärjestelmä olisikin suojattu pääsykoodilla. Tämän vuoksi Android-laitteet varoittavat avatusta bootloaderista käynnistyksen yhteydessä. Lisäksi bootloaderin avaamisen yhteydessä saatetaan menettää DRM-avaimiin (käyttöoikeuksien hallinta-avaimiin) sidottuja ominaisuuksia, mikä voi näkyä esimerkiksi suoratoistopalveluiden toiminnassa (Widevine-taso).

Xiaomin tapauksessa bootloaderin avaaminen on monimutkainen prosessi verrattuna moneen muuhun valmistajaan. Varsinainen bootloaderin avaus suoritetaan Mi Unlock nimisellä ohjelmalla mutta sen käyttöä varten on ensin luotava Mi-tili. Tilin voi tehdä pelkkää sähköpostia käyttäen mutta laitteen bootloaderin avaamiseksi käyttäjän tulee tunnistautua tilille puhelinnumerolla. Avattava laite on myös sidottava kyseiseen tiliin laitteen asetuksista ja Xiaomi on rajoittanut bootloaderin avaamisen yhteen laitteeseen 30 päivän sisällä. Tilin luominen tapahtuu Xiaomin Unlock-sivustolla, jonka kautta myös Mi Unlock on ladattavissa tietokoneelle tilin luomisen jälkeen. Vinkkinä ”Unlock Now” -painike ohjaa käyttäjän kiinankieliselle sivulle mutta sivun alalaidasta kielen voi muuttaa takaisin englanniksi.

Kun Mi-tili on luotu onnistuneesti, kirjaudutaan tilille puhelimen asetuksista kohdasta ”Mi-tili”. Tämän jälkeen suunnataan Tietoa puhelimesta -välilehdelle ja avataan salatut kehittäjäasetukset naputtelemalla ”MIUI-versio” -kohtaa seitsemän kertaa. Kehittäjäasetukset avautuvat Lisäasetukset -välilehdelle ja valikosta asetetaan aktiiviseksi OEM-lukitus ja USB-vianetsintä. Puhelin saadaan sidottua lopullisesti Mi-tiliin ”Mi Unlock -tila” valikon kautta seuraamalla annettuja ohjeita. Lopuksi puhelin ilmoittaa, että Mi-tili on liitetty onnistuneesti tilin kanssa.

Seuraavaksi puhelin sammutetaan ja käynnistetään fastboot-tilaan pitämällä virtapainiketta ja volume alas nappia pohjassa siihen asti, kunnes puhelin värähtää. Fastboot-tilassa puhelin kytketään USB-johdolla tietokoneeseen ja laitteen fastboot-ajurit asennetaan Mi Unlock -ohjeman mukana tulleella Mi USB driver -ohjelmalla. Onnistuneen asennuksen päätteeksi puhelimen pitäisi näkyä yhdistettynä Mi Unlock -ohjelmassa ja bootloader saadaan avattua seuraamalla ohjelman ohjeita.

Estääkseen esimerkiksi jälleenmyyjiä avaamasta laitteen bootloaderia etukäteen, Xiaomi on lisännyt bootloaderin avaamiseen käyttäjäkohtaisen viiveen. Tämän vuoksi bootloaderin avaaminen ei onnistu heti sen jälkeen, kun Mi-tili on liitetty puhelimeen. Allekirjoittaneen kohdalla Mi Unlock -ohjelma ilmoitti heikolla englannin kielellä, että bootloaderin avaamiseksi tulisi odottaa 72 tuntia ja kolmen päivän odottelun jälkeen bootloaderin avaaminen onnistuikin ongelmitta. Huomionarvoisena seikkana puhelinta ei saa kirjata ulos Mi-tililtä kyseisenä aikana tai muuten laskuri nollautuu ja käyttäjä joutuu aloittamaan odottamisen alusta. Käyttäjät ovat myös raportoineet eri pituisia odotusaikoja 66 tunnista jopa kahteen kuukauteen saakka. Onnistuneen bootloaderin avauksen jälkeen puhelimen näytöllä vilahtaa käynnistyksen yhteydessä ”Unlocked” -ilmoitus.

TWRP:n asentaminen

Bootloaderin avaamisen jälkeen laitteeseen asennetaan custom recovery, jolla korvataan Androidin sisäinen palautustila. Jokaisessa Android-laitteessa on erillinen palautustila, joka käynnistyy laitekohtaisella näppäinyhdistelmällä. Palautustilan kautta puhelin voidaan esimerkiksi palauttaa takaisin tehdasasetuksiin, jos laitteen ohjelmisto menee syystä tai toisesta sekaisin. Custom recoveryn avulla palautustilan toimintoja saadaan laajennettua ja laitteeseen asennettavia custom ROM:eja voidaan hallita paremmin. Custom ROM:ien tavoin custom recoveryjä on useita ja tällä hetkellä suosituin niistä on Team Win Recovery Project (TWRP).

TWRP asennetaan Redmi Note 4 -puhelimeen Android Debug Bridgen (ADB) välityksellä fastboot-tilassa. ADB on kehittäjien käyttämä komentorivityökalu, jonka avulla etsitään esimerkiksi laitteiston virheitä. Tässä projektissa tarvittava ADB-ohjelma löytyy Googlen kehittäjäsivustolta nimellä “SDK Platform-Tools for Windows”. TWRP-tiedosto löytyy puolestaan TWRP:n sivustolta puhelimen koodinimellä ”mido”. ADB-työkalujen zip-tiedosto puretaan tietokoneen juureen C-asemalle työskentelyn helpottamiseksi ja ”twrp-3.2.3-1-mido.img” -tiedosto siirretään syntyneeseen platform-tools -kansioon. Bootloaderin avaamisen yhteydessä tapahtuneen puhelimen nollauksen vuoksi USB-vianetsintä täytyy käydä laittamassa uudelleen päälle kehittäjäasetuksista, jotta ADB-työkaluilla voidaan ylipäätänsä operoida. Tämän jälkeen puhelin sammutetaan normaalisti ja käynnistetään fastboot-tilaan tietokoneeseen yhdistetty kuten aiemmin bootloaderin avauksen yhteydessä.

ADB-komentoikkuna avataan siirtymällä tietokoneella C:\platform-tools -kansioon ja kirjoittamalla ”cmd” tiedostoselaimen osoitekenttään. Enterin painamisen jälkeen komentoikkuna avautuu ja siihen voidaan syöttää haluttuja komentoja. ”Fastboot devices” -komennolla nähdään tietokoneeseen liitetyt fastboot-laitteet ja allekirjoittaneella Redmi Note 4 tunnistui koodilla ”55498c589804”. TWRP asennetaan puhelimeen syöttämällä komentokehotteeseen ”fastboot flash recovery twrp-3.2.3-1-mido.img”.

Asennus viimeistellään käynnistämällä puhelin TWRP-recoveryyn edelleen tietokoneeseen yhdistettynä painamalla virtapainiketta ja volume ylös nappia pohjassa niin kauan kunnes ruudulla näkyy Mi-logo. Tämän jälkeen painikkeet vapautetaan ja puhelin käynnistyy automaattisesti TWRP-recoveryyn. Ensimmäisellä käynnistyskerralla TWRP ehdottaa, pidetäänkö järjestelmä vain luku -tilassa? Custom recoveryn ideana on, että muutoksia voidaan tehdä, joten muokkausoikeudet otetaan käyttöön liukukytkimen kautta (Swipe to Allow Modifications).

Nandroid-varmuuskopiointi

Onnistuneen TWRP:n asennuksen jälkeen laitteen parissa säätämisestä tulee huomattavasti helpompaa, sillä tietokonetta tarvitaan jatkossa vain tiedostojen siirtelyä varten. Lisäksi TWRP mahdollistaa laitteen kattavan varmuuskopioinnin, jolloin puhelin voidaan palauttaa takaisin toimivaan tilaan Nandroid-levykuvan avulla. Nandroid-levykuva pitää sisällään käyttöjärjestelmän sellaisessa muodossa kuin se oli varmuuskopiointi hetkellä asennettuja sovelluksia ja asetuksia myöten.

Nandroid-levykuva kannattaa ottaa ennen custom ROMin asentamista, jotta käyttäjä voi palata takaisin vakio ohjelmistoon niin halutessaan. Varmuuskopiointi tapahtuu siirtymällä TWRP:ssä Backup-osioon ja valitsemalla varmuuskopioitavat sektorit. Oletuksena valittuna ovat System, Data ja Boot -sektorit, jotka riittävät palautuspisteen muodostamiseen. Kannattaa kuitenkin huomioida, että datasektori ei pidä sisällään sisäistä tallennustilaa eli esimerkiksi puhelimeen tallennetut kuvat eivät sisälly Nandroid-levykuvaan. Lopuksi varmuuskopiointi hyväksytään liukukytkimellä ja se kestää varmuuskopioitavien sektoreiden koosta riippuen muutamia minuutteja. Varmuuskopioinnin jälkeen Nandroid-levykuva voidaan siirtää tietokoneelle edelleen recovery-tilassa ollessa usb-yhteyden avulla.

AospExtended -custom ROMin asentaminen

Kun Nandroid-levykuva on saatu luotua ja siirrettyä turvaan tietokoneelle voidaan viimein siirtyä custom ROMin asentamiseen. Tässä projektissa Redmi Note 4 -puhelimeen asennetaan Android Pie 9.0 -versioon perustuva AospExtended (AEX) -custom ROM, joka on ladattavissa AEX:n verkkosivulta. Samassa yhteydessä puhelimeen asennetaan OpenGAPPS -paketti Googlen palveluita varten. Custom ROMit eivät yleensä sisällä Googlen palveluita valmiina, joten ne täytyy asentaa puhelimeen erikseen custom ROMin asennuksen jälkeen. Halutessaan GAPPS-paketin voi jättää kokonaan asentamatta, jos ei tarvitse mitään Googlen palveluita.

Tällä kertaa puhelimeen asennetaan OpenGAPPS:n pienin ”pico” -paketti, joka sisältää vain välttämättömät ohjelmistokomponentit Google Play -sovelluskauppaa varten ja muut Googlen sovellukset voidaan asentaa jälkikäteen suoraan Play Kaupasta. Redmi Note 4 on varustettu 64-bittisellä ARM-arkkitehtuuriin perustuvalla Snapdragon 625 -järjestelmäpiirillä, joten puhelimelle valitaan ARM64 GAPPS -paketti. GAPPS-paketin Android-versio valitaan luonnollisesti custom ROMin Android-version mukaan eli tässä tapauksessa Android 9.0.

Ensimmäistä kertaa custom ROMia asennettaessa laitteelle kannattaa tehdä täydellinen tyhjentäminen ”Format Data” -komennolla, jotta laitteen käyttämisen voi aloittaa ikään kuin puhtaalta pöydältä ja mahdolliset tallennustilan salaukset saadaan purettua. Komento löytyy TWRP:n Wipe-osiosta ja se tulee hyväksyä kirjoittamalla tekstiruutuun ”yes” vahinkopainalluksien estämiseksi. Tämän jälkeen palataan takaisin Wipe-osion aloitusruutuun ja suoritetaan System, Data ja Cache -sektoreiden tyhjentäminen ”Advanced Wipe” -painikkeen takaa. Myöhemmin custom ROMia vaihdettaessa ei yleensä tarvitse tehdä täydellistä tyhjentämistä (Format Data), vaan ”Advanced Wipe” -komennon kautta tehtävä tyhjentäminen riittää.

Tyhjentämisen jälkeen puhelimessa ei enää ole käyttöjärjestelmää, joten uusi käyttöjärjestelmä asennetaan laitteeseen custom ROMin muodossa. Aiemmin ladatut AEX ja GAPPS -paketit siirretään usb-yhteyden kautta puhelimen tallennustilan juureen edelleen TWRP:ssä ollessa. Asennus tapahtuu Install-osiossa valitsemalla haluttu zip-paketti yksi kerrallaan. Ensimmäiseksi asennetaan AEX custom ROM zip-tiedosto, jonka jälkeen suoritetaan välimuistien tyhjentäminen ”Wipe cache/dalvik” -komennon kautta. Tämän jälkeen käyttöjärjestelmään lisätään halutut Googlen palvelut GAPPS-paketin muodossa toimien samalla tavalla kuin edellä. Yleensä kehittäjät suosittelevat asentamaan GAPPS-paketin samassa yhteydessä custom ROMin kanssa ennen käyttöjärjestelmän ensimmäistä käynnistämistä. Myös GAPPS-paketin asentamisen jälkeen kannattaa suorittaa välimuistien tyhjentäminen.

Lopuksi puhelin voidaan käynnistää ”Reboot System” -komennolla. Ennen käynnistysprosessin aloittamista TWRP ehdottaa erillisen TWRP-sovelluksen asentamista mutta tämä voidaan ohittaa klikkaamalla ”Do Not Install” -painiketta. Jos käynnistysprosessi etenee suunnitellusti, pitäisi ruudulle ilmestyä custom ROMin käynnistysanimaatio hetken odottelun jälkeen. Käyttöjärjestelmän ensimmäinen käynnistyminen kestää kuitenkin useita minuutteja, joten käyttäjän kannattaa odottaa tässä vaiheessa kärsivällisesti. Kun puhelin lopulta käynnistyy käyttöjärjestelmään, voidaan puhelin ottaa käyttöön samalla tavalla kuin uusi Android-laite.

 

Käyttökokemukset ja huomiot

Nimensä mukaisesti AEX perustuu AOSP:iin, joten se vastaa ulkoasultaan ja toiminnoiltaan puhdasta Androidia. AEX:n tarkoituksena on tarjota käyttäjille sulava käyttökokemus ajan tasalla olevilla tietoturvapäivityksillä sekä muutamilla lisäominaisuuksilla, jotka on poimittu häpeilemättä muista custom ROMeista. Virallisesti tuetuille laitteille päivityksiä tulee vähintään kerran kuukaudessa.

Testijakson aluksi Redmi Note 4 -puhelimeen asennettiin AEX 6.1 -ohjelmisto, joka perustuu Android 9.0 -versioon. Ainoaksi puuttuvaksi ominaisuudeksi ohjelmistossa oli merkitty tallennustilan salauksen puute, mikä kuitenkin korjaantui testijakson lopulla saapuneen päivityksen myötä. AEX 6.1:n tietoturvataso oli päivätty 5. joulukuuta 2018 mutta testijakson aikana laitteelle saapui AEX 6.2 -päivitys, joka päivitti tietoturvatason kuukautta tuoreemmaksi (5. tammikuuta 2019). Esiasennettuja sovelluksia AEX 6.1 -versiossa oli yhteensä 20 kappaletta, joista AOSP:sta poikkeavia sovelluksia olivat AEXPapers, FM Radio, Lineage OS:n Kamera ja Nauhoitus -sovellukset, Retro Music ja Via -selain. Lisäksi AEX 6.2 -päivitys toi mukanaan AdvanceControls -sovelluksen, jolla voidaan säätää värinän voimakkuutta, taskulamppuna toimivan salaman kirkkautta sekä näytön asetuksia.

AEXPapers on AEX:n kehittäjien omaa käsialaa ja se pitää sisällään tuhdin pakkauksen AEX-henkisiä taustakuvia. Taustakuvia on saatavilla vaaleana ja tummana, joten puhelimen teemaa voidaan vaihtaa myös taustakuvien mukaan. AEXPapersin lisäksi taustakuvia on saatavilla esiasennetun vakio Androidin Taustakuvat -sovelluksen kautta. Retro Music ja Via -selain ovat kolmansien osapuolten tekemiä sovelluksia, jotka ovat saatavilla myös Play Kaupasta. FM Radio on puolestaan avoimeen lähdekoodiin (CAF) perustuva Qualcommin kehittämä sovellus. Esiasennettuja sovelluksia ei ole mahdollista poistaa käyttäjän toimesta.

AEX-ohjelmistoon lisätty Lineage OS:n Snap-kamera vastaa ominaisuuksiltaan MIUI-käyttöliittymän kamerasovellusta mutta kameran suorituskykyyn se ei tuo sinällään mitään uutta. Custom ROMit kuitenkin mahdollistavat Android Lollipopin yhteydessä esitellyn Camera2-rajapinnan hyödyntämisen, minkä vuoksi valokuvaukseen perehtyneiden käyttäjien kannattaa harkita rajapintaa hyödyntävän kamerasovelluksen asentamista esimerkiksi Play Kaupasta. Suosittu vaihtoehto on myös Google Pixel -puhelimien muokatun kamerasovelluksen asentaminen APK-tiedostona. Eri laitteille sovitettuja ”Gcam-porttauksia” on saatavilla esimerkiksi XDA-sivuston kokoamasta portaalista ja myös Redmi Note 4:lle on saatavilla kyseiselle laitteelle sopiva Google Kamera -sovellus.

Alla on muutama vertailukuva Snap-kameran (v2.02.014) ja Google Kameran (v6.1.013) välillä. Kuvaparin ensimmäinen kuva on otettu Snap-kameralla ja jälkimmäinen Google Kameralla. Hämäräkuvissa käytettiin kamerasovelluksen yö-tilaa mutta muuten käytettiin automaattiasetuksia.

AEX:n lisäominaisuudet ovat koottu pääosin asetuksien Extensions -osioon, joka on jäänyt muista valikoista poiketen kääntämättä suomeksi. Osiosta löytyy kattava lista myös muista custom ROMeista tuttuja ominaisuuksia. Alla olevalla videolla on esitetty joitain AEX:n keskeisempiä ominaisuuksia.

Testijakson aikana laitteen toiminnassa ei havaittu puutteita tai ongelmia kertaalleen ilmaantunutta ”Device Health Services” -sovelluksen kaatumista lukuun ottamatta. Kaikki testatut sovellukset toimivat custom ROMissa ongelmitta pankki- ja videopalvelusovelluksia myöten. Ainoastaan WhatsApp -sovellus varoitti muokatusta ohjelmistosta mutta varsinaiseen käyttöön huomautuksella ei ollut vaikutusta. Puhelimen Widevine-taso pysyi projektin aikana L3:ssa.

Suorituskyvyn suhteen custom ROMin asentamisella ei ollut juurikaan vaikutusta, vaikka mittaustuloksissa havaittiinkin pientä parannusta MIUI-käyttöliittymään nähden. Erot olivat kuitenkin sen verran pieniä, ettei niillä ollut käytännön kannalta merkitystä. Vertailun vuoksi testit ajettiin myös hieman tuoreemmalla Snapdragon 630 -järjestelmäpiirillä varustetulla Sony Xperia XA2 -puhelimella. Xperia XA2 oli varustettu Sonyn Android Oreo 8.0 -ohjelmistolla.

 

Yhteenveto

Custom ROMin avulla Redmi Note 4 -puhelimen Android-versio saatiin päivitettyä uusimpaan Android Pie 9.0 -versioon ja tietoturvataso nostettua lokakuusta 2018 tammikuulle 2019. Lisäksi AEX:n myötä raskaasti kustomoitu MIUI-käyttöliittymä korvattiin vakio Androidin kaltaisella käyttöliittymällä. Jatkossa puhelimelle on saatavilla kuukausittaiset tietoturvapäivitykset niin kauan, kun vapaaehtoiset kehittäjät laitteen parissa työskentelevät. Vaikka mitään lupauksia päivitystuen kestosta ei olekaan AEX:n puolelta annettu, voidaan päivitysten olettaa jatkuvan vielä pitkään. Halutessaan custom ROMia voi myös vaihtaa helposti TWRP:n kautta, kun custom recovery on valmiiksi puhelimeen asennettuna.

Custom ROMin asentamisen kääntöpuolena laitteen takuu menetetään, joten projektia ei voi varauksetta suositella kaikille. Lisäksi bootloaderin avaamisen johdosta laite on alttiimpi turvallisuusriskeille puhelimen joutuessa vääriin käsiin. Jos käyttäjä kuitenkin tietää, mitä on tekemässä, voi custom ROM asentaminen olla tietyissä tilanteissa erinomainen keino parantaa laitteen käyttökokemusta ja elinikää. Yksi esimerkki tästä on myös Camera2-rajapinnan hyödyntäminen kameran kuvanlaadun parantamiseksi. Custom ROMien myötä kuluttajien ei tarvitse tyytyä laitevalmistajan tarjoamaan ohjelmistoon ja päivitystukeen, vaan käyttäjä voi itse asentaa Android-laitteeseen sellaisen ohjelmiston kuin haluaa.

 

This site uses XenWord.
;