Android Oreo introduserer kommandolinjegrensesnitt for temaer

Android Oreo inkluderer støtte for kommandolinjegrensesnitt for RRO-temaer, som antyder at operativsystemet kommer stadig nærmere systemomfattende temastøtte.

Med lanseringen av Android Oreo kommer mye tid brukt på å søke etter skjulte godbiter i kildekoden. Tidligere har Android-ingeniørteamet snakket om å aktivere temaer i Android O. Vi rapporterte i mai at den andre utviklerforhåndsvisningen av Android O kan ha vært et hint av Google som støtter Overlay Manager Service (OMS) og Runtime Resource Overlay (RRO), men nå vet vi med sikkerhet at det var det. Android Oreo nå, teknisk sett, støtter OMS/RRO-tema og gir til og med et grensesnitt for å aktivere eller deaktivere temaer, forutsatt at du kan bruke kommandolinjen.

Oppdatering: Substratum har brukt disse kommandoene med dev-forhåndsvisningene og nå med Oreo siden de var tilgjengelige!


Hva er RRO og OMS?

RRO ble utviklet internt av Sony for temafunksjonalitet på Sony Xperia-linjen. Utviklere som anerkjente betydningen av det arbeidet for å utvide støtten til andre ROM-er, og med det fulgte RRO-tema på en mengde enheter – ikke bare Sony-enheter. Den erstattet på genial vis ressurser under appens kjøretid, en brukervennlighet som ikke er sett fra andre temaalternativer på den tiden. Dette har utviklet seg til OMS, som også ble utviklet internt av Sony. De berømte

Lagsjef brukte RRO-tema opprinnelig, men OMS ble senere tilpasset til det som nå er kjent som Substratum og er temarammeverket som er mest kjent for brukere på forumene våre nå. ROM-er på forumene våre med OMS-commits betyr at de støtter standard temamotoren til Substratum. "Legacy mode" i Substratum bruker RRO-tema.


Android Oreo introduserer temakommandoer

Det ser ut til at Google nå ønsker å fullt ut støtte denne tematypen i AOSP, muligens beveger seg mot en fullstendig, systemstøttet temabehandler. På Android Gerrit har Google gjort en rekke endringer de siste månedene (og med Android Oreo) som foreslår trekk for å aktivere temamotoren for hele systemet. Endringene er nedenfor, med lenker til deres respektive forpliktelser.

  • Overleggskommandoer
  • OverlayManagerService (OMS) introdusert
  • En ny tillatelse med tittelen CHANGE_OVERLAY_PACKAGES

Alle disse endringene betyr et trekk fra Google mot en eller annen form for systemtemaapplikasjon som skal inkluderes i fremtiden. Tillatelsen oppført ovenfor krever systemprivilegier, og betyr dermed at bare en systemapplikasjon (eller en applikasjon med root-tilgang) kan påkalle denne tillatelsen. Det er interessant likevel, da det viser at Google endelig jobber mot noe.

Så hvorfor bare teknisk sett støtter Android Oreo temaer? Vel, det enkle svaret er at selv om du kan påberope deg systemmetoden for å installere temaer, vil det vise seg ganske meningsløst å gjøre det. Dette er fordi, selv om du kan bruke det nye kommandolinjegrensesnittet til å administrere installerte temaer, kan du faktisk ikke det installer nye temaer uten root-tilgang fordi temaene må gå inn i en katalog som er begrenset fra brukeren rom. Med root-tilgang kan du ganske enkelt aktivere et Substratum-tema uansett, så det er ikke nødvendig å gjøre det på den nye måten. Google har ikke inkludert en systemapplikasjon for å tematisere enheten, så inntil da er det ingen fordel å prøve å gjøre det på den nylig inkluderte måten.

Kommandolinje-temagrensesnittet

Vi i XDA testet kommandoen på en Google Pixel som kjører Android Oreo-utgivelsen. Vi bestemte oss for å teste noen av kommandoene og brukte først

cmd overlays list

for å se alle forhåndsinstallerte overlegg. Vi la merke til eksistensen av en "com.google.android.theme.pixel", som deaktiverte den og i stedet aktiverer "android.auto_generated_rro__" ved å kjøre følgende kommandoer.

Som du kan se her, er standardoverlegget deaktivert og det automatisk genererte er aktivert. Når vi kjører kommandoen vår for å se våre installerte overlegg igjen, ser vi følgende utgang.

Dette resulterer i et nytt tema for Android-systeminnstillinger på Google Pixel. Merk at overleggslisten ovenfor også inkluderer temaer installert med Substratum, og vi kunne aktivere/deaktivere disse like enkelt.

auto_generated_rro-tema

Vi fant også en annen kommando når vi gravde gjennom kilden. Kommandoen er som følger

cmd overlay dump --user 0

gir oss følgende utgang.

Produksjon

Innstillinger

android.auto_generated_rro__: 0 {

mPackageName...: android.auto_generated_rro__

bruker-ID...: 0

mTargetPackageName.: android

mBaseCodePath...: /vendor/overlay/framework-res__auto_generated_rro.apk

mState...: STATE_ENABLED

misEnabled...: sant

mIsStatic...: sant

}

com.google.android.theme.pixel: 0 {

mPackageName...: com.google.android.theme.pixel

bruker-ID...: 0

mTargetPackageName.: android

mBaseCodePath...: /vendor/overlay/Pixel/PixelThemeOverlay.apk

mState...: STATE_DISABLED

misEnabled...: usant

mIsStatic...: usant

}

Standard overlegg: com.google.android.theme.pixel

PackageInfo cache

2 pakker

Les mer

Så som man kan se, har Google lagt ned mye arbeid i utviklingen av temamotoren og integrering av den i AOSP-kilden. Det ser ut som om det skulle legges til hele systemet, temaer vil være aktivert i System UI-tuneren. Google har også gitt informasjon for OEM-er, så det er mulig at flere OEM-er kan aktivere temastøtte basert på AOSP-versjonen i fremtiden på Android Oreo.

Totalt sett er dette en veldig spennende utvikling. Theming er en av de mange delene som definerer Android som et fullt tilpassbart operativsystem på telefonen din, selv om det for øyeblikket krever root for systemomfattende temaer. Hvis det i fremtiden ble satt i stand til å fungere uten root-tilgang, ville det være et stort skritt i retning av brukerfrihet. Selvfølgelig kan det være låst i System UI-tuner i en stund (da ødelagte temaer kan ødelegge apper), men tillater brukeren til å til og med dra nytte av innfødt temastøtte i utgangspunktet er et stort tillegg til mobildriften system.