Прошивка (разблокировка) Sony Xperia E3 Dual

Опубликовано: 20.10.2017

видео Прошивка (разблокировка) Sony Xperia E3 Dual

Отключено администратором, политикой шифрования или хранилищем учетных данных

Довелось потестировать встроенный в смартфон на андроиде VPN-клиент. Сразу же столкнулся с мисфичей андроида, на тему которой пользователи стонут на весь интернет: система не позволяет ни настроить новое VPN-соединение, ни получить доступ к списку ранее настроенных соединений, если типом блокировки экрана задан не PIN/пароль/графический ключ, а разблокирование выполняется просто проведением пальца или даже блокирование отключено. Это объясняется заботой о безопасности юзера: мол, юзера будут сохранять пароли к VPN и так сделано, чтобы при краже/утере телефона не давать доступа к VPN посторонним. Надо ли говорить о том, что при редком пользовании VPN гораздо лучше просто не сохранять пароли для VPN в телефоне, вводя их непосредственно при установлении VPN-соединения, вместо того, чтобы по сотне раз на дню разблокировать аппарат ключом вместо простого свайпа. Но такой вариант разработчики почему-то не поддерживают.

На самом деле, добиться этого в Android 4.2 можно. Не исключено, что метод работает и на более новых версиях. Для понимания выполняемых действий сначала немного теории.

В Android авторизация при установлении VPN-соединения может выполняться при помощи паролей или сертификатов. Система сохраняет пароли и сертификаты в специальной области памяти - контейнере, называемом в оригинале "Credential storage" или "хранилище учетных данных" в русской локализации. Там же хранятся и остальные настройки VPN-соединений. Доступ к credential storage обязательно защищается паролем или графическим ключом, незащищенного его не бывает. Именно поэтому даже список VPN-соединений невозможно получить без ввода ключа/пароля. К сожалению, удобного интерфейса управления паролем credential storage, отдельного от управления защитой разблокировки телефона в системе не предусмотрено.

Тем не менее, если после включения телефона пользователь ни разу не вводил пароль/ключ, но при этом пароль для credential storage задан (как такое может быть - об этом ниже), то при открытии списка предварительно настроенных VPN-соединений система запросит ввод пароля для хранилища учетных данных - пресловутое "Enter password for credential storage", вызывающее истерику у многих андроидо-юзеров, сталкивающихся с этой проблемой. И если юзер знает и введет этот пароль, то система хотя и ругнется очередной раз "Перед использованием хранилища учетных данных необходимо задать PIN-код или пароль блокировки экрана", но всё же пустит к списку VPN-соединений и вообще к работе с VPN.

Теперь о том, как же этого добиться. К сожалению, единственный известный мне реально работающий способ начинается со сброса возможно уже установленного (и неизвестного) пароля доступа к credential storage, что сопровождается удалением всех настроенных VPN-соединений и возможно сохраненных паролей/сертификатов к ним. VPN-соединения затем придется настроить с нуля и при необходимости заново добавить сертификаты, но вся другая информация в телефоне затронута не будет.

В системных настройках телефона в разделе "Безопасность" находим пункт "Очистить сертификаты" (Clear Storage). Если он серый, неактивный, то хранилище уже очищено, пароль к нему не задан, этот шаг пропускаем. Иначе очищаем хранилище.
В системных настройках телефона в качестве метода блокироки экрана временно задаём пароль, этот пароль и будет одновременно паролем, защищающим credential storage, иного способа его задать я не нашел. После этого система без лишних вопросов даёт настроить VPN-подключения.
Теперь нужно вернуть беспарольный режим блокировки телефона. При непустом запароленном credential storage штатного способа сделать это нет, но есть обходной путь. Настройки блокировки хранятся в SQLite-базе /data/system/locksettings.db и проблема решается прямым редактированием этой базы. К сожалению, для этого нужен рутовый доступ к аппарату.

Отредактировать базу удобнее всего запуском непосредственно на телефоне программы типа SQLite Editor, но можно и скопировать любым способом файлы locksettings.db, locksettings.db-shm и locksettings.db-wal на другое устройство (компьютер), где есть визуальный или консольный редактор для баз SQLite (команда sqlite3 или подобная), отредактировать там и скопировать обратно. Не помешает сделать резервную копию перед редактированием.

Нас интерересует поле lockscreen.password_type, там будет какое-нибудь ненулевое значение. Его стоит запомнить и нужно заменить на нулевое. После сохранения изменений перезагружаем телефон и после загрузки способ блокировки экрана будет "провести пальцем" (либо "нет", если в базе поменять lockscreen.disabled с 0 на 1).

После загрузки получаем состояние, упомянутое выше - credential storage защищено заданным нами паролем, но этот пароль ещё ни разу не введен. Поэтому при первой попытке открыть список VPN-соединений система выдает запрос "Введите пароль для хранилища учетных данных" - вводим наш пароль, затем в ответ на требование задать PIN-код или пароль блокировки экрана отвечаем "Отмена" и получаем наш список VPN, можем подключаться.

Если что-то пошло не так, всегда можно вернуть предыдущее (штатное) состояние системы, восстановив данные в отредактиванной базе и перезагрузив систему. Или просто поменяв способ блокировки экрана обычными настройками на любой допустимый по мнению системы.
Tags: android, vpn 3 comments — :( 3 comments — Leave a comment )←1→ Спасибо!(Anonymous) 2017-01-08 03:12 pm (UTC) Ну наконец-то я избавился от этой напасти. Респектище и огромное спасибо!(Reply) (Thread) (Anonymous) 2017-03-24 07:05 pm (UTC) Спасибо!!!помогло!!!(Reply) (Thread) (Anonymous) 2017-06-10 11:31 am (UTC) Спасибо очень помогло(Reply) (Thread) ( 3 comments — Leave a comment )←1→ Archive

Jan2017


Прошивка (разблокировка) Sony Xperia E3 Dual