Локальные группы контактов в Android

В современных смартфонах под управлением Android в стандартных прошивках зачастую присутствуют преднастроенные локальные группы контактов, которые стандартными средствами невозможно ни удалить, ни переименовать. Обычно они называются “Colleagues“, “Family” и “Friends” и нередко в адресной книге отображаются над синхронизируемыми группами Google-аккаунта или других сетевых сервисов. И они продолжают отображаться даже в том случае, когда они пусты и в них нет ни одного контакта. Не приходится говорить о том, насколько это глупо и неудобно.

Для взломанных телефонов с root-доступом эта проблема подлежит исправлению.

Нам потребуется:

  • Права суперпользователя на телефоне и утилита SuperSu или ее аналоги;
  • Редактор баз данных – например, SQLite Editor;
  • Аккуратность.

ВНИМАНИЕ! Мы не несем ответственности за исправность вашего оборудования после проведения описанных в статье действий. Вы производите все операции на свой страх и риск. Неумелое редактирование системных баз данных смартфона может привести к неработоспособности системы и потребует ее перепрошивки.

Процесс удаление неугодных локальных групп достаточно прост и займет не более пяти минут.

  1. Открываем SQLite Editor и соглашаемся предоставить ей права суперпользователя. Если запроса от SuperSu не последовало – попробуйте использовать Root Explorer для выбора файла для редактирования. Иначе вы не сможете сохранить внесенные изменения.
  2. Переходим на закладку Files и переходим в каталог /data/data/com.google.android.providers.contacts/databases. В нем интерес представляет файл contacts.db (в зависимости от прошивки – contacts2.db). Открываем его.
  3. Спустя некоторое время программа отобразит список таблиц, хранимых в выбранной базе данных контактов. Отыскиваем строку groups и нажимаем на нее.
  4. Открывается содержимое таблицы groups. В этих строках хранится информация обо всех существующих группах контактов. Чаще всего нередактируемые локальные контакты занимают первые три строки и имеют account_id, равный единице.
  5. Редактор SQLite допускает удаление строк, но для минимизации риска порчи данных убрать неугодные группы контактов можно просто путем выставления единицы в поле deleted. Для этого нажимаем на интересующую нас строку и кликаем на значок карандаша сверху экрана.
  6. Открывается меню редактирования выбранной строки. Меняем значение поля deleted с нуля на единицу и нажимаем кнопку Save.
  7. Повторяем это действие для остальных предзаданных групп контактов и закрываем SQLite Editor.

Теперь перезапускаем приложение адресной книги и убеждаемся, что локальные группы в ней более не отображаются вообще!

PS: Вместо выставления единицы в поле deleted можно также поставить ноль в поле group_is_read_only – после этого переименовать или удалить локальные группы станет возможным через обычный встроенный редактор групп в адресной книге.

This entry was posted in Разное and tagged , . Bookmark the permalink.

3 Responses to Локальные группы контактов в Android

  1. Виталий says:

    Здравствуйте! Не нахожу папку com.google.android.providers.contacts , именно с окончанием providers contacts, есть две папки другие, com.google.android.provide.partnersetup и com.google.android.providers.contacts.plau.games подскажите где иискать? Благодарю!

    • root says:

      По всей видимости это сильно зависит от устройства. Заметка писалась в контексте прошивок Android 4.2 и 4.4 для телефонов Sony Xperia.

      Попробуйте поискать во внутренней памяти файлы с именем вида contacts.db.

  2. jktu says:

    /data/data/com.google.android.providers.contacts/databases – без “google”, то есть:
    /data/data/com.android.providers.contacts/databases

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>