Могу ли я включить отладку по USB с помощью adb?

У меня есть Samsung Galaxy S3, и дисплей сломан, а отладка по USB отключена.

Как я могу включить его с помощью ./adbкоманд? Я уже сделал эти шаги:

  • data/data/com.android.providers.settings/databases/settings.dbизменил adb_enabledзначение с 0 на 1.
  • Также отредактировано build.propв /system.

После всего этого телефон кажется кирпичным, не включается. Все, что я хочу сделать, это включить отладку по USB и подключить его к Vysor (бета), чтобы я мог управлять им на своем компьютере.

Добро пожаловать! Хороший вопрос. +1. Почему вы хотите дистанционно управлять телефоном?
Спасибо...Потому что экран разбит и я хочу просмотреть данные на нем. Хотя я понял это вчера вечером... :)
Правильным способом включения отладки по USB было бы распаковать boot.img, отредактировать init.rc (включить adb, затем отключить проверку RSA), перепаковать boot.img и загрузить boot.img без перепрошивки. Как только редактирование будет подтверждено, загрузите boot.img на устройство.

Ответы (2)

У меня получилось работать :)

ПРИМЕЧАНИЕ . Для этого требуется разблокированный загрузчик.

  • Подключите устройство к Mac или ПК в формате recovery mode. (Мне пришлось отобразить процесс в уме, так как экран был разбит).
  • Теперь откройте терминал/CMD на компьютере и перейдите к platform-tools/. введите и введите ./adb devices, чтобы проверить, подключено ли устройство в режиме восстановления.
  • Теперь введите ./adb shell mount dataи ./adb shell mount systemдля монтирования соответствующих каталогов.
  • Получите persist.sys.usb.configфайл в вашей системе, используя./adb pull /data/property/persist.sys.usb.config /Your directory
  • Теперь откройте этот файл в текстовом редакторе, отредактируйте его mtp,adbи сохраните.
  • Теперь вставьте файл обратно в устройство;./adb push /your-directory/persist.sys.usb.config /data/property
  • Получите файл build.prop;./adb pull /system/build.prop /your-directory
  • Добавьте эти строки:

    persist.service.adb.enable=1                                                    
    persist.service.debuggable=1
    persist.sys.usb.config=MTP,ADB
  • Вставьте build.prop обратно в устройство;./adb push /your-dir/build.prop /system/

Таким образом, вы включили отладку по USB на своем устройстве. Но вы все еще не можете подключиться. Почему? Потому что он запрашивает проверку RSA. Если бы вы могли просматривать свой дисплей, вы могли бы легко нажать, YESчтобы авторизовать устройство. В настоящее время я выясняю, как обойти это. Очень хочу оживить свой убитый телефон. Если вы знаете, как это сделать, пожалуйста, поделитесь :)

Вы используете кастомное Recovery?
Нет. Рекавери стоковое именно такое.
Что касается части подтверждения RSA пользователем, если вы загружаетесь в ОС Android и каким-то образом подтверждаете, что на экране отображается диалоговое окно для подтверждения, вы вполне можете adb shell input keyeventвыбрать YES. См. Keyevent здесь . Это выстрел в темноте, но, возможно, стоит выстрелить.
@Firelord Я пытался это сделать. Но пишет ошибка авторизации. Похоже, я должен сначала авторизовать его, а затем что-то делать...
Ах! Извините, что предложил то, что не сработает. О чем я только думал? Если доступ к ADB не авторизован, то ничего adb shell inputне получится. Снова простите! Я посмотрю, есть ли способ как-то обойти авторизацию.
На днях я видел в магазине кабель USB-HDMI, который, как я полагаю, можно использовать для подключения внешнего дисплея к вашему устройству. Я полагаю, что с помощью USB-концентратора вы можете одновременно подключить к своему устройству мышь и клавиатуру. Я также нашел инструкции по включению соединения adb через Wi-Fi; используя все это вместе, вы можете получить довольно хороший снимок.
@Firelord, здесь фундаментальное недоразумение .. Как мы выдаем команды adb, используя стандартное восстановление без включения adb? Это не проблема курицы и яйца? Я думал, что включение отладки по USB было необходимым условием, прежде чем сервер adb разрешит соединения? По крайней мере на моем S5 если не включена отладка по USB то устройство не транслирует свое имя на удаленные adb серверы.
@sherrelbc, это один из исключительных случаев, когда у человека есть стоковое рекавери, на котором работает полноценный демон ADB, предоставляющий доступ к оболочке. Восстановление может иметь демон ADB и может быть обнаружено клиентом ADB независимо от состояния отладки USB в ОС Android. Короче говоря, отладка по USB имеет значение, пока вы загружаетесь в ОС Android. Вне его установка не имеет значения.
@Firelord, да, конечно. Я просто не знал о каких-либо стандартных образах восстановления, которые обеспечивали бы такой доступ. В противном случае это имеет смысл. Спасибо!
Пожалуйста, отмените принятие вашего ответа, так как он неверен. Хотя вы могли отредактировать build.prop, вы забыли включить RSA в свой ответ. Без соответствия через RSA нельзя включить отладку по USB. Что, в свою очередь, означает, что принятый ответ неверен.
Почему в моем телефоне нет этого файла? удаленный объект '/data/property/persist.sys.usb.config' не существует

Для проверки RSA, которую вы просили обойти, я не знаю, будет ли она работать на вашем устройстве, но в моем небольшом эксперименте она работала. В Lollipop ключи ADB (после авторизации) сохраняются в /data/misc/adb/adb_keys. Ваш закрытый ключ сохранен на компьютере. В Linux расположение каталога $HOME/.android/. В Windows это обычно переводится как , но в некоторых случаях %USERPROFILE%\.androidключи могут заканчиваться . C:\Windows\System32\config\systemprofile\.android( Источник )

Здесь есть метод, описанный ashoke , который может помочь в обходе авторизации.

Однако в моем Lollipop метод отличается. Я заметил, что в моем первичном и вторичном ПЗУ Lollipop на adb_keysсамом деле был один и тот же ключ. Все, что я сделал, это отозвал авторизацию со вторичного ПЗУ (файл удалялся автоматически), отключил устройство от ПК, скопировал adb_keysиз основного ПЗУ во вторичное ПЗУ, подключил устройство к ПК и вуаля! Меня не спрашивали об этом разрешении. Я дважды проверил авторизацию с помощью adb devices, и все было хорошо.

Сначала попробуйте связанный ответ. Авторизуйте другой телефон Android, скопируйте его ключи на свое устройство из режима восстановления и посмотрите, работает ли он.

Эй, спасибо. Я перекинул adb_keys с note 2 на S3 и все заработало :)
Это необходимая информация, чтобы сделать принятый ответ правильным. Отличная работа. +1
Для тех, кто работает под управлением ОС на основе Unix, adb push ~/.android/adbkey.pub /data/misc/adb/adb_keysработает надежно.
@ChrisOlin: спасибо за ваш вклад. Но я предполагаю, что adb должен работать в режиме root (adb root), иначе пользователь не сможет напрямую поместить файл в /data/misc/. Правильный?
Не совсем так, но вы поднимаете хороший вопрос. Если вы пытаетесь включить отладку по USB через ADB, для этого вам нужно загрузиться в режиме восстановления. Оболочки восстановления (по крайней мере, с TWRP) по умолчанию имеют root. Если они этого не сделают, то да, пользователь не сможет нажать напрямую на /data/misc.