Vysvětlení Xposed Framework pro Nougat & abforce Submodule

V tomto článku prozkoumáme rozdíly mezi nadcházejícím vydáním Xposed for Nougat rovo89 a současnou implementací, která je k dispozici pro Nougat.

Rámec Xposed byl – a stále je – hlavním způsobem, jak přizpůsobit vaše zařízení Android, kompatibilní s téměř všemi zařízeními, což vám umožní snadno instalovat moduly pro vyladění prakticky jakéhokoli detailu.

Chcete získat všechny funkce, které vlastní ROM nabízí, aniž byste museli jednu flashovat?GravityBox neboXTouchwiz udělá to. Chcete vyladit určitá nastavení pro každou aplikaci, například změnit DPI konkrétní aplikace?Nastavení aplikace máte pokryto. Kéž by vývojáři aplikace mysleli na přidání konkrétní funkce, jakou vám Google dovolípřizpůsobit Hangouts nebo Facebook vám to umožnístáhněte si příspěvky na Instagramu, které se vám líbí? No, nemusíte, protože Xposed dává vývojářům moc upravit v podstatě cokoliv chcete, ať už je to funkce pro celý systém, která by vyžadovala vlastní ROM, nebo vyladění pro konkrétní aplikace.

Rámec Xposed přichází s velkou výhodou pro vývojáře, kterou je snadný vývoj (ve srovnání s nutností kompilovat AOSP pro vylepšení ROM nebo s úpravou kódu Smali). Pro uživatele to také přináší obrovskou výhodu:

pohodlí, protože je již nenutí najít a flashovat ROM, která poskytuje každou jednotlivou funkci, kterou hledají (místo toho mohou kombinovat nezávislé moduly) nad rámec své cílové rovnováhy stability a výkon. To také dělá ladění aplikací mnohem jednodušší, protože není třeba řešit různé podpisy, což by ve výsledku vyžadovalo, aby uživatelé odinstalovali originál verze nebo přeskakovat určité obruče, když aplikace kontroluje svůj podpis (něco, s čím se zabývají upravení klienti YouTube, např instance).

Jediný problém? Vzhledem ke své povaze a množství volného času vývojář Xposed (náš vlastní Senior Recognized Developer,rovo89), často zaostává za vydáními Androidu.Aktualizace na podporu Lollipop trvala asi čtyři měsíce, a trvá to asi rok, než se dostanete do Nougatu. Není to tak špatné, jak se může zdát, když se nad tím zamyslíte kolik uživatelů Androidu skutečně používá Nougat (asi 13,5 %, i když mějte na paměti, že nadšenci pro Android, cílová skupina Xposed, jsou také pravděpodobnější na Nougatu). Stále však může být docela nepříjemné, že nemůžete používat své oblíbené moduly Xposed a zároveň mít nejnovější a nejlepší verzi Androidu.

S dostupným zdrojovým kódem frameworku Xposed (alespoň pro stabilní vydané verze), vývojářabforce rozhodl se ušpinit si ruce a podívat se, jestli by mohl přenést některé modifikace rovo89 na Nougat. Společnost abforce se rozhodla pro jiný a jednodušší přístup a v podstatě přizpůsobila část Xposed, která ve skutečnosti byla dělá kouzlo po instalaci a umožnilo jej zahrnout při kompilaci vlastní ROM (poté objevila se další řešení). Tento přístup je pravděpodobně velmi odlišný protože ignoruje jednu ze základních výhod Xposed, která je snadno dostupná pro každého. Veškerý pokrok je však vítán a více hlav řešících úkol může být výhodné a nabídnout nový pohled. Hlavním problémem, jak to vidíme, jsou dezinformace kolem tohoto vývoje (šířené některými dalšími „vývojáři“ a některými blogy) a také některé reakce komunity. Doufejme, že tento článek objasní celý obrázek.


Nejprve ze všeho, abychom porozuměli práci, která šla – a stále jde – do oficiálního rámce Xposed i do verze abforce, musíme se podívat na to, jak rámec funguje. Zatímco samotný rámec je pouze část projektu, obvykle máme na mysli jak framework, tak instalační program protože framework ztrácí mnoho svých výhod bez univerzálního instalátoru, na kterém je také spousta práce.

Síla Xposed vychází z jednoduchého konceptu: jakoukoli metodu lze „zaháknout“ (metody jsou malé části, které tvoří jakýkoli program), aby se kód modulu Xposed spustil před, po nebo místo toho to. Vezměme si jednoduchý příklad: předpokládejme, že Instagram používá metodu zvanou „showMenuOptions“, když klepnete na tlačítko nabídky, a tato metoda zpracovává zobrazení tlačítek „Report“ a „Share“. Vytvořením modulu Xposed můžete tuto metodu upravit a přidat další tlačítko pro stažení obrázku místo jeho sdílení, například. Úpravy se mohou pohybovat od jednoduchých vylepšení (např. Seznam změn Obchodu Play) až po generální opravy (např GravityBox, jehož cílem je poskytnout všechny funkce, které by vlastní ROM měla)!

