Cadrul oficial Xposed pentru Android Nougat este aici

După o lungă așteptare, dezvoltatorul Xposed Framework a anunțat oficial că proiectul acceptă acum Android Nougat. Instalați modulele Xposed acum!

Pe măsură ce ecosistemul Android s-a maturizat de-a lungul anilor, din ce în ce mai puțini utilizatori găsesc motive pentru care ar trebui să-și rooteze dispozitivul. Există o tendință tot mai mare de utilizatori care aleg să rămână pe firmware-ul stoc, fie pentru că consideră experiența satisfăcătoare, fie pentru că nu doresc să joace un joc pisică și șoarece cu API-ul SafetyNet de la Google. Dar dacă ai întrebat un utilizator la începutul anului 2016 de ce și-a rootat telefoanele, poate că motivul numărul unu care a fost dat a fost pentru a putea instalați Xposed Framework. Acesta a fost peste un an de la Android 7.0 Nougat a fost lansat pentru prima dată, dar lunga așteptare s-a încheiat în sfârșit: Cadrul oficial Xposed pentru Android Nougat este în sfârșit disponibil.

Pe parcursul anului trecut, XDA Senior Recognized Developer rovo89, dezvoltatorul principal al Xposed Framework, a oferit

mai multeactualizări privind progresul Xposed Framework pentru Android Nougat. Pentru unii, așteptarea a fost tolerabilă în mare parte datorită numărului mare de funcționalități suplimentare pe care le oferă Xposed Framework Android Marshmallow. Dar mulți alții au trecut la o viață fără Xposed pe dispozitivele lor.

Am văzut o privire de entuziasm reînnoit în proiect când dezvoltatorul abforce a lansat un Submodul ART pentru AOSP 7.1.2, dar așa cum subliniază propriul nostru GermainZ ai fi mai bine să aștepți cadrul oficial Xposed lansarea deoarece implementarea abforce a necesitat ca cadrul să fie integrat în ROM-uri personalizate. În plus, această implementare neoficială a fost incompletă, ducând la un comportament inconsecvent sau defectuos cu anumite Xposed Module.

În timp ce abforce a făcut o treabă grozavă în a-și face Xposed neoficial să funcționeze pe Android 7.1 Nougat, implementarea sa a fost împotriva Viziunea rovo89 pentru Xposed — că ar trebui să fie o soluție stabilă, oferind un contract fiabil și ușor de utilizat pentru utilizatori și dezvoltatori deopotrivă. Ceea ce ne referim prin aceasta este că nu numai modulele ar trebui să funcționeze fără probleme pentru utilizatori, ci și modul în care modulele sunt setate up ar trebui să fie consecvent în rândul utilizatorilor, astfel încât dezvoltatorii să știe dacă un modul Xposed este sau nu de vină pentru o aplicație prăbușire.

Nu mai trebuie să ne facem griji cu privire la probleme precum rovo89 (după ajutor de la XDA Recognized Developer wanam) este acum gata să lanseze o actualizare oficială a Xposed Framework și Installer - aducând compatibilitate cu Android 7.0/7.1 Nougat. Asta înseamnă că nu va trebui să instalați un ROM personalizat sau să vă amestecați cu versiunile instabile intermitente bucurați-vă de Xposed — doar rootați-vă telefonul și instalați cea mai recentă aplicație Xposed Installer (legată mai jos) și cel Xposed Installer va face magia instalării Xposed pentru tine.

Xposed Installer Răsfoind în depozitul de module

Acest lucru ar putea părea puțin târziu pentru unele minți, mai ales că vine această lansare peste o lună după lansarea Android 8.0 Oreo. Rețineți că foarte puține dispozitive vor avea acces la o versiune stabilă de Android Oreo pentru multe luni viitoare. Android Oreo este doar pe 0.2% a tuturor dispozitivelor Android (comparativ cu ~18% pe Nougat) conform celor mai recente statistici de la Google, dar mulți dintre utilizatorii noștri sunt genul cărora le place să instaleze ROM-uri personalizate pentru a rămâne pe marginea actuală.

