Entrer en mode de récupération à partir de la ligne de commande

9

Est-ce que quelqu'un sait s'il existe un moyen de faire redémarrer un téléphone Android en mode de récupération, à partir de la ligne de commande Android?

Remarque:

Je n'ai PAS d'accès adb.

Je ne connais PAS la séquence magique de mise sous tension pour le faire à partir du chargeur de démarrage. J'ai essayé les choses courantes et rien ne fonctionne.

Je DO ont racine. (Et peut entrer des commandes directement sur l'appareil à l'aide d'un émulateur de terminal.)

Je sais que c'est possible, en quelque sorte, parce que des applications comme ROM Manager le font. Mais comment?

David Given
la source

Réponses:

11

En général, le rebootbinaire fournit un recoverycommutateur. Après être passé en root, exécutez cette commande:

/system/bin/reboot recovery

Cela peut ne pas fonctionner si votre fabricant ne le prend pas en charge. Les applications de type ROM Manager utilisent l'API d'Android à laquelle vous ne pouvez pas accéder directement via l'émulateur de terminal.

Android Quesito
la source
1
Vous ne devriez pas avoir besoin du chemin complet reboot, mais c'est tout à fait exact.
Matthew Read
1
@MatthewRead Yup, le chemin complet n'est vraiment pas nécessaire. :) Mais, je ne voulais pas laisser une chance au cas où quelqu'un gâcherait avec PATHvariable.
Android Quesito
@ Otech1408 Vous devez avoir un appareil enraciné pour ce faire.
Onik
sur les appareils non rootés, vous pouvez y parvenir via adb:adb reboot recovery
divisé par zéro
Vous devrez peut-être taper suterminal pour accéder à la racine avant d'exécuter reboot recovery.
Vishal Bis était le
2

J'ai testé la commande suivante sur Android 5.0 et 6.0.1, CM 14 et Android 8.1.0 avec un arrêt et un redémarrage corrects pour la récupération:

su -c 'svc power reboot recovery'

Cela fonctionnait également sur Android 4.4.2, mais l'arrêt semblait être de bas niveau. Il nécessite cependant un accès root.

Alternativement, si vous exécutez Android KitKat ou supérieur * et que vous disposez d'un accès root, vous pouvez essayer cette commande dans une application de terminal:

su -c 'setprop sys.powerctl reboot,recovery'
  • remplacez su -c par le shell adb pour exécuter la commande en utilisant
  • remplacer le redémarrage, récupération avec redémarrage pour redémarrer l'appareil
  • remplacer le redémarrage, la récupération avec arrêt pour éteindre l'appareil

Notez que toutes ces setpropcommandes feraient un arrêt / redémarrage de bas niveau (impur; pas gracieux).

Dans Android Lollipop et supérieur * , vous pouvez également essayer:

su -c 'setprop ctl.start pre-recovery'

Pour Android Jelly Bean et les versions antérieures, la réponse de SS-3 semble être la seule solution possible.


* La dernière version sur laquelle la commande est testée est Android 6.0.1.

Seigneur du feu
la source
Je suppose que le binaire su de CM n'a pas d' -cargument, donc passez d'abord à l'utilisateur root en utilisant supuis exécutez la commande citée
Firelord
1
Je crois qu'il courait soit du cupcake soit du beignet. Quoi qu'il en soit, il est parti depuis longtemps dans le grand centre de recyclage de téléphones dans le ciel. Mais merci quand même!
David Given
1
@DavidGiven: Il peut sembler assez stupide que j'ai relancé une vieille question, mais je l'ai fait parce que vous n'avez pas mentionné une version Android particulière, j'ai donc essayé de l'utiliser comme une opportunité de mentionner ce qui fonctionnerait non seulement pour vous mais pour d'autres ainsi que les versions Android successives. Cela m'a également aidé à éviter de bifurquer une question en double, mais pour d'autres versions d'Android.
Firelord
1
Le "su -c 'svc power reboot recovery'" fonctionne sur ma rom basée sur cm14.1 (android 7.1). Il s'arrête normalement avant de redémarrer en récupération. C'est la meilleure solution que j'ai trouvée jusqu'à présent.
vif