Google ar putea activa în sfârșit teme personalizate construite pe cadrul RRO de la Sony

Previzualizarea pentru dezvoltatori Android O are o setare misterioasă a temei de afișare. XDA a ajuns la concluzia că acest cadru de tematică se bazează pe RRO de la Sony.

În cazul în care nu știți deja, Google a lansat cea de-a doua Android O Developer Preview (Android O DP2) în timpul evenimentului I/O de ieri. Am făcut-o deja am făcut o scufundare profundă în tot ce am găsit până acum, dar a fost un lucru la DP2 care mă deranja. Toţi cei care a primit actualizarea beta sau a flash-o manual noile imagini au fost întâmpinate rapid cu o UI radical diferit în setări rapide. De ce a decis Google să schimbe tema? După mai multe teste și săpături, am ajuns la o concluzie. Indiferent de motiv, Google a decis să-l facă Tema „inversată”. tema implicită; poate în timp ce compania era în mijlocul testarea unei soluții de tematică personalizată bazată pe Suprapunerea resurselor de rulare de la Sony (RRO), nu au reușit să facă ca tema implicită Pixel să funcționeze la timp pentru lansarea Android O Beta.

Tema de sistem implicită în Android O Developer Preview 2

Dezvăluirea că cadrul tematic al Android O se bazează pe RRO de la Sony poate părea evidentă pentru unii, având în vedere că Google a implementat suport pentru RRO în Android 6.0 Marshmallow, deși era necesar să aveți un dispozitiv rootat. Cu toate acestea, deoarece codul sursă pentru Android O nu a fost lansat, ar fi fost pură speculație să sugerăm că această temă de sistem din Android O este de fapt RRO. De aceea noastre acoperire inițială a acestui decor misterios, precum și acoperirea făcută de alte site-uri web, nu a făcut această legătură. Dar există mai multe dovezi care leagă această caracteristică de cadrul tematic despre care credem că ar trebui să arate în mod concludent acest lucru Tema dispozitivului Android O se bazează pe RRO. Cu sprijinul RRO la bord, acest lucru poate Oferim în sfârșit soluția de tematică pentru utilizatorii nerootate pe care i-am așteptat cu toții.


Ce este Runtime Resource Overlay (RRO)?

RRO este un cadru tematic creat de dezvoltatorii Sony care au alimentat Temele Sony Xperia. Frumusețea RRO este că vă permite să înlocuiți resursele aplicației fără a fi nevoie să modificați codul sursă al aplicației. Acest lucru se întâmplă prin utilizarea unei suprapuneri, care conține propriile șiruri de resurse care sunt utilizate pentru a înlocui resursele aplicației suprapuse în timp ce aplicația se încarcă.

Pentru cei dintre voi care vedeți „RRO” și se gândesc la „Layers”, sunteți destul de aproape. Layers este o versiune ușor modificată a RRO de la Sony, dar la nivelul de bază funcționează foarte similar. RRO/Layers „instalează” teme APK-uri în /system/vendor/overlay. La pornire, managerul de pachete citește aceste APK-uri, le verifică, apoi le folosește idmap pentru a-l conecta la tabelul de resurse de sistem. Puteți citi întrebări frecvente mai detaliate de către SykoPompos, dezvoltatorul (acum depreciat) Manager de straturi aplicația.

Capturi de ecran ale aplicației Deprecated Layers Manager


Lectură recomandată: O scurtă istorie a tematicii: de la teme OEM la straturi RRO


Desigur, puțini din comunitatea ROM personalizată Android folosesc încă un motor de temă bazat pe RRO. Majoritatea au trecut la un alt motor de tematică, cum ar fi Substratul, care este o evoluție a Straturilor bazată acum pe Serviciul Manager de suprapunere (OMS). (CyanogenMod Theme Engine (CMTE) a fost totuși un alt cadru de tematică popular viitorul ei este încă în aer.) Cu toate acestea, chiar dacă nu utilizați un ROM personalizat cu comiterile OMS, Aplicația pentru motorul temei substrat acceptă în continuare abilitatea de a utiliza teme „Substratum Legacy”, care sunt doar teme RRO/Layers. Și din această cauză, utilizatorii au început să-și dea seama că temele dispozitivului Android O și RRO sunt una și aceeași.


Google introduce în sfârșit tematică prin RRO

Peste pe secțiunea de comentarii a unui Android Poliție articol, Dezvoltator recunoscut XDA Maxr1998 a postat o captură de ecran în care susține că temele Substratum Legacy apar în selectorul de teme a dispozitivului Google.

În stânga, puteți vedea o listă de APK-uri suprapuse instalate de Maxr1998 pe Android O Developer Preview 1. În dreapta, puteți vedea cele două opțiuni de teme în Android O Developer Preview 2. Anterior în Android O DP1, cele două opțiuni au fost „Pixel” și „Inversat” cu „Pixel” setat ca implicit, în timp ce „Inversat” seamănă cu aspectul și senzația în scala de gri care este implicit în O DP2.