Díky tomu je Xposed výkonný, ale je to jen část rovnice. Ostatní části jsou všestrannost - nebo vlastně schopnost používat Xposed na téměř jakémkoli zařízení (s podporovanou verzí Androidu) a snadné použití. Vše, co uživatelé musí udělat, je chytit instalační program, který udělá svá kouzla a dynamicky opraví jejich systém, aby integroval Xposed. Chcete-li použít modul, stačí jej nainstalovat, povolit a restartovat. Není třeba žádného zmatku, není třeba flashovat vlastní ROM (zejména když vlastní ROM nejsou vždy schůdnou volbou), není třeba odinstalovat APK pro instalaci dalšího podepsaného jiným podpisem. Vše, co potřebujete, je root (můžete mít vlastní ROM a to dává často smysl; ale zatímco Xposed může poskytnout většinu funkcí, které může poskytnout vlastní ROM, jde také nad rámec toho).

Za touto jednoduchostí se však skrývá spousta práce:

  1. Pro vývojáře modulů musí být poskytnuté API stabilní a musí být zaručeno, že bude fungovat. Rámec Xposed nemůže náhodně selhat s určitými kombinacemi ROM a/nebo háčků (kromě výjimečných případů). Jinými slovy, pokud má uživatel problém, měl by být tento problém buď vinou uživatele (neboli ne instalace/povolení něčeho správně) nebo chyba vývojáře modulu (pro to, že má chyby v modul). Ale mělo by být téměř jisté, že samotný framework funguje tak, jak bylo zamýšleno, a není zdrojem chyb, které by uživatele frustrovaly a vývojáře by zmátly.
  2. Pro uživatele musí být instalace frameworku na zařízení a ROM snadná, bez ohledu na to, zda mají Samsung s nejnovější verzí TouchWiz nebo Nexus s nainstalovaným LineageOS. Instalační program Xposed zvládá vše v zákulisí. Musí to dát hodně práce, aby se otestoval instalační program a framework na různých zařízeních a kombinacích ROM. Jsou nalezeny chyby, často kvůli odlišným implementacím OEM, a musí být opraveny, aby byla zajištěna spolehlivost pro všechny uživatele.
  3. Velké revize Androidu mohou někdy přinést velké změny, což vyžaduje přehodnocení částí architektury frameworku, aby se těmto změnám přizpůsobila. Někdy se s novějšími verzemi objeví další příležitosti, které vyžadují nějaký čas navíc, abyste získali lepší produkt. Když byl ART poprvé představen, například tím, že Xposed deaktivoval určité optimalizace, aby hákování mohlo fungovat správně. V případě Nougata,kompilátor just-in-time (JIT). přináší příležitostzachovat tyto optimalizace.

Mnoho z výše uvedené práce jde do menších detailů, kde většina rámce funguje tak, jak bylo zamýšleno, ale ne nekonzistence a drobné problémy by z něj učinily hazard pro uživatele a noční můru pro podporu a vývoj pro modul vývojáři. Vydaný produkt si však klade za cíl být použitelný pro všechny a bez překvapení. Samozřejmě existují výjimky, protože některé změny OEM vyžadují větší úsilí, aby se jim přizpůsobili, ale ty jsou drobné a drtivá většina uživatelů (a vývojářů) si může užívat stabilní a spolehlivý Xposed Zkušenosti. Všechny zjištěné výjimky jsou dokumentoványjasná vyloučení odpovědnosti aby se nikdo nedivil.

S ohledem na výše uvedené je vizí rovo89 pro Xposed být stabilním řešením, které uživatelům a vývojářům poskytuje spolehlivou a snadno použitelnou smlouvu. Jeho filozofie, i když s ní můžete nesouhlasit, je jednoduchá a pochopitelná: produkt by měl být uvolněn, když je připraven k použití podle zamýšleného účelu, protože jeho uvolnění dříve vede k větším potížím než výhod.


submodul Xposed ART společnosti abforce pro Nougat

Zdráháme se nazývat práci abforce „port“ nebo „neoficiální Xposed“, protože to je nepřesné a zavádějící. Jak jsme viděli, Xposed má dvě hlavní složky:

  1. Samotné jádro Xposed frameworku, které zvládá kouzlo hákových metod.
  2. Instalační program Xposed, který zajišťuje snadnou správnou instalaci frameworku na všechna zařízení.

