Ekskluzivno: Android Oreo bo v 1 tednu prejel brezkoreninsko podporo za celotno sistemsko temo

Googlova najnovejša izdaja Android Oreo že ima vgrajeno podporo za domače teme in zahvaljujoč mehanizmu za teme Substratum bo na voljo čez 1 teden.

Posodobitev 13. 9. 2017: Izdan je bil dodatek Andromeda za Substratum, ki omogoča teme po meri na napravah Android Oreo, ki niso zakoreninjene. Za dodatne podrobnosti glejte ta članek. Originalni članek bo ostal spodaj.

Z vsakim nova izdaja Googlovega operacijskega sistema Android, je za večino uporabnikov manj razlogov rootati svoje naprave. Vendar pa je med preostalimi uporabniki, ki se še vedno odločijo za rootanje svojih naprav, eden najpogosteje navedenih razlogov omogočanje podpore za temo celotnega sistema. Običajno se to upravlja prek Substratuma okvir teme vse odkar nesrečen propad tematskega mehanizma CyanogenMod. Sčasoma se ekipa za Substratum trdo delal, da bi vključil podporo za več naprav z vključitvijo podpore Substratum na ravni ROM tako da bi lahko deloval brez korenskega dostopa. In zdaj je ekipa projekt popeljala dlje, kot bi si kdorkoli od nas lahko predstavljal 

popolna sistemska podpora za teme brez roota za katero koli napravo Android Oreo.

Posnetki zaslona prikazujejo Saijeva črna tema za Android Oreo deluje na neukoreninjenem Google Pixelu v sistemu Android Oreo 8.0.0

Da vam predstavim, kako to je neverjeten razvoj, upoštevajte, da bo zdaj mogoče naslednje brez korenine:

  • Tematizacija Android Framework in uporabniški vmesnik sistema Android, kot tudi vse druge sistemske aplikacije. (Veliko vas bo ljubezen končno na voljo temna tema!)
  • Tematiziranje katero koli aplikacijo tretje osebe
  • Pisave po meri za aplikacije tretjih oseb
  • Številne druge modifikacije, kot je modifikacija sredinske ure v vrstici stanja

Seznam se nadaljuje! Substrat ima obsežen seznam razpoložljivih tem ki podpirajo okvir (vse so podprte v tej prihajajoči novi različici Substratuma za Android 8.0), aktivna skupnost na Google+ in naše lastne forumi, in glede na ta razvoj bo podpora samo še rasla!


Android Oreo in storitev Overlay Manager

Vzorec nekaterih tem substrata.

Odkar je Google vključen izvorna podpora za Sonyjev Runtime Resource Overlay (RRO) tematski mehanizem v sistemu Android 6.0 Marshmallow, čakali smo da Google zagotovi vgrajen vmesnik in javne API-je, ki jih lahko razvijalci uporabijo za tematiziranje sistemskih okvirnih aplikacij in aplikacij tretjih oseb. Žal je izdaja Android Nougat prinesla le malo novosti, odkar je bil Sonyjev RRO dodan projektu Android Open Source Project (AOSP).

Toda zahvaljujoč prizadevnemu delu inženirjev pri Sony Mobile se je tematski mehanizem RRO sčasoma razvil v tako imenovano storitev Overlay Manager (OMS), na kateri temelji Substratum. Sony je bil pionir v zvezi z odprtokodno tematizirajočo rešitvijo, a ker je bil njihov tematski mehanizem OMS sprejet v AOSP okrog V času končne izdaje Androida 7.1 je edini način, da uporabniki naprav, ki niso Sonyjevi, izkoristijo prednosti mehanizma za teme prek ROM.

To se je spremenilo v Androidu 8.0. Ko je bil Substratum prvotno izdan za prvih nekaj predogledov razvijalcev za Android O, so razvijalci Substratuma spoznali, da popolna podpora za Sony OMS je bil na voljo. To pomeni, da bi lahko uporabnik namestil obstoječo temo, ki jo podpira Substratum, in bi v celoti delovala v napravah Android Oreo, ne da bi potrebovali kakršne koli popravke ROM-a. Obstajala pa je le ena težava: postopek omogočanja nameščene teme Substratum je zahteval korenski dostop, vsaj tako so mislili.


Brezkoreninska, sistemska podpora za temo Substratum za Android Oreo

