Oficiálny rámec Xposed pre Android Nougat je tu

click fraud protection

Po dlhom čakaní vývojár Xposed Framework oficiálne oznámil, že projekt teraz podporuje Android Nougat. Nainštalujte moduly Xposed teraz!

Keďže ekosystém Android v priebehu rokov dospieval, čoraz menej používateľov nachádza dôvody, prečo by mali svoje zariadenie rootovať. Existuje rastúci trend používateľov, ktorí sa rozhodnú zostať na skladovom firmvéri, buď preto, že považujú skúsenosti za uspokojivé, alebo nechcú hrať hra na mačku a myš s rozhraním Google SafetyNet API. Ale ak ste sa začiatkom roka 2016 spýtali používateľa, prečo rootoval svoje telefóny, možno bol uvedený dôvod číslo jedna, aby mohli nainštalujte Xposed Framework. Bolo to viac ako rok od Androidu 7.0 Nougat bol prvýkrát vydaný, ale dlhé čakanie sa konečne skončilo: oficiálne Xposed Framework pre Android Nougat je konečne k dispozícii.

Počas minulého roka XDA Senior Recognized Developer rovo89, hlavný vývojár Xposed Framework, poskytol niekoľkoaktualizácie o pokroku Xposed Framework pre Android Nougat. Pre niektorých, čakanie bolo tolerovateľné

hlavne kvôli obrovskému množstvu ďalších funkcií, ktoré Xposed Framework ponúka Android Marshmallow. Ale mnohí ďalší prešli na život bez Xposed na svojich zariadeniach.

Videli sme záblesk obnoveného vzrušenia v projekte, keď developer abforce vydal Submodul ART pre AOSP 7.1.2, ale ako zdôrazňuje náš vlastný GermainZ radšej ste čakali na oficiálny rámec Xposed vydanie, pretože implementácia abforce vyžadovala integráciu rámca do vlastných ROM. ďalej táto neoficiálna implementácia bola neúplná, čo viedlo k nekonzistentnému alebo chybnému správaniu s určitými Xposed Moduly.

Zatiaľ čo abforce odviedol skvelú prácu pri sfunkčnení svojho neoficiálneho Xposed na Androide 7.1 Nougat, jeho implementácia bola v rozpore Vízia spoločnosti rovo89 pre Xposed – že by to malo byť stabilné riešenie poskytujúce spoľahlivý a ľahko použiteľný kontrakt pre používateľov a vývojárov podobne. Myslíme tým, že nielen moduly by mali pre používateľov fungovať bez problémov, ale aj spôsob, akým sú moduly nastavené up by mal byť medzi používateľmi konzistentný, takže vývojári budú vedieť, či je za aplikáciu zodpovedný modul Xposed alebo nie havarovať.

Už sa nemusíme obávať takých problémov, ako je rovo89 (po určitej pomoci od XDA Recognized Developer wanam) je teraz pripravený na vydanie oficiálnej aktualizácie rámca Xposed a inštalátora – prináša kompatibilita s Androidom 7.0/7.1 Nougat. To znamená, že nebudete musieť inštalovať vlastnú ROM alebo sa musieť pohrávať s blikajúcimi nestabilnými verziami užite si Xposed – stačí rootovať telefón a nainštalovať najnovšiu aplikáciu Xposed Installer (odkaz nižšie) a a Xposed Installer urobí kúzlo inštalácie Xposed za vás.

Inštalátor Xposed Prehliadanie úložiska modulov

V niektorých mysliach sa to môže zdať trochu neskoro, najmä keď prichádza toto vydanie viac ako mesiac po vydaní Androidu 8.0 Oreo. Majte na pamäti, že len veľmi málo zariadení bude mať prístup k stabilnej verzii Android Oreo po mnoho nasledujúcich mesiacov. Android Oreo je iba na 0.2% všetkých zariadení so systémom Android (v porovnaní s ~18 % na Nougate) podľa najnovších štatistík od spoločnosti Google, ale mnohí naši používatelia sú takí, ktorí radi inštalujú vlastné ROM, aby zostali na hrane.

Distribúcia verzií systému Android od októbra 2017. Zdroj: Google

