Cadrul Xposed neoficial pentru Android 7.1 Nougat

click fraud protection

Este acum disponibil un zip flash care aduce Framework-ul Xposed pe ROM-urile Android 7.1 Nougat. Zip-ul funcționează pe OnePlus 3T, precum și pe multe alte telefoane!

După luni și luni de așteptare, am primit în sfârșit suport Xposed Framework pentru ROM-urile Nougat (deși neoficial). Datorită unor dezvoltatori talentați de pe propriile noastre forumuri XDA, acum puteți instala Xposed Framework pe un ROM Android Nougat printr-un zip flash.

Până acum, viitorul pentru Xposed pe Nougat părea puțin șocant. Rovo89 - dezvoltatorul din spatele Xposed Framework - a oferit o actualizare privind suportul pentru Android Nougat cu puțin mai mult de o săptămână în urmă. Rovo89 a declarat în esență că mai este mult de lucru pentru ca Xposed să funcționeze corect pe Nougat și că ar trebui doar să avem răbdare.

Din fericire, se pare că am obținut o soluție temporară pentru cei dintre noi care așteptau cu nerăbdare o măsură intermediară. Echipa PurifyOS a preluat modulul ART acelui dezvoltator forţat lucrase la (și

despre care a fost postat mai devreme astăzi), și l-a adaptat pentru a fi instalabil pe alte ROM-uri personalizate printr-un zip flashable (în loc să fie implementat la compilarea ROM-ului).

În prezent, există trei versiuni disponibile pentru diferite platforme, inclusiv Xposed SDK25 ARM64, Xposed SDK25 BRAŢși Xposed SDK25 X86. Echipa PurifyOS a testat această nouă versiune de Xposed cu un OnePlus 3T care rulează OxygenOS bazat pe Android 7.1, dar ar trebui să funcționeze pe alte telefoane care rulează Android Nougat și utilizatorii raportează deja că au reușit să îl instaleze cu succes pe diferite ROM-uri și dispozitive. De exemplu, câțiva utilizatori de pe OnePlus 5 au raportat că funcționează (nicio surpriză, având în vedere că rulează pe OnePlus 3T foarte bine), dar un utilizator care rulează un ROM bazat pe AOSP pentru Samsung Galaxy S6 a raportat, de asemenea, că a funcționat pentru ei.

Vor fi ciudatenii de înțeles și nu toată lumea a reușit să-l facă să funcționeze până acum, unii utilizatori întâmpinându-se închideri de forță și alte ciudatenii. Cu toate acestea, chiar dacă acesta este cazul, puteți încă să încercați dacă ați așteptat sosirea lui Xposed pe Nougat de când a fost lansată versiunea anterioară a sistemului de operare Android. Nu toate modulele Xposed Framework existente vor funcționa imediat, dar unele cu adevărat populare, cum ar fi Amplify, sunt raportate că funcționează.

Asigurați-vă că faceți copii de rezervă regulate și citiți cu atenție firul înainte de a vă aventura dacă nu sunteți sigur dacă dispozitivul sau ROM-ul dvs. este acceptat. În cele din urmă, asigurați-vă că utilizați funcția „căutare” înainte de a lăsa o întrebare duplicat. Android O ar putea fi chiar după colț, dar după cum se spune, "mai bine mai tarziu decat niciodata." În plus, mulți utilizatori nu vor vedea Android O pe dispozitivele lor de ceva timp, așa că Xposed ar trebui să fie un răsfăț, astfel încât să nu vă simțiți lăsați în urmă.


Actualizare: Răspunsul lui Rovo89

Originalul dezvoltat în spatele Xposed Framework, XDA Senior Recognized Developer rovo89, a răspuns pe Github cu gândurile sale despre aceste evoluții recente.

Din experiența mea, vă pot spune că, într-adevăr, nu este atât de greu să realizați elementele de bază, dar este nevoie de mult timp pentru detalii. Este ca regula 80-20, cu excepția faptului că este mai mult ca 95-5 sau cam așa ceva.

