Настройка

На этой странице объясняется, как настроить приложение или игру для использования Play Integrity API. Вам необходимо включить ответы API, а затем интегрировать API в ваше приложение и внутренний сервер вашего приложения. Дополнительные параметры конфигурации, функции тестирования и отчеты станут доступны после того, как вы свяжете проект Google Cloud, который вы используете для Play Integrity API, в консоли Google Play.

Включить ответы Play Integrity API

Каждое приложение или SDK, вызывающее Play Integrity API, должно использовать проект Google Cloud для мониторинга использования API. Приложения в Google Play могут связать облачный проект в консоли Google Play, чтобы включить ответы Play Integrity API. Если вы хотите создать новый облачный проект или ваше приложение распространяется исключительно за пределами Google Play, вы можете включить ответы Play Integrity API в своей Google Cloud Console.

Настроить в Google Play Console (рекомендуется)

Включив ответы Play Integrity API в консоли Google Play , вы получите доступ к дополнительным параметрам конфигурации, функциям тестирования и отчетам API. Эта опция доступна только для приложений, распространяемых в Google Play. Перейдите в раздел «Выпуск» > «Целостность приложения» . В разделе Play Integrity API выберите «Связать с облачным проектом» . Выберите облачный проект, который вы хотите связать со своим приложением, и это активирует ответы Play Integrity API. Теперь вы можете интегрировать Play Integrity API в свое приложение.

Настройка в Google Cloud Console

В Google Cloud Console создайте новый облачный проект или выберите существующий облачный проект, который вы хотите использовать с Play Integrity API. Перейдите к API и сервисам . Выберите «Включить API и службы» . Найдите Play Integrity API и включите его. Теперь вы можете интегрировать Play Integrity API в свое приложение.

Инструкции по настройке для поставщиков SDK

Поставщики SDK должны использовать собственный проект Google Cloud для вызова Play Integrity API, чтобы использование API относилось к SDK, а не к отдельным приложениям, использующим SDK. Это означает, что приложениям, использующим ваш SDK, не нужно индивидуально настраивать Play Integrity API. Ваши запросы к Play Integrity API автоматически учитываются при использовании API вашего SDK, а не приложения.

У разработчиков SDK есть два варианта настройки Play Integrity API: консоль Google Play SDK или консоль Google Cloud.

Включив ответы Play Integrity API в консоли Google Play SDK, вы получаете доступ к дополнительным параметрам конфигурации. Перейдите к целостности SDK и нажмите «Настройки» . В разделе «Конфигурация проекта» выберите «Связать облачный проект» . Выберите облачный проект, который вы хотите связать со своим SDK, и это активирует ответы Play Integrity API. Теперь вы можете интегрировать Play Integrity API в свой SDK. Обратите внимание, что доступ к консоли Google Play SDK зависит от критериев приемлемости.

Используйте облачную консоль Google

Вы можете включить ответы Play Integrity API из своей Google Cloud Console. В Google Cloud Console создайте новый облачный проект или выберите существующий облачный проект, который вы хотите использовать с Play Integrity API. Перейдите к API и сервисам . Выберите «Включить API и службы» . Найдите Play Integrity API и включите его. Теперь вы можете интегрировать Play Integrity API в свой SDK.

Увеличьте количество ежедневных запросов Play Integrity API вашего SDK.

Поставщики SDK, которые хотят увеличить максимальное количество ежедневных запросов, должны заполнить форму запроса квоты . В разделе открытых комментариев укажите, что вы делаете запрос SDK, и укажите свои координаты Maven ( groupId:artifactId ) или URL-адрес вашего SDK.

Увеличьте количество ежедневных запросов Play Integrity API.

Ваше приложение будет подвергаться максимум 10 000 запросов на одно приложение в день. Вы можете запросить увеличение этого дневного максимума, если вашему приложению необходимо обслуживать увеличенное количество пользователей, следуя инструкциям ниже.

Увеличьте ежедневное максимальное количество запросов

Чтобы иметь право на увеличение максимального количества ежедневных запросов, ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Даже при увеличении дневного максимума вам следует продолжать ограничивать классические запросы на одного пользователя нечастыми и важными действиями, чтобы сохранить пользовательские данные и заряд батареи.

Чтобы запросить увеличение максимального количества запросов в день, выполните следующие действия:

  1. Свяжите проект Google Cloud, который вы используете для Play Integrity API, в Play Console.
  2. Убедитесь, что вы правильно реализуете логику API, включая рекомендуемую стратегию повторных попыток.
  3. Запросите увеличение квоты, используя эту форму .

Увеличение квоты Play Integrity API может занять до недели, поэтому мы настоятельно рекомендуем отслеживать использование Play Integrity API в консоли Google Play или в Google Cloud Console, где вы также можете настроить оповещения о квотах , чтобы избежать перебоев в вашей работе. услуга.

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

Интегрируйте Play Integrity API в свое приложение.

Чтобы интегрировать Play Integrity API в ваше приложение или SDK, выполните одно из следующих действий в зависимости от вашей среды разработки:

Котлин или Java

Последняя версия библиотеки Android для Play Integrity API доступна в репозитории Google Maven . Добавьте следующую зависимость в файл build.gradle вашего приложения:

implementation 'com.google.android.play:integrity:1.4.0'

Единство

Установите плагин целостности Google Play для Unity 1.3.0 или выше. Инструкции см. в разделе «Как установить пакеты Google для Unity» .

  • Поддерживаются все версии 2019.x, 2020.x и новее.
  • Если вы используете Unity 2018.x, поддерживается версия 2018.4 или новее.
  • Unity 2017.x и более ранние версии не поддерживаются.

Родной

Установите Play Core Native SDK 1.13.0 или более поздней версии. Инструкции см. в руководстве по настройке среды разработки Play Core Native.

Настройте ответы API (необязательно)

Ответ API включает вердикты по умолчанию, возвращаемые в каждом запросе. Если вы настроили интеграцию Play Integrity API в Play Console, вы можете настроить ответ API.

Ответы по умолчанию

По умолчанию в ответе Play Integrity API возвращаются следующие вердикты целостности:

Поле ответа Ценить Описание
Целостность устройства MEETS_DEVICE_INTEGRITY Приложение работает на устройстве Android с поддержкой сервисов Google Play. Устройство проходит проверку целостности системы и соответствует требованиям совместимости с Android.
Пусто (пустое значение) Приложение работает на устройстве, имеющем признаки атаки (например, перехват API) или взлома системы (например, рутирование), или приложение не работает на физическом устройстве (например, эмулятор, который не проходит проверку целостности Google Play). чеки).
Детали игрового аккаунта LICENSED У пользователя есть право на использование приложения. Другими словами, пользователь установил или купил ваше приложение в Google Play. Пользователь сохраняет права доступа к приложению после удаления приложения, поэтому учетная запись пользователя по-прежнему будет иметь лицензию, если позже пользователь получит то же приложение другим способом.
UNLICENSED У пользователя нет прав на использование приложения. Это происходит, например, когда пользователь загружает ваше приложение или не скачивает его из Google Play.
UNEVALUATED Детали лицензирования не оценивались, поскольку было пропущено одно из требований. Это может произойти по нескольким причинам, включая следующие:
  • Устройство не заслуживает доверия.
  • Пользователь не авторизован в Google Play.
  • Версия вашего приложения, установленного на устройстве, неизвестна Google Play.
Целостность приложения PLAY_RECOGNIZED Приложение и сертификат соответствуют версиям, распространяемым Google Play.
UNRECOGNIZED_VERSION Название сертификата или пакета не соответствует записям Google Play.
UNEVALUATED Целостность приложения не оценивалась. Было пропущено необходимое требование, например, устройство не заслуживало достаточного доверия.

Условные ответы

Если вы распространяете игры в Google Play Games для ПК , вы автоматически получите дополнительную метку в вердикте целостности устройства:

Поле ответа Этикетка Описание
Целостность устройства MEETS_VIRTUAL_INTEGRITY Приложение работает на эмуляторе Android на базе сервисов Google Play. Эмулятор проходит проверку целостности системы и соответствует основным требованиям совместимости Android.

Дополнительные ответы

Если вы настроили интеграцию Play Integrity API в Play Console или Play SDK Console, вы можете подписаться на получение информации в ответе API.

Чтобы внести изменения в ответы API, посетите Play Console и выберите «Выпуск» > «Целостность приложения» . В разделе «Ответы» отредактируйте и сохраните изменения.

