Sungstratum fra team [projekt.] bringer alle temagodbidderne fra RRO-OMS til Samsung Nougat-enheder gennem Substratum! Læs videre for at vide mere!
Android-temaer er kommet langt, fra hackede redigeringer til Substratum og nu, Sungstratum. For år tilbage blev ordet "tema" i Android-diskussioner ofte afløst af ordet "vælger", et nik til T-Mobile Theme Chooser fundet i CyanogenMod, der lagde fundamentet, der gjorde Android til et tema paradis. Muligheden for at ændre udseendet af operativsystemet gav brugerne en anden dimension af tilpasning, hvilket gav dem mulighed for at foretage ændringer, der gør deres enheder meget mere personlige.
Det gode arbejde fortsatte i to forskellige retninger. Theme Chooser udviklede sig til CyanogenMod Theme Engine, men på trods af de mange års indsats, der blev lagt i temaressourcer, blev CMTE forældet da andre alternativer dukkede op.
RRO & lag
Grundlaget for et af alternativerne blev lagt, da Sonys kodebidrag i form af det nye framework kaldte Runtime Resource Overlay (RRO)
blev accepteret i AOSP. Denne ramme giver mulighed for at erstatte applikationsressourcer under kørsel (deraf navnet). "Overlays" i sig selv har været til stede og understøttet i Android fra så tidligt som Gingerbread (og måske også tidligere), bruges primært til at udskifte ressourcer for at få applikationer til at fungere på det specifikke enhed. Sonys tilgang til RRO involverede ændring af aktivforvalteren til at acceptere apks, som brugte ressourcer, der var knyttet til andre tilsvarende ressourcer, der eksisterede på enheden. Disse nye ressourcer fra apk blev derefter overlejret oven på basisressourcer kun under kørsel, hvilket gjorde det muligt for systemet at arbejde sammen, som om disse nye ressourcer altid havde været en del af det.RRO-rammen blev fusioneret til AOSP, før Lollipop 5.0 blev offentliggjort, men de første par builds af 5.0 havde dele af rammen brudt på grund af andre ændringer. Android 6.0 Marshmallows Developer Previews var de første til at tilføje i en funktionel om end begrænset RRO-ramme, åbner dørene til tilpasningsmuligheder lige på standard Android-niveau. Så medmindre en OEM bevidst forsøgte at afvige fra de lager Android-temamuligheder, en vis niveau af konsekvens kunne bevares i tilgangen til, hvordan "temaer" ville blive implementeret i Android.
Mens AOSP legede med RRO og så på den bedste måde at inkorporere det hele på, kaldte et team af udviklere BitSyko arbejdet sammen om en kollektiv indsats kaldet "Lag". Lag udvidet på lager RRO-funktionaliteten i Android 5.1 Lollipop for at muliggøre mere kompleks ressourceskift og tillade mere elementkontrol for temaer end muligt med lager-RRO. Fordi Layers byggede opad på RRO, var ROM-producenter nødt til at tilføje ekstra kode for at aktivere Layers-funktionalitet i deres ROM'er, da ikke alle Layers-temaer ville fungere på lager-RRO i Marshmallow.
I mellemtiden marcherede Sony videre med sin egen indsats mod Android-tema. Det begyndte at arbejde på OMS (Overlay Manager Service), en klient til styring af overlejringer, der ville give udbydere mulighed for dynamisk at kontrollere prioriteter og aktivere og deaktivere overlejringer. OMS bliver fusioneret til AOSP og vil finde vej til Android O. XDA anerkendt udvikler nicholaschum var i stand til at bekræfte gennem sine kilder, at Android O vil have "dynamiske overlejringer", som menes at være en reference til OMS.
OMS forårsagede konflikter med Layers, da sådanne funktioner traditionelt var under temaets kontrol. For at håndtere de problemer, OMS rejste, samt for at udvide funktionaliteten af Layers, slog BitSyko sig sammen igen (og omdøbte sig selv til [projekt.]) at skabe Underlag. Substratum er en klient med OMS-funktionalitet der forsøger at forene Layers-funktionaliteten med OMS og også låner andre elementer fra andre tidligere temaløsninger. Overlejringer blev ikke længere overlappet over hinanden for at tematisere individuelle elementer, da alle nødvendige elementer nu blev indsprøjtet i en enkelt overlejring. Funktioner som kompilering-på-enhed tillod temaer at blive anvendt uden behov for en genstart mellem ændringer, hvilket gør det væsentligt lettere for slutbrugere at prøve temaer og eksperimentere. Substratum har været under aktiv udvikling siden starten og viser alle dets funktioner og tilføjet funktionalitet ville være uden for denne artikels omfang, så vi går videre til det egentlige emne for denne stykke.
Substratum ind i Sungstratum
Som forklaret i det foregående afsnit begyndte Substratum som en måde at udvide lager OMS-funktionalitet såvel som lager-RRO-funktionalitet (gennem Layers). Substratum var beregnet til at blive brugt sammen med AOSP-baserede ROM'er, da de fleste andre OEM'er ville have foretaget modstridende ændringer der ikke ville tillade Substratum at eksistere sammen med deres modifikationer på en redigeret UX-skin, såsom Samsungs for eksempel.
Samsung arbejdede i sig selv også på en temaløsning til brug på tværs af sine egne enheder på Nougat. I modsætning til Sony viste Samsung ingen interesse i at bidrage tilbage med temakoden til AOSP. Men da Samsungs løsning var ret grundlæggende, tabte AOSP ikke rigtig meget. Samsungs temaløsning bagt i Touchwiz dukkede virkelig op på Samsung Galaxy S6, men som nævnt var den ret begrænset i, hvad den kunne forsøge at opnå. Før det var der begrænset eksperimentering, der begyndte med Galaxy Alpha, selvom de fleste system-UI-elementer var uden for dens rækkevidde. Temaer kan ændre baggrunde og ikoner samt nogle få Samsung-aktieapps, såsom opkaldsknappen, kontakter, beskeder og meddelelsesområdet, for eksempel.
Som det viser sig, er Samsungs temamotor strækker sig RRO som findes i AOSP. Samsung genskabte også deres egen interne version af OMS efter at have udvidet RRO, så deres implementeringer af både RRO og OMS adskiller sig fra AOSP. Men overraskende nok, ikke så meget - en unormal adfærd, når man tænker på Touchwiz' særpræg og kompleksitet. Themers, der bruger nyere Samsung-flagskibe, rapporterede, at de kunne installere RRO-overlays og få dem til at tematisere tredjepartsapplikationer.
Dette var den cue, som team [projekt.] havde brug for for at undersøge officielt at understøtte Samsung-enheder på Substratum. Holdet konverterede en lille mængde kode fra deres RRO/Legacy-sektion af deres app, men i stedet for anmodede root og bad om at genstarte, affyrede de specifikke hensigter, så overlejringene blev installeret. Teamet arbejdede derefter på at sikre, at de applikationer, der blev berørt af temaerne, blev tvangslukket i baggrunden for at sikre en fuld aktivopdatering ved næste lancering.
Vi spurgte XDA Recognized Developer nicholaschum for at give os lidt indsigt i de udfordringer, holdet stod over for, da de arbejdede mod Samsungs lukkede kildeimplementering af RRO-OMS:
De udfordringer, vi stod over for, var ret dunkle og ukendte af mange, som ikke har meget viden at forstå temasystemer, uanset om de er åbne eller lukkede - alt har sin egen prøveversion og fejl fase. I dette tilfælde, når jeg arbejdede med Samsung, faldt jeg over mange problemer, men det vigtigste er, at systemet ikke er det affyret for overlejringer efter installationen er afsluttet - såsom at bruge broadcast-modtagere med "android.intent.action. PACKAGE_ADDED" - Tematjenesten afviser alt, der ikke er en del af systemsignaturen med en specifik Samsung tematjenestetilladelse fra at modtage det, så den sværeste del er de løsninger, som vi skulle finde en måde rundt om.
Måden vi bruger Substratum sammen med Samsungs Theme Engine er ved at bruge det samme system som de gør. De bruger en stærkt modificeret version af Sonys Resource Runtime Overlay-system, forkortet som RRO eller kendt som legacy blandt Substratum-brugere. Det, der dog adskiller sig, er, at Samsung-temaer har en ekstra tilladelse, som skjuler disse overlejringer fra Indstillinger, så du ikke kan afinstallere dem én efter én manuelt. Vi bruger det samme system, men vi bruger AOSP's/Sony's implementering, hvorfor Samsung Themes fuldt ud kan temaramme, mens Substratum overlays kan ikke røre et mediator-mål, der ikke eksisterer "fwk" - som vi alle ved, er framework bare "android"-pakke navn.
Det virkede mærkeligt, at [projekt.] var i stand til at arbejde sammen med Samsungs RRO-implementering med relativ lethed. Enhver, der nogensinde har arbejdet på Samsung-enheder, kan bevidne, hvor svært Samsung ofte gør tingene. Vi spurgte til enhver specifik blokering, som teamet stødte på under deres havn:
Der er faktisk en slags sikkerhedsmekanisme på plads, der påvirkede nogle få brugere - hvor overlejringer vender tilbage ved opstart. Dette skyldes den måde, Samsung starter deres enhed på. Da vi stort set alle er på 7.0 på TouchWiz/Samsung Experience, bruger vi en ny metode til at "optimere apps" (du kan se dette, når du opdaterer din telefon, det vil vise en meddelelse med Android Nougat-ikonet, der siger, at den opgraderer i baggrunden), så denne måde at optimere apps på fjerner også målet pakker, hvilket i sidste ende forstyrrer idmapping-processen ved opstart (på grund af, at målpakken ikke eksisterer), og derfor oplever nogle få personer, at overlejring aflæses efter en genstart.
Du kan også se dette ske med et par Samsung-temaer, især @envy~s mørke/sort-tema - han gør standard nav-bjælkefarven i Display -> Navigationslinje til sort, hvor den faktiske standardfarve er hvid. Efter at have sat den til sort, kan du åbne tastaturet, og navigationslinjen forbliver sort. Dette vil blive vendt tilbage tilfældigt ved genstart også på mange enheder.
Hvad er Substratums planer forude på sidegrenene som Sungstratum, med tematikken igen at vinde sin fremtræden?
Vejen videre vil vi flette en lille lille app ind i vores tilføjelse til vores nuværende brugere, så de vil være i stand til at stoppe Samsung Theme Service, hvis alle de temaer, der er installeret på deres enheder, er installeret fra XDA. Så de mennesker, der vil bruge Samsung-tema-formaterede temaer fra XDA, vil du være i stand til at bruge tilføjelsen til at forhindre Samsungs tjeneste fra at vende den tilbage til lagertema efter hver genstart (fordi den ikke blev installeret fra Samsung Store officielt). Det vil kræve en gratis Samsung-udviklernøgle tilgængelig for at blive hentet fra deres websted, men den vil være forudbundtet med download af sungstratum-tilføjelse.
Med de seneste og kommende ændringer i AOSP og Android O ser det ud til, at Googles engang nystartede OS vil få endnu mere personalisering videregivet til brugeren. Visse OEM'er planlægger endda at slippe af med deres brugerdefinerede brugergrænseflader og UX-tilføjelser til fordel for AOSP, og andre som Samsung svæver tæt nok på med deres egne temaløsninger. Vi forestiller os en fremtid, hvor temaer spiller en stor rolle i brugeroplevelsen for endnu flere mennesker - et OS hvor du virkelig styrer, hvordan din enhed ser ud, hvor brugergrænsefladens æstetik er skræddersyet af dig til du. Og vi ville ikke være i stand til at nå sådan en fremtid uden den kollektive kraft fra dette fantastiske fællesskab og projekter som Substratum.
Tjek Substratum Integration til Samsung Nougat i vores Substratum-fora!Underlag på GitHub