Xposed For Lollipop nyní oficiálně k dispozici

click fraud protection

Xposed Framework není třeba čtenářům XDA představovat. Když jsme se zeptali na věci naší komunity nejvíc nesnáší Lollipop, jediný nejvýše hlasovaný komentář v diskusi byl, že přerušil podporu pro Xposed. Ve skutečnosti mnoho členů fóra dokonce z tohoto důvodu odmítlo aktualizaci na Lollipop. To vše se však nyní mění, protože velmi očekávaný rámec Xposed konečně dorazil pro Android Lollipop.

Pokud ještě Xposed neznáte, jednoduše řečeno, je to dar z nebes pro moddingovou komunitu. Xposed nevyžaduje žádné flashování žádných ROM, ale přináší spoustu přizpůsobení a vylepšení, které si uživatelé mohou nainstalovat jako aplikace na rootovaná zařízení. Jeho použití je neuvěřitelně jednoduché a s omezeným rizikem. A nyní mohou všichni nadšenci pro Android na Lollipop využívat výhody tohoto fantastického projektu na svých zařízeních. Stáhněte si a pusťte se do modování!

rovo89 byl také tak laskavý, že nám poskytl otázky a odpovědi na nejnovější projekt. Níže naleznete odpovědi na všechny vaše otázky týkající se projektu.

Proč to trvalo tak dlouho? ART vyšlo před více než rokem!

Za prvé – mnoho lidí neustále žádá o podporu ART. Lollipop má mnohem více změn, jako jsou ještě přísnější zásady SELinux, 64bitové ROM a změny architektury, které byste očekávali od velkého vydání. A samozřejmě ART samotné se neustále zdokonaluje; mezi ART pro KitKat a ART pro Lollipop jsou velké rozdíly.

Jedním z důvodů je tedy velká složitost, která vyžadovala mnoho a mnoho hodin práce pro výzkum, vývoj a testování.

Dalším důvodem je, že v mém životě jsou jiné věci než Xposed, takže byly týdny nebo dokonce měsíce, kdy jsem se na kód téměř vůbec nepodíval.

Musíme přepsat všechny moduly?

Ne, Xposed API se v podstatě nezměnilo. Xposed abstrahuje všechny detaily, takže modulům nemusí být jedno, zda běží na Dalviku nebo ART. Mnoho modulů bude skutečně fungovat bez jakýchkoli změn, zejména ty, které upravují chování uživatelských aplikací. Moduly zacílené na chování systému může být nutné upravit podle nového kódu rámce Android, který není způsobeno ART, ale jednoduše změnami architektury a kódu, ke kterým dochází mezi dvěma Androidy vydání. Nejvýznamnější je, že kód pro systémové služby byl přesunut do samostatného souboru. U většiny dotčených modulů to lze vyřešit malým refaktoringem (přesunutím kódu na jiné místo).

Opravdu to funguje?

Ano! Alespoň pro mě to funguje dobře na mém každodenním zařízení (Nexus 5 na CM12) a také na mém Nexus 9 (placené XDA – díky!). Telefon je jako obvykle stabilní a aplikace fungují dobře. A je zřejmé, že moduly a jejich výměny háčků/zdrojů také fungují dobře, jinak by nemělo smysl něco vydávat.

Ale proč je to alfa verze?

Protože od poslední stabilní verze došlo k obrovským změnám, které je třeba otestovat lidmi, kteří vědí, jak používat obnovu, unikat ze zaváděcích smyček a správně hlásit chyby. Nováčkům důrazně doporučuji počkat, až Xposed otestuje dostatek zkušených lidí.

Existují také některé okrajové případy, které ještě nebyly testovány, jako například hákování JNI (nativní) metody a metody, které jsou prováděny v době jejich hákování.

Chci to nainstalovat. Nyní! Co mám dělat?

Ujistěte se, že jste si přečetli má slova výše a že jste obeznámeni s vnitřnostmi svého telefonu. Je zřejmé, že musíte být na Lollipop ROM a mít dobrou zálohu dat. Zatím zveřejním pouze verzi ARMv7. 64bitová verze je složitější, takže nejprve zkusme „snadnou“ variantu.

Prozatím je třeba instalaci provést ručně ve vlastní obnově. Flashování souboru zip nainstaluje:

  • app_process32_xposed a některé symbolické odkazy
  • libexposed_art.so
  • libart.so a některé související binární soubory + knihovny (založené na 5.0.2, vylepšené o podporu pro hákování atd.)
  • XposedBridge.jar (nyní uložený v /system/framework)

Zálohy existujících souborů budou vytvářeny automaticky a lze je později obnovit.

Nefunguje to/nelíbí se mi to! Jak jej mohu odinstalovat?

Nejjednodušší způsob je obnovit zálohu nebo flashovat systémový oddíl. Ještě je třeba vytvořit soubor zip pro odinstalaci.

Proč nahrazujete soubory ART na mém zařízení? To je invazivnější než na Dalviku, způsobí značné problémy s výkonem a bude nestabilní!

Napsal jsem pár důvodů GitHub. Ano, je to více invazivní, takže jsem se tomu dlouho snažil vyhýbat, ale z technického a podpůrného hlediska si myslím, že je to lepší možnost.

Menší výkon než původní ART? Pravděpodobně, protože jsem musel zakázat některé optimalizace, aby byly možné určité druhy háčků. To se však týká jen zlomku všech metod a ani u nich není výkonová ztráta rozhodně nijak výrazná nebo znatelná, i když měřitelná. Stále existují tisíce dalších optimalizací, které provádí ART, a já jsem se snažil zakázat co nejméně a zároveň poskytnout co největší flexibilitu.

Stabilita je v pořádku, jak je uvedeno výše. Ve srovnání s přístupem, který jsem použil pro Dalvik (úprava vnitřních datových struktur runtime z app_process), jsem si dokonce docela jistý, že úplné nahrazení knihoven je mnohem spolehlivější cesta. Mohl bych své změny čistě integrovat do stávajícího kódu a znovu použít související funkce, zatímco pro jiné způsoby by bylo potřeba mnoho hacků a předpokladů.

Zveřejníte konečně zdrojový kód?

Jistě, na GitHubu ji najdete velmi brzy po vydání alfa verze, zatím v samostatné větvi.

Znamená to, že starší verze Androidu již nejsou podporovány?

Ne! Nový kód se zkompiluje na všech verzích Androidu 4.x a před sjednoceným vydáním jej stačí otestovat. Ale nejdřív se musím ujistit, že to pro Lollipop funguje dobře. Podpora ART by možná mohla být zpětně portována do KitKat, ale to je méně prioritní.

Jak vám mohu poděkovat za vaši práci?

Mnoho lidí požádalo o způsob, jak darovat pár babek, a tak jsem založil a dar stránku nyní.

Kolik musím darovat, abych přidal funkci X nebo modul, který dělá Y?

To není darování, to je vyplácení někoho v očekávání budoucí práce. O volné pozice nemám zájem.