Por inserción de la batería me refiero a la corriente que fluye en los pines de la batería, no el puerto micro USB.
Descripción
El teléfono en cuestión es un Samsung Galaxy Xcover 4, el cargador de arranque es desbloqueado y tengo Acceso a root . Su propósito es ser un dispositivo de quiosco que estará sellado dentro de una carcasa externa de plástico duro. Esto significa que el botón de encendido no está disponible para arrancar el teléfono. El teléfono se alimenta directamente de la pared por medio de un PCB eliminador de batería hecho a medida, y necesito el puerto micro USB para la comunicación UART en modo host, lo que significa que nunca se cargará/alimentará a través del puerto micro USB.
Lo que se ha intentado hasta ahora
Como se ha mencionado, el dispositivo está rooteado, por lo que he intentado modificar la imagen de la partición BOOT y flashear una actualizada. Las modificaciones que he mirado pertenecen al programa
/init
en el directorio root. y su asociado
/init.rc
/init.samsungexynos7570.rc
/...
archivos. Por ejemplo, pude hacer que el teléfono arrancara al recibir la carga a través del puerto USB sobrescribiendo el contenido del archivo
/system/bin/lpm
con el script
#!/system/bin/sh
echo b > /proc/sysrq-trigger
porque /system/bin/lpm está referenciado en un servicio especificado en la sección de carga de /init.rc. También pude hacer que arrancara a través de la carga del puerto USB eliminando los disparadores "on charge" existentes en los archivos init.*.rc, y simplemente añadiendo
on property:ro.bootmode=charger:
trigger late-init
Para más detalles sobre lo que hice, véase este enlace . Pero esto es no es una solución para mí porque quiero hacer que arranque simplemente alimentando los pines de la batería, no el puerto micro USB (que está preocupado por estar en modo host, por lo que definitivamente no se puede cargar).
Otras reflexiones
Sin embargo, dado que la modificación del archivo /init.rc ha cambiado su comportamiento incluso cuando está "apagado" (es decir, ahora arranca cuando se carga el micro USB en lugar de no hacerlo), esto parece decirme que el teléfono nunca está realmente apagado por completo cuando está "apagado", y que el programa /init se ejecuta constantemente mientras haya suficiente carga en las clavijas de la batería (por favor, desvíen este tren de pensamiento lo antes posible si esto es completamente erróneo). Lo que significaría que el kernel y el programa /init deberían iniciarse automáticamente cuando hay suficiente carga en los pines de la batería. Así que mi pensamiento era simplemente añadir algo a lo largo de las líneas de
trigger late-init
o
start <my_service>
(donde mi_servicio por ejemplo, podría ser el lpm script que mencioné anteriormente) en una etapa temprana de activación de init, de modo que arrancara simplemente en virtud del programa /init que se ejecuta. Pero hasta ahora no he tenido suerte.
¿Alguien sabe si algo así sería posible? Gracias por su tiempo.