1 votes

Démarrage automatique lorsque le chargeur est connecté (pour le HTC Magic)

Je veux que le système d'exploitation Android démarre automatiquement lorsque le chargeur est connecté (pour le HTC Magic) sans appuyer sur le bouton d'alimentation. J'ai trouvé ce guide :


Démarrage complet lors de la charge

Si votre téléphone n'affiche qu'un seul de ces affreux symboles de batterie lorsqu'un chargeur est connecté à un téléphone éteint, c'est parce que le processus d'initialisation est interrompu par /system/bin/chargemon. Ce fichier est un programme binaire ARM, je l'ai remplacé par un simple script contenant une seule ligne : echo skipping chargemon Ce fichier a été créé et installé en suivant les étapes suivantes :

echo "echo skipping chargemon" > chargemon.script

adb pull /system/bin/chargemon chargemon.backup

adb push chargemon.script  /sqlite_stmt_journals

adb shell

$ cd /sqlite_stmt_journals
$ su
# mount -o remount,rw /dev/block/mtdblock0 /system
# cat chargemon.script > /system/bin/chargemon
# chmod 755 /system/bin/chargemon
# reboot -p

Lorsque la commande su est donnée ci-dessus, il peut être nécessaire de l'acquitter dans une boîte de dialogue sur l'écran du téléphone. La dernière commande reboot -p éteint le téléphone. Comme le câble USB est toujours connecté, il se rallumera, et si tout s'est bien passé, le téléphone terminera son processus de démarrage sans s'arrêter avec un symbole de batterie.


Mais je ne peux pas trouver "chargemon" dans System/bin

0 votes

Avez-vous trouvé une solution avant cela ?

0 votes

1voto

Tamás Dömők Points 11

J'ai réussi à le faire fonctionner - démarrage automatique lorsque le chargeur est branché - sur mon HTC Desire 200. Il n'y a pas de playlpm/lpm/idot/chargemon sur ces appareils HTC. Heureusement, il existe quelque chose de similaire, /system/bin/zchgd . Il s'agit d'un service qui prend en charge l'animation de la charge. Sur cet appareil spécifique, l'animation de chargement est jouée même si le téléphone est allumé (sur l'écran de verrouillage), elle est également jouée lorsque le téléphone est éteint alors qu'il est sur un chargeur. (BTW : les images de l'animation se trouvent à l'adresse suivante /system/media/zchrgd .)

Comme je l'ai découvert, le zchgd Le service est lancé différemment selon que le téléphone est éteint ou allumé. J'ai juste parcouru les scripts init, dans mon cas /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

Donc, j'ai créé un faux zchgd service, un simple sh script qui remplace le service original.

Des pas :

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*

Contenu de mon faux service :

#!/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 $?

Lorsque le service est fixé avec -pseudooffmode l'argument, puis il vérifie périodiquement l'état de la batterie (toutes les minutes dans mon cas). Si le téléphone est en cours de chargement ou si la batterie est pleine, il redémarre automatiquement le téléphone. redémarrer le téléphone. Je ne pouvais pas utiliser /system/bin/reboot j'ai eu des erreurs de permission, alors que je les avais... Donc je le redémarre avec un hack, que deux lignes d'écho. Le site -onmode est là uniquement parce que je ne veux pas voir l'animation de charge même si mon téléphone est allumé.

Vous pouvez déboguer le script avec adb logcat -s zchgdwrapper . J'espère que cela a été utile !

IMPORTANT

Pour que cela fonctionne, vous devez MUST activer Paramètres/Power/Fast boot option. Elle ne fonctionnera pas si elle est désactivée, je pense que sans l'option de démarrage rapide un autre firmware est démarré, mais je n'en suis pas sûr.

J'ai aussi cette configuration dans SuperSU# Je ne pense pas que ce soit nécessaire, mais c'est ainsi :

  • Accès par défaut < Accord
  • Activer su pendant le démarrage
  • Utilisateur du système de confiance

Plus d'informations : https://github.com/tomicooler/htcdesire200autoboot

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X