Как вытащить контакты через ADB: полное руководство

Разбитый экран, неработающий тачскрин или заблокированный смартфон — типичные ситуации, когда вытащить контакты через ADB становится единственным способом спасти телефонную книгу. Если на устройстве заранее была включена отладка по USB и компьютер уже авторизован, извлечь базу контактов можно за несколько минут без какого-либо вмешательства в прошивку.

Метод работает через Android Debug Bridge — официальную утилиту Google из пакета Platform Tools. Она позволяет выполнять команды на устройстве с компьютера по кабелю. Важно понимать ограничение: без предварительно включённой отладки по USB и подтверждённого RSA-ключа доступ к данным на современных версиях Android получить не удастся — это защита, а не недоработка.

Где Android хранит контакты

Контакты на Android хранятся в базе данных SQLite с именем contacts2.db. Типичный путь к файлу — /data/data/com.android.providers.contacts/databases/contacts2.db, хотя на некоторых прошивках каталог профиля пользователя может отличаться. Прямой доступ к этому разделу без root-прав закрыт системой.

Именно поэтому существует два сценария извлечения: с root-доступом (можно скопировать сам файл базы) и без него (используются обходные пути — экспорт через контент-провайдер, резервное копирование или чтение SIM-карты). Выбор сценария зависит от состояния устройства и того, что на нём было настроено заранее.

Отдельно стоит упомянуть SIM-карту: если часть номеров сохранена на ней, их можно прочитать на любом другом телефоне или через картридер, без ADB вообще. Проверьте этот вариант первым — он самый простой.

Что понадобится перед началом

Подготовка занимает больше времени, чем само извлечение. Соберите всё необходимое заранее, чтобы не прерывать процесс на середине.

  • 💻 Компьютер на Windows, macOS или Linux с установленным пакетом Platform Tools (скачивается с официального сайта для разработчиков Android)
  • 🔌 Исправный USB-кабель — желательно тот, которым телефон уже подключался к этому компьютеру
  • 📱 Включённая отладка по USB в меню разработчика на смартфоне
  • ✅ Ранее подтверждённое разрешение на отладку (RSA-отпечаток) для данного ПК
  • 🔑 Root-доступ — только если планируете копировать файл базы напрямую
⚠️ Внимание: если отладка по USB не была включена до поломки экрана, а RSA-ключ компьютера не подтверждён, команды ADB вернут статус unauthorized, и доступ к данным будет заблокирован. В этом случае помогут альтернативные способы из последних разделов статьи.

☑️ Подготовка к извлечению контактов

Выполнено: 0 / 5

Проверка подключения устройства

Первым делом убедитесь, что компьютер видит смартфон. Откройте терминал (или командную строку) в папке с Platform Tools и выполните:

adb devices

Нормальный результат — строка с серийным номером и статусом device. Если вместо этого вы видите unauthorized, на экране телефона есть неподтверждённый запрос разрешения — без доступа к экрану обойти это нельзя. Пустой список означает проблему с кабелем, портом или драйверами: на Windows проверьте раздел «Устройства Android» в диспетчере устройств.

Когда устройство определилось корректно, можно переходить к извлечению данных. Дальнейшие шаги зависят от наличия root.

Способ 1: копирование базы данных с root-доступом

Это самый полный метод: вы получаете файл базы целиком, включая фотографии контактов, заметки и все пользовательские поля. Потребуется root-доступ на устройстве.

adb shell

su

cp /data/data/com.android.providers.contacts/databases/contacts2.db /sdcard/contacts2.db

chmod 644 /sdcard/contacts2.db

exit

exit

adb pull /sdcard/contacts2.db

Логика такова: сначала база копируется из защищённого системного раздела во внутреннюю память (/sdcard), куда у ADB есть доступ, затем файл забирается на компьютер командой adb pull. Обратите внимание, что точный путь к базе может отличаться в зависимости от версии Android и оболочки производителя — если файл не найден, поищите его командой find /data -name "contacts2.db" 2>/dev/null из root-шелла.

Полученный файл открывается любым просмотрщиком SQLite, например DB Browser for SQLite. Основная таблица с номерами и именами называется raw_contacts в связке с data, но для быстрого просмотра удобнее таблица view_contacts или экспорт через SQL-запрос.

Способ 2: извлечение контактов без root

Без root скопировать файл базы напрямую нельзя, но есть обходные варианты. Один из рабочих — запрос к контент-провайдеру контактов через content query, если ваша версия Android это позволяет:

adb shell content query --uri content://contacts/phones --projection name:number

Команда выводит список «имя — номер» прямо в терминал. Вывод можно перенаправить в файл:

adb shell content query --uri content://contacts/phones --projection name:number > contacts.txt

Ограничения метода: на части прошивок доступ к провайдеру контактов из shell заблокирован, и команда вернёт ошибку прав. Также выгружаются только номера и имена — без фото, email и заметок. Если команда не сработала, попробуйте URI content://com.android.contacts/contacts или переходите к способу с резервной копией.

