Проверка SafetyNet на Android: как узнать статус и исправить ошибки

Отказ банковского приложения запускаться с сообщением о «небезопасном устройстве» почти всегда означает одно: смартфон не проходит проверку SafetyNet Attestation — механизма Google, который подтверждает целостность системы Android. Эта аттестация проверяет, не модифицирована ли прошивка, заблокирован ли загрузчик и соответствует ли устройство сертифицированному профилю.

Разберёмся, как самостоятельно выполнить проверку SafetyNet, что означают её результаты и какие действия помогают вернуть работоспособность приложений, чувствительных к безопасности устройства.

Что такое SafetyNet и зачем нужна эта проверка

SafetyNet Attestation API — это сервис Google, который анализирует состояние программной среды Android-устройства и выдаёт криптографически подписанный ответ. Этот ответ используют приложения, чтобы решить, можно ли доверять устройству: запускать оплату, показывать защищённый контент или разрешать вход в аккаунт.

Проверку SafetyNet используют банковские приложения, платёжные сервисы вроде Google Pay, стриминговые платформы с DRM-контентом, корпоративные программы и некоторые игры с защитой от читов. Если аттестация не пройдена, приложение может ограничить функции или отказаться работать полностью.

Важно понимать: Google постепенно заменяет SafetyNet на новый Play Integrity API, но принцип остаётся тем же — устройство должно подтвердить, что оно сертифицировано и не модифицировано. Многие приложения пока проверяют оба механизма.

Основные параметры аттестации

Результат проверки SafetyNet включает несколько ключевых полей, которые и определяют итоговый статус устройства.

  • 🔍 ctsProfileMatch — соответствие устройства сертифицированному профилю CTS (Compatibility Test Suite). Если значение false, система модифицирована или прошивка не сертифицирована.
  • 🛡️ basicIntegrity — базовая целостность системы. Проверяет признаки рута, изменённых системных разделов и разблокированного загрузчика.
  • 📋 evaluationType — тип оценки: базовая (BASIC) или аппаратная (HARDWARE_BACKED), когда проверка выполняется в защищённой среде чипа.

Для большинства банковских приложений критично, чтобы оба первых параметра имели значение true. Аппаратная аттестация считается более строгой: её сложнее обойти, поэтому на устройствах с её поддержкой обходы через Magisk часто перестают работать.

Как проверить статус SafetyNet на смартфоне

Узнать результат аттестации можно несколькими способами, и все они безопасны — никаких системных изменений не требуется.

Самый простой вариант — установить одно из приложений-чекеров из Google Play. В магазине доступны утилиты с названиями вроде SafetyNet Test или YASNAC: они отправляют запрос к API Google и показывают результат в понятном виде. Достаточно запустить приложение и нажать кнопку проверки — через несколько секунд вы увидите значения ctsProfileMatch и basicIntegrity.

Если на устройстве установлен Magisk, в его интерфейсе также есть встроенная кнопка проверки SafetyNet (в актуальных версиях — проверка Play Integrity). Это удобно, когда нужно сразу оценить эффект от включённого DenyList или Zygisk.

☑️ Порядок проверки статуса SafetyNet

Выполнено: 0 / 4
⚠️ Внимание: проверка требует подключения к интернету, так как запрос уходит на серверы Google. При недоступности сервисов Google (например, на устройствах без GMS) аттестация в принципе невозможна — это не ошибка, а ограничение платформы.

Причины непройденной проверки

Если результат показывает false, причина почти всегда связана с изменением заводского состояния системы. Рассмотрим типичные сценарии.

ПричинаЧто нарушаетсяХарактерный признак
Разблокированный загрузчикbasicIntegrityПредупреждение при включении устройства
Root-доступ (Magisk, SuperSU)Оба параметраБанковские приложения не запускаются
Кастомная прошивка (LineageOS и др.)ctsProfileMatchНет сертификации Google
Изменённый системный разделbasicIntegrityОшибки после установки модулей
Неофициальная/региональная прошивкаctsProfileMatchПроверка не проходит «из коробки»

Отдельный случай — устройства без сертификации Google вообще: некоторые китайские смартфоны, планшеты и устройства, купленные не через официальные каналы, могут не иметь сертифицированной сборки. В такой ситуации проверка не пройдёт без дополнительных действий, даже если никаких модификаций вы не делали.

📊 Почему вы проверяете SafetyNet?
Не работает банковское приложение
Не работает Google Pay / оплата телефоном
После получения root или прошивки
Просто хочу узнать статус устройства