Distribuția versiunii Android din octombrie 2017. Sursă: Google

Deși chiar dacă instalați un port neoficial al Android 8.0 disponibile pe o multitudine de dispozitive de pe forumurile noastre, multe dintre aceste porturi nu au statut zilnic de driver. Deci, dacă nu sunteți dispus să plătiți sute de dolari pentru un nou-nouț Google Pixel 2/2 XL, Sony Xperia XZ1/XZ1 Compact, sau un dispozitiv viitor, cum ar fi Huawei Mate 10, atunci probabil că veți putea strânge câteva luni de utilizare a Xposed Framework pe Android Nougat.

Dacă vă sună, mergeți la firul oficial al forumului pentru instalatorul Xposed și zipurile framework-ului pentru a-l pune în funcțiune pe dispozitivul Android Nougat.

Descărcați Xposed Installer v3.1.2 (Atașament)

Instalare Xposed pentru Nougat 7.0 (SDK24) Descărcare

Instalare Xposed pentru Nougat 7.1 (SDK25) Descărcare

Pentru mulți utilizatori mai noi care nu sunt la fel de familiarizați cu ce poate fi folosit Framework Xposed sau cum funcționează, noi va explica pe scurt Cadrul Xposed de mai jos, de ce ar trebui să fii entuziasmat și de ce dezvoltarea acestui lucru a durat atât timp cât făcut.


De ce să instalați Xposed Framework?

Doriți să obțineți funcții ROM personalizate fără a afișa un ROM personalizat? Mama tuturor modulelor Xposed pentru modificarea ROM-ului, cunoscută ca GravityBox, v-a acoperit. Doriți să personalizați setările de afișare în funcție de aplicație? Încerca Setările aplicației. Ce zici de personalizarea anumitor aplicații, cum ar fi Hangouts? Sau modificând Instagram ca să poți descărcați orice postări doriți?

Xposed oferă dezvoltatorilor capacitatea de a modifică cam tot ce vor ei— vizează mai ales aplicații individuale, dar chiar și caracteristicile la nivelul întregului sistem pot fi modificate. Exemplele pe care le-am enumerat sunt doar vârful aisbergului. Numărul de funcții suplimentare pe care le puteți adăuga sau de aplicații pe care le puteți modifica este incredibil - doar căutați prin depozitul oficial Xposed Module sa vezi singur. Rețineți că este posibil ca unele module să fie actualizate pentru această nouă versiune și pentru asistență Nougat, așa că asigurați-vă că le verificați înainte de a le instala pe ROM-ul Nougat!

Cum funcționează modulele Xposed?

Esența este că Xposed Framework permite modulelor „conectați” la metodele Java ale oricărei aplicații— fie că este instalată de utilizator sau o aplicație de sistem. Xposed permite modulelor să execute propriile metode înainte, în timpul sau în locul lui metodele originale ale aplicației țintă.

De exemplu, imaginați-vă o metodă folosită în aplicația Gmail care postează notificări pentru e-mailuri noi. În mod implicit, metoda creează o nouă notificare cu butoane pentru a arhiva/șterge sau a răspunde la e-mail. Un modul Xposed ar putea fi făcut să se conecteze la această metodă și să adauge un buton nou, cum ar fi „marcați ca citit”. (Da, există deja un Modul doar pentru asta.)

Cele de mai sus reprezintă o simplificare excesivă a rezultatului final a ceea ce permite cadru Xposed modulelor să facă. Framework-ul în sine este incredibil de complex și făcându-l să funcționeze aproape universal pe dispozitive înrădăcinate – fără a avea nevoie de un ROM personalizat – este motivul pentru care Xposed pentru Android Nougat a durat atât de mult pentru a se finaliza.

De ce dezvoltarea Xposed durează atât de mult?

