Conseguí que funcionara - el arranque automático cuando el cargador está enchufado - en mi HTC Desire 200. No hay playlpm/lpm/idot/chargemon en estos dispositivos HTC. Afortunadamente existe algo similar, /system/bin/zchgd . Se trata de un servicio que se encarga de la animación de la carga. En este dispositivo específico, la animación de carga se reproduce aunque el teléfono esté encendido (en la pantalla de bloqueo), también se reproduce cuando el teléfono se apaga mientras está en un cargador. (Por cierto: las imágenes de la animación se pueden encontrar en /system/media/zchrgd .)
Como he descubierto, el zchgd El servicio se inicia de forma diferente cuando el teléfono se apaga o se enciende. Sólo tengo que buscar en los scripts de init, en mi caso /init.gtou.rc :
service zchgd_offmode /system/bin/zchgd -pseudooffmode
user root
group root graphics
disabled
service zchgd_onmode /system/bin/zchgd -onmode
user root
group root graphics
on property:dev.zcharge=true
start zchgd_onmode
on property:dev.zcharge=false
stop zchgd_onmode
Así que creé un falso zchgd servicio, un simple sh script que sustituye al servicio original.
Pasos:
adb shell
su
mount -o rw,remount,rw /system
cd /system/bin
ls -l zchgd*
mv zchgd zchgd_original
touch zchgd
vi zchgd # <- insert content
chmod 0755 zchgd
chown root.shell zchgd
ls -l zchgd*
Contenido de mi servicio falso:
#!/system/bin/sh
log -p v -t "zchgdwrapper" "Starting fake zchgd service; args='$@'"
if [ "$#" -eq 1 ]; then
case $1 in
-pseudooffmode)
log -p v -t "zchgdwrapper" "PseudoOffMode service"
while true; do
sleep 60
enabled=$(cat /sys/class/power_supply/battery/charging_enabled)
log -p v -t "zchgdwrapper" "Checking battery charging enabled; enabled='$enabled'"
if [ "$enabled" -gt 0 ]; then
log -p v -t "zchgdwrapper" "Going to magic-reboot"
su -c "echo 1 > /proc/sys/kernel/sysrq"
su -c "echo b > /proc/sysrq-trigger"
ret=$?
log -p v -t "zchgdwrapper" "Magic-reboot issued ret='$ret'"
sleep 120
exit 0
fi
done
;;
-onmode)
log -p v -t "zchgdwrapper" "OnMode service"
while true; do
log -p v -t "zchgdwrapper" "Sleeping beauty"
sleep 3600
done
;;
esac
fi
log -p v -t "zchgdwrapper" "Not gonna happen - starting the original service"
/system/bin/zchgd_original $@
exit $?
Cuando el servicio se inicia con -Pseudooffmode argumento, entonces comprueba el estado de la batería periódicamente (cada minuto en mi caso). Si el teléfono se está cargando o la batería está llena, entonces automáticamente automáticamente el teléfono. No he podido utilizar /system/bin/reboot , tengo errores de permisos, aunque los tenía... Así que lo reinicio con un hack, que dos líneas de eco. El -en el modo está ahí sólo porque, no quiero ver la animación de carga incluso si mi teléfono está encendido.
Puedes depurar el script con adb logcat -s zchgdwrapper . Espero que esto haya sido útil.
IMPORTANTE
Para que esto funcione, usted DEBE activar Configuración/Energía/Arranque rápido opción. No funcionará si está desactivada, creo que sin la opción de arranque rápido se arranca otro firmware, pero no estoy seguro de ello.
También tengo esta configuración en SuperSU# No creo que sea necesario pero, aquí está:
- Acceso por defecto < Grant
- Habilitar su durante el arranque
- Usuario del sistema de confianza
Más información: https://github.com/tomicooler/htcdesire200autoboot
0 votos
¿Ha encontrado alguna solución antes de esto?
0 votos
¿Responde esto a su pregunta? Encendido automático de Android cuando se conecta el cargador