Google kan endelig aktivere brugerdefinerede temaer bygget på Sonys RRO Framework

click fraud protection

Android O Developer Preview har en mystisk skærmtemaindstilling. XDA har konkluderet, at denne temaramme er baseret på Sonys RRO.

Hvis du ikke allerede er klar over det, har Google frigivet den anden Android O Developer Preview (Android O DP2) under gårsdagens I/O-begivenhed. Det har vi allerede gjort et dybt dyk ned i alt det nye, vi har fundet indtil nu, men der var én ting ved DP2, der generede mig. Alle der modtaget betaopdateringen eller blinket manuelt de nye billeder blev hurtigt mødt med en radikalt anderledes brugergrænseflade i hurtige indstillinger. Hvorfor i alverden besluttede Google at ændre temaet? Efter lidt mere test og gravning er jeg nået frem til en konklusion. Af en eller anden grund har Google besluttet at gøre det "Omvendt" tema standardtemaet; måske mens virksomheden var midt i test af en tilpasset temaløsning baseret på Sonys Runtime Resource Overlay (RRO), de var ikke i stand til at få standard Pixel-temaet til at fungere i tide til Android O Beta-udgivelsen.

Standard systemtema i Android O Developer Preview 2

Afsløringen af, at Android O's temaramme er baseret på Sonys RRO, kan virke indlysende for nogle, da Google implementeret understøttelse af RRO i Android 6.0 Marshmallow, selvom det krævede, at du havde en rootet enhed. Men da kildekoden til Android O ikke er blevet frigivet, ville det have været ren spekulation at antyde, at dette systemtema i Android O faktisk er RRO. Det er derfor vores indledende dækning af disse mystiske omgivelser, samt dækningen udført af andre hjemmesider, lavede ikke denne forbindelse. Men der er flere beviser, der forbinder denne funktion med temarammerne, som vi mener endegyldigt bør vise, at Android O's enhedstema er baseret på RRO. Med RRO-understøttelse ombord kan dette evt giv endelig temaløsningen til urodfæstede brugere, som vi alle har ventet på.


Hvad er Runtime Resource Overlay (RRO)?

RRO er en temaramme skabt af Sonys udviklere, der drev Sonys Xperia-temaer. Det smukke ved RRO er, at det giver dig mulighed for at erstatte applikationsressourcer uden at skulle ændre kildekoden til applikationen. Dette sker ved brug af en overlejring, som indeholder sine egne ressourcestrenge, der bruges til at erstatte den overlejrede applikations ressourcer, mens applikationen indlæses.

For dem af jer, der ser "RRO" og tænker "Layers", er du ret tæt på. Layers er en let modificeret version af Sonys RRO, men på basisniveau fungerer det meget ens. RRO/Layers "installerer" tema-APK'er til /system/leverandør/overlay. Ved opstart læser pakkehåndteringen disse APK'er, verificerer dem og bruger derefter idmap for at linke det til systemressourcetabellen. Du kan læse en mere grundig FAQ af SykoPompos, udvikleren af ​​(nu forældet) Lagleder app.

Skærmbilleder af den forældede Layers Manager-app


Anbefalet læsning: En kort historie om temaer: Fra OEM-temaer til RRO-lag


Selvfølgelig er det få i Android-brugerdefinerede ROM-fællesskabet, der stadig bruger en temamotor baseret på RRO. De fleste er gået videre til en anden temamotor som f.eks Underlag, som er en udvikling af lag nu baseret på Overlay Manager Service (OMS). (CyanogenMod Theme Engine (CMTE) var dog en anden populær temaramme dens fremtid ligger stadig i luften.) Men selvom du ikke bruger en brugerdefineret ROM med OMS-commits, Substratum tema motor app understøtter stadig muligheden for at bruge "Substratum Legacy"-temaer, som kun er RRO/Layers-temaer. Og på grund af dette begyndte brugerne at finde ud af, at Android O's enhedstemaer og RRO er en og samme.


Google introducerer endelig Theming gennem RRO

Over på kommentarfeltet i en Android Politi artikel, XDA anerkendt udvikler Maxr1998 postede et skærmbillede, der hævder, at Substratum Legacy-temaer dukker op i Googles enhedstemavælger.

Til venstre kan du se en liste over overlejrings-APK'er installeret af Maxr1998 på Android O Developer Preview 1. Til højre kan du se de to temavalg i Android O Developer Preview 2. Tidligere i Android O DP1, de to muligheder var "Pixel" og "Inverted" med "Pixel" indstillet som standard, mens "Inverted" ligner gråskalaens udseende og fornemmelse, der er standard i O DP2.

Men tag et omhyggeligt kig på navnet på standardtemaet i O DP2. Det hedder "android.auto_generated_rro." Et meget mærkeligt navn, men inkluderingen af ​​"RRO" i navnet er det, der fik mig til først at tro, at dette faktisk er Sonys RRO.

Jeg tænkte så, hvis dette virkelig er RRO, hvor kan jeg ellers se for at bekræfte dette? Disse tanker fik mig til at tjekke /system/vendor/overlay, og som forventet er der faktisk to APK-filer placeret indenfor: framework-res__auto_generated_rro.apk og PixelThemeOverlay.apk.

Begge disse matcher navnene på temaerne i skærmindstillingerne. Mærkeligt nok, når du vælger Pixel-temaet i skærmindstillingerne, virker det ikke. Jeg er ikke ekspert i at udvikle RRO-temaer, så jeg kan ikke sige, hvorfor Pixel-temaet ikke virker, Men ved at udføre en APK-teardown af begge applikationer er det klart, at disse faktisk er overlejringer apps.

PixelThemeOverlay.apk APK-nedrivning

[tabs][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][tab title ="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>

[/tab]

[/tabs]

Hvis du skimmer over dokumentationen af ​​RRO leveret af Sony, er det klart, at dette formodes at være et RRO-tema. I AndroidManifest-filen indikerer overlejringslinjen, at denne overlejring er rettet mod framework-res.apk-filen ("android"), og den har en prioritet på "1", som er den højeste prioritet, den kan gives.

På den anden side er der inden for framework-res__auto_generated_rro.apk-filen en lignende AndroidManifest.xml-fil, men der er en masse andre strenge til stede, som ikke er relateret til tematik. Men dette kan let forklares med, at dette RRO-tema dybest set er en afklebet version af Google Pixels framework-res.apk, som jeg regnede med er sandt, da \res\values\bools.xml har linjen true som jeg ved fra et indlæg på vores forum er en linje, som brugere skal indstille for at aktiver Round Icon-understøttelse i hele systemet.


Konklusion

Min tester har endnu ikke været i stand til at opnå root-adgang i O DP2 for at prøve at køre et Substratum Legacy/RRO-tema, men givet mine egne resultater og Maxr1998, er det sikkert at sige, at Google er måske endelig ved at forberede sig på at bringe RRO-tema til masserne.

Der er selvfølgelig ingen garanti for, at denne funktion ikke bliver fjernet i en af ​​de senere Android O-builds. Det er muligt, at Google beslutter, at RRO ikke fungerer, som de ønsker det, og dropper funktionen. Men i betragtning af RRO's omfattende historie både i hænderne på Sony og vores eget udviklingsfællesskab, er mange af os allerede bekendt med den storhed, der er Sonys Runtime Resource Overlay. Og da der allerede er et væld af RRO-kompatible temaer tilgængelige, hvis Google nogensinde beslutter at tillade os at installere brugerdefinerede temaer, vil de åbne sluserne til et allerede vidtspændende marked af tilgængelige temaer, som brugerne kan nyde.


Kreditering af featurebilleder: SonyDevWorld