Saltar al contenido

Android: ¿cómo puedo ejecutar un script al arrancar?

Solución:

Mientras miraba alrededor de mi sistema de archivos de Android, descubrí que sí, de hecho, tenía un /etc/init.d/ directorio. Después de mirar por ahí, encontré /etc/init.d/20userinit con las siguientes líneas:

if [ -e /data/local/userinit.sh ];
then 
    log -p -i -t userinit "Executing /data/local/userinit.sh";
    busybux chmod +x /data/local/userinit.sh;
    logwrapper /system/bin/sh /data/local/userinit.sh;
    setprop cm.userinit.active 1;
fi;

Este siendo, por supuesto, exactamente lo que necesitaba, escribí el siguiente script en mi computadora y luego lo empujé a mi dispositivo:

#!/system/bin/sh 

dropbear -s -g 

(empujado al dispositivo a través de scp userinit.sh phone:/data/local/userinit.sh, eso sí:])

Reinició el dispositivo, luego ejecutó ps | grep "[d]ropbear"y, efectivamente, se está ejecutando. ¡Frescura!

/data/init.sh se ejecuta en el arranque, si tiene root, puede editarlo como desee. Ten cuidado 😉

Editar: Aparentemente, es posible que también deba calzar el script editado en la imagen de arranque. Información sobre cómo hacerlo aquí: http://forum.xda-developers.com/showthread.php?t=443994

Mirar hacia /etc/ directorio. Normalmente se coloca en /system/ partición que puede montar como RW:

$ ls -l /etc
lrwxrwxrwx 1 root root 11 Jan 1  2009 /etc -> /system/etc
$ su
$ mount -o remount,rw /system
$ chmod o+w /system/etc  # for "adb push"

Algunos de los pasos anteriores pueden reemplazarse por:

$ adb root
$ adb remount

y luego remontar RO:

$ chmod o-w /system/etc
$ mount -o remount,ro /system

Ahora tu tarea es encontrar ejecutables o *rc archivo que modifica para lograr su objetivo:

$ find /etc -type f -perm +110
$ find /etc -name "*rc"
$ find /etc -name "init*"
$ grep -R /data /etc
$ grep -R /system /etc

Busque en Google sobre cada candidato para saber cómo se utilizó este archivo.

Un buen candidato para incluir scripts personalizados son las líneas de:

$ grep service /init*.rc

Como cada dispositivo es único, es posible que deba realizar sus propias suposiciones sobre los criterios de búsqueda …

Por ejemplo encontré /etc/mkshrc que utiliza Korn shell. Actualizo este archivo para extender PATH env var y ahora cada vez que lo hago adb shell ¡Tengo enlaces simbólicos de Busybox en mi RUTA!

Ver también manera difícil (si no tienes suerte encontrando magia archivo): https://stackoverflow.com/questions/9768103/make-persistent-changes-to-init-rc

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *