Službeni Xposed Framework za Android Nougat je ovdje

click fraud protection

Nakon dugog čekanja, programer Xposed Frameworka službeno je objavio da projekt sada podržava Android Nougat. Instalirajte Xposed module sada!

Kako je ekosustav Androida sazrijevao tijekom godina, sve manje korisnika nalazi razloge zašto bi trebali rootati svoj uređaj. Sve je veći trend korisnika koji odlučuju ostati na dioničkom firmveru, bilo zato što smatraju da je iskustvo zadovoljavajuće ili zato što ne žele igrati igra mačke i miša s Googleovim SafetyNet API-jem. Ali ako ste početkom 2016. pitali korisnika zašto je rootao svoje telefone, možda je razlog broj jedan bio da bi mogli instalirajte Xposed Framework. Bilo je više od godinu dana od Androida 7.0 Nougat je prvi put objavljen, ali je dugo čekanje konačno završilo: službeni Xposed Framework za Android Nougat konačno je dostupan.

Tijekom prošle godine, XDA Senior Recognised Developer rovo89, vodeći programer Xposed Frameworka, osigurao je nekolikonadopune o napretku Xposed Frameworka za Android Nougat. Za neke, čekanje je bilo podnošljivo

ponajviše zbog velikog broja dodatnih funkcija koje nudi Xposed Framework Android Marshmallow. Ali mnogi drugi su nastavili živjeti bez Xposeda na svojim uređajima.

Vidjeli smo tračak obnovljenog uzbuđenja u projektu kada je programer abforce objavio an Podmodul ART za AOSP 7.1.2, ali kao što naš GermainZ ističe bolje da ste čekali službeni Xposed Framework izdanje kao abforceova implementacija zahtijevalo je da okvir bude integriran u prilagođene ROM-ove. Nadalje, ova neslužbena implementacija je bila nepotpuna, što je dovelo do nekonzistentnog ili problematičnog ponašanja s određenim Xposedom Moduli.

Iako je abforce napravio sjajan posao u pokretanju svog neslužbenog Xposeda na Androidu 7.1 Nougat, njegova implementacija je išla protiv vizija rovo89 za Xposed—da bi to trebalo biti stabilno rješenje koje pruža pouzdan i jednostavan ugovor za korisnike i programere slično. Pod ovim mislimo ne samo da bi moduli trebali raditi bez problema za korisnike, već i način na koji su moduli postavljeni up trebao bi biti dosljedan među korisnicima kako bi programeri znali je li Xposed Module kriv za aplikaciju sudar.

Više se ne moramo brinuti o takvim problemima kao što je rovo89 (nakon pomoći XDA Recognized Developera wanam) sada je spreman izdati službeno ažuriranje za Xposed Framework i Installer—donošenje kompatibilnost s Androidom 7.0/7.1 Nougat. To znači da nećete morati instalirati prilagođeni ROM ili se petljati s flešovanjem nestabilnih verzija uživajte u Xposed—samo ukorijenite svoj telefon i instalirajte najnoviju aplikaciju Xposed Installer (povezana u nastavku) i the Xposed Installer učinit će magiju instaliranja Xposeda za vas.

Xposed Installer pregledava spremište modula

Ovo bi se nekima moglo činiti malo kasno, pogotovo otkad dolazi ovo izdanje više od mjesec dana nakon izlaska Androida 8.0 Oreo. Imajte na umu da će vrlo malo uređaja imati pristup stabilnoj verziji Androida Oreo još mnogo mjeseci. Android Oreo je samo na 0.2% svih Android uređaja (u usporedbi s ~18% na Nougatu) prema najnovijim statistikama Googlea, ali mnogi naši korisnici vole instalirati prilagođene ROM-ove kako bi ostali na rubu krvarenja.

Distribucija verzije Androida od listopada 2017. Izvor: Google

