Android Oreo introducerar kommandoradsgränssnitt för teman

click fraud protection

Android Oreo inkluderar kommandoradsgränssnittsstöd för RRO-teman, vilket antyder att operativsystemet kommer allt närmare systemomfattande temastöd.

Med lanseringen av Android Oreo följer mycket tid åt att söka efter dolda godsaker i källkoden. Tidigare har Android-ingenjörsteamet pratade om att aktivera teman i Android O. Vi rapporterade i maj att den andra utvecklarförhandsvisningen av Android O kan ha varit en antydan till att Google stöder Overlay Manager Service (OMS) och Runtime Resource Overlay (RRO), men nu vet vi med säkerhet att det var det. Android Oreo nu, tekniskt, stöder OMS/RRO-teman och ger till och med ett gränssnitt för att aktivera eller inaktivera teman, förutsatt att du kan använda kommandoraden.

Uppdatering: Substratum har använt dessa kommandon med dev-förhandsvisningarna och nu med Oreo sedan de var tillgängliga!


Vad är RRO och OMS?

RRO utvecklades internt av Sony för temafunktionalitet på Sony Xperia-linjen. Utvecklare som insåg dess betydelse arbetade för att utöka stödet till andra ROM-skivor, och med det kom RRO-teman över en mängd enheter – inte bara Sony-enheter. Det ersatte på ett genialiskt sätt resurser under appens körning, en användarvänlighet som var osynlig från andra temaalternativ vid den tiden. Detta har utvecklats till OMS, som också utvecklades internt av Sony. De kända

Lagerhanterare använde ursprungligen RRO-tema, men OMS anpassades senare till det som nu kallas Substratum och är det temaramverk som är mest bekant för användare på våra forum nu. ROM på våra forum med OMS-commits betyder att de stöder Substratums standardtemamotor. "Legacy mode" inom Substratum använder RRO-tema.


Android Oreo introducerar temakommandon

Det verkar som att Google nu vill stödja denna tematyp fullt ut i AOSP, och eventuellt gå mot en fullständig, systemstödd temahanterare. På Android Gerrit har Google gjort ett antal ändringar de senaste månaderna (och med Android Oreo) som föreslår drag för att aktivera temamotorn i hela systemet. Ändringarna är nedan, med länkar till deras respektive åtaganden.

  • Överläggskommandon
  • OverlayManagerService (OMS) infördes
  • En ny behörighet med titeln CHANGE_OVERLAY_PACKAGES

Alla dessa förändringar betyder att Google går mot någon form av systemtemaapplikation som ska inkluderas i framtiden. Behörigheten som listas ovan kräver systembehörighet och betyder alltså att endast en systemapplikation (eller en applikation med root-åtkomst) kan anropa denna behörighet. Det är ändå intressant, eftersom det visar att Google äntligen arbetar mot något.

Så varför bara tekniskt stöder Android Oreo teman? Tja, det enkla svaret är att även om du kan åberopa systemmetoden för att installera teman, skulle det visa sig ganska meningslöst att göra det. Detta beror på att även om du kan använda det nya kommandoradsgränssnittet för att hantera installerade teman, kan du faktiskt inte det installera nya teman utan root-åtkomst eftersom teman måste hamna i en katalog som är begränsad från användaren Plats. Med root-åtkomst kan du helt enkelt aktivera ett Substratum-tema ändå, så du behöver inte göra det på det nya sättet. Google har inte inkluderat en systemapplikation för enhetens tema, så tills dess finns det ingen som helst fördel med att försöka göra det på det nyinkluderade sättet.

Kommandoradens temagränssnitt

Vi på XDA testade kommandot på en Google Pixel som kör Android Oreo. Vi bestämde oss för att testa några av kommandona och använde först

cmd overlays list

för att se alla förinstallerade överlägg. Vi märkte att det fanns en "com.google.android.theme.pixel", inaktiverade den och i stället aktiverade "android.auto_generated_rro__" genom att köra följande kommandon.

Som kan ses här är standardöverlägget inaktiverat och det automatiskt genererade är aktiverat. När vi kör vårt kommando för att se våra installerade överlägg igen, ser vi följande utdata.

Detta resulterar i ett nytt tema för Android-systeminställningar på vår Google Pixel. Observera att ovanstående överläggslista även inkluderar teman installerade med Substratum, och vi kunde aktivera/inaktivera dessa lika enkelt.

auto_generated_rro-tema

Vi hittade också ett annat kommando när vi grävde igenom källan. Kommandot är som följer

cmd overlay dump --user 0

ger oss följande utdata.

Produktion

inställningar

android.auto_generated_rro__: 0 {

mPackageName...: android.auto_generated_rro__

Användar-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

Användar-ID...: 0

mTargetPackageName.: android

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

mState...: STATE_DISABLED

missEnabled...: false

mIsStatic...: falskt

}

Standardöverlagringar: com.google.android.theme.pixel

PackageInfo cache

2 paket

Läs mer

Så som kan ses har Google lagt ner mycket arbete på utvecklingen av temamotorn och integrera den i AOSP-källan. Det ser ut som om det skulle läggas till i hela systemet, teman skulle aktiveras i System UI-tunern. Google har också tillhandahållit information för OEM-tillverkare, så det är möjligt att ytterligare OEM-tillverkare kan aktivera temanstöd baserat på AOSP-versionen i framtiden på Android Oreo.

Sammantaget är detta en mycket spännande utveckling. Teman är en av de många delarna som definierar Android som ett helt anpassningsbart operativsystem på din telefon, även om det för närvarande kräver root för systemomfattande teman. Om det i framtiden skulle kunna fungera utan root-åtkomst skulle det vara ett stort steg i riktning mot användarfrihet. Naturligtvis kan den vara inlåst i System UI-tuner ganska länge (eftersom trasiga teman kan bryta appar) men tillåter användaren att ens dra nytta av inbyggt temastöd i första hand är ett stort tillägg till mobildriften systemet.