Tutustumme Custom ROMin 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 ROMeja, joilla voidaan korvata laitteen mukana tullut ohjelmisto ja muuttaa käyttökokemus täysin erilaiseksi.
Tutustumme io-techin lukija FlyingAnteron tekemässä artikkelissa Android-käyttöjärjestelmän rakenteeseen ja custom ROMien 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.
Lue artikkeli: Custom ROMin asentaminen Xiaomi Redmi Note 4 -puhelimeen
Kiitos @FlyingAntero hyvästä katsauksesta! :tup:
Hyvä artikkeli ja loistava opas. Artikkelin kommentit eivät synkkaa näköjään foorumin puolelle.
Tulipas sopivasti todellä hyvä artikkeli.
Pitääpä tarkastaa meneekö tuo ihan samalla tavalla Mi6:lle.
@Sampsa minä suosittelisin että TWRP:n installoimisen jälkeen käytettäisiin vain komentoa "fastboot reboot", mikä boottaa automaattisesti TWRP:hen, ei tarvitse kikkailla sen volumenapin ja virtanapin kanssa enää uudestaan.
Hyvä artikkeli, tykkäsin!
Toi että bootloader olisi aina lukittuna ei pidä kaikilla valmistajilla paikkansa.
Ainakin Samsungilla käsittääksein S8:n Exynos varianteissa on toi auki jo valmiiksi?!
Ja osassa malleja se aukeaa ihan fastboot komennolla, ilman mitään kikkailuja.
Oneplus on kyllä harrastelijan/säätäjän unelma just tästä syystä:tup:
Samsungin Exynos luureissa täytyy käsittääkseni käydä klikkaamassa OEM Unlock aktiiviseksi ennen kuin Odinilla voi flashata esim TWRP:n sisään. Eli periaatteessa pitää se unlockaus suorittaa. Lisäksi Samsungilla on KNOX, joka indikoi, jos luuriin on asennettu custom firmware.
Tämä on ihan totta. Esimerkiksi Googlella ja OnePlussalla bootloaderin lukituksen voi poistaa suoraan ADB:n kautta yhdellä komennolla eikä käyttäjältä vaadita mitään kikkailuja. Kuitenkin se lukitus pitää poistaa sillä ADB komennolla. Vastaavasti Huawei on nykyään estänyt bootloaderin aukaisemisen kokonaan. Käytännöt tosiaan vaihtelevat valmistajilla.
Mitenkäs se olikaan Oneplussan tapauksessa eli takuu ei raukea vaikka vaihtaa ohjelmistoa?
Hyvä ja kattava artikkeli. Kameran jälkikin paranee aika reippaasti gcamin myötä.
Ainakin ennen OnePlussan luureissa sai avata bootloaderin ja flashailla custom ROMeja menettämättä takuuta. En tosin enää löytänyt yrityksen sivuilta kyseistä mainintaa, sillä bootloaderista kertova sivu on poistettu.
Jenkeissä myytävässä T-Mobilen mallin kohdalla sanotaan, että bootloaderin avaaminen saattaa olla takuuehtojen vastaista mutta operaattorien mallien kohdalla yleensä onkin erilaiset toimintatavat (myös bootloaderin avauksen suhteen).
Tuolla tavalla recoveryyn boottaminen onnistuisi tuossa tilanteessa näppärästi mutta halusin tuoda esille, että recoveryyn voi myös bootata näppäinkombinaatiolla. Monesti TWRP:een tulee kuitenkin bootattua ilman tietokonetta. Jatkossa voi siis ladata esimerkiksi custom kernelin suoraan puhelimella sisäiseen muistiin ja bootata sitten näppäinkombinaatiolla suoraan recoveryyn. Näin saa asennettua haluamiaan paketteja ilman tietokonetta.
Vieläköhän Xiaomin luurit saa unlockattua ilman yhteydenottoa valmistajaan? Mi4c:n kanssa tuo onnistui vuosi kaksi takaperin sitten kikkakolmosella aika vaivattomasti
Mahdollisesti muuttaneet toimintatapojaan tuolla?
Itse käytin omnirommia note 4:lla, mutta oli pakko vaihtaa myöhemmin takaisin stockkiin, kun ei puhelut toimineet luotettavasti. Sama ongelma oli oneplussalla kun custom romeja kokeilin.
Minun käsittääkseni uusimpia Xiaomin laitteita ei enää saa unlockattua ilman tunnistautumista. Xiaomi otti tunnistautumisen käyttöön joskus 2016 vuoden alussa.
Itselläkin oli Mi4C aikanaan ja sen sai unlockattua itsenäisesti, jos ei ollut asentanut siihen uusinta päivitystä, jonka jälkeen tunnistautuminen vaadittiin.
En tiedä oletko sinä kirjoittanut tuon tekstin, minusta vain tuo näppäinkomento tuli esiin jo tuossa kun mentiin ekaa kertaa tuonne. Oikeasti vaiken osahan tuossa on että noi *.img nimet vaihtelee sen kulloisenkin version mukaan. Minä tykkään nimetä ne uudestaan esim. upgrade.img tms. tai sitten tabilla saa kätsysti valittua. Ymmärrän toki mitä tuossa ajetaan takaa, mutta kun on jo ajanut adb:lla useamman komennon niin näppärästi menee se nopea reboot komento samalla. Ainakin minulla on toi helvetin fastboot todella ailahtelevainen ollut sen suhteen että ottaako tuota alas ja power aina ekalla ja kuinka pitkään pitää pohjassa jne. Mutta en siis sano että se väärin olisi mennä tuota kautta.
Sen olisi ehkä voinut mainita että missä sijaitsee radiot. Usein rommin jälkeen suositellaan dalvic ja cache tyhjentään jne. mutta siellä on tosiaan sellasiakin osioita mihin jos koskee niin sitten voi käydä paskasesti. Samalla voisi opettaa toki TWRP tehdasasetusten palautuksenkin. Lisäksi TWRP riippuu kyseisestä luurista ja tässä tapauksessa sen MIUI versiosta ja välttämättä se vanha TWRP ei enää toimi jos asentaa uudemman androidin jne. Tai ainakin MIUIlla oli jossain vaiheessa ongelmaa että jos siirtyi 5.xx 7.xx versioon niin TWRP lakkasi toimimasta ja piti asentaa uudempi TWRP. Myöhemmin tämä muistaakseni korjaantui ja uudella TWRP:llä pystyi siirtymään ilman ongelmia 5->7.
Juu, minun kirjoittama on tämä juttu. Sampsa vain hoiti tuon julkaisun, kun en ole kuitenkaan osa ylläpitoa.
TWRP:n asentamisen yhteydessä voi olla näppärin vaihtoehto bootata recoveryyn ADB-komentorivin kautta, kuten totesit, mutta jatkoa ajatellen toin tässä esille tuon näppäinkombinaation. Että TWRP:een pääsee ilman tietokonettakin :).
Välimuistin tyhjentämisellä (wipe cache/dalvik cache) ei oikein voi saada mitään vahinkoa, kun siinä ei poisteta mitään järjestelmän osia. Jos muuta tyhjennetään, niin silloin luonnollisesti voidaan menettää jotain. Lähtökohta tässä kuitenkin oli, että kehittäjillä on kaikki lähdekoodit saatavilla, jolloin puhelin voidaan tyhjentää kokonaan ja kaikki tarvittavat ohjelmisto komponentit löytyy custom ROMista. Jos kehittäjällä ei ole kaikkia lähdekoodeja saatavilla, niin silloin voi joutua flashaamaan custom ROMin vakio ohjelmiston "päälle", jotta kaikki toimii. Silloin tyhjennyksiä ei tietenkään kannata tehdä mutta näistä kehittäjät yleensä ilmoittavat erikseen ja nämä tilanteet koskevat lähinnä unofficial buildeja.
Nyrkkisääntö TWRP versioiden suhteen on, että aina kun Android-versio päivittyy (esim Oreo 8.1 – > Pie 9), pitää myös TWRP päivittää tuoreinta Androidia tukevaan versioon. Aina kun asentaa uusimman TWRP:n, niin ei voi mennä pahasti metsään.
Sen verran teki mieli tarkentaa, että ADB ja fastboot on kaksi täysin eri asiaa. Molempia kyllä käytetään komentoriviltä laitteen kanssa kommunikoimiseen ja osa komennoista on samankaltaisia.
Fastboot on alemman tason protokolla, joka on rakennettu Android-laitteiden bootloaderiin. Sitä voi käyttää vain ja ainoastaan silloin kun laite on käynnistetty bootloaderiin. ADB tarvitsee laitteen puolella käynnissä olevan palvelun toimiakseen (adbd – adb daemon, 'Android debugging' päälle kehittäjäasetuksista niin se käynnistyy). ADB:tä voi käyttää vain ja ainoastaan silloin kun laite on käynnistetty Androidiin tai recoveryyn (stock recoveryt tukee vain ADB:n sideload-tilaa – custom recoveryt myös kaikkia muita toimintoja). ADB ei tee mitään laitteen ollessa käynnistettynä bootloaderiin. Fastbootia ei myöskään kiinnosta onko 'Android debugging' päällä vai ei (esim. jos bootloaderiin voi bootata suoraan näppäinyhdistelmällä, 'adb reboot bootloader'-komennon suorittamiseen se toki pitää olla päällä).
'fastboot reboot' käynnistää laitteen aivan normaalisti uudelleen eli boottaa kylläkin Androidiin (tai mitä sieltä boot-osion takaa löytyykin, voi sen recoveryn tietysti sinnekin flashata ;)).
'fastboot boot recovery.img' boottaa jonkin tietyn imagen esim. vaikka recoveryn.
Mahtavaa sisältöä! Tosin itse en enää ole jaksanut custom rommeilla kikkailla pariin vuoteen
Todella mielenkiintoinen artikkeli tämä. Ihtellä löytyis vanhahko LG G3 johon ei ole päivityksiä tullu enää aikoihin. Tekis mieli kokeilla jotain custom romia siihen.
Enpä ole ennen nähnyt näin kattavaa tietopakettia roottaamisesta. Vieläpä suomeksi. Foorumeilla on varmasti asiaa enemmän kuin ehtii lukemaan, mutta on aivan toista lukea asiasta artikkelimuodossa – alkaen peruskäsitteistä.
En keksi erinomaiseen artikkeliin muuta lisättävää, mutta olisi ollut kiinnostavaa jos tunnetuimpia ROMeja olisi esitelty vaikkapa vain muutamalla sanalla. "ROM X sisältää vain avoimen lähdekoodin sovelluksia, Y on tarkoitettu on asiaan Z".
Ootko tähän törmänny? @FlyingAntero tekee sinne romeista pieniä katselmuksia:tup:
G3 oli vielä varapuhelimeni viime kesällä, kunnes putoi Linnanmäen huvipuistolaitteesta suihkulähteeseen. On ihan käytettävä peli vielä, kun siihen laittaa esimerkiksi LineageOS tai muun rommin.
Kiitoksia :)! Aihepiirissä on varmasti paljon käsiteltävää mutta ajankäytön vuoksi ei voinut ihan kaikkea käydä läpi. Perusasiat oli kuitenkin tarkoitus selventää käyttäjän näkökulmasta. Mukava kuulla, jos siinä tuli onnistuttua. Roottaus prosessista varmasti riittäisi jatkossakin tarinaa.
On sitä luettu, ei kokonaan. Kaipaisin ehkä vielä enemmän rautalankaa. Jos joku kysyisi minulta, mitä eroa on Paranoid Androidilla ja Mokeella, en osaisi vastata. Saati sitten että kumpi kannattaisi valita ja miksi.
Luulen että tuossa on asian ydin, mutta minulle se ei kerro paljoakaan, ilman että otan ensin selvää, mikä on AOSPA tai CAF.
Minusta olisi oikeasti kiinnostavaa, miten kunkin ROMin idean tiivistäisi yhteen lauseeseen.
Itse asiassa minulla oli yhdessä vaiheessa projektina kuvata "kaikki" custom ROMit parilla virkkeellä ja lopuksi vielä yhdellä adjektiivillä. Jonkin verran siinä edistyinkin mutta projekti jäi lopulta pöytälaatikkoon. Pitää ehkä herätellä se vielä henkiin ja julkaista joskus jossain muodossa.
Loistavaa! Kiva nähdä, että täälläkin on puhetta tästä aiheesta
Itsellä on käytössä ollut jo yli vuoden Samsung Galaxy S3 LTE vanhus-puhelimessa Resurrection Remix OS. On se kiva kun on Android 7.1.2.. Virallisesti tuohon saisi vain 4.4.4. Hyvin pelannut alusta lähtien. Ainut negatiivinen mitä olen huomannut on että WhatsAppissa on micin volume kaikkea muuta hiljaisemmalla mutta käytän nykyään sitäkin vain tabletilla.
Redmi Note 4:ää on myyty myös Mediatekin piirillä varustettuna (itsellänikin on valitettavasti sellainen versio), ja ohje ei toimine niissä laitteissa. Jos näin on, niin asia olisi varmaankin hyvä mainita jutussa.
Tuota MediaTek mallia (koodinimi "nikel") ei ole käsittääkseni Suomessa ollut myynnissä mutta olisi asiasta voinut toki mainita. Ohje toimii periaatteessa samalla tavalla mutta tiedostot pitää vain korvata MediaTek mallille sopivilla tiedostoilla (eli etsiä "nikel" nimellä).
MediaTek ei kuitenkaan julkaise lähdekoodeja, joten tuolle ei ole virallista TWRP versiota ja custom ROM valikoima on huomattavasti suppeampi. Tässä joitain vaihtoehtoja:
TWRP
Custom ROM
Nopeasti katselin, että jotkut ominaisuudet eivät toimi ja Android-versio Nougat. Tässä hyvin korostuu, kuinka tärkeää lähdekoodien saatavuus on custom ROMien kanssa.
Onko näissä custom ROM asennuksissa vielä olemassa ongelma, ettei esim mobiilipankit toimi koska rootattu puhelin?
Ainakin tässä tapauksessa testatut mobiilipankit (Danske bank, Nordea, S-pankki) toimi ongelmitta, kuten artikkelissa tosetaan. Nordean sovelluksella tunnistuminen onnistui myös sormenjäljellä. Artikkelissa puhelinta ei kuitenkaan rootattu vaan asennettiin pelkkä custom ROM. Pankkisovelluksien toiminta riippuu siitä, millaisia tunnistusmekanismeja niihin on rakennttu. Jotkut tunnistaa rootin, Safety Netin tai kehittäjä asetuksien aktivoinnin. Roottaus tapojakin on erilaisia (esim SuperSU ja Magisk).
Mitenköhän näiden kiinaluurien tietoturvallisuus custom rommeista huolimatta?
Itsellä on Nexus 6 custom romilla ja rootattu magiskilla. Nordean tunnuslukusovellus ja mobiilipankki toimii. Magiskilla voi roottauksen "piilottaa" sovelluskohtaisesti
Custom romit ovat vapaaehtoisten kehittäjien tekemiä, joten periaatteessa siellä ei ole valmistajan ohjelmistoa jäljellä. Toisaalta custom ROM pohjautuu osittain valmistajan jakamaan (avoimeen) lähdekoodiin esimerkiksi AOSP:n ja CAF:n lisäksi, joten jollain tasolla siellä on valmistajan koodia jäljellä. Custom ROMit ovat kuitenkin käytännössä aina avointa lähdekoodia, joten jos siellä koodissa olisi jotain takaportteja, niin ne tulisi varmaankin ilmi (?). Lähtökohtaisesti avoin lähdekoodi on tietoturvan kannalta positiivinen ratkaisu. Joku kehittäjä varmaan osaisi ottaa tähän paremmin kantaa, sillä minulla ei riitä osaaminen arvioimaan tällaista kokonaisuutta.
Custom ROMien kohdalla bootloaderin avaaminen on itsessään tietynlainen riski mutta toisaalta custom ROMin avulla puhelin on mahdollista päivittää ajantasalle (esim. tietoturvataso), jolloin suojaudutaan taas toisenlaisilta hyökkäyksiltä. Eli vähän tällainen kaksipiippuinen juttu.
Softan puolesta ymmärtää tosiaan ollessa avoimen lähdekoodin alla, yleensä noista kyllä yhteisö aika äkkiä älähtää jos löytyy jotain epäillyttävää. Mutta jos vähän tiukennetaan foliohattua, niin enemmän mietin pääseekö nuo kiinaluurit raudan kautta silti vuotamaan dataa jotenkin vaikka puhelimen mukana tullut softa olisikin vaihdettu.
Hyvin kirjoitettu artikkeli ja jaksoin lukea kokonaisuudessaan, vaikka custom rommien parissa onkin tullut pelattua jo Galaxy S kakkosesta lähtien. Kiinnitin huomiota artikkelissa mainittuun selvitykseen bootloaderista:
"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."
Käsittääkseni perinteinen PC:n BIOS lataa erillisen käynnistyslataajan (esim Grub / Windows bootloader jne.), joka sitten aloittaa varsinaisen käyttöjärjestelmän käynnistämisen. UEFI BIOS toki voi toimia myös käynnistyslataajana ja sillä voi käynnistää suoraan esim EFI stub kernelin, mutta aika harva taitaa tätä ominaisuutta käyttää? Onko Android puhelimissa käytetty bootloader sittenkin lähempänä PC:n käynnistyslataajaa kuin biossia?
Aiheen ja sisällön, selkeyden(!) ja kieliasun puolesta poikkeuksellisen hieno artikkeli.
Kiinnostava artikkel ja on hieman vaikea saada se helposti luettavaan muotoon mutta omasta mielestä onnistuit aika hyvin.
Monelle se on aika iso kynnys asentaa custom rom puhelimeen vaikka se tarjoaa usein ihan hyvin toimivan kokonaisuuden ja ei tarvitse kiroa puhelinvalmistajan etanavauhtia päivityksissä jos edes tulevat.
Tärkeintä tässä on, että laite saa päivityksiä eli valmistaja ei välttämättä tuo päivityksiä ja näillä saadaan jatkettua käyttöä. Sekä saadaan valmistajan laittamat ohjelmat pois eli tätä kautta jopa nopeampi.
Olipas monimutkainen asennusprosessi. Kun kikkailin cyanogenmodin ja S4 activen kanssa niin toiminta oli aika suoraviivaista. Xiaomin kaltaista kikkailua en varmaan jaksaisi…
Itse custom romista jäi vähän ristiriitainen tunnelma. Bugeja oli monenlaisia etenkin kameran kanssa. Jos sattui löytämään vakaan version niin sitä ei uskaltanut päivittää 🙂 Mutta sen verta hyvin pystyi tekohengittämään vanhaa laitetta että oli vaivan arvoista.
Todennäköisesti asennan nykyiseen moto x4:ään customin jahka takuu loppuu ja/tai päivitykset harvenee.
Voit olla ihan oikeassa. BIOS ei ehkä ole paras vertauskuva mutta selventänee kuitenkin bootloaderin merkitystä tässä tapauksessa. Lähinnä halusin vain tuoda esille, että bootloader ei ole osa itse käyttöjärjestelmää, vaan "alempi" ohjelmistokomponentti. En tosiaan ole itse kehittäjä tms. vaan kirjoitan juttuja tavallisen käyttäjän näkökulmasta.
Kiitokset kehuista 🙂
Custom ROMit eivät ole kokonaisuudessaan avointa lähdekoodia. Mukana on iso määrä binäärimuotoisia laiteajureita (AOSP, Nexus/Pixel – https://developers.google.com/android/drivers, LineageOS – TheMuppets). Yleensä nuo on irrotettu valmistajan stock firmwaresta tai toisen valmistajan vastaavasta laitteesta (sama piirisarja yms.), jos alkuperäinen valmistaja ei enää tarjoa päivitystä tiettyyn Android-versioon. Käytännössä mikään (audio, GPU, GPS, kamera, sensorit, videon rautakoodaus, DRM, jne.) ei toimi nykyaikaisessa laitteessa ilman noita omisteisia laiteajureita (proprietary blobs).
Qualcomm on jenkkifirma (ja sen myynti ulkomaille estettiin kansallisen turvallisuuden nimissä), joten jos jostain alemmalta tasolta vuotaa jotain, niin suunta ei ole itään? 😛 Noh, foliohattuilut sikseen. Jos Kiinalaisten tiedonkeruu huolettaa, niin MIUI:n vaihtaminen LineageOS:iin varmasti ainakin parantaa tilannetta alkuperäisestä!
Ei niitä varmaan edes kannata rinnastaa samalla tavalla. Esim. Qualcommin laitteilla on itse asiassa useampi bootloader ketjussa (Qualcomm’s Chain of Trust). Android-laitteiden kohdalla kun puhutaan bootloaderista, yleensä tarkoitetaan tuota viimeistä (aboot – Android bootloader) ja sillä on myös muita tehtäviä (fastboot, boot/recovery, jne). Tuossa vielä hyvää juttua tätä alemman tason bootloadereiden hyödyntämisestä (Exploiting Qualcomm EDL Programmers (1): Gaining Access & PBL Internals).
Usein ennen kun harkitsee custom rom asennusta kannattaa lukea millaiset kokemukset muilla on ollut asentaessa tiettyyn puhelimeen kun jotkut ominaisuudet ei välttämättä toimi.
Itse harkitsin vanhan tablettiin custom romin asennusta mutta siihen malliin ei ollut mitään saatavilla kun oli halpa malli sekä vielä mediatek piirillä oleva mallia.
No menihän se 🙂
Download center | AospExtended
Olin tuon bootloaderin avannut jo joskus viime vuoden puolella, mutta jä homma vähän kesken, kun silloin oli vielä aika huonosti vaihtoehtoja tarjolla.
Vähän tuli sössittyä, kun en muistanut ensin formatoida puhelinta välillä, niin ei onnistunut tiedostojen siirtäminen koneelta. Jotenkin muistaisin että on tämä sama unohtunut viimeksikin Desire HD:n kanssa 😀
Vaikuttaa ainakin näin vajaan tunnin räpläilyn jälkeen toimivalta. Pitää testailla tarkemmin tässä viikolla.
Tuli artikkelin innoittamana kaivettua vanhahko Galaxy S2 kaapista ja runtattua Resurrection Remix OS sisään. Yllättävän jouhevasti toimii Samsungin bloatwarella kyllästettyyn KitKattiin verrattuna.
Mitään varsinaista tarkoitusta operaatiolle tai käyttökohdetta puhelimelle ei ollut, mutta ihan mielenkiintoista testata 8 vuotta vanhaa laitetta Oreon kanssa. :geek:
Just näin, kun ihmiset eivät tiedä paremmasta, niin ostetaan uusia laitteita. Vaikka näillä saadaan jatkettua käyttöä.
Aivan mahtavaa! Ei sitä asennukselle aina tarvi edes välttämättä olla mitään sen suurempaa syytä, vaikka parhaimmillaan custom ROMeilla saakin jatkettu vanhemman laitteen elinkaarta.