2 votos

¿Cómo hacer que el teléfono arranque automáticamente al insertar la batería (bootloader desbloqueado y Root: sí)?

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.

2voto

Zykrates Puntos 21

He soldado los pines de mi Nexus 7 2012 Gen 1 y el dispositivo sí ha arrancado. La soldadura simula un botón de encendido siempre pulsado. Sin embargo probé lo mismo con la Nexus 7 2013 Gen 2 y se volvió a apagar sola, porque el botón estaba siempre presionado. Así que tuve que soldar un condensador y una resistencia en serie para simular una pulsación corta del botón. Esto me funcionó, pero la solución de software sería más elegante. Sólo pude medir unos pocos uA cuando la batería está conectada, por lo que no puedo imaginar que una parte del bootloader se esté encendiendo en los dispositivos mencionados. Mi idea ahora es soldar la fuente de alimentación directamente al puerto micro usb ya que para los datos solo se utilizan 2 pines (USB2.0). Pines USB: https://www.giga.de/downloads/microsoft-Windows/tipps/usb-anschluss-farben-stecker-bedeutung-und-erklaerung/

Entonces el dispositivo arrancará con el lpm script o el cambio "Fastboot oem off-mode-charge 0". Se agradecería mucho otra solución. Gracias y saludos

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