Estoy tratando de ejecutar un script que se ejecuta cuando el dispositivo ha terminado de arrancar. Este dispositivo en particular no soporta la ejecución de scripts desde un directorio init.d, por lo que estoy usando init.rc.
El archivo init.rc ha sido modificado para incluir el siguiente código
on property:sys.boot_completed=1
start initAsic
service initAsic /data/local/tmp/runn.sh
user root
group root
oneshot
La imagen de arranque ha sido reconstruida y flasheada en el dispositivo. Los cambios se pueden confirmar viendo el archivo init.rc ubicado en /
Actualmente sólo estoy utilizando un simple script (testScript.sh) que emite el siguiente comando
echo hi >> /data/local/tmp/test.txt
El archivo testScript.sh y text.txt tiene 777
y ambos han sido enviados al dispositivo mediante adb push
. Su ubicación actual es /data/local/tmp/
Por alguna razón parece que mi script no se está ejecutando, ya que no veo que se escriba ningún texto en test.txt.
¿Me estoy perdiendo algo? ¿Podría ser un problema con SELinux?
Mi dispositivo tiene actualmente SElinux configurado como permisivo. Esto se hizo mediante la alteración del archivo BoardConfig.mk y haciendo una reconstrucción del boot.img.
1 votos
¿Responde esto a su pregunta? ¿Cómo ejecutar un ejecutable en el arranque y mantenerlo en funcionamiento?
0 votos
Añadir
disabled
palabra clave para el servicio. Después de reiniciar compruebe el registro:dmesg | grep -C5 initAsic
.0 votos
Disculpas por la respuesta tardía y gracias por tus sugerencias. @alecxs He visto ese post y he replicado la mayoría de los pasos en uno de los procesos descritos, pero no paso a paso - la única diferencia es la ubicación de los archivos que se están ejecutando. No tuve ningún éxito. @IrfanLatif He añadido la palabra clave disabled a los servicios y he ejecutado el comando dmesg. Parece que mi suscpicon era correcto, ya que devuelve
service initAsic does not have a SELinux domain defined
. Debería ser capaz de resolver el problema ahora - le hará saber cómo voy y publicar una respuesta. Gracias.