Aj keď si nainštalujete neoficiálny port Androidu 8.0 dostupné na nespočetných zariadeniach na našich fórach, mnohé z týchto portov nie sú denným stavom ovládača. Teda pokiaľ nie ste ochotní zaplatiť stovky dolárov za úplne nový Google Pixel 2/2 XL, Sony Xperia XZ1/XZ1 Compactalebo pripravované zariadenie, ako napr Huawei Mate 10, potom sa vám pravdepodobne podarí vyžmýkať niekoľko mesiacov používania z Xposed Framework na Android Nougat.

Ak to znie ako vy, potom prejdite na oficiálne vlákno fóra pre Xposed Installer a rámcové zipsy, aby ste ho mohli spustiť a spustiť na svojom zariadení Android Nougat.

Stiahnite si Xposed Installer v3.1.2 (príloha)

Stiahnite si Xposed Installer pre Nougat 7.0 (SDK24).

Stiahnite si Xposed Installer pre Nougat 7.1 (SDK25).

Pre mnohých novších používateľov, ktorí nie sú tak oboznámení s tým, na čo sa Xposed Framework môže použiť alebo ako funguje, stručne vysvetlí Xposed Framework nižšie, prečo by ste mali byť nadšení a prečo vývoj v tomto trval tak dlho urobil.


Prečo nainštalovať Xposed Framework?

Chcete získať vlastné funkcie ROM bez flashovania vlastnej ROM? Matka všetkých modulov Xposed na vylepšenie vašej ROM, známych ako GravityBox, pokryli ste to. Chcete prispôsobiť nastavenia zobrazenia pre jednotlivé aplikácie? Skúste Nastavenia aplikácie. Čo tak prispôsobiť si niektoré aplikácie, napr Stretnutia? Alebo upravte Instagram, aby ste mohli stiahnite si akékoľvek príspevky, ktoré sa vám páčia?

Xposed dáva vývojárom možnosť upravovať takmer čo chcú—väčšinou zamerané na jednotlivé aplikácie, ale dokonca je možné upraviť aj funkcie celého systému. Príklady, ktoré sme uviedli, sú len špičkou ľadovca. Množstvo ďalších funkcií, ktoré môžete pridať, alebo aplikácií, ktoré môžete upraviť, je neuveriteľné – stačí vyhľadať v oficiálne úložisko Xposed Module presvedčiť sa na vlastné oči. Majte na pamäti, že niektoré moduly možno bude potrebné aktualizovať pre toto nové vydanie a pre podporu Nougat, takže si ich pred inštaláciou do Nougat ROM nezabudnite skontrolovať!

Ako fungujú moduly Xposed?

Podstatou je, že Xposed Framework to modulom umožňuje „zavesiť“ do metód Java akejkoľvek aplikácie– či už je to nainštalovaná používateľom alebo systémová aplikácia. Xposed umožňuje modulom vykonávať ich vlastné metódy pred, počas alebo namiesto pôvodné metódy cieľovej aplikácie.

Predstavte si napríklad metódu používanú v aplikácii Gmail, ktorá zverejňuje upozornenia na nové e-maily. V predvolenom nastavení metóda vytvorí nové upozornenie s tlačidlami na archiváciu/odstránenie alebo odpoveď na e-mail. Modul Xposed by sa mohol pripojiť k tejto metóde a pridať nové tlačidlo, napríklad „označiť ako prečítané“. (Áno, je už modul len na to.)

Vyššie uvedené je prílišným zjednodušením konečného výsledku toho, čo Xposed Framework umožňuje svojim modulom robiť. Samotný rámec je neuveriteľne zložitý a vďaka nemu funguje takmer univerzálne na zakorenených zariadeniach – bez potreby vlastnej pamäte ROM – preto dokončenie Xposed pre Android Nougat trvalo tak dlho.

Prečo vývoj Xposed trvá tak dlho?

Kúzlo Xposed – to, čo umožňuje modulom pripojiť sa k metódam iných aplikácií – si vyžaduje hlboké znalosti o tom, ako Zygote a Android Runtime (ART) funguje. Tieto požiadavky už bránia veľkému počtu ľudí prispievať do projektu, ale problém sa zhoršuje tým, že rovo89 bol hlavným prispievateľom do Xposed posledných 5 rokov.