Дополнительная информация об устройстве

Приложения и SDK могут включать дополнительные метки устройств в вердикте целостности устройства. После того как вы согласитесь на получение дополнительных меток, ответ о целостности будет включать несколько меток для одного и того же устройства, если каждый из критериев метки соблюден. Вы можете подготовить свой внутренний сервер к разному поведению в зависимости от диапазона возможных ответов. Например, устройству, которое возвращает три метки ( MEETS_STRONG_INTEGRITY , MEETS_DEVICE_INTEGRITY и MEETS_BASIC_INTEGRITY ), можно доверять больше, чем устройству, которое возвращает только одну метку ( MEETS_BASIC_INTEGRITY ).

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

Поле ответа Этикетка Описание
Целостность устройства MEETS_BASIC_INTEGRITY Приложение работает на устройстве, которое проходит базовую проверку целостности системы. Устройство может не соответствовать требованиям совместимости Android и не быть одобрено для запуска сервисов Google Play. Например, устройство может работать под управлением неизвестной версии Android, иметь разблокированный загрузчик или не быть сертифицировано производителем.
MEETS_STRONG_INTEGRITY Приложение работает на устройстве Android с поддержкой сервисов Google Play и имеет надежную гарантию целостности системы, например аппаратное подтверждение целостности загрузки. Устройство проходит проверку целостности системы и соответствует требованиям совместимости с Android.
Недавняя активность устройства Стандартные запросы токена целостности API на этом устройстве за последний час для каждого приложения Запросы токена целостности классического API на этом устройстве за последний час для каждого приложения
LEVEL_1 (самый низкий) 10 или меньше 5 или меньше
LEVEL_2 Между 11 и 25 Между 6 и 10
LEVEL_3 От 26 до 50 Между 11 и 15
LEVEL_4 (самый высокий) Более 50 Более 15
UNEVALUATED Недавняя активность устройства не оценивалась. Это может произойти потому, что:
  • Устройство не заслуживает доверия.
  • Версия вашего приложения, установленного на устройстве, неизвестна Google Play.
  • На устройстве возникли технические проблемы.

Дополнительные сведения о среде

Приложения могут подписаться на получение дополнительных оценок об окружающей среде. Риск доступа к приложениям позволяет узнать, запущены ли другие приложения, которые могут захватывать экран, отображать наложения или управлять устройством. Вердикт Play Protect позволяет узнать, включена ли Play Protect на устройстве и обнаружено ли на нем известное вредоносное ПО.

После того как вы согласитесь получать эти вердикты, ваш ответ API будет включать поле сведений о среде с вердиктом:

Поле ответа Ценить Описание
Вердикт о риске доступа к приложению KNOWN_INSTALLED Приложения устанавливаются из Google Play или предварительно загружаются в системный раздел производителем устройства.
KNOWN_CAPTURING Запускаются приложения, установленные Google Play или предварительно загруженные на устройство, которые можно использовать для чтения или захвата входных и выходных данных запрашивающего приложения, например приложения для записи экрана.
KNOWN_CONTROLLING Запускаются приложения, установленные Google Play или предварительно загруженные на устройство, которые можно использовать для управления устройством, а также входными и выходными данными запрашивающего приложения, например, для удаленного управления приложениями.
KNOWN_OVERLAYS Запускаются приложения, установленные Google Play или предварительно загруженные на устройство, которые могут отображать наложения в запрашивающем приложении.
UNKNOWN_INSTALLED Установлены другие приложения, которые не были установлены Google Play или предварительно загружены в системный раздел производителем устройства.
UNKNOWN_CAPTURING Запущены другие приложения (не установленные Play и не предварительно загруженные на устройство), которые можно использовать для чтения или захвата входных и выходных данных запрашивающего приложения, например приложения для записи экрана.
UNKNOWN_CONTROLLING Запущены другие приложения (не установленные Play и предварительно загруженные на устройство), которые можно использовать для управления устройством, а также входными и выходными данными запрашивающего приложения, например приложения для удаленного управления.
UNKNOWN_OVERLAYS Другие запущенные приложения (не установленные Play и не предварительно загруженные на устройство), которые могут отображать наложения в запрашивающем приложении.
ПУСТОЙ (пустое значение) Риск доступа к приложению не оценивается, если необходимое требование было пропущено. В этом случае поле appAccessRiskVerdict пусто. Это может произойти по нескольким причинам, включая следующие:
  • Устройство не заслуживает доверия.
  • Форм-фактор устройства не является телефоном, планшетом или складным устройством.
  • Устройство не работает под управлением Android 6 (уровень API 23) или выше.
  • Версия вашего приложения, установленного на устройстве, неизвестна Google Play.
  • Версия Google Play Store на устройстве устарела.
  • Только игры : у учетной записи пользователя нет лицензии Play для игры.
  • Использовался стандартный запрос с параметром verdictOptOut .
  • Стандартный запрос использовался с версией библиотеки Play Integrity API, которая еще не поддерживает риск доступа к приложениям для стандартных запросов.
Вердикт Play Protect NO_ISSUES Play Protect включен, и на устройстве не обнаружено проблем с приложениями.
NO_DATA Play Protect включен, но сканирование еще не выполнено. Возможно, устройство или приложение Play Store недавно были сброшены.
POSSIBLE_RISK Play Protect отключен.
MEDIUM_RISK Play Protect включен и обнаружил, что на устройстве установлены потенциально опасные приложения.
HIGH_RISK Play Protect включен и обнаружил, что на устройстве установлены опасные приложения.
UNEVALUATED Вердикт Play Protect не был оценен. Было пропущено необходимое требование, например, устройство не заслуживало достаточного доверия.

Настройте параметры классического запроса (необязательно)

Пропустите этот раздел, если вы планируете делать только стандартные запросы API .

Когда вы отправляете классические запросы, серверы Google Play по умолчанию управляют шифрованием ответов, которое ваше приложение использует при взаимодействии с Play Integrity API. Хотя мы рекомендуем вам использовать этот вариант по умолчанию, вы также можете управлять ключами шифрования ответов и загружать их, следуя инструкциям ниже.

Разрешите Google управлять шифрованием вашего ответа (по умолчанию и рекомендуется)

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

Управлять и загружать ключи шифрования моих ответов

Если вы хотите расшифровать вердикт целостности локально в своей защищенной серверной среде, вы можете управлять ключами шифрования ответов и загружать их. Чтобы управлять ключами шифрования ответов и загружать их, вы должны использовать Play Console, а ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Следуйте инструкциям ниже, чтобы переключиться с ключей шифрования ответов, управляемых Google, на ключи шифрования ответов, управляемые самостоятельно.

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

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

Переключение между ключами шифрования ответов, управляемыми Google, и ключами шифрования ответов, управляемыми самостоятельно.

Если в настоящее время Google управляет шифрованием ваших ответов, и вы хотите самостоятельно управлять ключами шифрования ответов и загружать их, выполните следующие действия:

  1. Войдите в консоль Play .
  2. Выберите приложение, которое использует Play Integrity API.
  3. В разделе «Выпуск» левого меню перейдите к «Целостность приложения» .
  4. Рядом с Play Integrity API нажмите «Настройки» .
  5. В разделе Классические запросы на странице рядом с пунктом Шифрование ответа нажмите Изменить .
  6. В появившемся окне нажмите «Управление» и загрузите ключи шифрования моего ответа .
  7. Следуйте инструкциям, чтобы загрузить открытый ключ.
  8. После того, как в окне появится сообщение об успешной загрузке, нажмите «Сохранить» , и зашифрованные ключи загрузятся автоматически.
  9. Измените логику вашего сервера так, чтобы вы могли расшифровывать и проверять токены целостности локально, в своей собственной защищенной серверной среде, используя ключи шифрования ответов.
  10. (Необязательно) Если вы самостоятельно управляете ключами шифрования ответов, ваше приложение по-прежнему может обращаться к серверу Google Play для расшифровки и проверки ответа.

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

  1. Измените логику своего сервера, чтобы расшифровка и проверка выполнялись исключительно на серверах Google.
  2. Войдите в консоль Play .
  3. Выберите приложение, которое использует Play Integrity API.
  4. В разделе «Выпуск» левого меню перейдите к «Целостность приложения» .
  5. Рядом с Play Integrity API нажмите «Настройки» .
  6. В разделе Классические запросы на странице рядом с пунктом Шифрование ответа нажмите Изменить .
  7. В появившемся окне нажмите «Разрешить Google управлять шифрованием моего ответа (рекомендуется)» .
  8. Нажмите Сохранить изменения .
