Neoficiální Xposed Framework pro Android 7.1 Nougat

click fraud protection

Nyní je k dispozici flashovatelný zip, který přináší Xposed Framework do ROM Android 7.1 Nougat. Zip funguje na OnePlus 3T i na mnoha dalších telefonech!

Po měsících a měsících čekání jsme se konečně dočkali podpory Xposed Framework pro Nougat ROM (i když neoficiálně). Díky některým talentovaným vývojářům na našich vlastních fórech XDA si nyní můžete nainstalovat Xposed Framework na Android Nougat ROM prostřednictvím flashovatelného zipu.

Až dosud vypadala budoucnost Xposed on Nougat trochu nejistě. Rovo89 - vývojář za Xposed Framework - poskytla aktualizaci podpory pro Android Nougat před více než týdnem. Rovo89 v podstatě uvedlo, že je třeba udělat ještě hodně práce, aby Xposed správně fungoval na Nougatu, a že budeme muset být trpěliví.

Naštěstí to vypadá, že jsme získali dočasné řešení pro ty z nás, kteří napjatě čekali na dočasné opatření. Tým PurifyOS uchopil modul ART, který vývojář abforce pracoval na (a o kterém bylo dnes zveřejněno), a přizpůsobili jej tak, aby jej bylo možné nainstalovat na jiné vlastní ROM pomocí flashovatelného zipu (místo toho, aby bylo nutné implementovat při kompilaci ROM).

V současné době jsou k dispozici tři verze pro různé platformy, včetně Xposed SDK25 ARM64, Xposed SDK25 PAŽEa Xposed SDK25 X86. Tým PurifyOS testoval tuto novou verzi Xposed s OnePlus 3T se systémem OxygenOS založeným na Androidu 7.1, ale měl by fungovat na další telefony se systémem Android Nougat a uživatelé již hlásí, že se jim jej podařilo úspěšně nainstalovat na různé ROM a zařízení. Například několik uživatelů na OnePlus 5 oznámilo, že to funguje (není překvapením, vzhledem k tomu, že běží na OnePlus 3T v pohodě), ale uživatel používající ROM založenou na AOSP pro Samsung Galaxy S6 také uvedl, že to pro něj fungovalo.

Bude třeba přijít na nějaké zvláštnosti a ne každému se to zatím podařilo uvést do provozu, přičemž někteří uživatelé zažívají nucené uzavření a další zvláštnosti. Nicméně, i když tomu tak je, stále to můžete zkusit, pokud jste čekali na příchod Xposed na Nougat od vydání předchozí verze operačního systému Android. Ne všechny existující moduly Xposed Framework budou fungovat hned, ale některé opravdu oblíbené moduly, jako je Amplify, údajně fungují.

Pokud si nejste jisti, zda je vaše zařízení nebo paměť ROM podporována, nezapomeňte si pravidelně zálohovat a než se do toho pustíte, pozorně si přečtěte vlákno. Nakonec se ujistěte, že používáte funkci „hledat“, než zanecháte duplicitní otázku. Android O může být hned za rohem, ale jak se říká, "lépe později než nikdy." Spousta uživatelů navíc Android O na svých zařízeních nějakou dobu neuvidí, takže Xposed by měl být příjemným zážitkem, abyste se necítili pozadu.


Aktualizace: Odpověď Rovo89

Originál vyvinutý za Xposed Framework, XDA Senior Recognized Developer rovo89, reagoval na Github svými myšlenkami na tento nedávný vývoj.

Ze své zkušenosti vám mohu říci, že skutečně není tak těžké udělat základy, ale detaily zaberou sakra hodně času. Je to jako pravidlo 80-20, až na to, že je to spíš 95-5 nebo tak.

