Xposed For Lollipop je teraz oficiálne dostupný

Xposed Framework netreba čitateľom XDA predstavovať. Pri otázke o veciach našej komunity najviac neznáša Lollipop, jediný najvyššie hlasovaný komentár v diskusii bol, že prerušil podporu pre Xposed. V skutočnosti mnohí členovia fóra dokonca odmietli aktualizovať na Lollipop špeciálne z tohto dôvodu. To všetko sa však teraz mení, pretože pre Android Lollipop konečne dorazil veľmi očakávaný rámec Xposed Framework.

Ak ešte nepoznáte Xposed, jednoducho povedané, je to dar z nebies pre moddingovú komunitu. Xposed nevyžaduje žiadne blikanie ROM, ale prináša množstvo prispôsobení a vylepšení, ktoré si používatelia môžu nainštalovať ako aplikácie na zakorenené zariadenia. Jeho použitie je neuveriteľne jednoduché a s obmedzeným rizikom. A teraz si všetci nadšenci Androidu na Lollipop môžu užívať výhody tohto fantastického projektu na svojich zariadeniach. Stiahnite si a pustite sa do modovania!

rovo89 bol tiež taký láskavý, že nám poskytol otázky a odpovede na najnovší projekt. Odpovede na všetky vaše otázky o projekte nájdete nižšie.

Prečo to trvalo tak dlho? ART vyšlo pred viac ako rokom!

Po prvé - veľa ľudí neustále žiada o podporu ART. Lollipop má oveľa viac zmien, ako napríklad ešte prísnejšie politiky SELinux, 64-bitové ROM a zmeny architektúry, ktoré by ste očakávali od veľkého vydania. A samozrejme samotné ART sa neustále zlepšuje; medzi ART pre KitKat a ART pre Lollipop sú veľké rozdiely.

Jedným z dôvodov je teda veľká zložitosť, ktorá si vyžiadala veľa, veľa hodín práce na výskum, vývoj a testovanie.

Ďalším dôvodom je, že v mojom živote sú aj iné veci ako Xposed, takže boli týždne alebo dokonca mesiace, počas ktorých som sa na kód takmer vôbec nepozrel.

Musíme prepísať všetky moduly?

Nie, Xposed API je takmer nezmenené. Xposed abstrahuje všetky detaily, takže modulom nemusí byť jedno, či bežia na Dalviku alebo ART. Mnohé moduly budú skutočne fungovať bez akýchkoľvek zmien, najmä tie, ktoré upravujú správanie používateľských aplikácií. Moduly zamerané na správanie systému možno bude potrebné prispôsobiť novému kódu rámca systému Android, ktorý nie je spôsobené ART, ale jednoducho zmenami architektúry a kódu, ku ktorým dochádza medzi akýmikoľvek dvoma Androidmi vydania. Najdôležitejším z nich je, že kód pre systémové služby bol presunutý do samostatného súboru. U väčšiny dotknutých modulov sa to dá vyriešiť malým refaktorovaním (presunutím kódu na iné miesto).

Naozaj to funguje?

Áno! Aspoň pre mňa to funguje dobre na mojom každodennom zariadení (Nexus 5 na CM12) a tiež na mojom Nexus 9 (zaplatené XDA – vďaka!). Telefón je stabilný ako obvykle a aplikácie fungujú dobre. A samozrejme, moduly a ich háky/náhrady zdrojov tiež fungujú dobre, inak by nemalo zmysel niečo vydávať.

Ale prečo je to alfa verzia?

Pretože od posledného stabilného vydania došlo k obrovským zmenám, ktoré musia byť otestované ľuďmi, ktorí vedia, ako používať obnovu, uniknúť zo zavádzacích slučiek a správne hlásiť chyby. Dôrazne odporúčam nováčikom, aby počkali, kým Xposed otestuje dostatok skúsených ľudí.

Existujú aj niektoré okrajové prípady, ktoré ešte neboli testované, ako napríklad metódy háčkovania JNI (natívne) a metódy, ktoré sa vykonávajú v čase ich pripojenia.

Chcem to nainštalovať. Teraz! Čo musím urobiť?

Uistite sa, že ste si prečítali moje slová vyššie a že poznáte vnútorné vybavenie svojho telefónu. Je zrejmé, že musíte byť na Lollipop ROM a mať dobrú zálohu svojich údajov. Zatiaľ zverejním len verziu ARMv7. 64-bit je zložitejší, takže najskôr vyskúšajme „jednoduchý“ variant.

Inštaláciu je zatiaľ potrebné vykonať manuálne vo vlastnej obnove. Flash súboru zip nainštaluje:

  • app_process32_xposed a niektoré symbolické odkazy
  • libexposed_art.so
  • libart.so a niektoré súvisiace binárne súbory + knižnice (založené na 5.0.2, vylepšené podporou pre hákovanie atď.)
  • XposedBridge.jar (teraz uložený v /system/framework)

Zálohy existujúcich súborov sa vytvoria automaticky a možno ich neskôr obnoviť.

Nefunguje to/nepáči sa mi to! Ako ho môžem odinštalovať?

Najjednoduchším spôsobom je obnoviť zálohu alebo flashovať systémový oddiel. Ešte je potrebné vytvoriť súbor zip na odinštalovanie.

Prečo nahrádzate súbory ART na mojom zariadení? To je invazívnejšie ako na Dalviku, spôsobí značné problémy s výkonom a bude nestabilné!

Napísal som niekoľko dôvodov GitHub. Áno, je to invazívnejšie, takže som sa tomu dlho snažil vyhýbať, ale z technického a podporného hľadiska si myslím, že je to lepšia možnosť.

Menší výkon ako originál ART? Pravdepodobne, pretože som musel vypnúť niektoré optimalizácie, aby boli možné určité druhy háčikov. Týka sa to však len zlomku všetkých metód a ani pri nich nie je strata výkonu určite výrazná alebo znateľná, ak je dokonca merateľná. Stále existujú tisíce ďalších optimalizácií, ktoré vykonáva ART, a ja som sa snažil zakázať čo najmenej a zároveň poskytnúť čo najväčšiu flexibilitu.

Stabilita je v poriadku, ako je uvedené vyššie. V porovnaní s prístupom, ktorý som použil pre Dalvik (úprava interných dátových štruktúr runtime z app_process), som si dokonca celkom istý, že úplné nahradenie knižníc je oveľa spoľahlivejšie spôsobom. Mohol by som čisto integrovať svoje zmeny do existujúceho kódu a znova použiť súvisiace funkcie, zatiaľ čo na iné spôsoby by bolo potrebných veľa hackov a predpokladov.

Zverejníš konečne zdrojový kód?

Iste, na GitHub ho nájdete veľmi skoro po vydaní alfa verzie, zatiaľ v samostatnej pobočke.

Znamená to, že staršie verzie Androidu už nie sú podporované?

Nie! Nový kód sa kompiluje na všetkých verziách Androidu 4.x a pred zjednoteným vydaním ho treba otestovať. Najprv sa však musím uistiť, že pre Lollipop funguje dobre. Podpora ART by sa mohla spätne preniesť do KitKat, ale to je menej prioritné.

Ako vám môžem poďakovať za vašu prácu?

Mnoho ľudí požiadalo o spôsob, ako darovať pár dolárov, a tak som založil a darcovstvo stránku teraz.

Koľko musím darovať, aby ste pridali funkciu X alebo modul, ktorý robí Y?

To nie je darovanie, to platí niekomu v očakávaní budúcej práce. Nemám záujem o prácu na voľnej nohe.