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.

6voto

Lôrd Ralf Adolf Puntos 11

Hay un método sencillo para añadir soporte init.d a cualquier Android rooteado para las versiones 4.0 y superiores ,google hizo un script que se ejecuta en el arranque como superusuario el script es install-recovery.sh se utiliza para reflash stock recovery en cada arranque pensaron que era una buena seguridad para evitar recuperaciones personalizadas pero abrió un nuevo agujero que puede ser explotado por los usuarios para falsificar la función init.d. Dependencias Para que este método funcione se necesita lo siguiente

  1. Caja ocupada instalada con el run-parts vinculado simbólicamente a su ruta como /system/xbin
  2. Obviamente vas a necesitar un teléfono rooteado con el /system capaz de montar como rw
  3. La versión del kernel no importa.

Método I : (¡La forma más fácil!)

  1. Descargar esto APK (libre de usar, no reflejar, gracias @Ryuinferno de XDA).
  2. Instala el apk como cualquier aplicación normal.
  3. Inicie la aplicación.
  4. pulse en Activar ! eso es todo ya está soportado init.d puede pulsar el botón de prueba o reiniciar su teléfono para ver si sus scripts init.d se salen
  5. puedes desinstalar la aplicación, no afectará al soporte init.d

Método II : (dificultad: media)

  1. Descargar esto zip descomprímelo y pon init.sh en tu tarjeta sd (en este ejemplo será /sdcard puede cambiar de un dispositivo a otro.

  2. ahora abre un terminal, o usa adb shell desde el ordenador y ejecutar el script.
    su
    cp /sdcard/init.sh /data/tmp/init.sh
    chmod 777 /data/tmp/init.sh
    /data/tmp/init.sh

el script se ejecutará y te pedirá que reinicies dos veces ,eso es todo tienes soporte init.d oficialmente :D

Referencia: [MOD][APK+script+ZIP] ¡¡¡Habilitar Init.d para cualquier teléfono sin necesidad de Kernels personalizados!!!

0 votos

Dado que el archivo zip está alojado en XDA, debe haber un tutorial que has seguido o llegado a conocer de alguna manera. ¿Podrías mencionar el enlace para ello? Necesito buscar algo más en él :)

2 votos

@Firelord sí el script no es mío, fue utilizado para otro propósito, lo tomé de aquí la vista de un solo puesto > forum.xda-developers.com/ el tutorial completo es sobre xposed y nexus 6 >> forum.xda-developers.com/nexus-6/general/

0 votos

@Firelord encontrar nuevo enlace de referencia incluido en la respuesta :)

2voto

Editar: Vi final del post, Esta manera, voy a tratar de añadir sin aplicaciones lo antes posible (no en casa, la publicación utilizando el móvil), pero se puede utilizar este, si cualquier otra cosa no funciona.

Puedes probar a usar la aplicación llamada Tasker .

Cuesta 3.29$ y requiere acceso Root pero puede ejecutar scripts de Shell. Además, tiene versión de prueba para que pueda probar antes de comprar.

Primero crear la Tarea. Vaya a la pestaña Tarea, pulse el signo + y escriba el nombre de la tarea. Ahora vaya de nuevo al signo + y escriba shell en el filtro. Encontrará la opción Run Shell Seleccione la opción y configúrela según sus necesidades.

Después vuelve a la primera pestaña - Perfiles, toca el signo + para crear uno nuevo. Seleccione Evento como tipo, vaya a Sistema y seleccione Arranque del dispositivo. Regrese y se le pedirá que seleccione la tarea. Ahora seleccione la tarea creada anteriormente y ya está listo para empezar.

1voto

jer3my Puntos 19

Esto requiere que flashees un zip pero luego puedes poner tus scripts en /system/etc/startup y entonces deberían arrancar automáticamente con el teléfono.

http://forum.xda-developers.com/showthread.php?t=2664645

También de mi comentario bajo la pregunta. Intenté buscar en mi historial pero no pude encontrar el enlace donde la gente afirmaba que CM tenía su propia forma de ejecutar scripts en el arranque.

Editar. Después de un poco más de investigación no es CM, por decir, que hace su propia cosa para las secuencias de comandos. Es el kernel. No todos los kernels soportan init.d para Android. Si usted publica lo que el dispositivo que está utilizando. Puedo buscar un kernel que soporte scripts personalizados en el arranque para ti.

0voto

Dojo Puntos 36

También tengo el mismo problema al ejecutar el archivo script en el terminal en CM12.1. La solución es copiando el script en /data y ejecutarlo. Así que creo, CM 12 sólo permiten script ejecutable desde cierta ubicación.

0voto

PlanZ Puntos 1

De forma sencilla (trabajando):

  1. Prepara tus comandos de post arranque en un script, digamos /system/xbin/post-boot (set exec perm)

  2. Añade la ruta personalizada script al final de /system/etc/init.qcom.post_boot.sh

Por ejemplo:

echo /system/xbin/post-boot >> /system/etc/init.qcom.post_boot.sh

¡Hecho!

(Si no encuentras el qcom post_boot (dispositivos Qualcomm), busca cualquier script post_boot)

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