To je dôvod, prečo boli zamietnuté výzvy na získanie otvoreného zdroja jeho úprav vykonaných na Xposed od posledného verejného vydania Xposed. Je to jeho duchovné dieťa a on je najlepší v tom, ako tomu rozumieť a upravovať ho, takže pridanie ďalšej pracovnej sily do projektu v tak neskorom štádiu môže projekt jednoducho ešte viac oddialiť.

Navyše, ak rovo89 neustále aktualizuje svoj zdroj, bol znepokojený že niekto vezme nedokončený kód na zostavenie polofunkčného Xposed Frameworku bez univerzálneho Xposed Installer, ktorý by ho sprevádzal. (Toto presne sa stalo aj tak pri implementácii abforce a výsledný neporiadok rôznych inštalačných metód ospravedlnil váhanie rovo89.)

Preto najlepšie, čo sme mohli urobiť, bolo dať rovo89 čas na prácu na svojom projekte. Xposed nie je jeho prácou na plný úväzok, dokonca ani na polovičný úväzok. Je to jednoducho koníček, ktorý robí v prospech komunity 5 rokov. Projekt tak zložitý, ako je Xposed, si vyžaduje čas na prácu a následné testovanie – čas, ktorý kvôli iným povinnostiam často nemal. Pokrok bol prebiehal za posledný rok, rovnako ako rovo89 zdokumentoval v niekoľkých svojich verejných aktualizáciách o tejto problematike, až kým samotný Xposed Framework aj Xposed Installer nie sú pripravené na vydanie.

Čo urobil rovo89, aby Xposed pracoval v Nougate?

Nové vydania systému Android niekedy prinášajú zmeny v spôsobe fungovania ART, čo môže vyžadovať prepracovanie častí Xposed. Android 7.0 Nougat predstavil kompilátor Just-in-Time pre ART, ktorý napríklad pomôže zlepšiť výkon aplikácií. Ale neoficiálny rámec Xposed od abforce jednoducho deaktivuje veľa optimalizácií ART, aby hákovanie metód mohlo fungovať správne.

Optimalizácie ART v systéme Android Nougat. Zdroj: Google

Naproti tomu implementácia rovo89 uchováva všetky optimalizácie ART v systéme Android Nougat prekompilovaním volajúceho metódy pomocou JIT a stále máte na mieste háčiky metódy. To znamená, že si môžete užívať výhody modulu Xposed bez obetovania výkonu násilným zakázaním optimalizácií ART.

Ak chcete získať ďalšie podrobnosti o tom, čo rovo89 urobil, aby konečne dosiahol spoľahlivú metódu háčkovania v Xposed pre Android Nougat, odporúčame vám prečítať si nižšie uvedené vyhlásenie, ktoré nám poskytol.

Celé vyjadrenie z rovo89

Jadrom Xposed je samozrejme jeho schopnosť pripojiť metódy Java, t. j. nechať moduly spustiť kód pred, po alebo namiesto týchto metód. Takmer všetky ostatné funkcie sú založené na tomto, takže je dôležité, aby vždy fungovala podľa očakávania. Všeobecný koncept je rovnaký, odkedy som pred piatimi rokmi vynašiel Xposed, vyžaduje si to zmeniť vstupný bod metódy. Toto začne zlyhávať, keď sa vstupný bod počas vykonávania nekontroluje – čo je v skutočnosti prípad niektorých optimalizácií v ART.

Jedným príkladom je, keď je vstupný bod známy už v čase kompilácie, potom môžu volajúci priamo prejsť na túto adresu bez toho, aby ju hľadali. Ďalším príkladom je inlining. Zvážte tento príklad:

ART je dostatočne inteligentný na to, aby si všimol, že metóda double() je veľmi jednoduchá, a preto vkladá logiku priamo do metódy doSomething(), ako je táto:

