Принцип работы
Проверка встраивается в код вашего приложения, чтобы защитить его от несанкционированного распространения. Если установщик не пройдет проверку, пользователю будет предложено скачать приложение из Google Play. Проверка установщика нужна, чтобы:
- Предотвращать пиратство платных приложений. Если пользователь скачает версию приложения с Play Защитой из неофициального источника, то увидит уведомление с предложением купить ваше приложение в Google Play.
- Увеличивать количество пользователей, получающих официальные обновления. Если оригинальная версия приложения установлена из неизвестного источника, пользователю будет предложено скачать официальное приложение, чтобы получать для него обновления.
Как настроить проверку установщика
Ниже описано, как добавить проверку установщика в приложение. Чтобы развернуть раздел, нажмите на него.
Функция добавляет проверку лицензии Google Play в код приложения. Это позволяет убедиться, что пользователь устанавливает приложение из официального источника. Если установщик не пройдет проверку, пользователю будет предложено скачать приложение на его специальной странице в Google Play.
Если включить автоматическую защиту для отдельного приложения, она по умолчанию будет работать и во всех его будущих выпусках. Для внедрения защиты Google Play потребуется автоматически создавать модифицированные APK-файлы, подписанные вашим ключом приложения. Для этого нужно:
- Использовать функцию подписания приложений в Google Play.
- Опубликовать приложение в формате набора Android App Bundle.
- Установить целевой уровень API не ниже 23.
Действуют следующие ограничения:
- Автоматическая защита поддерживается только на устройствах с ОС Android 6.0 (API уровня 23) и более поздними версиями. ОС Android 6.0 вышла в 2015 году. По данным на 2023 год, целевая версия 23 или выше для атрибута minSdkVersion охватывает более 97 % активных устройств Android.
- Автоматическая защита поддерживает следующие ABI: x86, x86_64, armeabi-v7a и arm64-v8a. Изменить целевые ABI для приложения можно в настройках Gradle. Если вы удалите другие ABI, которые не используются на активных устройствах Android, это не повлияет на доступность вашего приложения.
- Автоматическая защита работает в офлайн-режиме. Однако при включенном параметре "Требовать установку из Google Play" ей время от времени может быть необходимо подключение к интернету, если приложение Google Play на устройстве долго работало без него.
- Если в вашем приложении уже используется сервис лицензирования Google Play, отключите параметр "Требовать установку из Google Play".
- На приложения, которые вы загружаете на страницу внутреннего доступа в Play Console, защита не распространяется. Отправляйте ссылки для внутреннего доступа к приложениям только надежным участникам команды и не выкладывайте незащищенные версии в общий доступ.
- Автоматическая защита несовместима с механизмом прозрачности кода наборов App Bundle, поскольку предполагает изменение кода. Если она включена, наборы App Bundle, загружаемые с механизмом прозрачности кода, будут отклонены.
- Приложения с мгновенным запуском не поддерживают этот тип защиты. Она доступна только для наборов App Bundle без мгновенного запуска. Однако вы можете загрузить с одним и тем же типом версии два набора: защищенный – для установки, незащищенный – для запуска без установки.
Создайте выпуск, следуя инструкциям из шага 1 в статье о подготовке и внедрении выпуска.
Включить защиту можно во время создания выпуска (для этого следуйте инструкциям из шага 2 в статье Как подготовить и внедрить выпуск) или на странице Целостность приложения (Тестирование и выпуск > Целостность приложения), где собраны сервисы для подписания и обеспечения целостности, которые помогают защищать приложения и игры от нежелательных изменений.
При подготовке выпуска вы увидите кнопку Включить защиту целостности или Управление защитой целостности. Если вы нажмете Да в разделе "Автоматическая защита", то Google Play будет подписывать выпуски и добавлять защиту целостности, чтобы ограничить несанкционированное изменение и распространение. Это будет значить, что автоматическая защита включена.
Завершите подготовку выпуска и сохраните изменения.
Во время тестирований приложения используйте версии с защитой, чтобы убедиться, что она не влияет на удобство использования и производительность.
При этом обращайте особое внимание на следующие аспекты:
- Запуск приложения. Убедитесь, что приложение запускается быстро и без сбоев.
- Обратные вызовы из нативного кода (C или C++) к коду Java (в вашем собственном коде или сторонних библиотеках). Например, при взаимодействии с объявлениями, добавлении записей в журнал, аутентификации, интеграции с социальными сетями, а также во время работы некоторых связанных с Android функций, таких как обработка разрешений.
Если во время тестирования вы обнаружите проблемы, то можете отключить защиту целостности или вернуться к ее предыдущей версии, которую вы уже использовали в более раннем выпуске. Однако мы не рекомендуем поступать так в случае открытых тестирований и с рабочими версиями.
Чтобы отключить защиту целостности для отдельного выпуска, сделайте следующее:
- Во время подготовки выпуска нажмите Управление защитой целостности.
- В разделе "Автоматическая защита" выберите Предыдущая версия защиты или Отключить защиту для этого выпуска.
- Сохраните изменения. Они будут применены только к этому выпуску. Для следующего загруженного выпуска снова будет включена самая новая и надежная версия защиты.
Когда все будет готово, опубликуйте рабочую версию приложения через Play Console. Она будет защищена и доступна всем пользователям Google Play из выбранных стран.
Как настроить специальную страницу приложения в Google Play для пользователей с неофициальной версией
Проверка установщика – это функция автоматической защиты. Когда она включена, пользователям, установившим приложение из неофициальных источников, может быть предложено скачать его из Google Play. Согласившись, они перейдут на страницу приложения в Google Play, где смогут установить, купить или обновить его.
При желании настройте специальную страницу для тех, кто переходит к вашему приложению в Google Play из диалогового окна защиты целостности. Например, вы можете изменить название, описание, значок и графические объекты. Вот как это сделать:
- Откройте Play Console и перейдите на страницу Целостность приложения (Тестирование и выпуск > Целостность приложения).
- Прокрутите страницу вниз до раздела Play Integrity API.
- Нажмите Настройки.
- Прокрутите экран до раздела "Специальные страницы приложения в Google Play".
- Выберите Создать страницу приложения.
- Выполните инструкции на странице Создание специальной страницы приложения в Google Play и нажмите Сохранить.
Эту страницу можно также настроить в разделе Специальные страницы приложения в Google Play. Для этого сделайте следующее:
- В Play Console откройте Специальные страницы приложения в Google Play (Привлечение пользователей > Специальные страницы приложения в Google Play).
- Выберите Создать страницу приложения. Укажите, хотите вы создать новую страницу или скопировать существующую, и нажмите Далее.
- Прокрутите раздел "Информация о странице приложения" до пункта Целевая аудитория.
- Выберите По URL и введите "playintegrity" в текстовое поле.
- Укажите остальные данные и нажмите Сохранить.
Совет. Не меняйте параметр URL (playintegrity) и вводите его без ошибок. Это ключевое слово, зарезервированное для ссылок на контент, которые относятся к системе защиты целостности.
Рекомендации
Не выпускайте незащищенные версии приложений
Если опубликовать незащищенную версию в рамках открытого тестирования или за пределами Google Play, на нее не будет распространяться защита приложения. Чтобы этого не случилось, публикуйте только защищенные общедоступные версии.
Используйте дополнительные методы защиты от вмешательства осторожно
Поскольку автоматическая защита может быть несовместима с другими решениями, их одновременное использование, скорее всего, приведет к ошибкам. Если вы используете сервис лицензирования Google Play, отключите параметр "Требовать установку из Google Play". Если во время работы приложения проводятся другие проверки, перед открытым тестированием убедитесь, что защищенная версия работает корректно.
Тестируйте защищенное приложение
Google Play будет автоматически создавать защищенные сборки для рабочей и всех типов тестовых версий. Тестируйте эти версии так же тщательно, как обычно.
Защита не добавляется в сборки, которые вы напрямую загружаете на страницу внутреннего доступа. Это нужно для того, чтобы вы могли загружать туда отладочные и другие подобные сборки.
Когда пользователь переходит по ссылке для внутреннего доступа к приложению в App Bundle Explorer, открывается та версия сборки, которую вы загрузили в Google Play. Если вы загрузили для тестирования защищенную версию, то именно она будет доступна по ссылке. Чтобы посмотреть статус защиты, перейдите на вкладку Сведения в App Bundle Explorer.
Отслеживайте сбои
Неудачные попытки обойти автоматическую защиту целостности могут привести к увеличению количества сбоев. Это означает, что защита выполняет свою функцию. Если злоумышленники попытаются внести изменения в ваше приложение, проверка во время выполнения остановит его работу. Обычно это приводит к сбоям.
Сбои, которые не относятся к Google Play, не влияют на показатели стабильности Android Vitals. Если вы анализируете сбои с помощью других инструментов, например Crashlytics, и хотите отфильтровать результаты по источнику установки, то для Google Play используйте название пакета com.android.vending.
Если вас беспокоит увеличение числа сбоев, предоставьте нам подробную информацию о них. Наши специалисты рассмотрят обращение и свяжутся с вами, если выяснится, что причина связана с автоматической защитой целостности.
Сообщайте о взломанных версиях приложения
Взломанная версия – это версия приложения, работающая после того, как ее изменили, или установленная из стороннего источника (если ваше приложение требует установки из Google Play).
Если вы обнаружили взломанную версию своего приложения, сообщите нам.
Материалы по теме
- Посмотрите видео об автоматической защите.
- Узнайте больше о сервисах подписания и обеспечения целостности в Play Console.
- Прочитайте информацию о сервисах подписания и обеспечения целостности на сайте Android для разработчиков.