È ora disponibile uno zip flashabile che porta Xposed Framework sulle ROM Android 7.1 Nougat. Lo zip funziona su OnePlus 3T e su molti altri telefoni!
Dopo mesi e mesi di attesa, abbiamo finalmente ottenuto il supporto Xposed Framework per le ROM Nougat (anche se in modo non ufficiale). Grazie ad alcuni sviluppatori di talento sui nostri forum XDA, ora puoi installare Xposed Framework su una ROM Android Nougat tramite uno zip flashabile.
Fino ad ora, il futuro di Xposed su Nougat sembrava un po’ traballante. Rovo89 - lo sviluppatore dietro Xposed Framework - ha fornito un aggiornamento sul supporto per Android Nougat poco più di una settimana fa. Rovo89 ha sostanzialmente affermato che c'era ancora molto lavoro da fare per far funzionare correttamente Xposed su Nougat e che avremmo dovuto solo essere pazienti.
Per fortuna, sembra che abbiamo ottenuto una soluzione temporanea per quelli di noi che aspettavano con ansia una misura tampone. Il team PurifyOS ha acquisito il modulo ART da quello sviluppatore
abforce aveva lavorato su (e di cui è stato pubblicato prima oggi) e lo ha adattato per essere installabile su altre ROM personalizzate tramite uno zip flashabile (invece di dover essere implementato durante la compilazione della ROM).Attualmente sono disponibili tre versioni per diverse piattaforme, incluso Xposed SDK25 ARM64, Xposed SDK25 BRACCIOe Xposed SDK25 X86. Il team PurifyOS ha testato questa nuova versione di Xposed con un OnePlus 3T con OxygenOS basato su Android 7.1, ma dovrebbe funzionare su altri telefoni con Android Nougat e gli utenti stanno già segnalando di essere riusciti a installarlo con successo su ROM diverse e dispositivi. Ad esempio, alcuni utenti di OnePlus 5 hanno riferito che funziona (nessuna sorpresa, dato che funziona su OnePlus 3T bene), ma anche un utente che utilizzava una ROM basata su AOSP per il Samsung Galaxy S6 ha riferito che ha funzionato per loro.
Ci saranno delle stranezze da capire e non tutti sono riusciti a farlo funzionare finora, con alcuni utenti che hanno riscontrato chiusure forzate e altre stranezze. Tuttavia, anche in questo caso, puoi comunque provarci se stavi aspettando l'arrivo di Xposed su Nougat da quando è stata rilasciata la versione precedente del sistema operativo Android. Non tutti i moduli Xposed Framework esistenti funzioneranno subito, ma si dice che alcuni molto popolari come Amplify funzionino.
Assicurati di eseguire backup regolari e di leggere attentamente il thread prima di avventurarti se non sei sicuro che il tuo dispositivo o la ROM siano supportati. Infine, assicurati di utilizzare la funzione "cerca" prima di lasciare una domanda duplicata. Android O potrebbe essere proprio dietro l'angolo, ma come dice il proverbio, "meglio tardi che mai." Inoltre, molti utenti non vedranno Android O sui propri dispositivi per un bel po' di tempo, quindi Xposed dovrebbe essere una bella sorpresa per non sentirti lasciato indietro.
Aggiornamento: la risposta di Rovo89
L'originale sviluppato dietro Xposed Framework, XDA Senior Recognized Developer rovo89, ha risposto su Github con i suoi pensieri su questi recenti sviluppi.
Dalla mia esperienza, posso dirti che in effetti non è così difficile portare a termine le basi, ma ci vuole un sacco di tempo per i dettagli. È come la regola 80-20, tranne per il fatto che è più simile a 95-5 o giù di lì.
L'approccio di aggancio che ho progettato per le versioni precedenti è piuttosto stabile e può essere applicato anche alle versioni più recenti. Presumo che tu abbia avuto bisogno della maggior parte del tempo per controllare tutti i posti in cui
IsProxyMethod()
EIsDirect()
viene chiamato e decidere se considerare o meno il nuovo modificatore del metodo (ovvero utilizzare il parametrotrue
o no). Se non lo avessi fatto, potresti aver perso alcuni posti in cui hanno recentemente introdotto tali chiamate. Lo stesso per metodi comeInstallStubsForMethod()
, che deve operare sul metodo originale anche quando vengono chiamati per un metodo agganciato. Dovresti cercare più posti in cui questo potrebbe essere rilevante. Si tratta ancora di un periodo di pochi giorni, ma se non riesci a farlo, potresti vedere oscuri arresti anomali o comportamenti anomali di cui è molto difficile eseguire il debug.Oltre a ciò, hai adottato un approccio in cui gli hook funzionerebbero correttamente solo per le ROM interamente compilate da zero. Sulle ROM di serie e anche sulla maggior parte delle ROM personalizzate (che non includevano la porta durante la creazione), nonché per qualsiasi app che il dispositivo potrebbe aver compilato in precedenza. Quindi dovresti ricominciare tutto da capo con un dispositivo cancellato che esegue una ROM speciale. In caso contrario, le ottimizzazioni (ad esempio l'inlining) potrebbero impedire del tutto la chiamata di un metodo e quindi gli hook non funzionerebbero. La cosa peggiore è che il comportamento esatto dipenderebbe dalla ROM o anche da come l'utente utilizza il dispositivo (ora che le app sono compilate in base ai profili). I moduli fallirebbero in modo casuale e gli sviluppatori del modulo si chiederebbero cosa hanno fatto di sbagliato (risposta: niente). Se non tutti i prerequisiti sono soddisfatti, è un'API piuttosto inaffidabile. Immagina che Google abbia pubblicato un aggiornamento in cui
OnClickListener
A volte non veniva chiamato un pulsante, a meno che non compilassi la ROM da zero... Per me personalmente questo è un grosso limite.
Egli continua:
Non ha assolutamente senso pubblicare ZIP flashabili con questo, poiché il port è destinato solo alla ricompilazione di una ROM da zero.
E come temevo, non c'è un solo avvertimento che si tratti di un port incompleto che spesso non riuscirà a soddisfare il contratto API. 😠 Questo è un male per gli sviluppatori e gli utenti, dovrebbero almeno sapere che è incompleto in modo da poter decidere se vogliono supportarlo/usarlo. Non oserei mai fare una cosa del genere senza un grosso avvertimento. In realtà, essendo un po' perfezionista, non pubblicherei assolutamente una versione incompleta, per me l'affidabilità è molto importante.
Ho appena controllato il mio log Git e avevo l'hook di base pronto (come in questo port) in ottobre. Da allora, ho lavorato per rimuovere le limitazioni. Per renderlo più affidabile sulle ROM precompilate, avrei potuto eseguire il porting anche della parte di ricompilazione, tuttavia non è ancora l'ideale. Come spiegato da qualche parte sopra, ora abbiamo JIT, che ci consente di mantenere tutte le ottimizzazioni, invalidando (ed eventualmente ricompilando) solo i metodi che sono direttamente interessati dall'hook. Questo è piuttosto impegnativo, poiché è molto più che un semplice copia e incolla. E finché ciò non sarà fatto, non pubblicherò nulla. 9 mesi per quello (fino ad ora) sono davvero tanti, lo so, ma ehi, è il mio tempo libero e ad es. a causa del trasferimento a un nuovo appartamento, non ho potuto lavorare su Xposed per diversi mesi (!), e per il resto avevo solo un tempo molto limitato.
Dovremmo chiarire che questi recenti sviluppi non sono il vero "Xposed" che tutti conoscete e amore, ma dal punto di vista funzionale ti consentono di utilizzare alcuni moduli Xposed Framework proprio ora su Android Torrone. Non ti biasimeremo per non aver aspettato la versione ufficiale, più stabile e più compatibile di Xposed Framework per Android Nougat, ma vogliamo chiarire che questa iterazione è solo una misura tampone intesa a saziare le esigenze di alcuni utenti proprio Ora. Probabilmente non è il modo in cui Xposed verrà gestito in futuro.
Scarica il framework Xposed non ufficiale per Nougat dai forum XDA