2 votes

Redémarrer automatiquement les appareils Android à une heure précise (par exemple, à 3 heures du matin) tous les jours.

J'ai un Lenovo Vibe K5 Plus (A6020a46) en cours d'exécution TWRP + Arrow OS. Il ne fournit pas un redémarrage automatique programmé hors de la boîte. Aucune des applications n'a fonctionné. En outre, les applications qui prétendent fournir cette fonctionnalité sont soupçonnées d'être remplies de publicité et je ne suis pas à l'aise pour leur donner la permission de Root.

Voici donc ce que j'ai essayé jusqu'à présent :

  • SMManager. Cela n'a pas fonctionné. Aussi, une application suspecte.

  • J'ai écrit un script shell en boucle infinie, mais j'ai peur qu'il ne rende mon système trop occupé :

    while true; do
      if [[ "$(date +"%H")" -eq "3" ]] ; then
        reboot
      fi
    done

    Mais je ne sais pas comment l'exécuter automatiquement au démarrage et j'ai peur de casser mon Android.

  • J'ai essayé Termux (élevé) avec cronie

    Je mettrais 0 3 * * * /system/bin/sh reboot sur /data/crontab/root comme indiqué dans ce lien mais crond n'est pas reconnue comme une commande valide dans le shell Root.

En outre, le init.d n'existe même pas, mais un init fait avec un tas de .rc des fichiers.

J'ai couru sudo crontab /data/crontab et ensuite crontab -l indique la crontab appropriée, mais elle n'apparaît nulle part ailleurs. Je ne suis pas sûr que cela fonctionnera. De plus, je devrai toujours exécuter manuellement cette opération (d'après ce que j'ai compris) et le redémarrage manuel est infiniment plus facile.

Je suis à court d'idées. Toute suggestion sera appréciée. Je préfère les scripts shell aux applications louches.

3voto

Irfan Latif Points 16863

Exécutez le script shell suivant à partir de init.d (ou /data/adb/*.d/ dans le cas de Magisk). Ou exécutez directement à partir de init 's .rc fichier. Voir Comment lancer un exécutable au démarrage et le maintenir en fonctionnement ?

#!/system/bin/sh -e

# ignore signals
for i in $(seq 64); do trap '' "$i"; done

# seconds until today 3AM
SECS=$(( $(date -d '03:00' +%s) - $(date +%s) ))

# if today's 3AM has passed, set it to tomorrow's
[ SECS -gt 0 ] || SECS=$((SECS + 86400))

# wait until 3AM
echo "${0##*/}: sleeping for $SECS seconds"
sleep $SECS

# Reboot device
echo "${0##*/}: restarting"
/system/bin/reboot scheduled-reboot ||
/system/bin/setprop sys.powerctl reboot,scheduled-reboot

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