Jak substrát přinesl neflexibilnímu TouchWizu větší výběr

click fraud protection

Sungstratum od týmu [projekt.] přináší všechny tematické vychytávky RRO-OMS do zařízení Samsung Nougat prostřednictvím Substratum! Čtěte dále a dozvíte se více!

Motivování pro Android urazilo dlouhou cestu, od náročných úprav po Substratum a nyní, Sungstratum. Před lety bylo slovo „téma“ v diskusích o Androidu často nahrazováno slovem „vybírat“, což je kývnutí T-Mobile Theme Chooser nalezený v CyanogenMod, který položil základy, díky nimž se Android stal tématem ráj. Schopnost upravit vzhled operačního systému poskytla uživatelům další rozměr přizpůsobení, což jim umožnilo provádět změny, díky nimž budou jejich zařízení mnohem personalizovanější.

Dobrá práce pokračovala ve dvou různých směrech. Theme Chooser se vyvinul v CyanogenMod Theme Engine, ale i přes roky úsilí vynaloženého na tematické zdroje se CMTE stalo zastaralým. když se objevily další alternativy.


RRO a vrstvy

Základ jedné z alternativ byl položen, když kódový příspěvek Sony v podobě nového frameworku volal Runtime Resource Overlay (RRO)

byl přijat do AOSP. Tento rámec poskytuje možnost nahrazovat prostředky aplikace za běhu (odtud název). Samotné „překryvy“ byly přítomny a podporovány v Androidu již od Gingerbread (a možná i dříve), používané především k výměně zdrojů, aby aplikace fungovaly na tomto konkrétním přístroj. Přístup Sony k RRO zahrnoval úpravu správce aktiv tak, aby přijímal soubory apk, které využívaly zdroje namapované na jiné odpovídající zdroje existující v zařízení. Tyto nové prostředky z apk byly poté překryty nad základními prostředky pouze za běhu, což umožnilo systému pracovat tak, jako by tyto nové prostředky byly vždy jeho součástí.

Rámec RRO byl začleněn do AOSP před zveřejněním Lollipop 5.0, ale několik prvních sestavení 5.0 mělo části rámce rozbité kvůli jiným změnám. Android 6.0 Marshmallow's Developer Previews byly první, které přidaly funkční, i když omezený rámec RRO, otevírající dveře přizpůsobitelnosti přímo na základní úrovni Androidu. Pokud se tedy výrobce OEM úmyslně nepokusil odchýlit se od možností motivu pro Android, jisté úroveň konzistence by mohla být zachována v přístupu k tomu, jak by byla „témata“ implementována Android.

Zatímco si AOSP pohrával s RRO a hledal nejlepší způsob, jak to všechno začlenit, tým vývojářů tzv. BitSyko pracovali společně na společném úsilí zvaném „Vrstvy". Vrstvy se rozšířily o funkci zásob RRO v Androidu 5.1 Lollipop, aby umožnily složitější přepínání zdrojů a umožnily více prvků pro ovládání motivů, než je možné u stock RRO. Vzhledem k tomu, že vrstvy byly postaveny výše na RRO, museli tvůrci ROM přidat další kód, aby umožnili funkčnost vrstev ve svých ROM, protože ne všechna témata vrstev by fungovala na základním RRO v Marshmallow.

Mezitím Sony pochodovalo s vlastním úsilím směrem k motivaci Androidu. Začalo se na tom pracovat OMS (služba správce překryvů), klient pro správu překryvů, který by poskytovatelům umožnil dynamicky řídit priority a povolit a zakázat překryvy. OMS se začleňuje do AOSP a dostane se do Androidu O. XDA uznávaný vývojář Nicholaschum dokázal prostřednictvím svých zdrojů potvrdit, že Android O bude mít „dynamické překryvy“, které jsou považovány za odkaz na OMS.

