Включение отладки по USB на устройстве Android с разбитым экраном

Содержание:

  1. Предупреждение
  2. Принцип включения отладки по USB через компьютер
  3. Подготовка
    1. Установка кастомного рекавери
    2. Подготовка компьютера
      1. Установка Android SDK Tools
      2. Установка Notepad++
      3. Установка SQLite3 (для Android 4.0, 4.2, 4.4)
      4. Создание рабочей папки на компьютере
    3. Загрузка в кастомное рекавери
  4. Собственно включение отладки по USB с компьютера
    1. Удаление предустановленных параметров
    2. Редактирование основного конфигурационного файла
    3. Редактирование базы данных (для Android 4.0, 4.2, 4.4)
    4. Проверка включения отладки по USB
  5. Откат к резервным копиям

Как включить меню для разработчиков и отладку по USB на телефоне или планшете Android традиционным способом, мы уже рассказывали в статье Включение и выключение меню «Для разработчиков» на Android.

В данной статье речь пойдет о включении отладки по USB на устройстве Android с разбитым экраном, которая может понадобиться для того, чтобы получить доступ к телефону/планшету через компьютер по USB-кабелю.

1. Предупреждение

Данный способ требует навыков программирования/системного администрирования ОС Windows и Linux или хотя бы большой внимательности, так как допущение ошибок при наборе команд ниже может привести к полной неработоспособности телефона/планшета.

Данная инструкция в первую очередь подойдет для устройств на Android 4.0 (Ice Cream Sandwich), Android 4.2 (Jelly Bean), Android 4.4 (Kit Kat), а также Android 6.0 (Marshmallow), так как тестировалась именно на них. В других версиях Android возможны изменения в системных файлах, поэтому даже точное выполнение нижеперечисленных команд может не привести к желаемому результату. В таком случае откатитесь обратно к резервным копиям, как написано в последнем разделе "5. Откат к резервным копиям" данной статьи.

2. Принцип включения отладки по USB через компьютер

Идея включения отладки по USB через компьютер заключается в непосредственном редактировании системных файлов по интерфейсу ADB (Android Debug Bridge) через кастомное recovery (CVM/TWRP) до непосредственной загрузки системы Android, а это значит, что предварительно на телефон нужно установить кастомное рекавери и ROOT-права. Следует отметить, что на некоторых китайских телефонах (например, UMI, iconBIT) ROOT уже установлен производителем и нижеперечисленные команды будут работать даже с родным (заводским) рекавери.

3. Подготовка

3.1. Установка кастомного рекавери

К сожалению, не существует универсального способа установки кастомного recovery и ROOT-прав, подходящего под любое устройство Android. Нужно искать инструкцию конкретно под Ваш девайс, но есть и приятная новость, установку кастомного рекавери можно выполнить на телефон/планшет практически без участия его экрана (No-Touch версия recovery) с помощью загрузчика устройства fastboot (загрузчик должен быть разблокирован). Поэтому гуглите установку кастомного рекавери на Ваше конкретное устройство с ключевыми словами: <модель Вашего телефона/планшета>, No-Touch CVM/TWRP, ROOT, recovery, fastboot, bootloader, flash tool и т.п.

Как ориентир может быть полезной статья об установке кастомного рекавери и ROOT на телефон Xiaomi.  Правда, например, чтобы установить TWRP и ROOT на телефоны Xiaomi, где сначала нужно выполнить  разблокировку загрузчика и Вы ранее для этого не регистрировались и не выполняли вход в MI аккаунт на устройстве, вряд ли Вам удастся разблокировать загрузчик без экрана. Поэтому рекомендуем не тратить время, а сразу сдавать такой телефон в сервис на замену экрана.

3.2. Подготовка компьютера

В данной инструкции мы расскажем, как включить отладку по USB с помощью компьютера под управлением Windows 10. Необходимое программное обеспечение можно найти и для других операционных систем. Перечисленные ниже команды также справедливы для других ОС (MacOS и Linux), но их синтаксис должен быть изменен в соответствии с синтаксисом интерпретаторов команд в данных операционных системах.

3.2.1. Установка Android SDK Tools

Инструменты ADB входят в пакет разработки Android SDK Tools от Google. Но мы не будем использовать весь пакет разработки, а только инструменты командной строки, установка которых подробно расписана в статье "Установка platform-tools (adb и fastboot)".

3.2.2. Установка Notepad++

Как правило, конфигурационные системные файлы Android являют собой обычные текстовые файлы. Несмотря на то, что их можно открыть и редактировать встроенным в Windows Блокнотом, мы рекомендуем использовать бесплатный редактор кода для Windows — Notepad++, так как он автоматически распознает перенос строк в файле. В нем также можно включить отображение управляющих символов (Вид > Отображение символов > Отображать все символы).