Přístup hákování, který jsem navrhl pro předchozí verze, je poměrně stabilní a lze jej použít i pro novější verze. Předpokládám, že většinu času jsi potřeboval zkontrolovat všechna místa IsProxyMethod() a IsDirect() se zavolá a rozhodnou, zda by měli zvážit nový modifikátor metody nebo ne (tj. použít parametr true nebo ne). Pokud jste to neudělali, možná jste přehlédli některá místa, kde taková volání nově zavedli. Totéž pro metody jako InstallStubsForMethod(), které musí fungovat na původní původní metodě, i když jsou volány pro hákovou metodu. Budete muset vyhledat další místa, kde by to mohlo být relevantní. To je stále v rozmezí dnů, ale pokud to zmeškáte, můžete zaznamenat nejasné pády nebo špatné chování, které je velmi těžké odladit.

Kromě toho jste zvolili přístup, kdy by háčky správně fungovaly pouze pro ROM, které jsou zcela zkompilovány od začátku. Na skladových ROMech a dokonce i na většině vlastních ROM (které nezahrnovaly váš port při sestavování) a také pro všechny aplikace, které zařízení mohlo zkompilovat dříve. Takže byste museli začít znovu s vymazaným zařízením se speciální ROM. Pokud ne, pak by optimalizace (např. inlining) mohly zabránit volání metody, a proto by háky nefungovaly. Nejhorší na tom je, že přesné chování bude záviset na ROM nebo dokonce na tom, jak uživatel zařízení používá (nyní, když jsou aplikace kompilovány na základě profilů). Moduly by náhodně selhaly a vývojáři modulů by se divili, co udělali špatně (odpověď: nic). Pokud nejsou splněny všechny předpoklady, je to dost nespolehlivé API. Představte si, že Google zveřejnil aktualizaci, kde OnClickListener Tlačítko se někdy nevolalo, pokud jste nezkompilovali ROM od začátku... Pro mě osobně je to velké omezení.

On pokračuje:

S tímto nemá vůbec smysl publikovat flashovatelné ZIPy, jelikož port je určen pouze pro překompilování ROM od začátku.

A jak jsem se bál, neexistuje jediné varování, že se jedná o neúplný port, který často nesplní smlouvu API. 😠 To je špatné pro vývojáře a uživatele, měli by alespoň vědět, že je to neúplné, aby se mohli rozhodnout, zda to chtějí podporovat/používat. Nikdy bych se neodvážil něco takového udělat bez velkého tlustého varování. Popravdě, jelikož jsem spíše perfekcionista, nekompletní verzi bych vůbec nevydával, spolehlivost je pro mě velmi důležitá.

Právě jsem zkontroloval svůj Git log a základní hákování (jako v tomto portu) jsem měl připravené v říjnu. Od té doby jsem pracoval na odstranění omezení. Aby to bylo spolehlivější na předkompilovaných ROM, mohl jsem portovat i část pro rekompilaci, ale to stále není ideální. Jak bylo vysvětleno někde výše, nyní máme JIT, což nám umožňuje ponechat všechny optimalizace, pouze zneplatnit (a případně znovu zkompilovat) metody, které jsou přímo ovlivněny hákováním. To je docela náročné, protože jde o víc než jen o kopírování a vkládání. A dokud to nebude hotové, nebudu nic zveřejňovat. 9 měsíců na to (doteď) je opravdu dlouhá doba, já vím, ale ouha, je to můj volný čas a kupř. z důvodu stěhování do nový byt, nemohl jsem na Xposed několik měsíců (!) vůbec pracovat a jinak jsem měl jen velmi omezený čas.

Měli bychom objasnit, že tento nedávný vývoj není skutečným „Xposed“, který všichni znáte a milují, ale funkčně vám umožňují používat některé moduly Xposed Framework právě teď na Androidu Nugát. Nebudeme vám mít za zlé, že jste nepočkali na oficiální, stabilnější a kompatibilnější verzi Xposed Framework pro Android Nougat, ale chceme, aby bylo jasné, že tato iterace je pouze dočasným opatřením, které má uspokojit potřeby některých uživatelů. Nyní. Pravděpodobně to nebude způsob, jakým bude Xposed v budoucnu řešen.


Stáhněte si neoficiální rámec Xposed pro Nougat na fórech XDA