Сброс графического ключа / пароля. Редактирование settings.db через sqlite3.

Сброс графического ключа / пароля Android

Данная заметка рассматривает способы сброса графического ключа (или пароля) на системах Android (планшеты и смартфоны). В т.ч. без пароля от аккаунта Google. И даже изначально root прав на устройстве и режима отладки USB, на примере планшета на чипе Allwinner A10.

О забытом пароле

Вчера на работе принесли мне коллеги планшет с просьбой помочь. Это был некий TeXeT (модель не важна) на чипе Allwinner A10. Структура прошивок A10 и его возможности уже хорошо известны (мне в том числе), поэтому возможностей к решению различных проблем много.

В данном случае проблема была в том, что на планшет поставили графический ключ, который успешно забыли. Что в этом случае в первую очередь советует поиск? К сожалению в начале попадаются только банальные решения - ввести неправильно пароль 5 раз, и после этого вам предложат ввести данные от аккаунта Google. Которые к сожалению тоже забыли. indecision

Конечно не все такие беспечные. И если ключ забывается часто, то пароль от Google аккаунта даже если и не сразу вспомнить, то обычно можно восстановить на сайте Google (конечно если были введены корректные данные). Но что делать, если его нет и восстановить не удается?

Подключение по ADB

Первым делом надо попробовать подключить устройство к компьютеру по USB. Если у вас ранее был включен режим отладки по USB (который нужен при любой "махинации" с устройством - получение root прав, скрипты, установка кастомных прошивок и т.д.), то устройство должно будет "увидеться" в режиме ADB. Далее, если у вас еще не было root прав, то нужно их получить. Как это делается я тут рассказывать не буду, зависит это от конкретного устройства. Но нужен способ, работающий с компьютера (т.к. самим устройством пользоваться мы не можем). Несмотря на блокировку, действия через скрипты будут обрабатываться и доступ через ADB к планшету имеется. Смысл в том, что при наличии root доступа к консоле устройства через ADB, можно будет снять блокировку и исправить многие другие проблемы.

Получение доступа без отладки по USB

Но на моем планшете к сожалению отладка по USB была отключена полностью. Что делать? Можно конечно просто перепрошить или сделать wipe/сброс. Но тогда потеряются все данные. Я ищу более "гуманные" способы. И для устройства на A10 я нашел следующее решение. Получить доступ с root правами из консоли можно через кастомный recovery! Т.е. например CWM. Если он уже стоит - замечательно. Загружаемся в него и правим.

Но у меня его не было. Как поставить рекавери без доступа к планшету и его настройкам? У Allwinner A10 есть замечательная возможность загрузиться со своим образом с microSD карты. Для моего варианта подошла эта инструкция. Подготовив флэшку и загрузившись с неё, я попал в меню CWM Recovery. Отлично! Запускаем ADB и видим доступ в консоль с правами рута. Из меню (или из консоли с помощью команды 'mount /dev/nandd /data') CWM монтируем раздел /data.

Снятие блокировки в базе данных

Далее из ADB нужно сделать определенные действия. Я нашел такую инструкцию на форуме 4pda. Сразу попробовал способ 2, т.е. удалил файл gesture.key:

adb shell rm /data/system/gesture.key

Мне к сожалению не помогло. Дальше пошел по 1му способу и сделал:

adb shell
cd /data/data/com.android.providers.settings/databases
sqlite3 settings.db
update system set value=0 where name='lock_pattern_autolock';
update system set value=0 where name='lockscreen.lockedoutpermanently';
.quit

Точнее у меня в рекавери не было sqlite3, поэтому я забрал файл settings.db через 'adb pull /data/data/com.android.providers.settings/databases/settings.db' к себе на компьютер и уже там его редактировал через SQLite3. К сожалению именно эта рекомендация не помогла. Стал разбираться.

В файле /data/data/com.android.providers.settings/databases/settings.db хранятся настройки системы, в т.ч. блокировки. По сути это база данных формата sqlite3, которую через него и можно редактировать. Я смог посмотреть все настройки которые там были и по ним нашел то, что данные параметры у меня были не в таблице system, а в таблице secure. Видимо место хранения и значения разнятся от версии Android'а. Далее нашел еще некоторые настройки, которые надо исправить. Посему полный список команд после sqlite3 settings.db будет выглядеть так:

update secure set value=0 where name='lockscreen.password_salt';
update secure set value=0 where name='lockscreen.password_type';
update secure set value=0 where name='lockscreen.lockoutattemptdeadline';
update secure set value=0 where name='lock_pattern_visible_pattern';
update system set value=0 where name='lockscreen.lockexchange.enable';

После этого измененный файл settings.db я "залил" назад на планшет, вместо старого. Извлекаем флэшку с рекавери и перезагружаемся. И планшет замечательно загружается без блокировки и со всеми пользовательскими данными.

Надеюсь и вам помогут эти рекомендации, если вы окажетесь в подобной ситуации. А вообще не забывайте свой пароль на аккаунт Googlecheeky

Оцените статью: 
В среднем: 3.5 (голос 131)

Комментарии (2)

После этого у меня вечная анимация включения!!
К автору притензий нет, так как собирался, ещё до прочтения этой статьи сделать так.
Но теперь даже после возврата старого не редактированного сетинг.дб
с выставкой нужных разрешений, вечний ребут :(

Может что-то еще делалось параллельно? Потому что если файл был корректно вернут назад и разрешения выставлены те же, то от этого не может быть ребута.
А что за модель устройства?

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

Войти, используя один из провайдеров Google Account Yandex Mail.ru API Mail.ru Vkontakte Facebook Twitter Loginza MyOpenID WebMoney Rambler Flickr Last.fm Verisign AOL OpenID

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.