,

На этой странице объясняется, как настроить приложение или игру для использования Play Integrity API. Вам необходимо включить ответы API, а затем интегрировать API в ваше приложение и внутренний сервер вашего приложения. Дополнительные параметры конфигурации, функции тестирования и отчеты станут доступны после того, как вы свяжете проект Google Cloud, который вы используете для Play Integrity API, в консоли Google Play.

Включить ответы Play Integrity API

Каждое приложение или SDK, вызывающее Play Integrity API, должно использовать проект Google Cloud для мониторинга использования API. Приложения в Google Play могут связать облачный проект в консоли Google Play, чтобы включить ответы Play Integrity API. Если вы хотите создать новый облачный проект или ваше приложение распространяется исключительно за пределами Google Play, вы можете включить ответы Play Integrity API в своей Google Cloud Console.

Настроить в Google Play Console (рекомендуется)

Включив ответы Play Integrity API в консоли Google Play , вы получите доступ к дополнительным параметрам конфигурации, функциям тестирования и отчетам API. Эта опция доступна только для приложений, распространяемых в Google Play. Перейдите в раздел «Выпуск» > «Целостность приложения» . В разделе Play Integrity API выберите «Связать с облачным проектом» . Выберите облачный проект, который вы хотите связать со своим приложением, и это активирует ответы Play Integrity API. Теперь вы можете интегрировать Play Integrity API в свое приложение.

Настройка в Google Cloud Console

В Google Cloud Console создайте новый облачный проект или выберите существующий облачный проект, который вы хотите использовать с Play Integrity API. Перейдите к API и сервисам . Выберите «Включить API и службы» . Найдите Play Integrity API и включите его. Теперь вы можете интегрировать Play Integrity API в свое приложение.

Инструкции по настройке для поставщиков SDK

Поставщики SDK должны использовать собственный проект Google Cloud для вызова Play Integrity API, чтобы использование API относилось к SDK, а не к отдельным приложениям, использующим SDK. Это означает, что приложениям, использующим ваш SDK, не нужно индивидуально настраивать Play Integrity API. Ваши запросы к Play Integrity API автоматически учитываются при использовании API вашего SDK, а не приложения.

У разработчиков SDK есть два варианта настройки Play Integrity API: консоль Google Play SDK или консоль Google Cloud.

Включив ответы Play Integrity API в консоли Google Play SDK, вы получаете доступ к дополнительным параметрам конфигурации. Перейдите к целостности SDK и нажмите «Настройки» . В разделе «Конфигурация проекта» выберите «Связать облачный проект» . Выберите облачный проект, который вы хотите связать со своим SDK, и это активирует ответы Play Integrity API. Теперь вы можете интегрировать Play Integrity API в свой SDK. Обратите внимание, что доступ к консоли Google Play SDK зависит от критериев приемлемости.

Используйте облачную консоль Google

Вы можете включить ответы Play Integrity API из своей Google Cloud Console. В Google Cloud Console создайте новый облачный проект или выберите существующий облачный проект, который вы хотите использовать с Play Integrity API. Перейдите к API и сервисам . Выберите «Включить API и службы» . Найдите Play Integrity API и включите его. Теперь вы можете интегрировать Play Integrity API в свой SDK.

Увеличьте количество ежедневных запросов Play Integrity API вашего SDK.

Поставщики SDK, которые хотят увеличить максимальное количество ежедневных запросов, должны заполнить форму запроса квоты . В разделе открытых комментариев укажите, что вы делаете запрос SDK, и укажите свои координаты Maven ( groupId:artifactId ) или URL-адрес вашего SDK.

Увеличьте количество ежедневных запросов Play Integrity API.

Ваше приложение будет подвергаться максимум 10 000 запросов на одно приложение в день. Вы можете запросить увеличение этого дневного максимума, если вашему приложению необходимо обслуживать увеличенное количество пользователей, следуя инструкциям ниже.

Увеличьте ежедневное максимальное количество запросов

Чтобы иметь право на увеличение максимального количества ежедневных запросов, ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Даже при увеличении дневного максимума вам следует продолжать ограничивать классические запросы на одного пользователя нечастыми и важными действиями, чтобы сохранить пользовательские данные и заряд батареи.

Чтобы запросить увеличение максимального количества запросов в день, выполните следующие действия:

  1. Свяжите проект Google Cloud, который вы используете для Play Integrity API, в Play Console.
  2. Убедитесь, что вы правильно реализуете логику API, включая рекомендуемую стратегию повторных попыток.
  3. Запросите увеличение квоты, используя эту форму .

Увеличение квоты Play Integrity API может занять до недели, поэтому мы настоятельно рекомендуем отслеживать использование Play Integrity API в консоли Google Play или в Google Cloud Console, где вы также можете настроить оповещения о квотах , чтобы избежать перебоев в вашей работе. услуга.

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

Интегрируйте Play Integrity API в свое приложение.

Чтобы интегрировать Play Integrity API в ваше приложение или SDK, выполните одно из следующих действий в зависимости от вашей среды разработки:

Котлин или Java

Последняя версия библиотеки Android для Play Integrity API доступна в репозитории Google Maven . Добавьте следующую зависимость в файл build.gradle вашего приложения:

implementation 'com.google.android.play:integrity:1.4.0'

Единство

Установите плагин целостности Google Play для Unity 1.3.0 или выше. Инструкции см. в разделе «Как установить пакеты Google для Unity» .

  • Поддерживаются все версии 2019.x, 2020.x и новее.
  • Если вы используете Unity 2018.x, поддерживается версия 2018.4 или новее.
  • Unity 2017.x и более ранние версии не поддерживаются.

Родной

Установите Play Core Native SDK 1.13.0 или более поздней версии. Инструкции см. в руководстве по настройке среды разработки Play Core Native.

Настройте ответы API (необязательно)

Ответ API включает вердикты по умолчанию, возвращаемые в каждом запросе. Если вы настроили интеграцию Play Integrity API в Play Console, вы можете настроить ответ API.

Ответы по умолчанию

По умолчанию в ответе Play Integrity API возвращаются следующие вердикты целостности:

Поле ответа Ценить Описание
Целостность устройства MEETS_DEVICE_INTEGRITY Приложение работает на устройстве Android с поддержкой сервисов Google Play. Устройство проходит проверку целостности системы и соответствует требованиям совместимости с Android.
Пусто (пустое значение) Приложение работает на устройстве, имеющем признаки атаки (например, перехват API) или взлома системы (например, рутирование), или приложение не работает на физическом устройстве (например, эмулятор, который не проходит проверку целостности Google Play). чеки).
Детали игрового аккаунта LICENSED У пользователя есть право на использование приложения. Другими словами, пользователь установил или купил ваше приложение в Google Play. Пользователь сохраняет права на приложение после удаления приложения, поэтому учетная запись пользователя по-прежнему будет иметь лицензию, если позже пользователь получит то же приложение другим способом.
UNLICENSED У пользователя нет прав на использование приложения. Это происходит, например, когда пользователь загружает ваше приложение или не скачивает его из Google Play.
UNEVALUATED Детали лицензирования не оценивались, поскольку было пропущено одно из требований. Это может произойти по нескольким причинам, включая следующие:
  • Устройство не заслуживает доверия.
  • Пользователь не авторизован в Google Play.
  • Версия вашего приложения, установленного на устройстве, неизвестна Google Play.
Целостность приложения PLAY_RECOGNIZED Приложение и сертификат соответствуют версиям, распространяемым Google Play.
UNRECOGNIZED_VERSION Название сертификата или пакета не соответствует записям Google Play.
UNEVALUATED Целостность приложения не оценивалась. Было пропущено необходимое требование, например, устройство не заслуживало достаточного доверия.

Условные ответы

Если вы распространяете игры в Google Play для ПК , вы автоматически получите дополнительную метку в вердикте целостности устройства:

Поле ответа Этикетка Описание
Целостность устройства MEETS_VIRTUAL_INTEGRITY Приложение работает на эмуляторе Android на базе сервисов Google Play. Эмулятор проходит проверку целостности системы и соответствует основным требованиям совместимости Android.

Дополнительные ответы

