Exclusief: Android Oreo ontvangt rootloze, systeembrede thema-ondersteuning binnen 1 week

Officiële OMS-thema-ondersteuning onofficieel blootgesteld door Substratum

Update 09/13/17: de Andromeda-add-on voor Substratum die aangepaste thema's op niet-geroote Android Oreo-apparaten mogelijk maakt, is nu vrijgegeven. Zie dit artikel voor meer informatie. Het originele artikel blijft hieronder.

Met elke nieuwe release van Google's Android OS zijn er voor de meeste gebruikers minder redenen om hun apparaten te rooten. Onder de overgebleven gebruikers die er nog steeds voor kiezen om hun apparaten te rooten, is een van de meest genoemde redenen het inschakelen van systeembrede thema-ondersteuning. Meestal wordt dit beheerd via het Substratum-themakader sinds de ongelukkige ondergang van de CyanogenMod Theme Engine. Na verloop van tijd werkte het team achter Substratum hard om ondersteuning voor meer apparaten op te nemen door Substratum-ondersteuning op ROM-niveau op te nemen, zodat het zonder root-toegang kon worden uitgevoerd. En nu heeft het team het project verder gebracht dan wat iemand van ons zich had kunnen voorstellen door volledige systeemondersteuning zonder root voor elk Android Oreo-apparaat te bieden .

Schermafbeeldingen van Sai's Android Oreo Black-thema op een onbewortelde Google Pixel op Android Oreo 8.0.0

Om je een idee te geven van hoe ongelooflijk een ontwikkeling dit is, bedenk dat het volgende nu mogelijk zal zijn zonder root :

  • Thema's van het Android Framework en de Android-systeem-UI, evenals andere systeemtoepassingen. (Velen van jullie zullen het geweldig vinden om eindelijk een donker thema beschikbaar te hebben!)
  • Thema's van applicaties van derden
  • Aangepaste lettertypen voor toepassingen van derden
  • Veel andere wijzigingen, zoals een statusbalk midden-klokmod

De lijst gaat verder! Substratum heeft een uitgebreide lijst met beschikbare thema's die het framework ondersteunen (die allemaal worden ondersteund in deze komende nieuwe versie van Substratum voor Android 8.0), een actieve community op Google+ en onze eigen forums, en gezien deze ontwikkeling is de ondersteuning alleen gebonden aan toenemen!


Android Oreo en de Overlay Manager Service

Een voorbeeld van enkele Substratum-thema's.

Sinds Google native ondersteuning voor de Runtime Resource Overlay (RRO) -thema van Sony in Android 6.0 Marshmallow heeft opgenomen, hebben we gewacht op Google om een ​​ingebouwde interface en openbare API's te bieden die ontwikkelaars kunnen gebruiken om beide systeemframeapplicaties te thematiseren evenals applicaties van derden. Helaas bracht de release van Android Nougat weinig nieuws op tafel sinds de RRO van Sony werd toegevoegd aan het Android Open Source Project (AOSP).

Maar dankzij het ijverige werk van de ingenieurs bij Sony Mobile, evolueerde de RRO-themamotor uiteindelijk naar wat bekend staat als Overlay Manager Service (OMS), waarop Substratum is gebaseerd. Sony was de pionier op het gebied van een open source-oplossing, maar omdat hun OMS-thema-engine werd geaccepteerd in AOSP rond de definitieve Android 7.1-release, is de enige manier voor gebruikers van niet-Sony-apparaten om te profiteren van de thema-engine is via een aangepast ROM.

Dat veranderde in Android 8.0. Toen Substratum aanvankelijk werd uitgebracht voor de eerste paar Android O Developer Previews, beseften de ontwikkelaars van Substratum dat volledige ondersteuning voor OMS van Sony beschikbaar was. Dit betekent dat een gebruiker een bestaand door Substratum ondersteund thema zou kunnen installeren en dat het volledig zou werken op Android Oreo-apparaten zonder ROM-patches te vereisen. Er was echter maar één probleem: het proces van het inschakelen van een geïnstalleerd Substratum-thema vereiste root-toegang, of dat dachten ze .


Rootloze, systeembrede substratumthemaondersteuning voor Android Oreo

Terwijl de ontwikkelaars stilletjes hun werk deden om Android Oreo-gebruikers een volledig rootloze thema-oplossing op een laag pitje te zetten, gingen we onafhankelijk in op elke Android O Developer Preview en vonden we bewijs van de spelende thema-engine, hoewel we het verkeerd identificeerden als gebaseerd op de oudere RRO in plaats van de nieuwere OMS van Sony. Google plaagde de community zelfs over thema-ondersteuning in een op ontwikkelaar gerichte AMA op Reddit, en verklaarde dat er nog enkele hindernissen moesten worden genomen voordat een volledige thematische oplossing in Android kon worden ingebouwd.

