Содержание:
- Предупреждение
- Принцип включения отладки по USB через компьютер
- Подготовка
- Собственно включение отладки по USB с компьютера
- Откат к резервным копиям
Как включить меню для разработчиков и отладку по 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++, так как он автоматически распознает перенос строк в файле. В нем также можно включить отображение управляющих символов (Вид > Отображение символов > Отображать все символы).
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.
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".
Нам нужно присвоить им новые значения — "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)
Можно ли таким способом подключить windows phone смартфон? У моего «немножко» крякнул сенсор и ничего сделать не могу.
Нет, конечно. ADB — Android Debug Bridge. Понятно, что этот режим только для Android,а не для IOS и других мобильных платформ.
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
не получается
Спасибо за статью очень пригодилась.
как подключить 8 андроид к 7 win?