Abordarea hooking pe care am conceput-o pentru versiunile anterioare este destul de stabilă și poate fi aplicată și pentru versiunile mai noi. Presupun că ai nevoie de cele mai multe ori să verifici toate locurile unde IsProxyMethod() și IsDirect() este apelat și decid dacă ar trebui să ia în considerare noul modificator al metodei sau nu (adică să folosească parametrul true sau nu). Dacă nu ai făcut asta, s-ar putea să fi ratat unele locuri în care au introdus recent astfel de apeluri. La fel pentru metode precum InstallStubsForMethod(), care trebuie să funcționeze pe metoda originală inițială chiar și atunci când sunt chemați pentru o metodă conectată. Ar trebui să verificați mai multe locuri în care acest lucru ar putea fi relevant. Acest lucru este încă în intervalul de zile, dar dacă nu o faceți, este posibil să vedeți blocări obscure sau comportament greșit care sunt foarte greu de depanat.

În plus, ați adoptat o abordare în care cârligele ar funcționa corect doar pentru ROM-urile care sunt compilate în întregime de la zero. Pe ROM-urile stoc și chiar pe majoritatea ROM-urilor personalizate (care nu au inclus portul dvs. în timpul construirii), precum și pentru orice aplicație pe care dispozitivul ar fi putut să le fi compilat înainte. Așa că va trebui să începeți totul din nou cu un dispozitiv șters care rulează un ROM special. Dacă nu, atunci optimizările (de exemplu, inlining) ar putea împiedica deloc apelarea unei metode și, prin urmare, cârligele nu ar funcționa. Cel mai rău lucru este că comportamentul exact ar depinde de ROM-ul sau chiar de modul în care utilizatorul folosește dispozitivul (acum că aplicațiile sunt compilate pe baza profilurilor). Modulele ar eșua aleatoriu și dezvoltatorii modulelor s-ar întreba ce au greșit (răspuns: nimic). Dacă nu sunt îndeplinite toate cerințele preliminare, este un API destul de nesigur. Imaginați-vă că Google a publicat o actualizare în care OnClickListener un buton nu a fost apelat uneori, decât dacă ți-ai compilat ROM-ul de la zero... Pentru mine personal, aceasta este o mare limitare.

El continuă:

Nu are deloc sens să publicați ZIP-uri flashabile cu aceasta, deoarece portul este destinat doar recompilării unui ROM de la zero.

Și cum mă temeam, nu există nici un avertisment că acesta este un port incomplet care adesea nu va îndeplini contractul API. 😠 Acest lucru este rău pentru dezvoltatori și utilizatori, ar trebui să știe cel puțin că este incomplet, astfel încât să poată decide dacă doresc să îl susțină/să îl folosească. Nu aș îndrăzni niciodată să fac așa ceva fără un avertisment mare. De fapt, pentru că sunt mai degrabă perfecționist, nu aș publica deloc o versiune incompletă, fiabilitatea este foarte importantă pentru mine.

Tocmai mi-am verificat jurnalul Git și aveam gata de conectare de bază (ca în acest port) în octombrie. De atunci, am lucrat la eliminarea limitărilor. Pentru a fi mai fiabil pe ROM-urile pre-compilate, aș fi putut porta și partea de recompilare, totuși asta nu este încă ideal. După cum am explicat undeva mai sus, avem acum JIT, care ne permite să păstrăm toate optimizările, doar invalidând (și eventual recompilând) metodele care sunt direct afectate de hooking. Acest lucru este destul de provocator, deoarece este mai mult decât doar copiere și inserare. Și până nu se face acest lucru, nu voi publica nimic. 9 luni pentru asta (până acum) sunt într-adevăr mult timp, știu, dar hei, este timpul meu liber și de ex. datorită mutării la un apartament nou, nu am putut lucra pe Xposed câteva luni (!) deloc și, altfel, aveam doar un timp foarte limitat.

Ar trebui să precizăm că aceste evoluții recente nu sunt adevăratul „Xposed” pe care îl cunoașteți cu toții și iubesc, dar din punct de vedere funcțional vă permit să utilizați unele module Xposed Framework chiar acum pe Android Nuga. Nu vă vom reproșa că nu așteptați versiunea oficială, mai stabilă și mai compatibilă a Xposed Framework pentru Android Nougat, dar vrem să clarificăm faptul că această iterație este doar o măsură intermediară menită să satisfacă nevoile unora dintre utilizatori. acum. Probabil că nu este modul în care Xposed va fi gestionat în viitor.


Descărcați cadru neoficial Xposed pentru Nougat de pe forumurile XDA