Xposed Framework non ha bisogno di presentazioni per i lettori XDA. Alla domanda sulle cose della nostra comunità odia di più Lollipop, il commento più votato nella discussione è stato che ha interrotto il supporto per Xposed. In effetti, molti membri del forum si sono addirittura rifiutati di aggiornare a Lollipop proprio per questo motivo. Ma tutto cambia ora, poiché l'attesissimo Xposed Framework è finalmente arrivato per Android Lollipop.
Se non hai già familiarità con Xposed, in poche parole, è una manna dal cielo per la comunità del modding. Xposed non richiede il flashing di alcuna ROM, ma offre tantissime personalizzazioni e modifiche che gli utenti possono installare come app su dispositivi rooted. È incredibilmente semplice da usare e con rischi limitati. E ora tutti gli appassionati di Android su Lollipop possono godere dei vantaggi di questo fantastico progetto sui propri dispositivi. Prendi il tuo download e inizia a modding!
rovo89 è stato anche così gentile da fornirci una sessione di domande e risposte per l'ultimo progetto. Di seguito puoi trovare le risposte a tutte le tue domande sul progetto.
Perché c'è voluto così tanto tempo? ART è stato pubblicato più di un anno fa!
Prima di tutto, molte persone continuano a chiedere il supporto dell’ART. Lollipop presenta molti più cambiamenti, come politiche SELinux ancora più rigide, ROM a 64 bit e modifiche all'architettura che ti aspetteresti da una versione principale. E ovviamente l'ARTE stessa viene costantemente migliorata; ci sono grandi differenze tra ART per KitKat e ART per Lollipop.
Quindi uno dei motivi è la grande complessità, che ha richiesto molte, molte ore di lavoro per ricerca, sviluppo e test.
Un altro motivo è che nella mia vita ci sono altre cose oltre a Xposed, quindi ci sono state settimane o addirittura mesi in cui non ho nemmeno guardato il codice.
Dobbiamo riscrivere tutti i moduli?
No, l'API Xposed è praticamente invariata. Xposed astrae tutti i dettagli, quindi ai moduli non è necessario preoccuparsi se sono in esecuzione su Dalvik o ART. Molti moduli funzioneranno effettivamente senza alcuna modifica, soprattutto quelli che modificano il comportamento delle app utente. Potrebbe essere necessario adattare i moduli mirati al comportamento del sistema al nuovo codice del framework Android, che non è causato da ART, ma semplicemente dalle modifiche all'architettura e al codice che si verificano tra due Android qualsiasi rilascia. La cosa più significativa è che il codice per i servizi di sistema è stato spostato in un file separato. Per la maggior parte dei moduli interessati, questo può essere risolto con un piccolo refactoring (spostando il codice in un posto diverso).
Funziona davvero?
SÌ! Almeno per me, funziona bene sul mio dispositivo quotidiano (Nexus 5 su CM12) e anche sul mio Nexus 9 (pagato da XDA - grazie!). Il telefono è stabile come al solito e le app funzionano bene. E ovviamente, anche i moduli e i loro hook/sostituzioni di risorse funzionano bene, altrimenti non avrebbe senso rilasciare qualcosa.
Ma allora perché è una versione alpha?
Perché ci sono stati enormi cambiamenti dall'ultima versione stabile che devono essere testati da persone che sappiano come utilizzare un ripristino, uscire dai cicli di avvio e segnalare correttamente i bug. Consiglio vivamente ai principianti di aspettare finché Xposed non sarà stato testato da persone sufficientemente esperte.
Ci sono anche alcuni casi limite che non sono stati ancora testati, come l'hook di metodi JNI (nativi) e metodi che vengono eseguiti al momento dell'hooking.
Voglio installarlo. Ora! Cosa devo fare?
Assicurati di aver letto le mie parole sopra e di avere familiarità con i componenti interni del tuo telefono. Ovviamente, devi avere una ROM Lollipop e avere un buon backup dei tuoi dati. Per ora pubblicherò solo la versione ARMv7. La versione a 64 bit è più complessa, quindi proviamo prima la variante “facile”.
Per ora, l'installazione deve essere eseguita manualmente in un ripristino personalizzato. Lampeggiando il file zip verrà installato:
- app_process32_xposed e alcuni collegamenti simbolici
- libexposed_art.so
- libart.so e alcuni binari + librerie correlati (basati su 5.0.2, migliorati con il supporto per l'hook ecc.)
- XposedBridge.jar (ora archiviato in /system/framework)
I backup dei file esistenti verranno creati automaticamente e potrebbero essere ripristinati in seguito.
Non funziona/non mi piace! Come posso disinstallarlo?
Il modo più semplice è ripristinare un backup o eseguire il flashing della partizione di sistema. Deve ancora essere creato un file zip per la disinstallazione.
Perché sostituisci i file ART sul mio dispositivo? È più invasivo che su Dalvik, causerà notevoli problemi di prestazioni e sarà instabile!
Ho scritto alcune ragioni su GitHub. Sì, è più invasivo, quindi ho cercato di evitarlo per molto tempo, ma dal punto di vista tecnico e di supporto penso che sia l’opzione migliore.
Meno prestazioni dell'ART originale? Probabilmente, poiché ho dovuto disabilitare alcune ottimizzazioni per rendere possibili determinati tipi di hook. Tuttavia, ciò riguarda solo una frazione di tutti i metodi e anche per questi la perdita di prestazioni non è certamente significativa o evidente, se non addirittura misurabile. Esistono ancora migliaia di altre ottimizzazioni eseguite da ART e ho cercato di disabilitarne il meno possibile fornendo al contempo la massima flessibilità possibile.
La stabilità è buona, come menzionato sopra. Rispetto all’approccio che ho utilizzato per Dalvik (modificando le strutture dati interne del runtime da app_process), sono anche abbastanza sicuro che sostituire completamente le librerie sia un'operazione molto più affidabile modo. Potrei integrare le mie modifiche nel codice esistente in modo pulito e riutilizzare le funzioni correlate, mentre per altri modi sarebbero necessari molti hack e ipotesi.
Renderai finalmente pubblico il codice sorgente?
Certo, lo troverai su GitHub subito dopo il rilascio della versione alpha, per ora in un ramo separato.
Ciò significa che le versioni Android precedenti non sono più supportate ora?
NO! Il nuovo codice può essere compilato su tutte le versioni 4.x di Android e deve solo essere testato prima di un rilascio unificato. Ma prima devo essere sicuro che funzioni bene per Lollipop. Forse, il supporto ART potrebbe essere sottoposto a backport su KitKat, ma questo ha una priorità minore.
Come posso ringraziarti per il tuo lavoro?
Molte persone hanno chiesto modi per donare qualche dollaro, quindi ho creato un donazione pagina ora.
Quanto devo donare per aggiungere la funzionalità X o un modulo che fa Y?
Questo non è donare, è pagare qualcuno in attesa di un lavoro futuro. Non sono interessato ai lavori da libero professionista.