Iako čak i ako instalirate neslužbeni priključak za Android 8.0 dostupni na bezbroj uređaja na našim forumima, mnogi od ovih priključaka nisu dnevni status vozača. Dakle, osim ako niste spremni izdvojiti stotine dolara za potpuno novi Google Pixel 2/2 XL, Sony Xperia XZ1/XZ1 Compact, ili nadolazeći uređaj kao što je Huawei Mate 10, tada ćete vjerojatno moći iscijediti nekoliko mjeseci korištenja Xposed Frameworka na Android Nougatu.

Ako to zvuči kao vi, prijeđite na službenu nit foruma za Xposed Installer i okvirne zipove da biste ga pokrenuli na svom Android Nougat uređaju.

Preuzmite Xposed Installer v3.1.2 (privitak)

Xposed Installer za Nougat 7.0 (SDK24) Preuzimanje

Xposed Installer za Nougat 7.1 (SDK25) Preuzimanje

Za mnoge nove korisnike koji nisu toliko upoznati s time za što se Xposed Framework može koristiti ili kako radi, mi će ukratko objasniti Xposed Framework u nastavku, zašto biste trebali biti uzbuđeni i zašto je razvoj ovoga trajao toliko dugo učinio.


Zašto instalirati Xposed Framework?

Želite li dobiti prilagođene značajke ROM-a bez fleširanja prilagođenog ROM-a? Majka svih Xposed modula za podešavanje vašeg ROM-a, poznata kao GravityBox, jeste li pokrili. Želite li prilagoditi postavke prikaza za svaku aplikaciju? Probati Postavke aplikacije. Što kažete na prilagođavanje određenih aplikacija kao što su Hangouti? Ili modificirati Instagram tako da možete preuzmite postove koje god želite?

Xposed programerima daje mogućnost da modificirati što god žele— uglavnom usmjereno na pojedinačne aplikacije, ali se čak i značajke cijelog sustava mogu mijenjati. Primjeri koje smo naveli samo su vrh ledenog brijega. Broj dodatnih značajki koje možete dodati ili aplikacija koje možete izmijeniti je nevjerojatan - samo pretražite službeno skladište Xposed modula da se sami uvjerite. Imajte na umu da će neke module možda trebati ažurirati za ovo novo izdanje i podršku za Nougat, stoga svakako provjerite prije nego što ih instalirate na svoj Nougat ROM!

Kako rade Xposed moduli?

Suština toga je da Xposed Framework omogućuje modulima da "zakačiti" u Java metode bilo koje aplikacije—bilo da je instalirao korisnik ili sistemska aplikacija. Xposed dopušta modulima da izvršavaju vlastite metode prije, tijekom ili umjesto izvorne metode ciljane primjene.

Na primjer, zamislite metodu koja se koristi u aplikaciji Gmail koja objavljuje obavijesti za nove poruke e-pošte. Metoda prema zadanim postavkama stvara novu obavijest s gumbima za arhiviranje/brisanje ili odgovor na e-poštu. Modul Xposed mogao bi se spojiti na ovu metodu i dodati novi gumb kao što je "označi kao pročitano". (Da, postoji već Modul upravo za to.)

Gore navedeno je pretjerano pojednostavljenje krajnjeg rezultata onoga što Xposed Framework dopušta svojim modulima. Sam Framework je nevjerojatno složen i zbog toga što radi gotovo univerzalno na rootanim uređajima—bez potrebe za prilagođenim ROM-om—zašto je Xposed za Android Nougat trebalo toliko dugo da se dovrši.

Zašto Xposed razvoj traje tako dugo?

Čarolija koja stoji iza Xposeda—ono što modulima omogućuje da se spoje na metode drugih aplikacija—zahtijeva duboko poznavanje načina na koji Zygote i Android Runtime (UMJETNOST) radi. Ovi zahtjevi već onemogućuju veliki broj ljudi da doprinesu projektu, ali problem je pogoršan činjenicom da rovo89 je bio glavni suradnik Xposedu zadnjih 5 godina.