Niet tevreden met dat antwoord, wilden we zien hoe ver Google was gegaan in het krijgen van thema-ondersteuning voor Android Oreo. Om dat te doen, heb ik de broncode van Android 8.0 ingegraven nadat de definitieve release was gestopt, en ontdekte ik het bestaan ​​van ADB shell-opdrachten die overlays konden in- of uitschakelen, die gisteren door Adam Adam Conway werd behandeld.

De standaard overlay uitschakelen

Aanvankelijk was ik niet zo onder de indruk van de bevinding, omdat het voor zover ik wist destijds functioneel nutteloos was omdat ik en mijn collega's de indruk hadden dat het installeren van een thema nog steeds root-toegang vereiste, omdat de themabestanden zouden moeten worden verplaatst naar een map die niet toegankelijk is voor de gebruikersruimte (in / system / vendor / overlay, zo functioneerde RRO). Nicholas Chum zelf, een van de hoofdontwikkelaars achter Substratum, merkte op onze post op dat hij zich al geruime tijd bewust was van het bestaan ​​van deze opdrachten en deze al voor Android O-builds gebruikt.

Eén persoon zag echter een mogelijkheid ontstaan ​​nadat we ons artikel gisteren hadden gepubliceerd. Jeff Corcoran, de ontwikkelaar achter onze interne Labs-applicatie, realiseerde zich dat er een mogelijke oplossing was om de native opdrachtregelinterface van Android Oreo voor OMS zonder root te laten werken. Het betrof een methode die werd gebruikt door Helium, de populaire niet-root back-upoplossing, en meer recentelijk door het open-source Greenify-alternatief bekend als Brevent.

Verhoogde rechten via een script

Gewoonlijk kunnen de "cmd-overlay" -opdrachten die Google aan de Oreo-release heeft toegevoegd, alleen worden uitgevoerd via een apparaat met rootrechten of via een apparaat dat is gekoppeld aan een computer die de Android Debug Bridge (ADB) -schaal oproept. Een handvol slimme ontwikkelaars, zoals de Helium- en Brevent-ontwikkelaars, hebben in de loop der jaren ontdekt hoe ze de rechten van een toepassing die op de telefoon draait, in wezen kunnen verhogen om die te evenaren als die van ADB shell. Door dit te doen, kan de toepassing opdrachten verzenden die dit meestal niet kon vanwege beperkte machtigingen. In het geval van Substratum betekent dit dat de toepassing Substratum-thema's kan installeren of deactiveren zonder root .

Dit besef was een grote doorbraak die pas gisteravond werd ontdekt. In de loop van een paar uur kon Nicholas (met de hulp van Jeff) een snelle alpha-versie maken van een rootless Substratum-themabeheer voor Android Oreo-apparaten. En het werkt - maar met een paar kanttekeningen.

Caveats of Rootless Substratum Ondersteuning

Het proces dat vereist is om Substratum ADB shell verhoogde rechten te verlenen, vereist het gebruik van een zeer eenvoudige en lichtgewicht desktop-applicatie (of alleen een ADB shell-opdracht als u weet wat u doet). Eenmaal toegekend, zal Substratum functioneren zoals u zou verwachten, omdat het in staat is om het beheer van al uw geïnstalleerde Substratum-thema's af te handelen. Alle thema's die u installeert, blijven geïnstalleerd totdat u ervoor kiest deze opnieuw te verwijderen via Substratum.

De rechten die Substratum wordt verleend, zijn echter van voorbijgaande aard, omdat deze verloren gaan wanneer de gebruiker volledig opnieuw wordt opgestart (hoewel gelukkig zachte herstarts van de systeeminterface de bevoegdheid niet verliezen). Dit betekent dat u het bureaubladprogramma opnieuw moet uitvoeren als u uw telefoon opnieuw hebt opgestart en Substratum wilt gebruiken om een ​​thema toe te voegen, te verwijderen of te wijzigen. Ik wil nogmaals herhalen dat alle thema's die u installeert, blijven geïnstalleerd, zelfs als u opnieuw opstart, dus dat betekent dat als u slechts enkele thema's slechts af en toe wilt wijzigen, dit perfect voor u zou moeten zijn. Je moet ook in staat zijn om van thema te wisselen vanuit het menu Instellingen, omdat de "Thema" -optie van de ontwikkelaar onder Beeldscherminstellingen dan geïnstalleerde thema's herkent en je hiermee kunt schakelen