Отображение управляющих символов в Notepad++

3.2.3. Установка SQLite3 (для Android 4.0, 4.2, 4.4)

Если на Вашем телефоне/планшете установлен Android 4.0, 4.2 или 4.4, нужно будет еще подредактировать базу данных с настройками устройства. Для этого мы будем использовать консольный редактор базы данных для Windows — SQLite3, который можно скачать с официального сайта.

3.2.4. Создание рабочей папки на компьютере

Создайте папку "android-config" в корне диска C, распакуйте архив с SQLite3 в эту папку (для Android 4.0, 4.2 или 4.4). Также создайте в папке "android-config" папку "backup" для хранения всех резервных копий системных файлов Android-устройства, которые мы будем редактировать.

3.3. Загрузка в кастомное рекавери

Перезагрузите Ваше Android-устройство в кастомное рекавери. Здесь также все зависит от устройства, но обычно на выключенном телефоне/планшете нужно нажать вместе и удерживать клавиши уменьшения или увеличения громкости и включения на несколько секунд. Возможна также вариация с зажатием обоих кнопок (увеличение и уменьшение громкости) и включения телефона/планшета. Еще реже, но встречается способ с зажатием только клавиш громкости и подключением зарядки к выключенному устройству. В общем, комбинацию клавиш для Вашего устройства уточняйте в Google.

4. Собственно включение отладки по USB с компьютера

Откройте папку "platform-tools", зажмите клавишу "Shift", нажмите правой кнопкой мыши в свободной области окна проводника Windows и выберите пункт контекстного меню "Открыть окно команд".

Подключите телефон/планшет к компьютеру, наберите в окне командной строки команду:

adb devices

и нажмите клавишу "Enter".

Если отобразится идентификатор устройства и рядом слово "device" или "recovery", значит Вы успешно подключились к телефону/планшету с помощью ADB.

Проверка соединения командой adb devices

4.1. Удаление предустановленных параметров

Выполните следующие команды, чтобы удалить предустановленные параметры (если в результате выполнения будут вылетать ошибки, ничего страшного, значит данные параметры уже отсутствуют в системе):

(Сначала сделаем резервные копии удаляемых системных файлов настроек)
adb pull /data/property/persist.service.adb.enable c:\android-config\backup
adb pull /data/property/persist.sys.usb.config c:\android-config\backup

(Вызываем интерактивную командную оболочку)
adb shell

(Удаляем системные файлы настроек на устройстве)
rm /data/property/persist.service.adb.enable
rm /data/property/persist.sys.usb.config

(Выходим из интерактивной командной оболочки)
exit

4.2. Редактирование основного конфигурационного файла

Далее выполняем редактирование основного конфигурационного файла:

(Делаем резервную копию основного конфигурационного файла)
adb pull /system/build.prop c:\android-config\backup

(Делаем рабочую копию основного конфигурационного файла. Чтобы не набирать все заново, нажмите клавишу "Вверх" и отредактируйте команду.)
adb pull /system/build.prop c:\android-config

Открываем файл "c:\android-config\build.prop" в редакторе Notepad++ и ищем в нем следующие параметры:

persist.service.adb.enable=1
persist.service.debuggable=1
persist.sys.usb.config=mass_storage,adb

Если параметры существуют, но их свойства отличаются, отредактируйте в соответствии с значениями выше, если же такие параметры вообще отсутствуют, добавьте их в конец файла. Если Ваше устройство раньше определялось компьютером не как флешка, а как медиаустройство, последняя опция должна быть:

persist.sys.usb.config=mtp,adb

Сохраните файл и выполните команду:

(Выгружаем отредактированный конфигурационный файл назад в Android-устройство)
adb push c:\android-config\build.prop /system

Если получите ошибку копирования " adb: error: failed to copy ‘c:\android-config\build.prop’ to ‘/system/build.prop’: remote Read-only file system" выполните команду:

(Монтируем раздел "/system" в режиме чтения-записи)
adb shell "mount -o rw,remount,rw /system"

и повторите предыдущую команду. Далее выставляем правильного владельца/группу и права доступа к файлу:

(Назначаем владельца/группу "root" файлу "build.prop")
adb shell "chown root.root /system/build.prop"

(Выставляем права доступа "644" к файлу "build.prop")
adb shell "chmod 644 /system/build.prop"

4.3. Редактирование базы данных (для Android 4.0, 4.2, 4.4)

Следующий шаг: Вам необходимо отредактировать базу данных с настройками Android (для Android 4.0, 4.2, 4.4). Скачиваем базу данных на компьютер:

(Делаем резервную копию базы данных с настройками)
adb pull /data/data/com.android.providers.settings/databases/settings.db c:\android-config\backup

