У меня следующая проблема: Как-то сегодня вечером сломался тачскрин моего Sony Xperia Z. У меня две тонкие трещины на дисплее и все что с правой стороны трещины не реагирует. У меня есть резервные телефоны, но я хотел вернуть хотя бы свои фотографии. Мое устройство зашифровано парольной фразой, но я не могу ее ввести. Моя идея заключалась в том, чтобы разблокировать его из adb, чтобы я мог сделать резервную копию своих данных. Я запускаю SlimKat (SlimRom) с TeamWin Recovery.
Когда я вхожу в режим восстановления, я вижу свой телефон:
$ adb devices
List of devices attached
CB5A1PN2WU recovery
Но никакие команды не работают:
$ adb shell
- exec '/system/bin/sh' failed: No such file or directory (2) -
Как я могу получить свои данные? Могу ли я удаленно управлять своей клавиатурой? К сожалению, все сохраняется на внутренней флэш-памяти.
Xperia Z поддерживает USB-на ходу, поэтому с адаптером USB-OTG и USB-клавиатурой вы сможете ввести кодовую фразу шифрования для загрузки устройства.
Хотя покупка кабеля OTG должна работать нормально, на самом деле есть способ разблокировать ваше устройство только через ADB. Обнаружил это на собственном горьком опыте, когда я включил в свой пароль символ, который нельзя было набрать на виртуальной клавиатуре, а кабель OTG не работал по причинам, в которые я не буду вдаваться.
Есть две команды ADB, с помощью которых вы можете запускать события клавиатуры. Я протестировал их, и они оба работают на экране ввода ключа расшифровки диска. Эти команды:
adb shell input text 'mytext'
эмулирует набор текста mytext
на клавиатуре. Обратите внимание, что он не принимает произвольный текст: в основном вы можете использовать его для отправки гласных, согласных и цифр ASCII на клавиатуру таким образом. Специальные символы (например '
, #
, , ;
), включая пробел, с помощью этой команды либо требуют специального синтаксиса, либо не принимаются.adb shell inputevent <event_number>
эмулирует событие нажатия определенной клавиши. Это можно использовать для ввода определенных специальных символов. Полный список ключевых событий можно увидеть в документации для разработчиков Android . Хотя поддерживаемые ключевые события различаются в зависимости от версии Android, все ключевые события, которые вы будете использовать для ввода пароля, поддерживаются, начиная с Android 3.0 (уровень API 11).См. этот ответ о переполнении стека для получения дополнительной информации.
ТомГ
стрикс