Xposed: introduzione ed installazione
1. Introduzione
Rieccoci, questa è la volta di Xposed, il signor framework di rovo89. Ne parlammo già precedentemente ma, questa volta, andremo ad analizzarne il funzionamento vero e proprio.
2. Funzionamento di Xposed
Il framework Xposed agisce su di un processo chiamato Zygote. Esso è praticamente il cuore dell’Android Runtime. Ogni applicazione in Android viene avviata come copia di Zygote (fork). Questo processo viene innescato da uno script in init.rc
quando il telefono viene avviato. Il suo avvio è realizzato con il binario app_process che si trova in /system/bin/
che carica le classi necessarie ed invoca i metodi di inizializzazione. Ciò che genera la vera potenza di Xposed è la sua capacità di “agganciarsi” ai metodi invocati permettendo modifiche on-the-fly. È lo stesso processo che si effettua quando si creano delle modifiche per un file .apk decompilandolo e ricompilandolo. Ma senza “rotture” di decompilazione e compilazione. Una vera manna dal cielo per una gran moltitudine di sviluppatori. Ecco un esempio grafico:
Nella prima immagine si può osservare come il pacchetto com.whatsapp viene generato ed eseguito, mostrando il suo set di emoticon.
Nella seconda immagine viene esplicato il processo di aggancio agli hook da parte di Xposed per modificare il set di emoticon di Whatsapp.
3. Requisiti per installare Xposed
I requisiti sono davvero basici: Xposed può essere installato dalla versione 4.0.3 di Android in su. Con due piccole differenze però. Se siete su versioni 5.x+, dovrete flashare un pacchetto zip tramite custom recovery. Altrimenti, se siete su versioni inferiori, potrete installare l’app di Xposed dal Google Playstore o dal forum XDA. In entrambi i casi, però, dovrete comunque installare la “companion” app, che vi darà accesso alla GUI per il framework.
3a. Screenshot dell’installazione via recovery
4. Presentazione app Xposed (nelle due versioni disponibili)
Le due “companion” app (ovvero le due app che accompagnano Xposed, le sue due GUI) che vedete negli screenshot risultano molto lineari. La prima, che segue le linee di design Holo, la seconda che implementa il material design. Entrambe hanno le stesse funzionalità, quindi, de gustibus.
5. Come installare moduli ed attivarli
L’installazione di moduli è davvero molto semplice. Basta recarsi nella sezione Download, cercando il nome del modulo, per poi premere Download. Dopodiché vi verrà mostrata un heads-up (notifica), che chiederà se volete attivare il modulo oppure attivare e riavviare. Attenzione, ad ogni modulo installato deve seguire un riavvio per la sua applicazione (per ovvi motivi spiegati precedentemente nel paragrafo 2).
6. Cosa fare in caso di malfunzionamenti
In caso di malfunzionamento dei moduli, rovo89, ha fornito uno zip uninstaller, capace di disattivare il framework. La sua esecuzione è analoga a quella illustrata precedentemente per l’installazione, sempre tramite custom recovery. Dopodiché potrete avviare il vostro terminale normalmente e procedere alla rimozione del modulo “incriminato”. Vi è anche un’alternativa per evitare la completa rimozione del framework, usando adb (Android Debug Bridge), con i seguenti comandi.
adb shell
pm list packages | grep "nome del pacchetto apk o parole chiave pertinenti"
pm uninstall NOMEDELPACCHETTOOTTENUTO
N.B. La maggior parte dei moduli che modifica la SystemUI è progettata per funzionare su versioni AOSP di Android. Quindi se vi ritrovate un telefono LG, Samsung o quant’altro, controllate sempre le descrizioni dei moduli, per evitare spiacevoli inconvenienti!
7. Debug per utenti avanzati
Alcuni moduli offrono opzioni di debug che, una volta attivate, possono essere consultate nella sezione log della app di Xposed. Quindi se siete dei temerari, degli sviluppatori o dei semplici appassionati che magari vogliono spulciare il tutto fino al midollo, è la sezione che fa per voi.
Dil3mm4