Если вы настроили интеграцию Play Integrity API в Play Console или Play SDK Console, вы можете подписаться на получение информации в ответе API.

Чтобы внести изменения в ответы API, посетите Play Console и выберите «Выпуск» > «Целостность приложения» . В разделе «Ответы» отредактируйте и сохраните изменения.

Дополнительная информация об устройстве

Приложения и SDK могут включать дополнительные метки устройств в вердикте целостности устройства. После того как вы согласитесь на получение дополнительных меток, ответ о целостности будет включать несколько меток для одного и того же устройства, если каждый из критериев метки соблюден. Вы можете подготовить свой внутренний сервер к различному поведению в зависимости от диапазона возможных ответов. Например, устройству, которое возвращает три метки ( MEETS_STRONG_INTEGRITY , MEETS_DEVICE_INTEGRITY и MEETS_BASIC_INTEGRITY ), можно доверять больше, чем устройству, которое возвращает только одну метку ( MEETS_BASIC_INTEGRITY ).

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

Поле ответа Этикетка Описание
Целостность устройства MEETS_BASIC_INTEGRITY Приложение работает на устройстве, которое проходит базовую проверку целостности системы. Устройство может не соответствовать требованиям совместимости Android и не быть одобрено для запуска сервисов Google Play. Например, устройство может работать под управлением неизвестной версии Android, иметь разблокированный загрузчик или не быть сертифицировано производителем.
MEETS_STRONG_INTEGRITY Приложение работает на устройстве Android с поддержкой сервисов Google Play и имеет надежную гарантию целостности системы, например аппаратное подтверждение целостности загрузки. Устройство проходит проверку целостности системы и соответствует требованиям совместимости с Android.
Недавняя активность устройства Стандартные запросы токена целостности API на этом устройстве за последний час для каждого приложения Запросы токена целостности классического API на этом устройстве за последний час для каждого приложения
LEVEL_1 (самый низкий) 10 или меньше 5 или меньше
LEVEL_2 Между 11 и 25 Между 6 и 10
LEVEL_3 От 26 до 50 Между 11 и 15
LEVEL_4 (самый высокий) Более 50 Более 15
UNEVALUATED Недавняя активность устройства не оценивалась. Это может произойти потому, что:
  • Устройство не заслуживает доверия.
  • Версия вашего приложения, установленного на устройстве, неизвестна Google Play.
  • На устройстве возникли технические проблемы.

Дополнительные сведения о среде

Приложения могут подписаться на получение дополнительных оценок об окружающей среде. Риск доступа к приложениям позволяет узнать, запущены ли другие приложения, которые могут захватывать экран, отображать наложения или управлять устройством. Вердикт Play Protect позволяет узнать, включена ли Play Protect на устройстве и обнаружено ли на нем известное вредоносное ПО.

После того как вы согласитесь получать эти вердикты, ваш ответ API будет включать поле сведений о среде с вердиктом:

Поле ответа Ценить Описание
Вердикт о риске доступа к приложению KNOWN_INSTALLED Приложения устанавливаются из Google Play или предварительно загружаются в системный раздел производителем устройства.
KNOWN_CAPTURING Запускаются приложения, установленные Google Play или предварительно загруженные на устройство, которые можно использовать для чтения или захвата входных и выходных данных запрашивающего приложения, например приложения для записи экрана.
KNOWN_CONTROLLING Запускаются приложения, установленные Google Play или предварительно загруженные на устройство, которые можно использовать для управления устройством, а также входными и выходными данными запрашивающего приложения, например, для удаленного управления приложениями.
KNOWN_OVERLAYS Запущены приложения, установленные Google Play или предварительно загруженные на устройство, которые могут отображать наложения в запрашивающем приложении.
UNKNOWN_INSTALLED Установлены другие приложения, которые не были установлены Google Play или предварительно загружены в системный раздел производителем устройства.
UNKNOWN_CAPTURING Запущены другие приложения (не установленные Play и не предварительно загруженные на устройство), которые можно использовать для чтения или захвата входных и выходных данных запрашивающего приложения, например приложения для записи экрана.
UNKNOWN_CONTROLLING Запущены другие приложения (не установленные Play и не предварительно загруженные на устройство), которые можно использовать для управления устройством, а также входными и выходными данными запрашивающего приложения, например приложения для удаленного управления.
UNKNOWN_OVERLAYS Другие запущенные приложения (не установленные Play и не предварительно загруженные на устройство), которые могут отображать наложения в запрашивающем приложении.
ПУСТОЙ (пустое значение) Риск доступа к приложению не оценивается, если необходимое требование было пропущено. В этом случае поле appAccessRiskVerdict пусто. Это может произойти по нескольким причинам, включая следующие:
  • Устройство не заслуживает доверия.
  • Форм-фактор устройства не является телефоном, планшетом или складным устройством.
  • Устройство не работает под управлением Android 6 (уровень API 23) или выше.
  • Версия вашего приложения, установленного на устройстве, неизвестна для Google Play.
  • Версия Google Play Store на устройстве устарела.
  • Только игры : Учетная запись пользователя не имеет игровой лицензии для игры.
  • Стандартный запрос был использован с параметром verdictOptOut .
  • Стандартный запрос был использован с версией библиотеки API Play Api, которая еще не поддерживает риск доступа к приложениям для стандартных запросов.
Играть в защиту вердикт NO_ISSUES Play Protect включается и не нашел проблем с приложением на устройстве.
NO_DATA Play Protect включается, но сканирование еще не было выполнено. Устройство или приложение Play Store, возможно, были недавно сброшены.
POSSIBLE_RISK Play Protect выключен.
MEDIUM_RISK Play Protect включен и обнаружил потенциально вредные приложения, установленные на устройстве.
HIGH_RISK Play Protect включен и обнаружил опасные приложения, установленные на устройстве.
UNEVALUATED Вердикт Play Protect не был оценен. Было пропущено необходимое требование, например, устройство недостаточно заслуживает доверия.

Настройка классических настроек запроса (необязательно)

Пропустите этот раздел, если вы планируете сделать стандартные запросы API .

Когда вы делаете классические запросы, по умолчанию серверы Google Play управляют шифрованием ответа, которое ваше приложение использует при взаимодействии с API Play Integrity API. Несмотря на то, что мы рекомендуем использовать эту опцию по умолчанию, вы также можете выбрать управление и загрузку ключей шифрования ответа, следуя приведенным ниже инструкциям.

Позвольте Google управлять вашим шифрованием ответа (по умолчанию и рекомендуется)

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

Управление и скачать мои клавиши шифрования ответа

Если вы хотите расшифровывать вердикт целостности локально в своей собственной среде безопасного сервера, вы можете управлять и загружать свои клавиши шифрования ответа. Чтобы управлять и загрузить ключи шифрования ответа, вы должны использовать Play Console, и ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Следуйте приведенным ниже инструкциям, чтобы переключиться с Google, управляемых на клавиши шифрования ответа самоуправленного.

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

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

Переключить между Google-управляемыми и самоуправляемыми ключами шифрования ответа

Если Google в настоящее время управляет вашим шифрованием ответа, и вы хотите переключиться на управление и загрузить свои клавиши шифрования ответа, выполните следующие действия:

  1. Войдите в игровой консоли .
  2. Выберите приложение, которое использует API Play Integry API.
  3. В разделе «Выпуск левого меню» перейдите к целостности приложения .
  4. Рядом, чтобы воспроизвести API целостности , нажмите «Настройки» .
  5. В разделе «Классические запросы страницы», рядом с шифрованием ответа , нажмите «Редактировать» .
  6. В появлении окна нажмите «Управление» и «Загрузите мои клавиши шифрования ответа» .
  7. Следуйте инструкциям, чтобы загрузить открытый ключ.
  8. После того, как окно показывает, что загрузка была успешной, нажмите «Сохранить» , и ваши зашифрованные клавиши загружают автоматически.
  9. Измените логику сервера так, чтобы вы расшифровали и проверяли токены целостности локально, в собственной среде безопасного сервера, используя свои клавиши шифрования ответа.
  10. (Необязательно) Когда вы самостоятельно управляете своими ключами шифрования ответа, ваше приложение все еще может вернуться на сервер Google Play, чтобы расшифровать и проверить ответ.

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

  1. Измените логику сервера так, чтобы вы исключительно расшифровали и проверяли на серверах Google.
  2. Войдите в игровой консоли .
  3. Выберите приложение, которое использует API Play Integry API.
  4. В разделе «Выпуск левого меню» перейдите к целостности приложения .
  5. Рядом, чтобы воспроизвести API целостности , нажмите «Настройки» .
  6. В разделе «Классические запросы страницы», рядом с шифрованием ответа , нажмите «Редактировать» .
  7. В появлении окна нажмите Google управлять моим шифрованием ответа (рекомендуется) .
  8. Нажмите «Сохранить изменения» .