Ещё один вариант — команда adb backup, которая на старых версиях Android позволяла создать бэкап данных приложений. Однако на современных версиях системы её функциональность существенно урезана, и многие приложения исключают свои данные из такого бэкапа. Рассчитывать на этот метод как на гарантированный не стоит.

📊 В какой ситуации вы извлекаете контакты через ADB?
Разбит экран или не работает тачскрин
Телефон заблокирован / забыт пароль
Перенос контактов на другое устройство
Просто изучаю возможности ADB

Конвертация базы в читаемый формат

Файл contacts2.db сам по себе неудобен — это бинарная база SQLite. Чтобы получить привычный список контактов, нужна конвертация в CSV или vCard (VCF).

Для CSV откройте базу в DB Browser for SQLite, перейдите на вкладку «Выполнить SQL» и выполните запрос, объединяющий имена и номера из соответствующих таблиц. Затем экспортируйте результат через меню сохранения в CSV. Такой файл открывается в Excel и импортируется в Google-контакты.

Для VCF удобнее специализированные скрипты-конвертеры, которые корректно собирают все поля каждого контакта. Формат VCF напрямую импортируется в любой смартфон, почтовые клиенты и облачные сервисы — это самый совместимый формат для переноса телефонной книги.

ФорматЧем открытьПодходит для
contacts2.db (SQLite)DB Browser for SQLiteПолный анализ базы, восстановление всех полей
CSVExcel, Google ТаблицыПросмотр списка, импорт в Google-контакты
VCF (vCard)Любой смартфон, почтовые клиентыПеренос контактов на новое устройство
TXT (вывод content query)Любой текстовый редакторБыстрое сохранение имён и номеров

Альтернативные способы, если ADB не помог

ADB — не единственный путь. Прежде чем углубляться в отладку, проверьте более простые варианты:

  • ☁️ Синхронизация Google — если контакты синхронизировались с аккаунтом, они доступны в веб-интерфейсе Google Contacts с любого устройства без всякого ADB
  • 💾 SIM-карта — вставьте её в другой телефон и проверьте сохранённые на ней номера
  • 🖱️ USB-мышь через OTG — при разбитом тачскрине, но рабочем дисплее мышь позволит включить отладку или экспортировать контакты штатно через приложение «Контакты»
  • 🖥️ Фирменные утилиты производителя — у ряда брендов есть десктопные программы для резервного копирования, но их возможности зависят от модели и настроек устройства
⚠️ Внимание: не прошивайте устройство и не делайте сброс до заводских настроек до извлечения контактов — сброс безвозвратно удаляет базу данных. Сначала исчерпайте все способы чтения данных.

Типичные ошибки и их решение

Чаще всего процесс останавливается на этапе unauthorized в выводе adb devices. Это означает, что компьютер не авторизован, а подтвердить разрешение на разбитом экране невозможно. Обходных путей у этой защиты нет — иначе она не имела бы смысла. Реалистичные варианты: OTG-мышь, восстановление из облака или обращение в сервис для временной замены дисплея.

Вторая частая проблема — ошибка permission denied при копировании базы без root. Это ожидаемое поведение: системный раздел защищён. Либо получайте root (с учётом рисков и потери гарантии), либо используйте запросы к контент-провайдеру.

Реже встречается ситуация, когда база скопировалась, но открывается пустой. Возможная причина — контакты хранились не в локальной базе, а привязывались к аккаунту с синхронизацией, либо файл скопировался повреждённым. Проверьте размер файла: пустая база весит заметно меньше заполненной. Повторите копирование и сравните результат.

Почему нельзя просто подключить телефон как флешку

Раздел /data, где лежит база контактов, не монтируется при MTP-подключении. Через USB в режиме «Передача файлов» видна только пользовательская память (фото, документы). Системные базы доступны только через ADB с соответствующими правами или через root.

Часто задаваемые вопросы

Можно ли вытащить контакты через ADB, если экран полностью разбит?

Да, но только если отладка по USB была включена заранее и компьютер уже авторизован. Если нет — попробуйте подключить USB-мышь через OTG-адаптер (при условии, что изображение на экране есть) или восстановите контакты из Google-аккаунта.

Нужен ли root для извлечения контактов через ADB?

Не обязательно. Без root можно попробовать запрос к контент-провайдеру через команду content query. Root требуется только для прямого копирования файла базы contacts2.db из защищённого раздела.

Где найти Platform Tools и как установить ADB?

Пакет Platform Tools распространяется Google на официальном сайте для Android-разработчиков. Установка не требуется: достаточно распаковать архив и запускать команды из этой папки через терминал или командную строку.

Что делать, если adb devices показывает unauthorized?

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

В каком формате лучше сохранить извлечённые контакты?

Для переноса на другой смартфон оптимален формат VCF (vCard) — он поддерживается всеми устройствами и сервисами. Для просмотра и редактирования на компьютере удобнее CSV, открываемый в Excel или Google Таблицах.