(Делаем рабочую копию базы данных с настройками)
adb pull /data/data/com.android.providers.settings/databases/settings.db c:\android-config

Открываем папку "c:\android-config" с рабочей копией базы данных и запускаем там новое окно командной строки (см. выше), но предыдущее не закрываем! Нас интересуют настройки "adb_enabled" и "development_settings_enabled". Они могут находиться в таблице "secure" или "global". Выполняем следующие SQL запросы, чтобы найти наши настройки:

(Подключаемся к базе данных)
sqlite3 settings.db

(Проверяем таблицу "secure" на наличие опции "adb_enabled")
select * from secure where name="adb_enabled";

(Проверяем таблицу "secure" на наличие опции "development_settings_enabled")
select * from secure where name="development_settings_enabled";

(Проверяем таблицу "global" на наличие опции "adb_enabled")
select * from global where name="adb_enabled";

(Проверяем таблицу "global" на наличие опции "development_settings_enabled")
select * from global where name="development_settings_enabled";

В нашем случае искомые опции были найдены в таблице "global" и их значения равны "0".

Поиск параметров отладки по USB в базе settings.db

Нам нужно присвоить им новые значения — "1".

(Обновляем значение опции "adb_enabled")
update global set value="1" where name="adb_enabled";

(Обновляем значение опции "development_settings_enabled")
update global set value="1" where name="development_settings_enabled";

(Отсоединяемся от базы данных)
.quit

Переходим в предыдущее окно командной строки и выполняем команды:

(Выгружаем обратно на устройство отредактированную базу данных с настройками)
adb push c:\android-config\settings.db /data/data/com.android.providers.settings/databases

(Назначаем владельца/группу "system" файлу "settings.db")
adb shell "chown system.system /data/data/com.android.providers.settings/databases/settings.db"

(Выставляем права доступа "644" к файлу "settings.db")
adb shell "chmod 644 /data/data/com.android.providers.settings/databases/settings.db"

4.4. Проверка включения отладки по USB

(Перезагружаем Android-устройство)
adb reboot

Когда устройство загрузится, выполните команду:

adb devices

Если вместо "device" или "recovery" отображается "offline", выполните команду:

adb kill-server
adb devices

Если ничего не изменилось, скорее всего на телефоне нет публичного ключа доступа. По той же причине "adb devices" может показывать "unauthorized". Зайдите в папку ".android", расположенную в домашнем каталоге Вашей учетной записи Windows, скопируйте файл "adbkey.pub" в каталог "platform-tools" и выполните команду:

adb push adbkey.pub /data/misc/adb/adb_keys

Повторите команду "adb devices", чтобы убедиться, что соединение настроено.

Все! Если Вы успешно дошли до этого места, поздравляем! Теперь можно запустить на компьютере androidscreencast, MyPhoneExplorer, Droid@Screen или другое подобное программное обеспечение, чтобы управлять экраном Android-устройства.

5. Откат к резервным копиям

Если ничего не получилось, и данная инструкция не помогла, возвращаем ранее сохраненные резервные копии системных файлов конфигурации обратно в Android-устройство. Для этого заново перезагружаем устройство в кастомное рекавери и возвращаем оригинальные файлы. Например, для основного конфигурационного файла "build.prop" команды будут следующими:

(Загружаем резервную копию конфигурационного файла "build.prop" в Android-устройство)
adb push c:\android-config\backup\build.prop /system

(Назначаем владельца/группу "root" файлу "build.prop")
adb shell "chown root.root /system/build.prop"

(Выставляем права доступа "644" к файлу "build.prop")
adb shell "chmod 644 /system/build.prop"

Для остальных файлов действия аналогичны, только загружаем в соответствующие каталоги на Android-устройстве и выставляем соответствующих владельцев/группы и права:

  • settings.db (system.system, 644)
  • persist.service.adb.enable (root.root, 600)
  • persist.sys.usb.config (root.root, 600)

Оцените статью: Ужасная!ПлохаяТак себеХорошаяОтличная! 5,00 из 5 (голосов: 5)
Опубликовано в Android

Комментарии (5):

  1. Владимир Дубовский:

    Можно ли таким способом подключить windows phone смартфон? У моего «немножко» крякнул сенсор и ничего сделать не могу.

    • Денис Свистун:

      Нет, конечно. ADB — Android Debug Bridge. Понятно, что этот режим только для Android,а не для IOS и других мобильных платформ.

  2. Igor Taranenko:

    D:\sdk-tools-windows-4333796\platform-tools>adb pull /system/build.prop c:\android-config\backup
    adb: error: remote object ‘/system/build.prop’ does not exist
    не получается

  3. Евгений Сермягин:

    Спасибо за статью очень пригодилась.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

* Представьтесь, пожалуйста! Авторизуйтесь через:

Подписаться на новости