,

На этой странице объясняется, как настроить ваше приложение или игру, чтобы использовать API Play Integrity API. Вам необходимо включить ответы из API, а затем вам нужно интегрировать API в ваше приложение и сервер вашего приложения. Дополнительные параметры конфигурации, функции тестирования и отчеты становятся доступными после того, как вы связываете облачный проект Google, который вы используете для API Play Integrity API в консоли Google Play.

Включить воспроизведение ответов API целостности

Каждое приложение или SDK, вызывая API Play Integrity API, необходимо использовать облачный проект Google для мониторинга использования API. Приложения в Google Play могут связать облачный проект в консоли Google Play, чтобы включить ответы API Play Integrity. Если вы хотите создать новый облачный проект, или ваше приложение распределяется исключительно за пределами Google Play, вы можете включить воспроизведение ответов API -API из вашей консоли Cloud Cloud Google.

Настройка в Google Play Console (рекомендуется)

Включив ответы API API Play Integrity в консоли Google Play , вы получите доступ к дополнительным параметрам конфигурации, функциям тестирования и отчетам API. Эта опция доступна только для приложений, распространяемых в Google Play. Перейдите к выпуску > целостность приложения . В Play Api API выберите Ссыл облачный проект . Выберите облачный проект, который вы хотите ссылаться на свое приложение, и это позволит воспроизводить API -ответы API воспроизведения. Теперь вы можете интегрировать API Play Integrity API в свое приложение.

Настройка в Cloud Console Google

В вашей облачной консоли Google создайте новый облачный проект или выберите существующий облачный проект, который вы хотите использовать с API Play Integrity API. Перейдите к API и услугам . Выберите Включить API и услуги . Поиск API Play Integrity API , а затем включите его. Теперь вы можете интегрировать API Play Integrity API в свое приложение.

Настройка инструкций для поставщиков SDK

Поставщики SDK должны использовать свой собственный Google Cloud Project, чтобы вызвать API Play Integrity API, так что использование API приписывается SDK, а не отдельным приложениям с использованием SDK. Это означает, что приложения, которые используют ваш SDK, не должны индивидуально настраивать API Play Integrity. Ваши запросы на воспроизведение API целостности автоматически учитываются в отношении использования API вашего SDK, а не к приложению.

Разработчики SDK имеют два варианта настройки API Play Integrity, консоли Google Play SDK или Cloud Console Google.

Включив в консоль Google Play SDK, вы получаете доступ к дополнительным параметрам конфигурации. Перейдите к целостности SDK и нажмите «Настройки» . В разделе «Конфигурация проекта» выберите ссылку облачный проект . Выберите облачный проект, который вы хотите ссылаться на свой SDK, и это позволит воспользоваться ответами на API Igle Play. Теперь вы можете интегрировать API Play Integrity API в свой SDK. Обратите внимание, что доступ к консоли Google Play SDK подлежит критериям приемлемости.

Используйте Google Cloud Console

Вы можете включить воспроизведение ответов API -API из вашей консоли Google Cloud. В вашей облачной консоли Google создайте новый облачный проект или выберите существующий облачный проект, который вы хотите использовать с API Play Integrity API. Перейдите к API и услугам . Выберите Включить API и услуги . Поиск API Play Integrity API , а затем включите его. Теперь вы можете интегрировать API Play Integrity API в свой SDK.

Увеличьте запросы API API Daily Play в SDK

Поставщики SDK, которые хотят увеличить свои максимальные ежедневные запросы, должны заполнить форму запроса квот . В разделе «Открытые комментарии» укажите, что вы делаете запрос SDK и включите свои координаты Maven ( groupId:artifactId ) или URL в ваш SDK.

Увеличьте ваши запросы API -API ежедневной игры.

Ваше приложение будет подлежать максимум 10 000 запросов на приложение в день. Вы можете попросить увеличить этот ежедневный максимум, если ваше приложение необходимо для обработки увеличенного количества пользователей, следуя приведенным ниже инструкциям.

Увеличьте свое ежедневное максимальное количество запросов

Чтобы иметь право на увеличение вашего ежедневного максимального количества запросов, ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распределения. Даже с увеличением ежедневного максимума, вы должны продолжать ограничивать классические запросы на одного пользователя редкими, высокоценными действиями по сохранению пользовательских данных и батареи.

Чтобы запросить увеличение вашего ежедневного максимального количества запросов, сделайте следующее:

  1. Свяжите Google Cloud Project, который вы используете для API Play Integrity API в консоли Play.
  2. Убедитесь, что вы правильно реализуете логику API, включая рекомендуемую стратегию повторения.
  3. Запросите увеличение квоты, используя эту форму .

Это может занять до недели, чтобы увеличить квоту API API Itgrity Play, поэтому мы настоятельно рекомендуем мониторировать использование API -API -API в вашей консоли Google Play или в вашей облачной консоли Google, где вы также можете настроить оповещения о квотах , чтобы избежать перерывов на вашу услуга.

Классическая квота запроса будет автоматически применяться как к клиентскому вызову, чтобы сгенерировать токены целостности, так и к вызову сервера для расшифровки и проверки токенов целостности. Стандартное увеличение квоты запроса применяется к вызову сервера для расшифровки и проверки токенов целостности.

Интегрируйте API Play Integrity API в ваше приложение

Чтобы интегрировать API -API Itgrobity Play в ваше приложение или SDK, сделайте одно из следующих действий в зависимости от вашей среды разработки:

Kotlin или Java

Последняя библиотека Android для API Play Integrity API доступна в репозитории Google Maven . Добавьте следующую зависимость в файл вашего приложения build.gradle :

implementation 'com.google.android.play:integrity:1.4.0'

Единство

Установите плагин Google Play Integrity для Unity 1.3.0 или выше. Для получения инструкций см. Как установить пакеты Google для Unity .

  • Все версии 2019.x, 2020.x и более новые поддерживаются.
  • Если вы используете Unity 2018.x, поддерживают версию 2018.4 или новую.
  • Unity 2017.x и старше не поддерживаются.

Родной

Установите Play Core Native SDK 1.13.0 или выше. Для инструкций см. Руководство по настройке среды развития Play Corne.

Настройка ответов API (необязательно)

Ответ API включает в себя вердикты по умолчанию, возвращаемые в каждом запросе. Если вы настроите интеграцию API API Play Integrity в игровой консоли, вы можете настроить свой ответ API.

Ответы по умолчанию

Следующие вердикты целостности возвращаются в ответ API Play API по умолчанию:

Поле ответа Ценить Описание
Целостность устройства MEETS_DEVICE_INTEGRITY Приложение работает на устройстве Android, работающем на Google Play Services. Устройство проходит проверку целостности системы и соответствует требованиям совместимости Android.
Пусто (пустое значение) Приложение работает на устройстве, которое имеет признаки атаки (например, подключение API) или компромисс системы (например, укоренено), или приложение не работает на физическом устройстве (например, эмулятор, который не проходит целостность Google Play. проверяет).
Воспроизвести подробности учетной записи LICENSED У пользователя есть право приложения. Другими словами, пользователь установил или купил ваше приложение в Google Play. Пользователь сохраняет право приложения после удаления приложения, поэтому учетная запись пользователя по -прежнему будет иметь лицензию, если пользователь впоследствии получит то же приложение по -другому.
UNLICENSED У пользователя нет права приложения. Это происходит, когда, например, пользователь нагружает ваше приложение или не получает его от Google Play.
UNEVALUATED Детали лицензирования не были оценены, потому что требование было пропущено. Это может произойти по нескольким причинам, включая следующие:
  • Устройство недостаточно заслуживает доверия.
  • Пользователь не вписался в Google Play.
  • Версия вашего приложения, установленного на устройстве, неизвестна для Google Play.
Целостность приложения PLAY_RECOGNIZED Приложение и сертификат соответствуют версиям, распространяемым Google Play.
UNRECOGNIZED_VERSION Сертификат или имя пакета не совпадают с записями Google Play.
UNEVALUATED Целостность приложения не была оценена. Было пропущено необходимое требование, например, устройство недостаточно заслуживает доверия.

