Столкнулась с тем, что на старом Андроиде забыла графический ключ. Время откирпичиваться.
При разблокировке смартфона HTC U11 Plus после Hard Reset система безопасности Factory Reset Protection (FRP) блокирует стандартные пути обхода. Ниже представлен технический разбор не сработавших методов и пошаговый гайд по рабочему способу через уязвимость в системных сертификатах.
Часть 1. Кладбище идей: что НЕ помогло
Перед тем как нащупать рабочую брешь, потыкалась с бубном в следующее:
Мышечная память. Попытка вспомнить ключ через ассоциации и геометрию точек провалилась. Никаких вопросов о восстановлении аккаунта после пяти попыток не появилось. Альтернативная ссылка на Google‑аккаунт недоступна: текстовое поле ввода почты на стартовом экране деактивировано прошивкой, а кнопка «Забыли графический ключ?» полностью удалена Google начиная с Android 5.0+.
Удаление телефона из Google‑аккаунта. Отвязка устройства через веб‑страницу Google прошла успешно, но сам аппарат об этом не узнал — запрос прежнего графического ключа остался.
Google Find My Device. Полностью мимо по той же причине — устройство изолировано на этапе первоначальной настройки.
Стандартный сброс через Recovery (Hard Reset). Сбросил телефон, но уперся в намертво заблокированную защиту FRP. Метод очищает пользовательские данные, но сохраняет аппаратную привязку к старому аккаунту и ключу.
Разблокировка загрузчика через HTCdev. Был получен файл
Unlock_code.bin, выполнена командаfastboot flash unlocktoken Unlock_code.bin. Загрузчик перешёл в состояниеUNLOCKED, но запрос ключа все равно остался.Отключение Интернета. Мимо, этот трюк работает только для очень старых версий операционной системы.
Обход через PIN‑код SIM‑карты и смахивание шторки. Установка PIN‑кода на SIM‑карту, чтобы провалиться в иконку уведомления, удалась. Но сервисные меню приложений не дали доступа ни к YouTube, ни к полноценному браузеру.
Поиск скрытых лазеек в меню «О приложении». Переходы через разделы «Открывать по умолчанию» и «Очистку хранилища» не сработали — все нужные системные кнопки оказались серыми и заблокированными.
Вход в аккаунт через встроенную «Справку» Google. Система выдавала ошибку безопасности и требовала браузер с поддержкой JavaScript.
Отправка прямой ссылки в СМС в экстренном вызове. Встроенный компонент WebView перехватывал ссылку и открывал пустой нерабочий квадрат или встроенный браузер без JavaScript.
Отправка скрытой системной команды intent:// в СМС. Стандартное приложение сообщений HTC некорректно распознавало длинный код и просто обрезало ссылку.
Попытка запуска офлайн‑настроек. Зажатие клавиш клавиатуры ни к чему не привело — меню настроек ввода было сильно урезано прошивкой.
Привязка через «Добавить учетную запись Google». Меню синхронизации делает финальную проверку и снова требует ввести старый графический ключ.
Вход через сторонний почтовый клиент (Яндекс). Возвращает ошибку авторизации еще на этапе синхронизации серверов.
Прямая смена защиты в Сертификатах. При нажатии на изолированные пункты «ПИН‑код» или «Пароль» экран моргает и сбрасывает действие.
Часть 2. Пошаговый рабочий метод
Обойти систему можно без использования ПК, программаторов и стороннего софта. Нам понадобится только рабочая SIM‑карта с любыми сохраненными контактами (подойдут даже вшитые номера техподдержки оператора).
Шаг 1: Выход в интерфейс Почты через Экстренные контакты
На экране выбора языка нажмите «Экстренный вызов» — дважды кликните по плашке «Данные для экстренных случаев» вверху.
Нажмите на иконку карандаша (редактирование) и через кнопку «Добавить контакт» выберите любой номер с SIM‑карты.
Зайдите в режим редактирования этого контакта и в поле «Почта» (Email) введите любой вымышленный адрес (например,
test@test.com), после чего сохраните изменения.Кликните по появившемуся значку конверта рядом с созданной почтой. На запрос системы выберите приложение Gmail.
Шаг 2: Вызов системного хранилища сертификатов (Credential Storage Bypass)
На экране приветствия почтового клиента пропустить стартовые окна до меню «Добавить адрес электронной почты».
Из списка типов аккаунтов выберите Exchange (или Корпоративный).
Важно: пункт Google выбирать нельзя, он триггерит проверку старого ключа.
Введите любую вымышленную почту (например,
1@outlook.com) и нажмите кнопку «Настройка вручную» (Manual setup) в левом нижнем углу экрана.В открывшихся технических настройках сервера прокрутите экран в самый низ и найдите пункт «Сертификат клиента» (Client Certificate).
Нажмите кнопку «Выбрать» (Select / Добавить) рядом с ним.
Система Android выдаст предупреждение безопасности: «Для использования хранилища учетных данных необходимо установить блокировку экрана». Нажмите «ОК» (или «Настроить»).
Шаг 3: Принудительная перезапись блокировки на ПИН‑код
На экране выбора типа защиты чистые пункты «ПИН‑код» или «Графический ключ» заблокированы прошивкой (сбрасывают действие). Необходимо обойти этот запрет через обработчик биометрии и нажать на комбинированный пункт «Отпечаток пальца и ПИН‑код».
Система пропустит в меню создания нового цифрового пароля. Придумайте и введите любой простой ПИН‑код (например,
1234).Нажмите «Далее», введите его еще раз для подтверждения и нажмите «ОК».
Этап сканирования самого физического отпечатка пальца можно пропустить (нажмите «Отмена», «Назад» или продолжите без отпечатка). Новый ПИН‑код уже успешно применился в системе, затерев старый графический ключ.
Удерживайте кнопку питания и выполните «Перезагрузку» (Restart) смартфона.
Шаг 4: Финальный запуск устройства
После перезагрузки смартфон запустит стандартный мастер первоначальной настройки (выбор языка, Wi‑Fi).
На этапе проверки безопасности устройство вместо старого забытого графического ключа потребует ввести только что созданный ПИН‑код. Вводим
1234.После ввода ПИН‑кода проверка FRP будет успешно пройдена.
На экране авторизации Google‑аккаунта в левом нижнем углу станет активной кнопка «Пропустить» (Skip). Подтягиваем чистый профиль.
Часть 3. Технический разбор: почему это сработало?
Суть эксплоита на старых прошивках HTC (Android 8/9) кроется в логике обработки цепочки доверия в мастере настройки (Setup Wizard). Здесь сработали три уязвимости:
Контекстная изоляция. Мастер настройки Google FRP блокирует прямое изменение паролей через стандартный компонент
ChooseLockGeneric, так как это нарушило бы логику защиты. При попытке вызвать это меню напрямую системный флаг FRP просто сбрасывает действие.Конфликт приоритетов безопасности (Credential Storage Bypass). Когда встроенный почтовый клиент Exchange запрашивает установку шифрованного клиентского сертификата, операционная система перенаправляет запрос в системное хранилище учетных данных. Запрос от подсистемы безопасности
Credential Storageимеет более высокий архитектурный приоритет, чем ограничения мастера настройки FRP. Система принудительно вызывает системное окно создания новой защиты, игнорируя тот факт, что устройство заблокировано.Архитектурная дыра в обработке биометрии HTC Sense. Прошивка HTC жестко контролирует вызовы «чистого» графического ключа или ПИН‑кода внутри мастера настройки, поэтому они моргают и сбрасываются. Однако выбор комбинированного режима (Отпечаток + ПИН‑код) инициализирует подсистему биометрии (
Biometric Framework). Разработчики HTC Sense вынесли регистрацию отпечатков в отдельный высокоприоритетный дочерний поток, который оказался полностью изолирован от проверок флага FRP. Это и позволило беспрепятственно создать новый ключ‑подложку и перезаписать его в память устройства.
Надеюсь, этот разбор сэкономит кому‑то время при оживлении старых девайсов линейки HTC. Если у вас был опыт обхода FRP через другие системные компоненты - делитесь в комментариях!