Medtem ko se razvijalci tiho ukvarjajo s tem, da uporabnikom Androida Oreo na hrbtni strani zagotovijo popolnoma brezkoreninsko rešitev za teme zapisovalnika, smo neodvisno kopali v vsak Android O Developer Preview in našli dokaze o tem, da je v igri mehanizem, čeprav smo ga napačno identificirali ker temelji na starejšem RRO in ne na novejšem Sonyjevem OMS. Google je celo dražil skupnost glede podpore tem v a AMA, osredotočena na razvijalce na Redditu, ki navaja, da je treba premagati še nekaj ovir, preden bo mogoče v Android vgraditi popolno tematizirano rešitev.

Ker nismo bili zadovoljni s tem odgovorom, smo želeli videti, kako daleč je šel Google pri pridobivanju podpore za teme za Android Oreo. Da bi to naredil, sem se zakopal v izvorna koda Androida 8.0 ko je padla končna izdaja, in odkril obstoj lupinskih ukazov ADB, ki bi lahko omogočili ali onemogočili prekrivanja, o katerem je pisatelj XDA Adam Conway poročal včeraj.

Onemogočanje privzetega prekrivanja

Sprva nad ugotovitvijo nisem bil preveč navdušen, saj je bilo po mojem takratnem vedenju funkcionalno neuporabno, saj smo jaz in moji kolegi menili, da namestitev tema še vedno zahteva korenski dostop, saj bi bilo treba datoteke teme premakniti v mapo, ki ni dostopna uporabniškemu prostoru (v /system/vendor/overlay, kar je način RRO deloval). Nikolaj Čum sam, eden od vodilnih razvijalcev za Substratumom, je našo objavo komentiral, da se je za obstoj teh ukazov zavedal že kar nekaj časa in ga že uporablja za različice Android O.

Ena oseba pa je videla priložnost, ko smo včeraj objavili naš članek. XDA je zelo lasten Jeff Corcoran, razvijalec za našim internim podjetjem Aplikacija XDA Labs, ugotovil, da obstaja možna rešitev, da bi izvorni vmesnik ukazne vrstice Android Oreo za OMS deloval brez roota. Vključevalo je metodo, ki jo je uporabil Helij, priljubljena nekorenska rešitev za varnostno kopiranje, v zadnjem času pa odprtokodna alternativa Greenify, znana kot Brevent.

Povišani privilegiji prek skripta

Običajno je "prekrivanje cmd" Ukaze, ki jih je Google dodal izdaji Oreo, je mogoče izvajati samo prek naprave s korenskimi pravicami ali prek naprave, povezane z računalnikom, ki kliče lupino Android Debug Bridge (ADB). Peščica pametnih razvijalcev, kot sta razvijalca Helium in Brevent, je z leti ugotovila kako v bistvu dvigniti privilegije aplikacije, ki se izvaja na telefonu, da se ujemajo s privilegiji ADB lupina. Pri tem lahko aplikacija pošilja ukaze, ki jih običajno zaradi omejenih dovoljenj ne bi mogla. V primeru Substrata to pomeni aplikacija lahko namesti in nato omogoči ali onemogoči teme Substratum brez korena.

To spoznanje je bilo a glavni preboj, ki so ga odkrili šele včeraj zvečer. V nekaj urah je Nicholasu (s pomočjo Jeffa) uspelo ustvariti hitro alfa različico upravitelja tem Substratum brez korenin za naprave Android Oreo. In deluje – vendar z nekaj opozorili.

Opozorila glede podpore brez korenin

Postopek, potreben za dodelitev povišanih privilegijev lupini Substratum ADB, bo zahteval uporabo zelo preprosta in lahka namizno aplikacijo (ali samo ukaz lupine ADB, če veste, kaj počnete). Ko bo Substratum odobren, bo deloval, kot bi pričakovali, saj bo lahko upravljal vse vaše nameščene teme Substratum. Vse teme, ki jih namestite, bodo ostale nameščene dokler ga znova ne odstranite prek Substratuma.

Vendar pa so privilegiji, ki jih prejme Substratum, prehodni, saj se izgubijo, ko uporabnik izvede popoln ponovni zagon (čeprav mehki ponovni zagoni sistemskega uporabniškega vmesnika na srečo ne izgubijo privilegija). To pomeni, da boste morali znova zagnati namizni program, če ste znova zagnali telefon in želite uporabiti Substratum za dodajanje, odstranjevanje ali spreminjanje teme. To želim še enkrat ponoviti vse teme, ki jih namestite, bodo ostale nameščene tudi po ponovnem zagonu, kar pomeni, da bi to moralo biti kot nalašč za vas, če bi radi samo občasno spremenili nekaj tem. Prav tako bi morali imeti možnost preklapljati med temami v meniju Nastavitve, kot Možnost "Tema" v predogledu razvijalca pod Nastavitve zaslona nato prepozna nameščene teme in omogoča preklapljanje med njimi

