Войдите в режим восстановления из командной строки

9

Кто-нибудь знает, есть ли способ заставить телефон Android перезагрузиться в режим восстановления из командной строки Android?

Замечания:

Я НЕ имею ADB доступа.

Я НЕ знаю волшебную последовательность включения питания, чтобы сделать это из загрузчика. Я пробовал общие вещи, и ничего не работает.

Я DO есть корень. (И можете вводить команды непосредственно на устройстве, используя эмулятор терминала.)

Я знаю, что это возможно, потому что такие приложения, как ROM Manager, делают это. Но как?

Дэвид Гивен
источник

Ответы:

11

Как правило, rebootдвоичный файл обеспечивает recoveryпереключатель. После переключения в root выполните эту команду:

/system/bin/reboot recovery

Это может не сработать, если ваш производитель не поддерживает его. Приложения типа ROM Manager используют API Android, к которому вы не можете получить доступ напрямую через Terminal Emulator.

Android Quesito
источник
1
Вам не нужен полный путь reboot, но это совершенно верно.
Мэтью Рид
1
@ MatthewRead Да, полный путь действительно не нужен. :) Но я не хотел оставлять шанс, если кто-то напутал с PATHпеременной.
Android Quesito
@ Otech1408 Для этого у вас должно быть рутированное устройство.
onik
на некорневых устройствах это можно сделать с помощью adb:adb reboot recovery
делится на ноль
Возможно, вам придется набрать suв терминале, чтобы получить root-доступ перед запуском reboot recovery.
Вишал Бисвас
2

Я протестировал следующую команду на стандартных Android 5.0 и 6.0.1, CM 14 и Android 8.1.0 с плавным выключением и перезагрузкой для восстановления:

su -c 'svc power reboot recovery'

Он работал и на Android 4.4.2, но завершение работы было низким. Это требует корневого доступа, хотя.

В качестве альтернативы, если вы используете Android KitKat или выше * и имеете root-доступ, вы можете попробовать эту команду в терминальном приложении:

su -c 'setprop sys.powerctl reboot,recovery'
  • заменить су -с с ADB оболочки , чтобы выполнить команду с помощью
  • заменить перезагрузку, восстановление с перезагрузкой для перезагрузки устройства
  • заменить перезагрузку, восстановление с выключением, чтобы выключить устройство

Обратите внимание, что все эти setpropкоманды будут выполнять низкоуровневое (нечистое, не изящное) отключение / перезагрузку.

В Android Lollipop и выше * вы также можете попробовать:

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

Для Android Jelly Bean и ниже ответ SS-3 представляется единственно возможным решением.


* Последняя версия, на которой тестировалась команда - это Android 6.0.1.

Повелитель огня
источник
Бинарник CM su, я полагаю, не имеет -cаргумента, поэтому сначала переключитесь на пользователя root, suа затем выполните команду в кавычках
Firelord
1
Я считаю, что это был кекс или пончик. Несмотря на это, он давно отправился в огромный центр переработки телефонов в небе. Но все равно спасибо!
Дэвид Гивен
1
@DavidGiven: Может показаться довольно глупым, что я воскресил старый вопрос, но я сделал это, потому что вы не упомянули конкретную версию Android, поэтому я попытался использовать ее как возможность упомянуть, что будет работать не только для вас, но и для других и последующие версии Android. Это также помогло мне избежать дублирования вопроса, но для других версий Android.
Повелитель огня
1
"Su -c 'svc power reboot recovery'" работает на моем диске cm14.1 (android 7.1). Он корректно завершает работу перед перезагрузкой в ​​рекавери. Это лучшее решение, с которым я когда-либо сталкивался.
острому