OMS způsoboval konflikty s vrstvami, jako tradičně byly tyto funkce pod kontrolou tématu. Aby se vypořádali s problémy, které přinesl OMS, a také aby rozšířili funkčnost vrstev, BitSyko se znovu spojilo (a přejmenovalo se na [projekt.]) vytvořit Substrát. Substratum je klient s funkcionalitou OMS který se snaží sladit funkčnost vrstev s OMS a také si vypůjčuje další prvky z jiných minulých řešení tématiky. Překryvy se již nepřekrývaly, aby se jednotlivé prvky tematizovaly, protože nyní byly všechny potřebné prvky vloženy do jediného překrytí. Funkce, jako je kompilace na zařízení, umožňovaly použití motivů bez nutnosti restartu mezi změnami výrazně pro koncové uživatele jednodušší vyzkoušet témata a experimentovat. Substratum se od svého vzniku aktivně vyvíjí a uvádí všechny jeho vlastnosti a přidaná funkce by byla mimo rozsah tohoto článku, takže přejdeme ke skutečnému tématu tohoto článku kus.


Substrát na Sungstratum

Jak bylo vysvětleno v předchozí části, Substratum začalo jako způsob, jak rozšířit funkcionalitu zásob OMS a také funkcionalitu zásob RRO (prostřednictvím vrstev). Substrát byl zamýšlen pro použití spolu s ROM založenými na AOSP, protože většina ostatních OEM by provedla konfliktní změny což by neumožnilo Substratum koexistovat s jejich modifikacemi na upraveném vzhledu UX, jako je např. příklad.

Samsung sám také pracoval na tématickém řešení pro použití ve svých vlastních zařízeních na Nougatu. Na rozdíl od Sony neprojevil Samsung žádný zájem přispívat zpět tematickým kódem do AOSP. Ale protože řešení Samsungu bylo docela základní, AOSP ve skutečnosti moc neztrácel. Tématické řešení Samsungu zapečené do Touchwiz se skutečně objevilo na Samsungu Galaxy S6, ale jak již bylo zmíněno, bylo poměrně omezené v tom, čeho se mohl pokusit dosáhnout. Předtím probíhalo omezené experimentování, které začalo s Galaxy Alpha, ačkoli většina prvků uživatelského rozhraní systému byla mimo jeho rozsah. Motivy mohou změnit tapety a ikony a také několik aplikací Samsung, jako je například číselník, kontakty, zprávy a oznamovací oblast.

Jak se ukázalo, tématický engine Samsungu rozšiřuje RRO, jak je uvedeno v AOSP. Samsung také po rozšíření RRO znovu vytvořil svou vlastní interní verzi OMS, takže jejich implementace RRO i OMS se liší od AOSP. Ale překvapivě v ne příliš velkém množství -- anomální chování, když vezmeme v úvahu odlišnost a složitost Touchwiz. Themers, kteří používají novější vlajkové lodě Samsung, hlásili, že by mohli nainstalovat překryvy RRO a mít k nim tematické aplikace třetích stran.

Toto bylo vodítko, které tým [projekt.] potřeboval prozkoumat oficiální podporu zařízení Samsung na Substratum. Tým převedl malé množství kódu ze své sekce RRO/Legacy své aplikace, ale místo toho požádali root a požádali o restart, spustili konkrétní záměry, aby byly nainstalovány překryvy. Tým poté pracoval na tom, aby zajistil, že aplikace ovlivněné prostřednictvím témat byly vynucené zavřeny na pozadí, aby bylo zajištěno úplné obnovení aktiv při příštím spuštění.

Zeptali jsme se XDA Recognized Developer Nicholaschum abychom nám poskytli přehled o výzvách, kterým tým čelil při práci proti uzavřené implementaci RRO-OMS společnosti Samsung:

Výzvy, kterým jsme čelili, byly spíše nejasné a neznámé pro mnoho lidí, kteří nemají mnoho znalostí porozumění tematickým systémům, ať už open source nebo uzavřeným zdrojům - vše má svou vlastní zkoušku a chybová fáze. V tomto případě jsem při práci se Samsungem narazil na mnoho problémů, ale hlavní je, že systémové záměry nejsou spouští se pro překryvy po dokončení instalace – jako je použití přijímačů vysílání s „android.intent.action. PACKAGE_ADDED” – Theme Service popírá cokoli, co není součástí podpisu systému s konkrétním Samsungem povolení tematické služby, takže nejtěžší část je řešení, které jsme museli najít kolem.

