В современных смартфонах под управлением Android в стандартных прошивках зачастую присутствуют преднастроенные локальные группы контактов, которые стандартными средствами невозможно ни удалить, ни переименовать. Обычно они называются “Colleagues“, “Family” и “Friends” и нередко в адресной книге отображаются над синхронизируемыми группами Google-аккаунта или других сетевых сервисов. И они продолжают отображаться даже в том случае, когда они пусты и в них нет ни одного контакта. Не приходится говорить о том, насколько это глупо и неудобно.
Для взломанных телефонов с root-доступом эта проблема подлежит исправлению.
Нам потребуется:
- Права суперпользователя на телефоне и утилита SuperSu или ее аналоги;
- Редактор баз данных – например, SQLite Editor;
- Аккуратность.
ВНИМАНИЕ! Мы не несем ответственности за исправность вашего оборудования после проведения описанных в статье действий. Вы производите все операции на свой страх и риск. Неумелое редактирование системных баз данных смартфона может привести к неработоспособности системы и потребует ее перепрошивки.
Процесс удаление неугодных локальных групп достаточно прост и займет не более пяти минут.
- Открываем SQLite Editor и соглашаемся предоставить ей права суперпользователя. Если запроса от SuperSu не последовало – попробуйте использовать Root Explorer для выбора файла для редактирования. Иначе вы не сможете сохранить внесенные изменения.
- Переходим на закладку Files и переходим в каталог /data/data/com.google.android.providers.contacts/databases. В нем интерес представляет файл contacts.db (в зависимости от прошивки – contacts2.db). Открываем его.
- Спустя некоторое время программа отобразит список таблиц, хранимых в выбранной базе данных контактов. Отыскиваем строку groups и нажимаем на нее.
- Открывается содержимое таблицы groups. В этих строках хранится информация обо всех существующих группах контактов. Чаще всего нередактируемые локальные контакты занимают первые три строки и имеют account_id, равный единице.
- Редактор SQLite допускает удаление строк, но для минимизации риска порчи данных убрать неугодные группы контактов можно просто путем выставления единицы в поле deleted. Для этого нажимаем на интересующую нас строку и кликаем на значок карандаша сверху экрана.
- Открывается меню редактирования выбранной строки. Меняем значение поля deleted с нуля на единицу и нажимаем кнопку Save.
- Повторяем это действие для остальных предзаданных групп контактов и закрываем SQLite Editor.
Теперь перезапускаем приложение адресной книги и убеждаемся, что локальные группы в ней более не отображаются вообще!
PS: Вместо выставления единицы в поле deleted можно также поставить ноль в поле group_is_read_only – после этого переименовать или удалить локальные группы станет возможным через обычный встроенный редактор групп в адресной книге.
Здравствуйте! Не нахожу папку com.google.android.providers.contacts , именно с окончанием providers contacts, есть две папки другие, com.google.android.provide.partnersetup и com.google.android.providers.contacts.plau.games подскажите где иискать? Благодарю!
По всей видимости это сильно зависит от устройства. Заметка писалась в контексте прошивок Android 4.2 и 4.4 для телефонов Sony Xperia.
Попробуйте поискать во внутренней памяти файлы с именем вида contacts.db.
/data/data/com.google.android.providers.contacts/databases – без “google”, то есть:
/data/data/com.android.providers.contacts/databases
После этих манипуляций, теперь не могу добавить, ни группу, ни контакт и постоянно выскакивает надпись: В приложении “Контакты” произошла ошибка. Что теперь делать, как решить проблему с ошибкой?