9 votos

¿Cómo ejecutar un script en el arranque en CM12.1?

La mayoría de las preguntas que puedo encontrar relacionadas con esto son de 2011 y más o menos, así que quizás no sea demasiado sorprendente que las cosas hayan cambiado desde entonces. He probado un montón de cosas, sin ningún resultado.

Hay algunos scripts en /system/etc/init.d (que también aparece en /etc/init.d en mi dispositivo). En particular, hay un 00banner script que se supone que registra un mensaje de bienvenida. El mensaje de bienvenida nunca aparece en logcat.

He colocado aquí mi propio script, que finalmente se redujo a nada más que esto:

#!/system/bin/sh
log -t mytest Testing

Nada. Nunca aparece en logcat a menos que se ejecute manualmente a través de la terminal. Entonces funciona.

También hay un 90userinit que invoca /data/local/userinit.sh si es que existe. Lo he creado con el mismo contenido que el anterior. De nuevo, no aparece nada en logcat. Lo cual no es sorprendente, en realidad, ya que si 00banner no se ejecuta entonces esto tampoco.

He buscado algo llamado "init.rc" pero no existe nada parecido en ningún lugar de mi dispositivo.

Todos mis scripts tienen permisos 755.

¿Qué más puedo probar? (que no sean aplicaciones que ejecuten scripts por mí)

0 votos

Qué script hacer usted quiere presentarse, y por qué?

0 votos

Lamentablemente la pequeña cantidad de investigación que hice resultó en "No funcionará en roms personalizadas". Al parecer, CM tiene su propia manera de hacer las cosas. No estoy seguro de que quiera meterse con él. Pero aparentemente puedes crear tu propio archivo boot.img y añadirle tus scripts personalizados. Tal vez eso funcione para ti.

0 votos

@jer3my Estoy perfectamente feliz de aceptar eso como la respuesta real y asignar la recompensa si usted tiene enlaces que voy a encontrar convincente / autorizada.

-1voto

Alexander Temerev Puntos 226

Siguiendo los pasos para ejecutar los scripts en el momento del arranque. (Requiere adb)

  1. adb Root
  2. adb remount
  3. adb pull /init.rc
  4. editar init.rc añadir línea para ejecutar script como sh test.sh
  5. adb push init.rc /
  6. adb shell
  7. chmod 755 init.rc
  8. adb reboot

Espero que esto te ayude.

1 votos

Este método no debería funcionar en absoluto. El contenido de los rootfs iniciales como init.rc son parte del ramdisk que se restaura desde la flash de tu dispositivo cada vez que arrancas. Necesitas modificar el ramdisk directamente en la partición apropiada de la memoria flash de tu dispositivo

0 votos

Entonces puedes añadir en /system/etc/init.qcom.wifi.sh

1 votos

Este método no funcionará, init.d no puede ser empujado, es parte de los initramfs, tienen que ser editados en el boot.img y luego flasheados de nuevo, y para init.qcom.wifi.sh es específico del dispositivo no se puede hacer una regla general de ella

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X