domingo, 11 de febrero de 2024

[Nota] Ejecutar script al arrancar Android

 


Ejecutar scripts al arranque de Android era sencillo antes de la implantación de SELinux, simplemente había que crear un script en la ruta /system/etc/init.d/99Mi-Script.sh y este se ejecutaba sin más al arrancar. Desde la implantación de SELinux y tras la decisión de desactivar el soporte nativo para la ejecución de scripts desde /system/etc/init.d, esto ya no es posible, por lo que hay que buscar alternativas. Una de ellas es rootear el móvil con Magisk y usar la ruta por defecto /data/adb/post-fs-data.d/ que utiliza magisk para ejecutar script automáticamente tras el arranque.


Cuando el sistema arranca, Magisk ejecuta automáticamente scripts ubicados en la carpeta /data/adb/post-fs-data.d/ después de que el sistema de archivos principal ha sido montado y antes de que las aplicaciones comiencen a ejecutarse. Los scripts se ejecutan como root y ofrecen una oportunidad para realizar configuraciones personalizadas, correcciones o modificaciones en el sistema antes de que las aplicaciones empiecen a cargarse.

El script puede tener la forma:

#!/system/bin/sh
# Script de arranque personalizado

# Comandos o acciones que deseas realizar al iniciar el dispositivo

# Ejemplo: Montar una partición
mount -o remount,rw /system
echo "Hola, este es mi script de arranque" > /system/boot.log
mount -o remount,ro /system

# Puedes agregar más comandos según tus necesidades


exit 0