Условные ответы

Если вы распространяете Google Play Games для ПК , вы будете автоматически выбрать, чтобы получить дополнительную метку в вердикте целостности устройства:

Поле ответа Этикетка Описание
Целостность устройства MEETS_VIRTUAL_INTEGRITY Приложение работает на эмуляторе Android, основанном на Google Play Services. Эмулятор проходит проверку целостности системы и соответствует основным требованиям совместимости Android.

Дополнительные ответы

Если вы настроите интеграцию API API -интеграции Play Integrity в Play Console или Play SDK Console, вы можете выбрать информацию в своем ответе API.

Чтобы внести изменения в ваши ответы API, посетите воспроизведение консоли и перейдите к выпуску > Целостность приложения . Под ответами редактируйте и сохраните ваши изменения.

Дополнительная информация об устройстве

Приложения и SDK могут выбрать дополнительные метки устройства в вердикте целостности устройства. После того, как вы выберете дополнительные этикетки, ответ на целостность будет включать несколько меток для одного и того же устройства, если каждый из критериев метки будет соблюден. Вы можете подготовить свой бэкэнд -сервер, чтобы вести себя по -разному в зависимости от диапазона возможных ответов. Например, устройство, которое возвращает три метки ( MEETS_STRONG_INTEGRITY , MEETS_DEVICE_INTEGRITY и MEETS_BASIC_INTEGRITY ) может доверять больше, чем устройство, которое возвращает только одну метку ( MEETS_BASIC_INTEGRITY ).

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

Поле ответа Этикетка Описание
Целостность устройства MEETS_BASIC_INTEGRITY Приложение работает на устройстве, которое проходит базовые проверки целостности системы. Устройство может не соответствовать требованиям совместимости Android и не может быть одобрено для запуска служб Google Play. Например, устройство может запустить непризнанную версию Android, может иметь разблокированный загрузчик или не был сертифицирован производителем.
MEETS_STRONG_INTEGRITY Приложение работает на устройстве Android, работающем на Google Play Services, и имеет сильную гарантию целостности системы, такой как подтверждение целостности загрузки. Устройство проходит проверку целостности системы и соответствует требованиям совместимости Android.
Недавняя активность устройства Стандартные запросы на токен целостности API на этом устройстве за последний час на приложение Классические запросы на токен целостности API на этом устройстве за последний час на приложение
LEVEL_1 (самый низкий) 10 или меньше 5 или меньше
LEVEL_2 От 11 до 25 От 6 до 10
LEVEL_3 Между 26 и 50 От 11 до 15
LEVEL_4 (самый высокий) Более 50 Более 15
UNEVALUATED Недавняя активность устройства не была оценена. Это может произойти, потому что:
  • Устройство недостаточно заслуживает доверия.
  • Версия вашего приложения, установленного на устройстве, неизвестна для Google Play.
  • Были технические проблемы на устройстве.

Дополнительные детали среды

Приложения могут выбрать дополнительные приговоры об окружающей среде. Риск доступа к приложениям позволяет узнать, запускаются ли другие приложения, которые могут захватить экран, отображать наложения или управлять устройством. Вердикт Play Protect позволяет узнать, включена ли Play Protect на устройстве и нашел ли он известный вредоносные программы.

После того, как вы выберете эти вердикты, ваш ответ API будет включать в себя поле с подробностями среды с вердиктом:

Поле ответа Ценить Описание
Приложение приложения доступа к приложению вердикт KNOWN_INSTALLED Приложения устанавливаются Google Play или предварительно загружены на системный раздел производителем устройств.
KNOWN_CAPTURING Запускаются приложения, установленные Google Play или предварительно загруженным на устройстве, которые можно использовать для чтения или захвата входов и выходов запрашивающего приложения, таких как приложения для записи экрана.
KNOWN_CONTROLLING Запускаются приложения, установленные Google Play или предварительно загруженным на устройстве, которые можно использовать для управления устройством и входами и выходами запрашивающего приложения, таких как приложения с дистанционным управлением.
KNOWN_OVERLAYS Приложения, установленные Google Play или предварительно загруженные на устройстве, используются, которые могут отображать наложения в приложении запрашивающих приложений.
UNKNOWN_INSTALLED Установлены другие приложения, которые не были установлены Google Play или предварительно загружены в системный раздел производителем устройства.
UNKNOWN_CAPTURING Другие приложения работают (не установлены Play или предварительно загружены на устройство), которые можно использовать для чтения или захвата входов и выходов запрашивающего приложения, таких как приложения для записи экрана.
UNKNOWN_CONTROLLING Другие приложения выполняются (не установлены Play или предварительно загружены на устройство), которые можно использовать для управления устройством и входами и выходами запрашивающего приложения, таких как приложения с дистанционным управлением.
UNKNOWN_OVERLAYS Другие приложения работают (не установлены Play или предварительно загружены на устройство), которые могут отображать наложения в запрашивающем приложении.
Пусто (пустое значение) Риск доступа к приложениям не оценивается, если было пропущено необходимое требование. В этом случае поле appAccessRiskVerdict пусто. Это может произойти по нескольким причинам, включая следующие:
  • Устройство недостаточно заслуживает доверия.
  • Форм -фактор устройства не является телефоном, планшетом или складываемым.
  • Устройство не выполняет Android 6 (API -уровень 23) или выше.
  • Версия вашего приложения, установленного на устройстве, неизвестна для Google Play.
  • Версия Google Play Store на устройстве устарела.
  • Только игры : Учетная запись пользователя не имеет игровой лицензии для игры.
  • Стандартный запрос был использован с параметром verdictOptOut .
  • Стандартный запрос был использован с версией библиотеки API Play Api, которая еще не поддерживает риск доступа к приложениям для стандартных запросов.
Играть в защиту вердикт NO_ISSUES Play Protect включается и не нашел проблем с приложением на устройстве.
NO_DATA Play Protect включается, но сканирование еще не было выполнено. Устройство или приложение Play Store, возможно, были недавно сброшены.
POSSIBLE_RISK Play Protect выключен.
MEDIUM_RISK Play Protect включен и обнаружил потенциально вредные приложения, установленные на устройстве.
HIGH_RISK Play Protect включен и обнаружил опасные приложения, установленные на устройстве.
UNEVALUATED Вердикт Play Protect не был оценен. Было пропущено необходимое требование, например, устройство недостаточно заслуживает доверия.

Настройка классических настроек запроса (необязательно)

Пропустите этот раздел, если вы планируете сделать стандартные запросы API .

Когда вы делаете классические запросы, по умолчанию серверы Google Play управляют шифрованием ответа, которое ваше приложение использует при взаимодействии с API Play Integrity API. Несмотря на то, что мы рекомендуем использовать эту опцию по умолчанию, вы также можете выбрать управление и загрузку ключей шифрования ответа, следуя приведенным ниже инструкциям.

Позвольте Google управлять вашим шифрованием ответа (по умолчанию и рекомендуется)

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

Управление и скачать мои клавиши шифрования ответа

Если вы хотите расшифровывать вердикт целостности локально в своей собственной среде безопасного сервера, вы можете управлять и загружать свои клавиши шифрования ответа. Чтобы управлять и загрузить ключи шифрования ответа, вы должны использовать Play Console, и ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Следуйте приведенным ниже инструкциям, чтобы переключиться с Google, управляемых на клавиши шифрования ответа самоуправленного.

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

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

Переключить между Google-управляемыми и самоуправляемыми ключами шифрования ответа

