API Google Play Integrity позволяет блокировать приложения, установленные из сторонних источников. Какие приложения ставят из сторонних источников? Правильно, полеченные добрыми робингудами. Раньше это было одним из преимуществ Android по сравнению с iOS. Теперь разработчики приложений для Android, которые хотят помешать загрузке своих приложений из сторонних источников, могут сделать это при помощи Play Integrity API. В итоге пользователю будет предложено загрузить приложение из Google Play Store, и обойти эту «рекомендацию» не получится.
Изначально Play Integrity (ранее SafetyNet Attestation) представлял собой API для Android, позволяющий приложениям выяснить, было ли устройство рутировано. Root-доступ позволяет получить полный контроль над устройством, и многим разработчикам приложений такое не нравится. Поэтому после получения соответствующего сигнала от API, некоторые типы приложений могут просто отказаться запускаться.
Как правило, в таких случаях отказываются работать банковские приложения, Google Wallet, некоторые игры, Snapchat, а также ряд мультимедийных приложений (например, Netflix). Ведь считается, что root-доступ может использоваться для читерства в играх или фишинга банковских данных.
Как заметили теперь в Android Authority, Google Play Integrity API также помогает разработчикам «проверить, что взаимодействие и запросы к серверу исходят от бинарников [их] подлинного приложения, запущенного на подлинном Android-устройстве». Так, API проверяет, не было ли приложение изменено, не работает ли оно в «недоверенной» среде, включена ли на устройстве функция Google Play Protect и так далее.
Как в случае с SafetyNet Attestation, разработчики могут обращаться к Play Integrity API в любой момент, в итоге получая так называемый «вердикт» о целостности, на основании которого решают, как поступить дальше. Так, выше уже упоминалось, что некоторые приложения вызывают Play Integrity API при запуске и полностью блокируют доступ в зависимости от полученного вердикта. В то же время другие приложения могут обращаться к API только тогда, когда пользователь собирается выполнить некое специфическое действие, и предупредят о том, что продолжать не следует.
В настоящее время доподлинно неизвестно, используют ли какие-то приложения эту функцию. Вероятно, она уже применяется в некоторых играх. В частности, судя по сообщениям пользователей, эту функциональность уже взяли на вооружение приложения Tesco и BeyBlade X, а также популярная игра Diablo Immortal. Скорее всего, со временем таких приложений станет гораздо больше.