Metódu double() môžete stále pripojiť, ale už sa nebude volať z doSomething() za behu, a teda ani spätné volanie. ART je ešte múdrejší: Uvedomuje si, že mágia je vždy 42, a preto podmienku nemožno nikdy splniť. Takže celá metóda doSomething() je v skutočnosti neoperovaná:

V predchádzajúcich verziách Xposed tieto optimalizácie úplne deaktivoval a vynútil rekompiláciu všetkého. To prinieslo niekoľko nevýhod. Po prvé, vývojári ART odvádzajú fantastickú prácu pri maximalizácii výkonu so svojimi optimalizácie a ich zakázanie čiastočne nevyhnutne vedie k menšiemu výkonu (nikdy som nemeral, o koľko predsa). Potom samotná rekompilácia nie je vždy jednoduchá a spôsobila mi veľa bolesti hlavy, najmä na začiatku. Nakoniec, rekompilované súbory zaberajú miesto navyše k predkompilovaným súborom v /system.

Neoficiálne verzie pre Nougat tiež deaktivujú tieto optimalizácie, ale nevynútia rekompiláciu (pretože port bol pôvodne vyrobený na integráciu do ROM). Preto sa háky niekedy nemusia vykonať.

S oficiálnou verziou si udržíte optimalizovaný kód a stále budete mať spoľahlivé háčiky. ako to funguje? Xposed zaznamenáva všetky uskutočnené hovory. Stáva sa to počas kompilácie súborov APK alebo v samostatnom prechode pre vopred optimalizovaný kód. Tieto dodatočné údaje nezaberajú veľa miesta, ale umožňujú Xposed zistiť, kde mohla byť určitá metóda vložená. Takže keď je metóda pripojená, všetci jej volajúci budú deoptimalizovaní, t. j. ich kód sa už nebude používať. To zaisťuje, že spätné volanie háku bude určite zavolané. A ak je volajúci silne využívaný, jednoducho sa prekompiluje pomocou JIT, tentoraz s vedomím, že metóda je viazaná, a preto sa niektoré optimalizácie neuplatňujú. To znamená, že účinky hákových metód sú obmedzené na nevyhnutné minimum. Jéj!

Teraz pokračujte a vyskúšajte to. Uistite sa, že používate Xposed Installer 3.1.2, pretože konfiguračná cesta musela byť zmenená, aby podporovala File Based Encryption.

čítaj viac

Záver

Dúfame, že ste rovnako nadšení ako my o vydaní Xposed pre Android 7.X Nougat. Čakanie bolo dlhé, ale vzhľadom na úplnú zložitosť Xposedu sa nedalo vyhnúť. Ak ste stále zmätení v tom, čo je Xposed alebo ako funguje, nebojte sa. Len veľmi málo ľudí (vrátane nás) skutočne chápe, ako to funguje. Vývojári ako rovo89 robia všetko pre to, aby zabalili svoju prácu, takže v skutočnosti nemusíte rozumieť tomu, čo sa deje pod kapotou.

Páči sa vám Xposed Framework? Zvážte darovanie rovo89 za úžasnú prácu, ktorú robí. Ak si myslíte, že máte na to, aby ste prispeli k projektu, pozrite si nižšie uvedenú stránku GitHub spoločnosti rovo89.

Prispejte na rovo89

Prispejte do Xposed

Hľadáte Xposed moduly? Pozrite si naše podfórum Xposed Framework Module alebo si stiahnite aplikáciu XDA Labs a prezrite si našu kolekciu modulov Xposed.

Fórum Xposed Modules

Stiahnite si XDA Labs

Android Oreo Progress

V prípade, že vás to zaujíma, tu je postup pri získavaní Xposed pre Android Oreo:

Už som začal pracovať na Androide 8.0. Je tam niekoľko nové jazykové funkcie že sa na to budem musieť pozrieť, ale všeobecný koncept by mal stále fungovať. To zahŕňa všetku prácu na zneplatňovaní skompilovaného kódu všetkých volajúcich, keď je metóda viazaná, čo zabralo zďaleka najviac času, keď som pracoval na Nougate. Takže som naozaj presvedčený, že tentoraz budem oveľa rýchlejší. Android 8.1by nemalo byť veľmi odlišné, takže neočakávam od toho veľa práce navyše.