Způsob, jakým používáme Substratum spolu s Theme Engine společnosti Samsung, je použití stejného systému jako oni. Používají vysoce upravenou verzi systému Sony Resource Runtime Overlay, zkráceně RRO nebo známé jako dědictví mezi uživateli Substratum. Liší se však tím, že motivy Samsung mají další oprávnění, které tyto překryvné vrstvy skryje z Nastavení, takže je nelze ručně odinstalovat jeden po druhém. Používáme stejný systém, ale využíváme implementaci AOSP/Sony, což je důvod, proč Samsung Themes může plně tematický rámec, zatímco Překryvy substrátu se nemohou dotknout cíle zprostředkovatele, který neexistuje „fwk“ – jak všichni víme, framework je pouze balíček „android“ název.

Zdálo se zvláštní, že [projekt.] byl schopen relativně snadno pracovat s implementací RRO společnosti Samsung. Každý, kdo někdy pracoval na zařízeních Samsung, může potvrdit, jak těžké věci často Samsung dělá. Dotázali jsme se na jakýkoli konkrétní blok, se kterým se tým během svého portu setkal:

Opravdu existuje nějaký druh bezpečnostního mechanismu, který ovlivnil několik uživatelů - kde se překryvné vrstvy při spuštění vrátí. To je způsobeno tím, jak Samsung spouští své zařízení. Protože jsme většinou všichni na 7.0 na TouchWiz/Samsung Experience, používáme novou metodu „Optimalizace aplikací“ (můžete to vidět, když aktualizujete telefon, zobrazí upozornění s ikonou Android Nougat, že probíhá aktualizace na pozadí), takže tento způsob optimalizace aplikací také uvolní cíl balíčků, což nakonec naruší proces idmappingu při zavádění (kvůli tomu, že cílový balíček neexistuje), a proto několik lidí zažije uvolnění překrytí po restartovat.

Můžete také vidět, jak se to děje s několika tématy Samsung, zejména s temným/černým motivem @envy~ – on změní výchozí barvu navigační lišty v Zobrazení -> Navigační lišta na černou, kde je skutečná výchozí barva bílý. Po nastavení na černou můžete otevřít klávesnici a navigační lišta zůstane černá. To se náhodně vrátí i při restartu na mnoha zařízeních.

Vzhledem k tomu, že se tématika opět dostává do popředí, jaké jsou plány Substratum na vedlejších větvích, jako je Sungstratum?

Po cestě vpřed sloučíme malou malou aplikaci do našeho doplňku pro naše současné uživatele, aby tak učinili mít možnost zastavit službu Samsung Theme Service, pokud jsou všechna témata nainstalovaná na jejich zařízeních nainstalována z XDA. Takže lidé, kteří budou používat motivy ve formátu Samsung z XDA, budete moci pomocí doplňku zabránit Služba Samsung jej po každém restartu vrátí zpět na skladové téma (protože nebylo nainstalováno z obchodu Samsung oficiálně). Bude to vyžadovat bezplatný vývojářský klíč Samsung, který lze získat z jejich webu, ale bude předpřibalen se stažením doplňku sungstratum.


S nedávnými a nadcházejícími změnami v AOSP a Android O to vypadá, že kdysi začínající operační systém Google bude mít na uživatele ještě více přizpůsobení. Někteří výrobci OEM dokonce plánují zbavit se svých vlastních uživatelských rozhraní a doplňků UX ve prospěch AOSP a další jako Samsung se vznášejí dostatečně blízko se svými vlastními řešeními témat. Představujeme si budoucnost, kde témata budou hrát hlavní roli v uživatelské zkušenosti ještě více lidí – OS kde máte skutečnou kontrolu nad tím, jak vaše zařízení vypadá, kde je estetika uživatelského rozhraní přizpůsobena vámi vy. A takové budoucnosti bychom nebyli schopni dosáhnout bez kolektivní síly této úžasné komunity a projektů, jako je Substratum.


Podívejte se na Substratum Integration for Samsung Nougat na našem fóru Substratum!Substrát na GitHubu