Co abforce udělal, bylo portování kódu Marshmallow rovo89 v první části (pouze framework Xposed) na Nougat způsobem, který by vyžadoval zapečení změn při kompilaci vlastní ROM. Kromě toho mnoho menších (ale důležitých) částí frameworku není plně přizpůsobeno Nougatu. Chování jako takové může být nekonzistentní a i když většinou funguje (ačkoli neprokaždý), není to spolehlivé. Pro vývojáře modulů a uživatele by spoléhání na neúplnou a nekonzistentní implementaci bylo spravedlivé poskytnout špatnou zkušenost pro všechny zúčastněné strany, s některé moduly nefungují vůbec nebo způsobují, že se zařízení nespustí. Zatímco mnoho uživatelů může být v pořádku s spíš něco než nic, je pohled vývojářů stále dokonale srozumitelný (zvláště pokud budete mít na paměti, že odmítnutí odpovědnosti nezastaví falešné otázky podpory a fňukání).

(Kromě výše uvedených dvou hlavních bodů budeme také očekávat další změny konečného oficiálního rámce Xposed, abychom využili změn zavedených v Nougatu.)

Je třeba poznamenat, že abforce odvedl vynikající práci, když se většina spokojila s pouhým mluvením, ale jeho práce má daleko k plnému zážitku Xposed a žádný vývojář ani blog netvrdí něco jiného (a rozhodně ne abforce; znovu, nemáme nic jiného než respekt ke všem skutečným vývojářům, kteří do toho vkládají skutečnou práci a úsilí). Ve skutečnosti, jak se trochu dotkneme, některé reakce komunity (ať už jde o uživatele nebo „vývojáře“) jsou jedinou kyselou součástí tohoto řetězce vývoje.


Přerušme honičku a pojďme rovnou k věci: každá komunita má špatné prvky a aspekty. S tak velkou komunitou, jako jsou nadšenci pro Android, se špatné prvky mohou zdát jako velká část, i když jsou jen malou částí (velká, ale v relativním vyjádření stále nepatrná). Aniž bychom to nějak osladili, většina reakcí komunity na vývoj Xposed for Nougat byla extrémně dětinská, bezohledná nebo nezodpovědná.

Prvním hlavním problémem byl blahosklonný postoj mnoha lidí o „smrti Xposed“, protože vydání pro Nougat trvá příliš dlouho. To je navzdory rovo89 aktualizaceaujištěnía navzdory téměř přesnému scénáři, který se odehrál s Lollipopem, když byla představena původní verze ART. Je v pořádku přestat používat Xposed, ale není to urážet něčí schopnosti nebo útočit na ostatní za to, že mají jinou filozofii nebo nezajišťují okamžité uspokojení vašich flashových potřeb. To platí ještě více pro zcela bezplatný projekt, kde vývojář vyjádřil svou metodiku vývoje a důvody, které k tomu vedly.

Dalším problémem s odezvou komunity bylo nepochopení podstaty práce abforce, kdy ji mnozí oslavovali jako nový Xposed nebo ji inzerovali jako přístav pro Nougat. Hlavním problémem s tím bylo to, že „vývojáři“ spěchali s nabídkou flashovatelných verzí, aniž by chápali (nebo se o ně zajímali) nevýhody, protože neexistovala žádná prohlášení o vyloučení odpovědnosti. v některých vláknech vůbec nabízeno, přičemž některá jdou dokonce tak daleko, že připisují abforce a ne rovo89 (který stojí za drtivou většinou práce na Xposed) a další přispěvatelů.

Jako poslední bod cítíme, že bychom měli znovu zmínit filozofii rozvoje rovo89. Mnoho hlasových uživatelů tvrdí, že mít nejnovější změny jako open-source by bylo prospěšné. I když to teoreticky zní dobře, je to taknení v praxi tak snadné zvláště pokud vezmeme v úvahu vysvětlení rovo89:

[...] Věřím, že pouhé vytlačení současného stavu by projektu nepomohlo. Možná bychom viděli "nějaké" vydání opravdu rychle lidmi, kteří kompilují kód, uvidí, že to tak vypadá fungují dobře a publikují to jako "svůj port", navzdory problémům a věcem, které by měli udělat, o kterých by nevěděli z. Říkejte mi tedy sobec, ale nechtěl bych vidět tak zpola hotové vydání.[Zdroj]

Což se vlastně ukázalo jako docela dobrá předpověď současné situace, když se přihlásilo několik „vývojářů“. změny abforce a nabízení flashovatelného ZIP s minimálním nebo žádným varováním, neúplnými kredity, a to vše při požadavku na dary.


Doufáme, že tato vysvětlení rozptýlila některé vaše pochybnosti a vyřešila možné mylné představy, které jste mohli mít. Xposed byl úžasný projekt, který oslovil obrovskou část naší komunity nadšenců a flashaholiků, a Xposed for Nougat by měl být dalším gigantickým milníkem plným příležitostí. S moduly jako GravityBox již nabízí podporu Nougat, hotový projekt rovo89 se vrátí k řadě možností.


Těšíte se na Xposed na vaší Nougat ROM? Dejte nám vědět v komentářích!