Что делать, если проверка не пройдена

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

Если root и кастомная прошивка не устанавливались, сначала проверьте статус сертификации в самом Google Play: откройте Play Маркет → Профиль → Настройки → О устройстве и найдите строку «Сертификация Play Protect». Если устройство не сертифицировано, можно попробовать зарегистрировать его GSF-идентификатор на странице регистрации Google — эта процедура описана в официальной справке Google и подходит для устройств с нестандартными прошивками.

Для устройств с рутом общий принцип такой:

  • 🔄 Обновите Magisk до актуальной версии и включите Zygisk в настройках.
  • 📝 Настройте DenyList: добавьте туда банковские приложения и сервисы Google Play.
  • 🧹 Очистите данные Сервисов Google Play и Google Play Маркета через Настройки → Приложения, затем перезагрузите устройство.
  • 🔒 По возможности заблокируйте загрузчик — но только на стоковой прошивке, иначе устройство может не загрузиться.
⚠️ Внимание: блокировка загрузчика на кастомной прошивке или с модифицированными разделами способна привести к невозможности загрузки устройства. Перед этим шагом убедитесь, что установлена полностью стоковая система, и изучите инструкцию именно для вашей модели.

Особенности обхода проверки и их ограничения

Существуют модули для Magisk, маскирующие состояние устройства под сертифицированное. Они работают за счёт подмены отпечатка прошивки и скрытия признаков модификации. Однако нужно трезво оценивать перспективы: Google регулярно усиливает проверки, и методы, работавшие раньше, перестают действовать после очередного обновления на стороне сервера.

На устройствах с аппаратной аттестацией (HARDWARE_BACKED) обход заметно сложнее, поскольку ответ подписывается в защищённой среде процессора. В таких случаях модули могут частично помогать, а могут не дать результата вовсе — это зависит от конкретной модели чипа и версии прошивки.

Почему проверка может «самопроизвольно» слетать

Google обновляет правила аттестации на стороне сервера, без обновления приложений. Поэтому устройство, которое вчера проходило проверку, сегодня может получить false — без каких-либо ваших действий. Обычно сообщество энтузиастов выпускает обновлённые модули через некоторое время.

Если банковское приложение критично, а стабильный обход найти не удаётся, прагматичные варианты — использовать веб-версию банка в браузере, второе устройство без модификаций или официальные приложения, которые менее строго относятся к аттестации.

Когда стоит отказаться от обхода

Не всегда борьба за прохождение SafetyNet оправданна. Если устройство используется как основное и на нём хранятся финансовые данные, модификации системы сами по себе повышают риски — независимо от того, проходит ли проверка формально.

Кроме того, некоторые приложения помимо SafetyNet проверяют дополнительные признаки: наличие Magisk в списке процессов, отладочные интерфейсы, нестандартные свойства сборки. Даже при успешной аттестации такое приложение может отказать в запуске, и предсказать это заранее невозможно — поведение зависит от конкретного приложения и его версии.

Часто задаваемые вопросы

Можно ли проверить SafetyNet без установки приложений?

Отдельного системного пункта для этого в Android нет. Частично статус виден в настройках Google Play (строка сертификации Play Protect), но полные значения ctsProfileMatch и basicIntegrity покажут только приложения-чекеры или Magisk.

Проверка не проходит, хотя рута никогда не было. В чём причина?

Возможные причины: разблокированный загрузчик (иногда его разблокируют в сервисных центрах или при перепрошивке), несертифицированная прошивка устройства или временный сбой на стороне серверов Google. Проверьте статус сертификации в настройках Play Маркета и повторите тест позже.

Чем Play Integrity отличается от SafetyNet?

Play Integrity API — более новый механизм Google с расширенными вердиктами (устройство, приложение, аккаунт). Для пользователя разница практическая: приложения постепенно переходят на новый API, и обходить его сложнее. Проверяющие приложения часто показывают результаты обоих механизмов.

Опасно ли использовать модули для обхода проверки?

Сами по себе модули обычно не вредят системе, но их установка требует root, что уже снижает защищённость устройства. Кроме того, банковские приложения могут обнаружить обход и, например, ограничить работу аккаунта — условия зависят от конкретного банка.

Поможет ли сброс устройства до заводских настроек?

Сброс данных не убирает root, кастомную прошивку и не блокирует загрузчик, поэтому сам по себе он не восстановит прохождение проверки. Нужно вернуть стоковую прошивку и заблокировать загрузчик — по официальной инструкции для вашей модели.