Est-il possible d'allumer automatiquement l'appareil une fois que le chargeur est connecté, étant donné que l'appareil est initialement éteint ?
Réponses
Trop de publicités?fastboot oem off-mode-charge 0
est la méthode authentique si votre appareil le supporte. C'est la méthode de Google recommandé mais tous les OEMs/vendeurs n'implémentent pas la commande dans le bootloader. Ou sur certains appareils, elle est réinitialisée au prochain redémarrage. Si off-mode-charge
est désactivé, le chargeur de démarrage ne passera pas androidboot.mode=charger
paramètre de ligne de commande au noyau lorsque le chargeur est inséré, afin que le dispositif démarre normalement.
Sinon, lorsque ro.bootmode
a pour valeur charger
au démarrage, init
ne poursuit pas le processus de démarrage normal . Au lieu de cela, un nombre limité de services sont démarrés et une animation de chargement est affichée. Vous pouvez donc demander à init
pour redémarrer l'appareil chaque fois que le mode chargeur est détecté. Créez un nouveau .rc
ou modifier un fichier existant :
# /system/etc/init/off_mode_charge.rc
on charger
setprop sys.powerctl reboot,leaving-off-mode-charging
Ou exécuter reboot
binaire :
on charger
exec - -- /system/bin/reboot leaving-off-mode-charging
Mais si SELinux est appliqué, la politique de stock peut ne pas laisser init
exécuter /system/bin/reboot
. Utilisez donc le contexte de Magisk (ou toute autre solution d'enracinement que vous utilisez) :
on charger
exec u:r:magisk:s0 -- /system/bin/reboot
N'oubliez pas de définir les permissions sur *.rc
fichier ( chown 0.0
, chmod 0644
, chcon u:object_r:system_file:s0
).
Il est également possible de continuer le processus de démarrage au lieu de redémarrer l'appareil en remplaçant class_start charger
avec trigger late-init
sur /init.rc
fichier :
on charger
#class_start charger
trigger late-init
Ou en définissant la propriété sys.boot_from_charger_mode
:
on charger
setprop sys.boot_from_charger_mode 1
- Cette méthode devrait fonctionner sur tous les appareils, quel que soit l'équipementier, car elle ne dépend pas des binaires de chargement propres à chaque fournisseur, tels que
playlpm
,battery_charging
,chargeonlymode
,zchgd
,kpoc_charger
et ainsi de suite. - Le remplacement des binaires de services importants comme
healthd
- qui s'occupent de beaucoup de choses liées à la batterie, au stockage, etc. - n'est pas une bonne idée. Dans ce cas, si le service fonctionne à la fois danscharger
ynormal
l'appareil peut se mettre en boucle de démarrage. - Sur les périphériques non-System-as-Root, il n'est pas nécessaire de modifier le fichier
/system
partition (par exemple, si vous ne voulez pas briser lesdm-verity
pour que les mises à jour OTA fonctionnent). Il suffit de déballerboot.img
et modifier/init.rc
dansramdisk
. - Bien qu'inutile, il est également possible d'exécuter un
init.d
script de.rc
fichier. Pour la référence, voir Comment lancer un exécutable au démarrage ? y Comment éteindre l'appareil lorsque le chargeur est retiré ? .
RELATED :
Le graphique de charge de la batterie est affiché par /system/bin/playlpm
sur les appareils Samsung.
Si vous êtes Root, vous pouvez modifier ce fichier pour :
#!/system/bin/sh
/system/bin/reboot
Et assurez-vous d'ajouter ces permissions au fichier :
chmod 0755 /system/bin/playlpm
chown root.shell /system/bin/playlpm
Votre appareil va maintenant démarrer lorsqu'il sera branché
Il existe donc de nombreuses façons de le faire. La plus appropriée, comme toujours supporté par par Google (et de plus en plus par d'autres, par ex. nvidia de nougat) est cette commande fastboot
fastboot oem off-mode-charge 0
Sinon, vous pouvez soit détourner le binaire de chargement (il n'est pas garanti que cela soit possible sur tous les appareils, mais il faut juste un Root) ou patcher votre ramdisk (théoriquement universel, mais il faudra un bootloader déverrouillé).
Pour la première solution, vous devrez trouver quelque part dans votre partition système (généralement le fichier bin ) où réside le programme chargé de l'animation de la batterie et tout le reste. Quelques commun noms :
- Motorola :
charge_only_mode
- Mediatek :
kpoc_charger
oipod
- Htc :
chargemon
ozchgd
- Samsung :
playlpm
olpm
- Sony :
chargemon
obattery_charging
- La plupart ( ?) des roms basés sur AOSP :
healthd
Une fois trouvé, vous pouvez simplement le remplacer par un script tel que celui présenté ci-dessus par IET_DEMO.
Par contre, toucher au noyau est quelque chose que je n'ai pas envie d'expliquer et de recommander si vous ne savez pas ce que vous faites.
Pour mémoire, j'aimerais souligner que la recharge hors ligne existe parce que le processus de démarrage est assez énergivore, et surtout sur les téléphones plus anciens qui ne disposent même pas d'un système de recharge rapide, la consommation d'énergie du système peut être supérieure à celle de la prise.
Pour certains anciens appareils Samsung, cela peut se faire par le biais de NoMoarPowah ! :
NoMoarPowah ! peut redémarrer automatiquement sous Android lorsque la charge est terminée. Soit lorsqu'il est complètement chargé, soit lorsque le niveau de la batterie atteint 15 % et qu'Android a assez de jus pour fonctionner.
Vous avez besoin de Root et vous ne voulez probablement pas le faire à moins de savoir vraiment ce que vous faites, car je m'attendrais à ce que cela modifie des fichiers système importants.
Il semble qu'il ait été retiré du Play Store, mais vous pouvez probablement trouver l'APK hébergé ailleurs. (Je n'ai pas de lien de confiance à portée de main).
- Réponses précédentes
- Plus de réponses