Ten slotte is het laatste wat ik moet noemen iets dat voor de hand liggend lijkt als je erover nadenkt, maar in je opwinding bij het horen van nieuws ben je misschien vergeten. Uw apparaat is nog steeds niet geroot . Dat betekent dat je geen bestanden kunt aanraken of wijzigen die absoluut root-toegang vereisen om te bewerken, zelfs als het Substratum-thema dat je hebt geïnstalleerd beloofde iets te veranderen. Sorry, maar helaas betekent dit dat u geen systeembrede lettertypewijziging kunt toepassen om de blob-emoji's terug te brengen, hoewel het, zoals in het begin vermeld, mogelijk is voor een Substratum-thema om de lettertypen van afzonderlijke toepassingen te wijzigen.

De noodzaak van het substraat

Laten we nu een belangrijk detail uit de weg ruimen. Wanneer komt dit? Zoals de titel vermeldt, zou de eerste openbare beschikbaarheid van het rootloze Substratum voor Android 8.0-apparaten zoals de Google Nexus 5X, Google Nexus 6P, Google Pixel en Google Pixel XL binnen 1 week moeten zijn. Dat is geenszins een garantie, omdat dingen in het ontwikkelingsproces kunnen veranderen die mogelijk extra tijdinvestering vereisen, maar omdat OMS al volledig wordt ondersteund in AOSP, werkt het Substratum-team nu alleen aan de interface tussen de Substratum-app en niet-geroote apparaten.

Volgende: zal het gratis zijn? Nee. Substratum voor niet-geroote Android Oreo-apparaten is een betaalde applicatie . Ik kan je niet zeggen hoeveel het gaat kosten, omdat Nicholas nog geen prijs heeft bepaald, maar wees gerust, de prijs is redelijk gezien de waarde van wat je krijgt. Tot nu toe was Substratum vrij beschikbaar voor veel apparaten, dus overweeg dit soort ontwikkeling te ondersteunen door eerst Team Substratum te ondersteunen. Je kunt wachten tot Google uiteindelijk dat donkere thema uitbrengt dat je altijd al wilde hebben (ha, goede), of je kunt een paar centen gooien om onafhankelijke ontwikkeling te ondersteunen die veel mensen als vanzelfsprekend beschouwen.

Nog steeds niet overtuigd van de waarde ervan? U kunt proberen Substratum-thema's op uw eigen onbewortelde 8.0-apparaat te installeren. In feite is dat precies wat we hierboven hebben gedaan. Natuurlijk hadden we een beetje hulp van Nicholas om dit te doen. Als u een bestaand Substratum-thema uit de Google Play Store wilt installeren, zijn hier de algemene stappen:

  1. Download en installeer het APK-bestand op uw apparaat.
  2. Pak de inhoud uit en compileer elke overlay in een afzonderlijk APK-bestand voor elke app waaraan u een thema wilt toevoegen
  3. Installeer elk afzonderlijk overlay-APK-bestand dat u handmatig hebt samengesteld in stap # 2
  4. Voor elke overlay-APK die u installeert, voert u de volgende opdracht uit om deze in te schakelen: cmd overlay enable
  5. Als u de prioriteit van overlays wilt wijzigen, gebruikt u: cmd overlay set-priority PARENT|lowest|highest
  6. Lijst al uw geïnstalleerde overlays met: cmd overlay list
  7. Verwijder overlays die u niet wilt met: cmd overlay disable

Als u echt de opdrachtregel wilt gebruiken om thema's te beheren, wees dan onze gast! Persoonlijk zat ik vast aan stap 2. Substratum maakt geen gebruik van een verborgen methode die je niet zelf kunt bedenken, maar het maakt het veel eenvoudiger om te beheren. Wanneer het mogelijk is om iets handmatig te doen, maar een toepassing kan het veel gemakkelijker voor mij doen, dan laat ik de app gewoon zijn werk doen. Maar dat is aan jou.

Persoonlijk ben ik heel, heel enthousiast om te zien waar dit naartoe gaat. Voor apparaten die nog geen ingebouwd themabeheersysteem ondersteunen (zoals Motorola- of OnePlus-apparaten), heb je nu een andere reden om naar uit te kijken in de update voor Android 8.0. Voor degenen die het geluk hebben om die zoete Oreo al te proeven, heb je iets om naar uit te kijken in 1 week.


PS Samsung-gebruikers, wisten jullie dat je apparaten al Substratum-thema's ondersteunen zonder root nodig te hebben?

PPS Ben je een ontwikkelaar die meer wil weten over Substratum? Bekijk hier de geweldige presentatie van Nicholas!