Ottenere i permessi di scrittura in /system su Android

Per un motivo o per un altro, ai possessori di un dispositivo Android potrebbe capitare di aver bisogno di modificare un file di sistema. Questi file, però, sono ovviamente protetti, in modo da evitare disastri agli utenti meno esperti o più incoscienti. Ad ogni modo, la necessità (o la già citata incoscienza) può spingere a superare queste semplici protezioni e garantire accesso completo (quindi anche in scrittura) nella cartella /system su Android.


Il requisito fondamentale è ovviamente un telefono ROOTato. A ciò si possono affiancare due strumenti che rendono le operazioni su Android estremamente confortevoli: BusyBox e adb. BusyBox è generalmente presente in tutte le custom rom e comunque è uno dei primi tool che viene installato sullo smartphone una volta ottenuti i permessi di root; fornisce una serie di programmi molto utili in alcune evenienze. Adb, invece, è uno strumento dello SDK Android che permette di comunicare tramite riga di comando con un dispositivo o emulatore Android connesso al pc.

In ogni caso i due tool appena elencati non sono strettamente necessari.

Procedura

Realizzare uno script

Il mio consiglio è quello di ricavare questi parametri una sola volta e poi scrivere uno script molto semplice per automatizzare l’operazione. Il file potrebbe essere il seguente:

#!/system/bin/sh
# Esempio di mountrw

echo “Remount /system in rw…”
mount -o rw,remount -t yaffs2 /dev/block/mtdblock4 /system

Salvate poi il file in /system/xbin/ chiamanadolo semplicemente “mountrw” (senza virgolette). Ricordatevi di ottenere i privilegi di superuser prima di richiamare lo script. Da questo momento potrete rimontare comodamente la partizione di sistema con due semplici comandi:

$ su
# mountrw

Analogamente è possibile rimontare la partizione di sistema in sola lettura al termine delle nostre operazioni, al fine di garantire una maggiore sicurezza ed evitare cancellazioni accidentali. Il comando questa volta sarà
mount -o rw,remount -t yaffs2 /dev/block/mtdblock4 /system

Quindi il nostro corrispondente script “mountro” di esempio sarebbe essere il seguente:

#!/system/bin/sh
# Esempio di mountro

echo “Remount /system in ro…”
mount -o ro,remount -t yaffs2 /dev/block/mtdblock4 /system