Если Google в настоящее время управляет вашим шифрованием ответа, и вы хотите переключиться на управление и загрузить свои клавиши шифрования ответа, выполните следующие действия:

  1. Войдите в игровой консоли .
  2. Выберите приложение, которое использует API Play Integry API.
  3. В разделе «Выпуск левого меню» перейдите к целостности приложения .
  4. Рядом, чтобы воспроизвести API целостности , нажмите «Настройки» .
  5. В разделе «Классические запросы страницы», рядом с шифрованием ответа , нажмите «Редактировать» .
  6. В появлении окна нажмите «Управление» и «Загрузите мои клавиши шифрования ответа» .
  7. Следуйте инструкциям, чтобы загрузить открытый ключ.
  8. После того, как окно показывает, что загрузка была успешной, нажмите «Сохранить» , и ваши зашифрованные клавиши загружают автоматически.
  9. Измените логику сервера так, чтобы вы расшифровали и проверяли токены целостности локально, в собственной среде безопасного сервера, используя свои клавиши шифрования ответа.
  10. (Необязательно) Когда вы самостоятельно управляете своими ключами шифрования ответа, ваше приложение все еще может вернуться на сервер Google Play, чтобы расшифровать и проверить ответ.

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

  1. Измените логику сервера так, чтобы вы исключительно расшифровали и проверяли на серверах Google.
  2. Войдите в игровой консоли .
  3. Выберите приложение, которое использует API Play Integry API.
  4. В разделе «Выпуск левого меню» перейдите к целостности приложения .
  5. Рядом, чтобы воспроизвести API целостности , нажмите «Настройки» .
  6. В разделе «Классические запросы страницы», рядом с шифрованием ответа , нажмите «Редактировать» .
  7. В появлении окна нажмите Google управлять моим шифрованием ответа (рекомендуется) .
  8. Нажмите «Сохранить изменения» .
,

На этой странице объясняется, как настроить ваше приложение или игру, чтобы использовать API Play Integrity API. Вам необходимо включить ответы из API, а затем вам нужно интегрировать API в ваше приложение и сервер вашего приложения. Дополнительные параметры конфигурации, функции тестирования и отчеты становятся доступными после того, как вы связываете облачный проект Google, который вы используете для API Play Integrity API в консоли Google Play.

Включить воспроизведение ответов API целостности

Каждое приложение или SDK, вызывая API Play Integrity API, необходимо использовать облачный проект Google для мониторинга использования API. Приложения в Google Play могут связать облачный проект в консоли Google Play, чтобы включить ответы API Play Integrity. Если вы хотите создать новый облачный проект, или ваше приложение распределяется исключительно за пределами Google Play, вы можете включить воспроизведение ответов API -API из вашей консоли Cloud Cloud Google.

Настройка в Google Play Console (рекомендуется)

Включив ответы API API Play Integrity в консоли Google Play , вы получите доступ к дополнительным параметрам конфигурации, функциям тестирования и отчетам API. Эта опция доступна только для приложений, распространяемых в Google Play. Перейдите к выпуску > целостность приложения . В Play Api API выберите Ссыл облачный проект . Выберите облачный проект, который вы хотите ссылаться на свое приложение, и это позволит воспроизводить API -ответы API воспроизведения. Теперь вы можете интегрировать API Play Integrity API в свое приложение.

Настройка в Cloud Console Google

В вашей облачной консоли Google создайте новый облачный проект или выберите существующий облачный проект, который вы хотите использовать с API Play Integrity API. Перейдите к API и услугам . Выберите Включить API и услуги . Поиск API Play Integrity API , а затем включите его. Теперь вы можете интегрировать API Play Integrity API в свое приложение.

Настройка инструкций для поставщиков SDK

Поставщики SDK должны использовать свой собственный Google Cloud Project, чтобы вызвать API Play Integrity API, так что использование API приписывается SDK, а не отдельным приложениям с использованием SDK. Это означает, что приложения, которые используют ваш SDK, не должны индивидуально настраивать API Play Integrity. Ваши запросы на воспроизведение API целостности автоматически учитываются в отношении использования API вашего SDK, а не к приложению.

Разработчики SDK имеют два варианта настройки API Play Integrity, консоли Google Play SDK или Cloud Console Google.

Включив в консоль Google Play SDK, вы получаете доступ к дополнительным параметрам конфигурации. Перейдите к целостности SDK и нажмите «Настройки» . В разделе «Конфигурация проекта» выберите ссылку облачный проект . Выберите облачный проект, который вы хотите ссылаться на свой SDK, и это позволит воспользоваться ответами на API Igle Play. Теперь вы можете интегрировать API Play Integrity API в свой SDK. Обратите внимание, что доступ к консоли Google Play SDK подлежит критериям приемлемости.

Используйте Google Cloud Console

Вы можете включить воспроизведение ответов API -API из вашей консоли Google Cloud. В вашей облачной консоли Google создайте новый облачный проект или выберите существующий облачный проект, который вы хотите использовать с API Play Integrity API. Перейдите к API и услугам . Выберите Включить API и услуги . Поиск API Play Integrity API , а затем включите его. Теперь вы можете интегрировать API Play Integrity API в свой SDK.

Увеличьте запросы API API Daily Play в SDK

Поставщики SDK, которые хотят увеличить свои максимальные ежедневные запросы, должны заполнить форму запроса квот . В разделе «Открытые комментарии» укажите, что вы делаете запрос SDK и включите свои координаты Maven ( groupId:artifactId ) или URL в ваш SDK.

Увеличьте ваши запросы API -API ежедневной игры.

Ваше приложение будет подлежать максимум 10 000 запросов на приложение в день. Вы можете попросить увеличить этот ежедневный максимум, если ваше приложение необходимо для обработки увеличенного количества пользователей, следуя приведенным ниже инструкциям.

Увеличьте свое ежедневное максимальное количество запросов

Чтобы иметь право на увеличение вашего ежедневного максимального количества запросов, ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распределения. Даже с увеличением ежедневного максимума, вы должны продолжать ограничивать классические запросы на одного пользователя редкими, высокоценными действиями по сохранению пользовательских данных и батареи.

Чтобы запросить увеличение вашего ежедневного максимального количества запросов, сделайте следующее:

  1. Свяжите Google Cloud Project, который вы используете для API Play Integrity API в консоли Play.
  2. Убедитесь, что вы правильно реализуете логику API, включая рекомендуемую стратегию повторения.
  3. Запросите увеличение квоты, используя эту форму .

Это может занять до недели, чтобы увеличить квоту API API Itgrity Play, поэтому мы настоятельно рекомендуем мониторировать использование API -API -API в вашей консоли Google Play или в вашей облачной консоли Google, где вы также можете настроить оповещения о квотах , чтобы избежать перерывов на вашу услуга.

Классическая квота запроса будет автоматически применяться как к клиентскому вызову, чтобы сгенерировать токены целостности, так и к вызову сервера для расшифровки и проверки токенов целостности. Стандартное увеличение квоты запроса применяется к вызову сервера для расшифровки и проверки токенов целостности.

Интегрируйте API Play Integrity API в ваше приложение

Чтобы интегрировать API -API Itgrobity Play в ваше приложение или SDK, сделайте одно из следующих действий в зависимости от вашей среды разработки:

Kotlin или Java

Последняя библиотека Android для API Play Integrity API доступна в репозитории Google Maven . Добавьте следующую зависимость в файл вашего приложения build.gradle :

implementation 'com.google.android.play:integrity:1.4.0'

Единство

Установите плагин Google Play Integrity для Unity 1.3.0 или выше. Для получения инструкций см. Как установить пакеты Google для Unity .

  • Все версии 2019.x, 2020.x и более новые поддерживаются.
  • Если вы используете Unity 2018.x, поддерживают версию 2018.4 или новую.
  • Unity 2017.x и старше не поддерживаются.

Родной

Установите Play Core Native SDK 1.13.0 или выше. Для инструкций см. Руководство по настройке среды развития Play Corne.

Настройка ответов API (необязательно)

Ответ API включает в себя вердикты по умолчанию, возвращаемые в каждом запросе. Если вы настроите интеграцию API API Play Integrity в игровой консоли, вы можете настроить свой ответ API.

Ответы по умолчанию

Следующие вердикты целостности возвращаются в ответ API Play API по умолчанию:

Поле ответа Ценить Описание
Целостность устройства MEETS_DEVICE_INTEGRITY Приложение работает на устройстве Android, работающем на Google Play Services. Устройство проходит проверку целостности системы и соответствует требованиям совместимости Android.
Пусто (пустое значение) Приложение работает на устройстве, которое имеет признаки атаки (например, подключение API) или компромисс системы (например, укоренено), или приложение не работает на физическом устройстве (например, эмулятор, который не проходит целостность Google Play. проверяет).
Воспроизвести подробности учетной записи LICENSED У пользователя есть право приложения. Другими словами, пользователь установил или купил ваше приложение в Google Play. Пользователь сохраняет право приложения после удаления приложения, поэтому учетная запись пользователя по -прежнему будет иметь лицензию, если пользователь впоследствии получит то же приложение по -другому.
UNLICENSED У пользователя нет права приложения. Это происходит, когда, например, пользователь нагружает ваше приложение или не получает его от Google Play.
UNEVALUATED Детали лицензирования не были оценены, потому что требование было пропущено. Это может произойти по нескольким причинам, включая следующие:
  • Устройство недостаточно заслуживает доверия.
  • Пользователь не вписался в Google Play.
  • Версия вашего приложения, установленного на устройстве, неизвестна для Google Play.