Nazadnje, zadnja stvar, ki jo moram omeniti, je nekaj, kar se zdi očitno, ko pomislite na to, a ste v svojem navdušenju nad novicami morda pozabili. Vaša naprava še vedno ni zakoreninjena. To pomeni, da se ne morete dotakniti ali spremeniti nobene datoteke, ki za urejanje nujno potrebuje korenski dostop, tudi če je tema Substratum, ki ste jo namestili, obljubila, da bo nekaj spremenila. Oprostite, toda na žalost to pomeni, da ne morete uporabiti spremembe pisave za celoten sistem vrnitev emojijev v obliki madežev, čeprav, kot je bilo omenjeno na začetku, je je mogoče, da tema Substratum spremeni pisave posameznih aplikacij.

Potreba po substratu

Opustimo zdaj pomembno podrobnost. Kdaj bo to? Kot je navedeno v naslovu, bi morala biti prva javna dostopnost substrata brez korenin za naprave Android 8.0, kot so Google Nexus 5X, Google Nexus 6P, Google Pixel in Google Pixel XL. v 1 tednu. To je ni garancija na kakršen koli način, saj se lahko v procesu razvoja stvari spremenijo, kar lahko zahteva dodaten časovni vložek, a saj je OMS že v celoti podprt v AOSP, vse, na čemer ekipa Substratuma zdaj dela, je vmesnik med aplikacijo Substratum in unrooted naprave.

Naslednje: bo brezplačno? št. Substrat za nekorenjene naprave Android Oreo bo a plačana aplikacija. Ne morem vam povedati, koliko bo stalo, ker se Nicholas še ni odločil za ceno, vendar ste prepričani, da bo cena poštena glede na vrednost tega, kar boste prejeli. Do te točke je bil Substratum prosto dostopen za številne naprave, zato razmislite o podpori tovrstnega razvoja tako, da najprej podprete Team Substratum. Lahko počakate, da Google sčasoma izda tisto temno temo, ki ste si jo vedno želeli (ha, dobro eno), lahko pa vržete nekaj penijev v podporo neodvisnemu razvoju, ki ga mnogi ljudje imajo odobreno.

Še vedno niste prepričani o njegovi vrednosti? Ti lahko poskusi nameščanje tem Substratum na vašo napravo 8.0 brez korenin. Pravzaprav smo zgoraj naredili točno to. Seveda nam je pri tem nekoliko pomagal Nicholas. Če želite namestiti obstoječo temo Substratum iz trgovine Google Play, so tukaj naslednji splošni koraki:

  1. Prenesite in namestite datoteko APK v svojo napravo.
  2. Ekstrahirajte vsebino in sestavite vsako prekrivanje v posamezno datoteko APK za vsako aplikacijo, za katero želite, da je tematizirana
  3. Namestite vsako posamezno prekrivno datoteko APK, ki ste jo ročno prevedli v 2. koraku
  4. Za vsak prekrivni APK, ki ga namestite, zaženite naslednji ukaz, da ga omogočite: cmd overlay enable
  5. Če želite spremeniti prioriteto prekrivk, uporabite: cmd overlay set-priority PARENT|lowest|highest
  6. Seznam vseh vaših nameščenih prekrivk z: cmd overlay list
  7. Odstranite vse prekrivne elemente, ki jih ne želite: cmd overlay disable

Če res želite uporabljati ukazno vrstico za upravljanje tem, bodite naš gost! Osebno se mi je zataknilo pri koraku št. 2. Substratum ne uporablja neke skrite metode, ki se je ne morete domisliti sami, ampak jo ustvarja daleč lažje upravljate. Kadar je mogoče nekaj narediti ročno, vendar lahko aplikacija to naredi namesto mene veliko lažje, preprosto pustim aplikaciji, da opravi svoje delo. Ampak to je odvisno od tebe.

Osebno sem res, res navdušena da vidim, kam to pelje. Za vse naprave, ki še ne podpirajo vgrajenega sistema za upravljanje tem (kot so naprave Motorola ali OnePlus), imate zdaj še en razlog, da se veselite posodobitve za Android 8.0. Tisti, ki imate srečo, da že okusite ta sladki Oreo, imate nekaj, česar se lahko veselite čez 1 teden.


P.S. Uporabniki Samsunga, ali ste poznali svoje naprave že podpira teme Substratum brez potrebe po rootu?

P.P.S Ali ste razvijalec in želite izvedeti več o Substratumu? Oglejte si Nicholasovo odlična predstavitev diaprojekcije tukaj!