Magia din spatele Xposed – ceea ce permite modulelor să se conecteze la metodele altor aplicații – necesită cunoștințe profunde despre modul în care Zygote și Android Runtime (Opere de arta. Aceste cerințe împiedică deja un număr mare de oameni să contribuie la proiect, dar problema este exacerbată de faptul că rovo89 a fost principalul contributor la Xposed în ultimii 5 ani.

De aceea, solicitările de aprovizionare deschisă, modificările aduse lui Xposed de la ultima lansare publică a Xposed au fost respinse. Este o creație a lui și el este cel mai bun în a înțelege și a modifica, așa că adaugă mai multă forță de muncă în proiect într-o etapă atât de târzie. ar putea pur și simplu să întârzie și mai mult proiectul.

În plus, dacă rovo89 și-a actualizat continuu sursa, era îngrijorat că cineva ar lua codul neterminat pentru a construi un cadru Xposed semi-funcțional fără instalatorul universal Xposed care să-l însoțească. (Acest lucru s-a întâmplat oricum cu implementarea abforce, iar mizeria rezultată din diferite metode de instalare a justificat ezitarea rovo89.)

Astfel, cel mai bun lucru pe care l-am putut face a fost să-i acordăm lui rovo89 timp să lucreze la proiectul său de companie. Xposed nu este jobul lui complet, nici măcar cu normă parțială. Este pur și simplu un hobby, unul pe care l-a făcut în folosul comunității timp de 5 ani. Un proiect la fel de complex precum Xposed necesită timp pentru a lucra și apoi a testa – timp pe care nu l-a avut adesea din cauza celorlalte obligații. Progres a fost a fost realizat în ultimul an, la fel cum a documentat rovo89 în câteva dintre actualizările sale publice cu privire la această problemă, până când în cele din urmă atât Framework-ul Xposed, cât și instalatorul Xposed sunt gata pentru lansare.

Ce a făcut rovo89 pentru ca Xposed să lucreze în Nougat?

Noile versiuni de Android aduc uneori modificări modului în care funcționează ART, ceea ce poate necesita reelaborarea unor părți din Xposed. Android 7.0 Nougat a introdus un compilator Just-in-Time pentru ART pentru a ajuta la îmbunătățirea performanței de rulare a aplicațiilor, de exemplu. Dar cadrul neoficial Xposed de la abforce dezactivează pur și simplu multe optimizări ART, astfel încât conectarea metodei să poată funcționa corect.

Optimizări ART în Android Nougat. Sursă: Google

În schimb, implementarea rovo89 păstrează toate optimizările ART în Android Nougat prin recompilarea apelantului unei metode folosind JIT și având în continuare cârligele metodei la locul lor. Aceasta înseamnă că vă puteți bucura de beneficiile unui Modul Xposed fără a sacrifica performanța prin dezactivarea forțată a optimizărilor ART.

Pentru mai multe detalii despre ce a făcut rovo89 pentru a obține în sfârșit o metodă de conectare fiabilă în Xposed pentru Android Nougat, vă recomandăm să citiți declarația de mai jos pe care ne-a oferit-o.

Declarație completă de la rovo89

Miezul lui Xposed este, evident, capacitatea sa de a lega metode Java, adică să lase modulele să execute cod înainte, după sau în locul acestor metode. Aproape toate celelalte funcționalități se bazează pe aceasta, așa că este esențial ca întotdeauna să funcționeze conform așteptărilor. Conceptul general a fost același de când am inventat Xposed acum cinci ani, necesită schimbarea punctului de intrare al metodei. Acest lucru începe să eșueze atunci când punctul de intrare nu este verificat în timpul execuției - ceea ce este de fapt cazul cu unele dintre optimizările din ART.

Un exemplu este atunci când punctul de intrare este deja cunoscut în momentul compilării, atunci apelanții pot sări direct la această adresă fără să o caute. Un alt exemplu este inlinierea. Luați în considerare acest exemplu:

ART este suficient de inteligent pentru a observa că metoda twice() este foarte simplă și, prin urmare, încorporează logica chiar în metoda doSomething(), astfel:

Încă puteți conecta metoda twice(), dar nu va mai fi apelată de la doSomething() în timpul execuției, și la fel nu va fi apelată înapoi. ARTA este și mai inteligentă: își dă seama că magia este întotdeauna 42 și, prin urmare, condiția nu poate fi îndeplinită niciodată. Deci, întreaga metodă doSomething() este de fapt o opțiune fără opțiune:

În versiunile anterioare, Xposed obișnuia să dezactiveze complet aceste optimizări și să forțeze recompilarea tuturor. Asta a venit cu mai multe dezavantaje. În primul rând, dezvoltatorii ART fac o treabă fantastică în maximizarea performanței cu lor optimizările și dezactivarea lor parțial duce în mod necesar la o performanță mai mică (nu am măsurat niciodată cât de mult deşi). Apoi, recompilarea în sine nu este întotdeauna ușoară și mi-a provocat foarte multe bătăi de cap, mai ales la început. În cele din urmă, fișierele recompilate ocupă spațiu, în plus față de fișierele precompilate de pe /system.

Versiunile neoficiale pentru Nougat dezactivează și aceste optimizări, dar nu forțează recompilarea (deoarece portul a fost făcut inițial pentru a fi integrat în ROM-ul). Prin urmare, cârligele ar putea să nu fie executate uneori.

Cu versiunea oficială, veți putea păstra codul optimizat și veți avea în continuare cârlige de încredere. Cum funcționează? Ei bine, Xposed înregistrează toate apelurile efectuate. Acest lucru se întâmplă în timp ce APK-urile sunt compilate sau într-o trecere separată pentru codul preoptimizat. Aceste date suplimentare nu ocupă mult spațiu, dar îi permit lui Xposed să afle unde ar fi putut fi introdusă o anumită metodă. Deci, atunci când o metodă este conectată, toți apelanții ei vor fi deoptimizați, adică codul lor nu va mai fi folosit. Acest lucru asigură că apelul înapoi va fi cu siguranță apelat. Și dacă apelantul este foarte folosit, va fi pur și simplu recompilat cu JIT, de data aceasta știind că metoda este conectată și, prin urmare, unele dintre optimizări nu se aplică. Aceasta înseamnă că efectele metodelor de agățare sunt reduse la minimum. Yay!

Acum mergeți mai departe și încercați-l. Asigurați-vă că utilizați Xposed Installer 3.1.2, deoarece calea de configurare a trebuit să fie schimbată pentru a accepta criptarea bazată pe fișiere.

citeşte mai mult

Concluzie

Sperăm că sunteți la fel de entuziasmați ca și noi despre lansarea Xposed pentru Android 7.X Nougat. Așteptarea a fost lungă, dar inevitabil, având în vedere complexitatea absolută a Xposed. Dacă încă sunteți confuz cu privire la ce este Xposed sau cum funcționează, nu vă faceți griji. Foarte puțini oameni (inclusiv noi) înțeleg cu adevărat cum funcționează. Dezvoltatorii precum rovo89 fac tot posibilul să-și împacheteze munca, astfel încât să nu trebuie să înțelegeți cu adevărat ce se întâmplă sub capotă.

Îți place Xposed Framework? Luați în considerare donarea către rovo89 pentru munca minunată pe care o face. Dacă credeți că aveți ceea ce este necesar pentru a contribui la proiect, consultați pagina GitHub a rovo89 de mai jos.

Donează la rovo89

Contribuie la Xposed

Căutați module Xposed? Consultați subforumul nostru Xposed Framework Module sau descărcați aplicația XDA Labs și răsfoiți colecția noastră de module Xposed.

Forumul modulelor Xposed

Descărcați XDA Labs

Android Oreo Progress

În cazul în care vă întrebați, iată cum este progresul în obținerea Xposed pentru Android Oreo:

Am început deja lucrul pe Android 8.0. Sunt cateva noi caracteristici ale limbii la care va trebui să mă uit, dar conceptul general ar trebui să funcționeze în continuare. Aceasta include toată munca privind invalidarea codului compilat al oricăror apelanți atunci când o metodă este conectată, ceea ce a durat de departe cel mai mult timp când am lucrat la Nougat. Așa că sunt foarte încrezător că voi fi mult mai rapid de data asta. Android 8.1nu ar trebui să fie mult diferit, așa că nu mă aștept la multă muncă suplimentară pentru el.