Sungstratum iz tima [projekt.] donosi sve tematske dobrote RRO-OMS-a na Samsung Nougat uređaje putem Substratuma! Čitajte dalje da biste saznali više!
Tematizacija Androida prešla je dug put, od hakiranih izmjena do Substratuma i sada, Sungstratum. Godinama unazad riječ "tema" u raspravama o Androidu često je bila zamijenjena riječju "birač", što je znak za T-Mobile Theme Chooser pronađen u CyanogenModu koji je postavio temelje koji su Android učinili temerom raj. Mogućnost izmjene izgleda OS-a korisnicima je omogućila još jednu dimenziju prilagodbe, dopuštajući im promjene koje njihove uređaje čine puno personaliziranijima.
Dobar rad se nastavio u dva različita smjera. Theme Chooser razvio se u CyanogenMod Theme Engine, ali unatoč godinama truda uloženog u tematske resurse, CMTE je postao zastario kada su se pojavile druge alternative.
RRO i slojevi
Temelji jedne od alternativa postavljeni su kada je Sonyjev doprinos kodu u obliku novog okvira tzv. Runtime Resource Overlay (RRO) primljen je u AOSP. Ovaj okvir pruža mogućnost zamjene resursa aplikacije tijekom vremena izvođenja (otuda i naziv). "Overlays" sami po sebi prisutni su i podržani u Androidu još od Gingerbreada (i možda i ranije), prvenstveno se koristio za izmjenu resursa kako bi aplikacije radile na tom specifičnom uređaj. Sonyjev pristup RRO-u uključivao je modificiranje upravitelja imovinom da prihvaća apk-ove koji su koristili resurse preslikane na druge odgovarajuće resurse koji postoje na uređaju. Ovi novi resursi iz apk-a zatim su prekriveni osnovnim resursima samo tijekom izvođenja, dopuštajući sustavu da radi kao da su ti novi resursi oduvijek bili njegov dio.
RRO okvir je spojen u AOSP prije nego što je Lollipop 5.0 objavljen, ali prvih nekoliko verzija 5.0 imalo je dijelove okvira pokvarene zbog drugih promjena. Android 6.0 Marshmallow's Developer Previews prvi su dodali funkcionalni, iako ograničeni RRO okvir, otvarajući vrata mogućnosti prilagođavanja na razini standardnog Androida. Dakle, osim ako OEM nije namjerno pokušao odstupiti od standardnih opcija temiranja Androida, sigurno razina dosljednosti mogla bi se zadržati u pristupu kako bi se 'teme' implementirale Android.
Dok se AOSP igrao s RRO-om i tražio najbolji način da sve to ugradi, tim programera tzv. BitSyko radili zajedno na zajedničkom naporu pod nazivom "Slojevi". Slojevi su prošireni na standardnu RRO funkcionalnost u Androidu 5.1 Lollipop kako bi omogućili složenije prebacivanje resursa i omogućili veću kontrolu elemenata za teme nego što je to moguće sa standardnim RRO-om. Budući da su Slojevi izgrađeni prema gore na RRO-u, proizvođači ROM-a morali su dodati dodatni kod kako bi omogućili funkcionalnost Slojeva u svojim ROM-ovima jer neće sve teme Slojeva raditi na standardnom RRO-u u Marshmallowu.
U međuvremenu, Sony je marširao vlastitim naporima prema Android temama. Počelo se raditi dalje OMS (Usluga upravitelja slojeva), klijent za upravljanje slojevima koji bi pružateljima omogućio dinamičku kontrolu prioriteta te omogućavanje i onemogućavanje slojeva. OMS se spaja s AOSP i ući će u Android O. XDA priznati programer nicholaschum je mogao potvrditi putem svojih izvora da će Android O imati "dinamičke slojeve", za koje se vjeruje da se odnose na OMS.
OMS je uzrokovao sukobe sa slojevima, jer su tradicionalno takve funkcije bile pod kontrolom temera. Kako bi se pozabavili problemima koje je iznio OMS, kao i kako bi proširili funkcionalnost slojeva, BitSyko se ponovno udružio (i preimenovao se u [projekt.]) stvoriti Supstrat. Substratum je klijent s OMS funkcionalnošću koji pokušava pomiriti funkcionalnost slojeva s OMS-om, a također posuđuje druge elemente iz drugih prošlih tematskih rješenja. Slojevi se više nisu preklapali jedni preko drugih kako bi tematizirali pojedinačne elemente, kao sada, svi potrebni elementi umetnuti su u jedan sloj. Značajke poput kompajliranja na uređaju omogućile su primjenu tema bez ponovnog pokretanja između promjena, što je značajno krajnjim korisnicima lakše isprobati teme i eksperimentirati. Substratum je u aktivnom razvoju od svog početka, i navodi sve njegove značajke i dodatna funkcionalnost bila bi izvan opsega ovog članka, pa ćemo prijeći na stvarnu temu ovoga komad.
Supstrat u Sungstratum
Kao što je objašnjeno u prethodnom odjeljku, Substratum je započeo kao način proširenja funkcionalnosti OMS-a, kao i funkcionalnosti RRO-a (kroz slojeve). Substratum je trebao biti korišten uz ROM-ove temeljene na AOSP-u, budući da bi većina drugih OEM-ova napravila proturječne izmjene koji ne bi dopustili Substratumu koegzistiranje s njihovim izmjenama na uređenoj UX koži, kao što je Samsungova za primjer.
Samsung je također radio na rješenju za izradu tema za korištenje na svojim uređajima na Nougatu. Za razliku od Sonya, Samsung nije pokazao interes da vrati tematski kod AOSP-u. Ali budući da je Samsungovo rješenje bilo prilično jednostavno, AOSP nije baš puno gubio. Samsungovo tematsko rješenje ugrađeno u Touchwiz stvarno se pojavilo na Samsung Galaxy S6, ali kao što je spomenuto, bilo je prilično ograničeno u onome što je moglo pokušati postići. Prije toga, postojalo je ograničeno eksperimentiranje koje je započelo s Galaxy Alpha, iako je većina elemenata korisničkog sučelja sustava bila izvan njegovog opsega. Teme bi mogle mijenjati pozadine i ikone kao i nekoliko Samsungovih aplikacija kao što su brojčanik, kontakti, poruke i područje obavijesti, na primjer.
Kako se ispostavilo, Samsungov pokretač tema proteže se RRO kako se nalazi u AOSP-u. Samsung je također ponovno stvorio vlastitu internu verziju OMS-a nakon proširenja RRO-a, tako da se njihove implementacije i RRO-a i OMS-a razlikuju od AOSP-a. Ali iznenađujuće, u ne baš velikom iznosu -- anomalno ponašanje kada se uzme u obzir posebnost i složenost Touchwiza. Autori tema koji koriste novije vodeće modele Samsunga izvijestili su da mogu instalirati RRO slojeve i dati im tematizirati aplikacije trećih strana.
Ovo je bio znak koji je tim [projekt.] trebao razmotriti službenu podršku za Samsung uređaje na Substratumu. Tim je pretvorio malu količinu koda iz svog RRO/Legacy odjeljka svoje aplikacije, ali umjesto zahtijevajući root i tražeći ponovno podizanje sustava, aktivirali su određene namjere tako da su slojevi instalirani. Tim je zatim radio na tome da se aplikacije na koje teme utječu prisilno zatvore u pozadini kako bi se osiguralo potpuno osvježavanje sredstava pri sljedećem pokretanju.
Pitali smo XDA Recognized Developera nicholaschum kako bi nam pružili neke uvide u izazove s kojima se tim suočio radeći protiv Samsungove zatvorene implementacije RRO-OMS-a:
Izazovi s kojima smo se suočavali bili su prilično nejasni i nepoznati mnogima koji nemaju puno znanja razumijevanje sustava temiranja, bilo otvorenog ili zatvorenog izvora - sve ima vlastitu probu i faza greške. U ovom slučaju, radeći sa Samsungom, naišao sam na mnoge probleme, ali glavni je bio da namjere sustava nisu pokrenuti za preklapanje nakon dovršetka instalacije - kao što je korištenje prijemnika emitiranja s “android.intent.action. PACKAGE_ADDED” - Theme Service uskraćuje sve što nije dio potpisa sustava s određenim Samsungom dopuštenje servisa teme od primanja toga, tako da je najteži dio zaobilazna rješenja za koja smo morali pronaći način oko.
Način na koji koristimo Substratum uz Samsungov Theme Engine je korištenje istog sustava kao i oni. Oni koriste visoko modificiranu verziju Sonyjevog sustava Resource Runtime Overlay, skraćeno RRO ili poznatog kao legacy među korisnicima Substratuma. Međutim, ono što se razlikuje je to što Samsung teme imaju dodatnu dozvolu koja skriva ove slojeve iz postavki, tako da ih ne možete ručno deinstalirati jednu po jednu. Koristimo isti sustav, ali koristimo AOSP-ovu/Sonyjevu implementaciju, zbog čega Samsung teme mogu u potpunosti tematizirati okvir, dok Prekrivanja supstrata ne mogu dodirivati cilj posrednika koji ne postoji "fwk" - kao što svi znamo okvir je samo "android" paket Ime.
Činilo se čudnim da je [projekt.] mogao relativno lako raditi uz Samsungovu RRO implementaciju. Svatko tko je ikada radio na Samsung uređajima može potvrditi koliko teško Samsung često čini stvari. Raspitali smo se za bilo koji određeni blok na koji je tim naišao tijekom porta:
Doista postoji neka vrsta sigurnosnog mehanizma koji je utjecao na nekoliko korisnika - gdje se slojevi vraćaju pri pokretanju. To je zbog načina na koji Samsung pokreće svoj uređaj. Budući da smo uglavnom svi na 7.0 na TouchWiz/Samsung Experience, koristimo novu metodu "Optimiziranja aplikacija" (ovo možete vidjeti kada ažurirate svoj telefon, prikazat će obavijest s ikonom Android Nougat, govoreći da se nadograđuje u pozadini), tako da ovaj način optimiziranja aplikacija također oslobađa cilj paketi, što u konačnici ometa proces idmappinga pri dizanju (zbog nepostojanja ciljnog paketa) i stoga nekoliko ljudi doživi istovar sloja nakon ponovno podizanje sustava.
Također možete vidjeti da se to događa i s nekoliko Samsung tema, posebno @envy~-ovom Dark/Black temom - on čini zadanu boju navigacijske trake u Zaslon -> Navigacijska traka crnom, gdje je i stvarna zadana boja bijela. Nakon što ga postavite na crno, možete otvoriti tipkovnicu, a navigacijska traka ostaje crna. To će se nasumično poništiti pri ponovnom pokretanju i na mnogim uređajima.
Budući da tematiziranje ponovno dobiva na značaju, kakvi su planovi Substratuma za bočne grane kao što je Sungstratum?
Pred nama ćemo spojiti malu malu aplikaciju u naš dodatak za naše trenutne korisnike kako bi oni moći zaustaviti Samsung Theme Service ako su sve teme instalirane na njihovim uređajima instalirane s XDA. Dakle, ljudi koji će koristiti teme u formatu Samsungove teme s XDA, moći ćete koristiti dodatak za sprječavanje Samsungova usluga od vraćanja na temeljnu temu nakon svakog ponovnog pokretanja (jer nije instalirana iz Samsungove trgovine službeno). Zahtijevat će besplatni ključ Samsungovog razvojnog programera koji se može nabaviti na njihovoj stranici, ali bit će unaprijed u paketu s preuzimanjem sungstratum dodatka.
S nedavnim i nadolazećim promjenama u AOSP-u i Androidu O, čini se da će Googleov nekoć novi OS imati još više personalizacije koja će se prenositi na korisnika. Određeni proizvođači originalne opreme čak se planiraju riješiti svojih prilagođenih korisničkih sučelja i UX dodataka u korist AOSP-a, a drugi poput Samsunga lebde dovoljno blizu sa svojim vlastitim tematskim rješenjima. Predviđamo budućnost u kojoj teme igraju glavnu ulogu u korisničkom iskustvu još većeg broja ljudi - OS gdje doista kontrolirate kako vaš uređaj izgleda, gdje estetiku korisničkog sučelja sami krojite vas. A takvu budućnost ne bismo mogli postići bez kolektivne snage ove sjajne zajednice i projekata poput Substratuma.
Provjerite Substratum integraciju za Samsung Nougat na našim Substratum forumima!Podloga na GitHubu