To je razlog zašto su odbijeni pozivi za otvoreni izvor njegovih izmjena napravljenih na Xposedu od zadnjeg javnog izdanja Xposeda. To je njegova zamisao, a on je najbolji u razumijevanju i modificiranju, tako da dodaje više radne snage na projekt u tako kasnoj fazi mogao jednostavno dodatno odgoditi projekt.

Osim toga, ako rovo89 stalno ažurira svoj izvor, bio je zabrinut da bi netko uzeo nedovršeni kod za izgradnju polufunkcionalnog Xposed Frameworka bez univerzalnog Xposed Installera koji bi ga pratio. (Točna stvar se ionako dogodila s abforce implementacijom, a rezultirajući nered raznih instalacijskih metoda opravdao je oklijevanje rovo89.)

Dakle, najbolje što smo mogli učiniti je dati rovo89 vremena da radi na svom projektu ljubimca. Xposed nije njegov puni ili čak honorarni posao. To je jednostavno hobi, koji radi za dobrobit zajednice već 5 godina. Tako složen projekt kao što je Xposed zahtijeva vrijeme za rad, a potom i za testiranje—vrijeme koje često nije imao zbog svojih drugih obveza. Napredak bio je napravljen tijekom prošle godine, baš kao što je rovo89 dokumentirao u nekoliko svojih javnih ažuriranja o tom problemu dok konačno i sam Xposed Framework i Xposed Installer ne budu spremni za puštanje.

Što je rovo89 učinio da Xposed proradi u Nougatu?

Nova izdanja Androida ponekad donose promjene u načinu na koji ART funkcionira, što može zahtijevati preradu dijelova Xposeda. Android 7.0 Nougat uveo je Just-in-Time kompajler za ART kako bi, na primjer, pomogao u poboljšanju izvedbe aplikacija. Ali neslužbeni Xposed Framework tvrtke abforce jednostavno onemogućuje mnoge ART optimizacije tako da spajanje metoda može ispravno raditi.

ART optimizacije u Androidu Nougat. Izvor: Google

Nasuprot tome, implementacija rovo89 zadržava sve ART optimizacije u Androidu Nougat ponovnim kompajliranjem pozivatelja metode korištenjem JIT-a i još uvijek imajući kuke metode na mjestu. To znači da možete uživati ​​u prednostima modula Xposed bez žrtvovanja performansi nasilnim onemogućavanjem ART optimizacija.

Za daljnje pojedinosti o tome što je rovo89 napravio kako bi konačno postigao pouzdanu metodu spajanja u Xposed za Android Nougat, preporučujemo da pročitate izjavu u nastavku koju nam je dao.

Potpuna izjava rovo89

Srž Xposeda očito je njegova sposobnost povezivanja Java metoda, tj. dopušta modulima da izvršavaju kod prije, poslije ili umjesto ovih metoda. Skoro svaka druga funkcija temelji se na tome, stoga je ključno da uvijek radi prema očekivanjima. Opći koncept je isti otkad sam izmislio Xposed prije pet godina, zahtijeva promjenu ulazne točke metode. Ovo počinje padati kada se ulazna točka ne provjeri tijekom izvođenja - što je zapravo slučaj s nekim optimizacijama u ART-u.

Jedan primjer je kada je ulazna točka već poznata u vrijeme kompajliranja, tada pozivatelji mogu izravno skočiti na ovu adresu bez traženja. Drugi primjer je umetanje. Razmotrite ovaj primjer:

ART je dovoljno pametan da primijeti da je metoda two() vrlo jednostavna i stoga ugrađuje logiku točno u metodu doSomething(), ovako:

Još uvijek možete spojiti metodu two() ali ona se više neće pozivati ​​iz doSomething() tijekom izvođenja, a tako ni vaš povratni poziv. UMJETNOST je još pametnija: shvaća da je magija uvijek 42 i stoga se uvjet nikada ne može ispuniti. Dakle, cijela metoda doSomething() zapravo je bez operacije:

U prethodnim verzijama, Xposed je u potpunosti onemogućavao ove optimizacije i prisiljavao rekompilaciju svega. To je došlo s nekoliko nedostataka. Prije svega, ART programeri rade fantastičan posao u maksimiziranju performansi sa svojim optimizacije, a njihovo onemogućavanje dijelom nužno dovodi do slabijeg učinka (nikada nisam mjerio koliko iako). Zatim, sama rekompilacija nije uvijek laka i zadavala mi je dosta glavobolja, pogotovo u početku. Konačno, ponovno kompajlirane datoteke zauzimaju prostor, uz prethodno kompajlirane datoteke na /system.

Neslužbene verzije za Nougat također onemogućuju ove optimizacije, ali ne prisiljavaju ponovno kompiliranje (jer je port izvorno napravljen da bude integriran u ROM). Stoga se kuke ponekad možda neće izvršiti.

Uz službenu verziju, moći ćete zadržati optimizirani kod i još uvijek imati pouzdane kuke. Kako to funkcionira? Pa, Xposed snima sve pozive koji se upućuju. To se događa dok se APK-ovi kompiliraju ili u zasebnom prolazu za unaprijed optimizirani kod. Ovi dodatni podaci ne zauzimaju puno prostora, ali omogućuju Xposedu da otkrije gdje je određena metoda mogla biti ugrađena. Dakle, kada se metoda spoji, svi njeni pozivatelji će biti deoptimizirani, tj. njihov kod se više neće koristiti. Ovo osigurava da će povratni poziv kuke sigurno biti pozvan. A ako se pozivatelj jako koristi, jednostavno će se ponovno kompajlirati s JIT-om, ovaj put uz spoznaju da je metoda zakačena i stoga se neke optimizacije ne primjenjuju. To znači da su učinci metoda udice svedeni na minimum. Jupi!

Sada samo naprijed i isprobajte. Obavezno upotrijebite Xposed Installer 3.1.2, budući da je put konfiguracije morao biti promijenjen kako bi podržavao šifriranje temeljeno na datotekama.

Čitaj više

Zaključak

Nadamo se da ste oduševljeni izdanjem Xposed za Android 7.X Nougat kao i mi. Čekanje je bilo dugo, ali neizbježno s obzirom na samu složenost Xposeda. Ako ste još uvijek zbunjeni što je Xposed ili kako radi, ne brinite. Vrlo malo ljudi (uključujući i nas) zapravo razumije kako to funkcionira. Razvojni programeri poput rovo89 daju sve od sebe u pakiranju svog rada tako da zapravo ne morate razumjeti što se događa ispod haube.

Sviđa li vam se Xposed Framework? Razmislite o donaciji rovo89 za sjajan posao koji obavlja. Ako mislite da imate ono što je potrebno za doprinos projektu, pogledajte GitHub stranicu rovo89 u nastavku.

Donirajte za rovo89

Doprinesite Xposedu

Tražite Xposed module? Provjerite naš podforum Xposed Framework Module ili preuzmite aplikaciju XDA Labs i pregledajte našu zbirku Xposed modula.

Forum Xposed Modules

Preuzmite XDA Labs

Android Oreo napredak

U slučaju da se pitate, evo kako napreduje dobivanje Xposed za Android Oreo:

Već sam počeo raditi na Androidu 8.0. Ima ih nekoliko nove jezične značajke to ću morati pogledati, ali opći koncept bi ipak trebao funkcionirati. To uključuje sav rad na poništavanju kompajliranog koda svih pozivatelja kada se metoda spoji, što je oduzelo daleko najviše vremena kad sam radio na Nougatu. Tako da sam stvarno uvjeren da ću ovaj put biti mnogo brži. Android 8.1ne bi trebao biti puno drugačiji, pa ne očekujem puno dodatnog posla za to.