Целостность приложения PLAY_RECOGNIZED Приложение и сертификат соответствуют версиям, распространяемым Google Play.
UNRECOGNIZED_VERSION Сертификат или имя пакета не совпадают с записями Google Play.
UNEVALUATED Целостность приложения не была оценена. Было пропущено необходимое требование, например, устройство недостаточно заслуживает доверия.

Условные ответы

Если вы распространяете Google Play Games для ПК , вы будете автоматически выбрать, чтобы получить дополнительную метку в вердикте целостности устройства:

Поле ответа Этикетка Описание
Целостность устройства MEETS_VIRTUAL_INTEGRITY Приложение работает на эмуляторе Android, основанном на Google Play Services. Эмулятор проходит проверку целостности системы и соответствует основным требованиям совместимости Android.

Optional responses

If you set up your Play Integrity API integration in the Play Console or the Play SDK Console, you can opt in to receive information in your API response.

To make changes to your API responses, visit the Play Console and navigate to Release > App integrity . Under Responses , edit and save your changes.

Optional device information

Apps and SDKs can opt in to additional device labels in the device integrity verdict. After you opt in to receive additional labels, the integrity response will include multiple labels for the same device if each of the label criteria are met. You can prepare your backend server to behave differently depending on the range of possible responses. For example, a device that returns three labels ( MEETS_STRONG_INTEGRITY , MEETS_DEVICE_INTEGRITY , and MEETS_BASIC_INTEGRITY ) can be trusted more than a device that returns only one label ( MEETS_BASIC_INTEGRITY ).

You can also opt in to recent device activity. Recent device activity returns a level ranging from LEVEL_1 (low number of requests) to LEVEL_4 (high number of requests). For example, a device that returns a significantly higher activity level than is typical for your app might be attempting to generate a large number of integrity tokens for distribution to untrusted devices.

Response field Этикетка Описание
Device integrity MEETS_BASIC_INTEGRITY The app is running on a device that passes basic system integrity checks. The device may not meet Android compatibility requirements and may not be approved to run Google Play services. For example, the device may be running an unrecognized version of Android, may have an unlocked bootloader, or may not have been certified by the manufacturer.
MEETS_STRONG_INTEGRITY The app is running on an Android device powered by Google Play services and has a strong guarantee of system integrity such as a hardware-backed proof of boot integrity. The device passes system integrity checks and meets Android compatibility requirements.
Recent device activity Standard API integrity token requests on this device in the last hour per app Classic API integrity token requests on this device in the last hour per app
LEVEL_1 (lowest) 10 or fewer 5 or fewer
LEVEL_2 Between 11 and 25 Between 6 and 10
LEVEL_3 Between 26 and 50 Between 11 and 15
LEVEL_4 (highest) More than 50 Более 15
UNEVALUATED Recent device activity was not evaluated. This could happen because:
  • The device is not trustworthy enough.
  • The version of your app installed on the device is unknown to Google Play.
  • There were technical issues on the device.

Optional environment details

Apps can opt in to receive additional verdicts about the environment. App access risk lets you know whether other apps are running that could capture the screen, display overlays, or control the device. The Play Protect verdict lets you know whether Play Protect is enabled on the device and whether it has found known malware.

After you opt in to receive these verdicts, your API response will include the environment details field with the verdict:

Response field Ценить Описание
App access risk verdict KNOWN_INSTALLED Apps are installed by Google Play or preloaded on the system partition by the device manufacturer.
KNOWN_CAPTURING Apps installed by Google Play or preloaded on the device are running that could be used to read or capture inputs and outputs of the requesting app, such as screen recording apps.
KNOWN_CONTROLLING Apps installed by Google Play or preloaded on the device are running that could be used to control the device and inputs and outputs of the requesting app, such as remote controlling apps.
KNOWN_OVERLAYS Apps installed by Google Play or preloaded on the device are running that might be displaying overlays on the requesting app.
UNKNOWN_INSTALLED Other apps are installed, which were not installed by Google Play or preloaded on the system partition by the device manufacturer.
UNKNOWN_CAPTURING Other apps are running (not installed by Play or preloaded on the device) that could be used to read or capture inputs and outputs of the requesting app, such as screen recording apps.
UNKNOWN_CONTROLLING Other apps are running (not installed by Play or preloaded on the device) that could be used to control the device and inputs and outputs of the requesting app, such as remote controlling apps.
UNKNOWN_OVERLAYS Other apps are running (not installed by Play or preloaded on the device) that might be displaying overlays on the requesting app.
EMPTY (a blank value) App access risk is not evaluated if a necessary requirement was missed. In this case the appAccessRiskVerdict field is empty. This could happen for several reasons, including the following:
  • The device is not trustworthy enough.
  • The device form factor is not a phone, tablet, or foldable.
  • The device is not running Android 6 (API level 23) or higher.
  • The version of your app installed on the device is unknown to Google Play.
  • The version of the Google Play Store on the device is outdated.
  • Games only : The user account does not have a Play license for the game.
  • A standard request was used with the verdictOptOut parameter.
  • A standard request was used with a Play Integrity API library version that doesn't yet support app access risk for standard requests.
Play Protect verdict NO_ISSUES Play Protect is turned on and did not find any app issues on the device.
NO_DATA Play Protect is turned on but no scan has been performed yet. The device or the Play Store app may have been recently reset.
POSSIBLE_RISK Play Protect is turned off.
MEDIUM_RISK Play Protect is turned on and has found potentially harmful apps installed on the device.
HIGH_RISK Play Protect is turned on and has found dangerous apps installed on the device.
UNEVALUATED The Play Protect verdict was not evaluated. A necessary requirement was missed, such as the device not being trustworthy enough.

Configure classic request settings (optional)

Skip this section if you only plan to make standard API requests .

When you make classic requests, by default, Google Play's servers manage the response encryption that your app uses when you interact with the Play Integrity API. While we recommend that you use this default option, you can also choose to manage and download your response encryption keys by following the instructions below.

Let Google manage your response encryption (default and recommended)

To protect your app's security, it's recommended that you allow Google to generate and manage your response encryption keys. Your backend server will call Google Play's server to decrypt responses.

Manage and download my response encryption keys

If you want to decrypt the integrity verdict locally within your own secure server environment, you can manage and download your response encryption keys. To manage and download your response encryption keys, you must use the Play Console, and your app must be available on Google Play in addition to any other distribution channels. Follow the instructions below to switch from Google-managed to self-managed response encryption keys.

Remember not to decrypt or verify the received token from within your client app, and never expose any decryption keys to the client app.

Before you change your response encryption management strategy in the Play Console, make sure your server is correctly configured to decrypt and verify integrity tokens on Google Play's servers to avoid disruption.

Switch between Google-managed and self-managed response encryption keys

If Google currently manages your response encryption, and you want to switch to manage and download your response encryption keys yourself, follow these steps:

  1. Log into the Play Console .
  2. Select an app that uses the Play Integrity API.
  3. In the Release section of the left menu, go to App integrity .
  4. Next to Play Integrity API , click Settings .
  5. In the Classic requests section of the page, next to Response encryption , click Edit .
  6. In the window that appears, click Manage and download my response encryption keys .
  7. Follow the instructions to upload a public key.
  8. After the window shows that the upload was successful, click Save and your encrypted keys download automatically.
  9. Change your server logic so that you decrypt and verify integrity tokens locally, in your own secure server environment, using your response encryption keys.
  10. (Optional) When you self-manage your response encryption keys, your app can still fall back to Google Play's server to decrypt and verify the response.

If you self-manage your response encryption keys, and you want to switch to have Google manage your response encryption, follow these steps:

  1. Change your server logic so that you're solely decrypting and verifying on Google's servers.
  2. Log into the Play Console .
  3. Select an app that uses the Play Integrity API.
  4. In the Release section of the left menu, go to App integrity .
  5. Next to Play Integrity API , click Settings .
  6. In the Classic requests section of the page, next to Response encryption , click Edit .
  7. In the window that appears, click Let Google manage my response encryption (recommended) .
  8. Click Save changes .