Dar aruncați o privire atentă la numele temei implicite din O DP2. Se numește „android.auto_generated_rro”. Într-adevăr, un nume foarte ciudat, dar includerea „RRO” în nume este ceea ce m-a făcut să cred mai întâi că acesta este într-adevăr RRO-ul Sony.

M-am gândit apoi, dacă acesta este într-adevăr RRO, unde altcineva pot căuta pentru a corrobora acest lucru? Aceste gânduri m-au determinat să verific /system/vendor/overlay și, așa cum era de așteptat, există într-adevăr două fișiere APK situate în: framework-res__auto_generated_rro.apk și PixelThemeOverlay.apk.

Ambele se potrivesc cu numele temelor din setările de afișare. În mod curios, când selectați tema Pixel în setările afișajului, aceasta nu funcționează. Nu sunt un expert în dezvoltarea temelor RRO, așa că nu pot spune de ce nu funcționează tema Pixel, deși, efectuând o demontare APK a ambelor aplicații, este clar că acestea sunt într-adevăr suprapuse aplicații.

Demontare APK PixelThemeOverlay.apk

[file][tab title ="AndroidManifest.xml"]


package="com.google.android.theme.pixel" platformBuildVersionCode="25" platformBuildVersionName="O">
<overlayandroid: priority="1"android: targetPackage="android"/>
<applicationandroid: hasCode="false"android: label="@string/pixel_overlay_pixel"/>
manifest>

[/tab][tab title ="strings.xml"]


<resources>
<stringname="pixel_overlay_pixel">Pixelstring>
resources>

[/tab][titlul filei ="colors.xml"]


<resources>
<colorname="user_icon_1">#ff5e97f6color>
<colorname="user_icon_2">#ff5c6bc0color>
<colorname="user_icon_3">#ff26a69acolor>
<colorname="user_icon_4">#ffec407acolor>
<colorname="user_icon_5">#ff33ac71color>
<colorname="user_icon_6">#ff8bc34acolor>
<colorname="user_icon_7">#ffff9800color>
<colorname="user_icon_8">#ffff7043color>
<colorname="system_error">#ffea4335color>
<colorname="primary_device_default_dark">#ff2d2d2dcolor>
<colorname="primary_device_default_settings">#ff2d2d2dcolor>
<colorname="primary_dark_device_default_dark">#ff242424color>
<colorname="primary_dark_device_default_settings">#ff242424color>
<colorname="secondary_device_default_settings">#ff3a3a3acolor>
<colorname="tertiary_device_default_settings">#ff616161color>
<colorname="quaternary_device_default_settings">#ff9e9e9ecolor>
<colorname="accent_device_default_700">#ff3367d6color>
<colorname="accent_device_default_light">#ff4285f4color>
<colorname="accent_device_default_dark">#ff5e97f6color>
<colorname="accent_device_default_50">#ffe8f0fecolor>
resources>

[/fila]

[/tabs]

Dacă scapi peste documentația RRO furnizat de Sony, este clar că aceasta ar trebui să fie o temă RRO. În fișierul AndroidManifest, linia de suprapunere indică faptul că această suprapunere vizează fișierul framework-res.apk ("android") și are o prioritate de "1", care este cea mai mare prioritate care i se poate acorda.

Pe de altă parte, în fișierul framework-res__auto_generated_rro.apk este un fișier AndroidManifest.xml cu aspect similar, dar există o mulțime de alte șiruri prezente care nu au legătură cu tematica. Dar acest lucru este ușor de explicat prin faptul că această temă RRO este practic o versiune redusă a framework-res.apk de la Google Pixel, care mi-am dat seama că este adevărat, deoarece \res\values\bools.xml are linia true despre care știu dintr-o postare pe forumul nostru că este o linie pe care utilizatorii trebuie să setați pentru a activați suportul Round Icon la nivelul întregului sistem.


Concluzie

Testerul meu nu a reușit încă să obțină acces rădăcină în O DP2 pentru a încerca să ruleze o temă Substratum Legacy/RRO, dar având în vedere propriile mele descoperiri și cele ale lui Maxr1998, pot spune că S-ar putea ca Google să se pregătească în sfârșit să aducă tematică RRO în masă.

Desigur, nu există nicio garanție că această caracteristică nu va fi eliminată într-una dintre versiunile ulterioare Android O. Este posibil ca Google să decidă că RRO nu funcționează așa cum doresc și să renunțe la funcția. Cu toate acestea, având în vedere istoria extinsă a RRO atât în ​​mâinile Sony, cât și în propria noastră comunitate de dezvoltare, mulți dintre noi sunt deja familiarizați cu măreția pe care o reprezintă Runtime Resource Overlay de la Sony. Și din moment ce există deja o mulțime de teme compatibile cu RRO disponibile, dacă Google decide vreodată să ne permită să instalăm teme personalizate, acestea vor deschide porțile către o piață deja largă de teme disponibile pentru ca utilizatorii să se bucure.


Credite de imagine caracteristică: Sony DevWorld