Android Custom ROM - kālab privātie var to, ko ražotāji nespēj?
Kā ierosme šā rakstiņa uzrakstīšanai kalpoja manis veiktā Android 5.1.1 Lollipop (CM 12.1) veiksmīgā instalācija uz viedtālruņa Samsung Galaxy S3 Mini (GT-i8190). Pats ražotājs modeli izlaida ar Android 4.1.1 uz borta, pēc tam atjauninot to uz 4.1.2. Un tas arī viss. Pamēģināsim noskaidrot, kāpēc privātie izstrādātāji var to, ko ražotāji nespēj. Jo nevienam nav noslēpums, ka nereti izdodas pilnvērtīgi portēt jaunākos Android laidienus uz tādām ierīcēm, par kurām paši ražotāji paziņojuši konkrēti: nē, tas nav iespējams tīri tehnisku iemeslu dēļ. Visbiežāk ir tā - kad iznāk jauns Android laidiens, kompānijas pat nav izlēmušas, kurus modeļus jauninās un kurus ne, bet portāls XDA-Developers pēc pāris nedēļām jau piedāvā gatavus ROM. Protams, sākumā tie mēdz būt nepilnīgi, bugaini, bet mēneša vai divu-trīs laikā ar atjauninājumu palīdzību laidieni kļūst perfekti.
Kam tas ir vajadzīgs?
Privātajam viss ir vienkārši: viņš jaunāko Android uz savas ierīces portē vienkārši prieka pēc. Alternatīvais variants - lai pierādītu savu varēšanu un kļūtu pazīstams. Advancētākie frīlanseri vienkārši ņem izejas kodu, un paši prot piekodēt/uzlabot/optimizēt draiverus un zemā līmeņa kodu bibliotēkas. Prastākie mājas izstrādātāji vienkārši liek kopā savu ROM no dažādu avotu "LEGO klucīšiem".
Ražotājiem situācija ir pavisam savādāka. Viņiem atjaunināšana ir kā suņanagla pakaļā. Vienmēr ir jāskaitļo - ko atjaunināsim un ko ne, un vai tas būs izdevīgi. Jo budžeta rāmīšos jāiekļaujas, izstrādātāju kolektīvs ir tikai tik liels, cik viņš ir, un varbūt tiešām gudrāk pārmest spēkus uz jaunu modeļu izstrādi nekā lāpīt vecos? No otras puses - jāsaglabā sava pozitīvā seja arī pircēju vidū. Atjauninājumi ir kā signāls, ka kompānija par viņiem rūpējas, un kalpo par stimulu nākamā viedtālruņa iegādei pie šīs pašas firmas. Neko nejaunināt ar domu "pircējs ātrāk nopirks jaunu" arī nevar - jā, pircējs nopirks, bet pie konkurenta.
Tālāk nevar neņemt vērā birokrātiju, kas vairāk vai mazāk valda jebkurā kompānijā. Ļoti iespējams, ka priekšnieks var būt tehniski stulbs, un ja izstrādātājs paziņo, ka 3 dienās spēj konkrētam modelim uztaisīt portu jaunajam Android, viņu vienalga nosūta strādāt pie cita uzdevuma. Bet tehniski stulbs priekšnieks tikpat labi var būt ļoti gudrs ekonomikas jomā, un viņš jau visu būs izkalkulējis. Tāpēc šādu attieksmi arī uzskata par normālu. Primārais - nopelnīt.
Prasības portēšanai
Privātajiem viss ir vienkārši, viņi ne ar ko neriskē. Visādas vairāk vai mazāk ievērojamas kļūdas tiek piedotas, jo "nākamajos jauninājumos viss tiks izlabots". Var būt veiktspējas kritumi atsevišķās operācijās, var nestrādāt kādas programmas vai spēles. Ja ROM iznācis kā beta versija - visi to sapratīs. Nu un izteikums "man nav labāka kameras draivera" arī tiek saprasts. Nereti ražotājs līdzekļu ekonomijas nolūkos savos izstrādājumos pielieto dažādu firmu čipus (piemēram Wi-Fi čipi mēdz būt no Atheros, Broadcom, Ralink utt.) Ar vienu ierīce darbojas nevainojami, bet ar citu lago. Kaut arī čipi tikpat kā identiski. Ja 95-99% gadījumu panākta normāla sistēmas funkcionēšana, tas privātajam skaitās normāli. Sīko kļūdu izķeršana prasa milzīgu laika patēriņu, un ne vienmēr tā ir. Daži cīnās līdz galīgai uzvarai, citi atstāj kā ir - jebkurā gadījumā tālruņa īpašniekam ir izvēle.
Ražotājam viss ir daudz, daudz dzelžaināk. Pamatprasības:
1. Pēc atjaunināšanas Androidam noteikti jādarbojas labāk nekā pirms tās. Patērētājiem nekādā gadījumā nedrīkst rasties vēlēšanās veikt downgrade, jo šādā gadījumā kompāniju nolies ar vēl lielāku dubļu straumi nekā tad, ja jaunināšana vispār nenotiktu.
2. Ja privātajam porta normāla darbība uz 99% ierīču skaitās superīgs rādītājs, tad ražotājam ir jābūt visi 100% - neatkarīgi no tā, kādas komplektējošās daļas tur ir salodētas.
3. Nedrīkst būt nekādu patērētājam jūtamu kļūdu. Tāpēc jāveic visaptveroša testēšana. Bet "testētāju par algu" ir tikai tik daudz, cik viņu ir. Kas nekait vairāk pazīstamiem privātizstrādātājiem? Publicē jauno ROM, un forumā apkopo atsauksmes.
Tālāk - lai portētu Android, šis tas arī ir vajadzīgs. Pats pirmais - jaunā Android izejas kodi un PDK (Platform Development Kit). Otrais - vajadzīgs kodols, draiveri un zemā līmeņa kodu bibliotēkas, kas ietilpst HAL (Hardware Abstraction Level) sastāvā. Pēdējais arī noteica, cik grūti agrāk bija portēt Android 4.0 uz Gingerbread (2.3) ierīcēm - tur HAL bija pilnīgi atšķirīgi. Vienīgais, kur to var dabūt - pie procesoru ražotājiem. Bet tādi kā Mediatek, Rockchip, vai Broadcom ar jaunāku Androidu atbalstu savos procesoros tikpat kā nenodarbojas. Jā, ir varonīgi mājas izstrādātāji, kuri HAL kodē paši. Tāpēc arī savulaik izdevās uzinstalēt pilnvērtīgu Android 4.0 modeļiem Motorola Droid 2 un Motorola Defy.
Kad atjauninājums kļūst pieejams patērētājam?
Privātajiem izstrādātājiem ir milzīgas priekšrocības: var publicēt pavisam zaļu alfa versiju, apkopot atsauksmes un kļūdu ziņojumus, un attīstīt laidienu tālāk. Tāpēc arī no jaunu Googles Android iznākšanas līdz lietojamiem ROM laiks nereti mērāms dienās.
Ražotājiem tādu ekstru nav. Viss jāveic slēgtos pusslepenības apstākļos. Tikai kad lielākā daļa kļūdu izķertas, un atjauninājums kļuvis puslīdz lietojams, to izsniedz nelielam skaitam beta testētāju. Tātad kamēr privātajiem ir tūkstoši testētāju visā pasaulē (un viņu vidū mēdz būt arī profesionāļi) - kompānijām parasti ir tikai desmiti. Lūk arī iemesls, kāpēc jaunināšanas process velkas daudzus mēnešus.
Kas šobrīd notiek Android 6.0 Marshmallow frontē? Sākot ar novembri, ar nosaukumu Cyanogenmod 13.0 šī OS būs pieejama uz daudziem tālruņu modeļiem, arī uz paveciem flagmaņiem kā LG G2 vai Sony Xperia Z. Jā, un arī uz Nexus 4, kam Google oficiāli atteica jaunināšanu. Īpašs gadījums ir ar Samsung: viedtālruņiem ar Snapdragon procesoriem problēmu neesot, un CM 13.0 būs jau drīzumā. Toties par Exynos procesoriem Samsung nesadarbojas, tāpēc par Galaxy S6, S6 Edge, S6 Edge Plus, Note 5 pagaidām klusums. Par CM 13.0 uz Exynos tālruņiem kā Galaxy S4 un S5 varot vispār aizmirst. ROM lejuplāde būs pieejama šeit.
Avots: J. Zobņins "Kāpēc tik lēni, brāl?" (Xakep Nr.10/2015)
_________________