La mayoría de las preguntas que puedo encontrar relacionadas con esto están fechadas en 2011 y por ahí, así que quizás no sea demasiado sorprendente que las cosas hayan cambiado desde entonces. He intentado un montón de cosas, sin ningún resultado.
Hay algunos scripts en /system/etc/init.d
(que también aparecen /etc/init.d
en mi dispositivo). En particular, hay un 00banner
script que debe registrar un mensaje de bienvenida. El mensaje de bienvenida nunca aparece en logcat.
He colocado mi propio script aquí, 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
archivo aquí, que invoca /data/local/userinit.sh
si existe. Lo he creado con el mismo contenido que el anterior. De nuevo, nunca aparece nada en logcat. Lo cual no es sorprendente, realmente, ya que si 00banner
no funciona, entonces tampoco lo haría.
Busqué cualquier cosa llamada "init.rc" pero nada de eso existe en mi dispositivo.
Todos mis scripts tienen 755 permisos.
¿Qué más puedo probar? (aparte de las aplicaciones que ejecutan scripts para mí)
fuente
Respuestas:
hay un método simple para agregar soporte init.d a cualquier Android rooteado para las versiones 4.0 y superiores, google creó una secuencia de comandos que se ejecuta en el arranque como superusuario, la secuencia de comandos
install-recovery.sh
se usa para actualizar la recuperación de stock en cada arranque que pensaron que era un buen seguridad para evitar recuperaciones personalizadas, pero abrió un nuevo agujero que los usuarios pueden aprovechar para falsificar la función init.d. Dependencias : para que este método funcione, necesita lo siguienterun-parts
enlace simbólico a su ruta como/system/xbin
/system
capacidad de montarse comorw
Método I: (¡La forma más fácil!)
Método II: (dificultad: media)
Descargue este zip, descomprímalo y coloque init.sh en su tarjeta SD (en este ejemplo
/sdcard
, puede cambiar de un dispositivo a otro.ahora abra una terminal, o use
adb shell
desde la computadora y ejecute 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 le pedirá que reinicie dos veces, eso es todo lo que tiene oficialmente soporte init.d: D
Referencia: [MOD] [APK + SCRIPT + ZIP] ¡Habilite Init.d para cualquier teléfono sin necesidad de núcleos personalizados!
fuente
Editar: vi la publicación final, de esta manera, intentaré agregar sin aplicaciones lo antes posible (no en casa, publicar usando dispositivos móviles), pero puede usar esto, si algo no funciona.
Puedes intentar usar la aplicación llamada Tasker .
Cuesta 3.29 $ y requiere acceso de root, pero puede ejecutar scripts de Shell. Además, tiene una versión de prueba para que pueda probar antes de comprar.
Primero crea Tarea. Vaya a la pestaña Tarea, toque + signo, ingrese el nombre de la tarea. Ahora ve de nuevo + signo, y escribe
shell
filtro. Encontrará la opciónRun Shell
, selecciónela y configúrela según sus necesidades.Después de eso, regrese a la primera pestaña: Perfiles, toque + signo para crear uno nuevo. Seleccione Evento como tipo, vaya Sistema y seleccione Arranque del dispositivo. Regrese y se le pedirá que seleccione la tarea. ¡Ahora seleccione la tarea creada previamente y está listo para comenzar!
fuente
Esto requiere que muestres un zip pero luego puedes poner tus scripts en / system / etc / startup y luego deberían iniciarse 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 decía que CM tenía su propia forma de ejecutar scripts en el arranque.
Editar. Después de un poco más de excavación, no es CM, por decir, que hace lo suyo para los scripts. Es el núcleo. No todos los núcleos admiten init.d para Android. Si publica qué dispositivo está utilizando. Puedo buscar un núcleo que admita scripts personalizados en el arranque para usted.
fuente
También tengo el mismo problema al ejecutar el archivo de script en la terminal en CM12.1. La solución es copiar el script a la
/data
carpeta y ejecutarlo. Entonces, creo que CM 12 solo permite el script ejecutable desde cierta ubicación.fuente
Manera simple (trabajando):
Prepare sus comandos posteriores al inicio en un script, digamos / system / xbin / post-boot (establezca la permanente exec)
Agregue la ruta de script personalizada anterior al final de /system/etc/init.qcom.post_boot.sh
P.ej:
echo / system / xbin / post-boot >> /system/etc/init.qcom.post_boot.sh
¡Hecho!
(Si no puede encontrar el qcom post_boot (dispositivos Qualcomm), busque los scripts post_boot)
fuente
Siguiendo los pasos para ejecutar scripts en el momento del arranque. (Adb requerido)
funciona para mi Espero que esto te ayude.
fuente