Cosa è Xposed Framework? È un potente strumento che permette di modificare (quasi) ogni parte del sistema e delle applicazioni tramite dei moduli che ne cambiano l’aspetto o il comportamento. Ma come funziona?

Xposed Framework si ricollega perfettamente al paradigma della programmazione orientata agli aspetti. Come saprà chi ha avuto modo di sviluppare nella sua vita (dai programmi più semplici fino ai più complessi), esistono differenti paradigmi di programmazione: programmazione procedurale, strutturata, orientata agli oggetti e così via. Un paradigma emerso negli anni 2000 è la programmazione orientata agli aspetti. Di cosa si tratta?
Semplificando le cose, possiamo dire che la programmazione orientata agli aspetti è un’estensione della programmazione ad oggetti che prevede di estrarre dei pezzi di codice comuni a varie parti del programma per inserirle in un aspetto. È quest’ultimo che poi provvede ad inserire il codice dove è necessario.

Un esempio pratico: se devo far sì che ogni parte (oggetto) del mio programma scriva su file certi dati per effettuare il logging, posso estrarre le parti di codice comune così da non doverlo riscrivere tutte le volte e da non avere problemi nella manutenzione: è infatti sufficiente modificare il codice una volta sola perché la modifica abbia effetto in tutte le parti del programma.

Xposed Framework si comporta in maniera simile, anche se con le (ovvie) dovute differenze. Le applicazioni su Android vengono eseguite grazie ad una macchina virtuale chiamata Dalvik, la quale si occupa di caricare i programmi in memoria ed eseguirli.

Una volta ottenuti i permessi di root, però, è relativamente semplice modificare ogni parte del sistema compresa la stessa Dalvik. Questo è esattamente quello che succede.

Xposed Framework va infatti a modificare la Dalvik inserendo alcune istruzioni che fanno sì che la Dalvik possa modificare il funzionamento dei programmi quando questi vengono caricati in memoria. In buona sostanza, Xposed si comporta come un gestore degli aspetti e inserisce uno o più aspetti (ovvero i moduli!) all’interno delle applicazioni quando queste sono caricate in memoria. I moduli possono sovrascrivere alcune funzioni delle applicazioni o del sistema, oppure possono aggiungerne di nuove. In buona sostanza la Dalvik modificata con Xposed inserisce nuovi pezzi di codice all’interno delle applicazioni o del sistema nei punti più opportuni, così da mutarne il funzionamento.

Le possibilità aperte da questo tipo di framework sono pressoché illimitate. Il problema principale, però, riguarda la sicurezza: poiché è possibile inserire qualunque pezzo di codice nuovo all’interno delle applicazioni, è anche possibile introdurre del malware. Proprio perché le possibilità sono illimitate, è (quasi) illimitato anche il quantitativo di danni che si possono causare al proprio dispositivo.

Per stare sicuri è sufficiente scaricare solo moduli provenienti da fonti fidate e in qualche modo riconosciute anche dalla comunità. In questo modo non si ha la certezza di non incorrere in problemi, ma sicuramente si diminuiscono di molto le probabilità di incappare in moduli malevoli.

È sufficiente un poco di attenzione per non fare danni al proprio dispositivo, così come è richiesto molto poco per installare Xposed Framework. Proprio per facilitare l’installazione del framework da parte di tutti abbiamo creato un’apposita discussione sul forum con video-guida inclusa.

La scorsa puntata, la puntata 3, è stata dedicata all’installazione degli aggiornamenti OTA: potete trovarla seguendo il link sottostante.

Se vi siete persi la puntata 2 in cui vi abbiamo illustrato come ottenere i permessi di root e come installare una recovery custom, potete dargli uno sguardo tramite il link di seguito.

Se vi siete persi anche la puntata 1 dedicata allo sblocco del bootloader e al flash di una factory image, potete dargli un’occhiata cliccando sul link qui sotto.

NOTA IMPORTANTE: nel caso in cui abbiate delle domande da porre o vogliate ricevere dei chiarimenti, commentate nella discussione presente nel Forum e non in questo articolo. In questo modo sarà molto più semplice essere aiutati.