Принцип роботи
Щоб запобігати неавторизованому розповсюдженню додатка, у його код додається перевірка джерела встановлення. Якщо додаток не проходить перевірку джерела встановлення, користувач бачить запит завантажити додаток із Google Play. Ця перевірка має виконувати наведені нижче функції.
- Запобігати піратству щодо платних додатків: сервіс пропонує користувачам, які отримали захищену версію додатка з неофіційного джерела, придбати його в Google Play.
- Збільшувати кількість користувачів, які отримують офіційні оновлення: сервіс пропонує користувачам, які отримали незмінену версію вашого додатка з невідомого джерела, завантажити його офіційну версію з Google Play, щоб використовувати останні оновлення.
Налаштування перевірки джерела встановлення
Нижче описано, як почати використовувати перевірку джерела встановлення. Натисніть назву розділу, щоб розгорнути його.
Перевірка джерела встановлення додає в код додатка перевірку ліцензії Google Play, яка має визначити, чи додаток в обліковому записі користувача встановлено з авторизованих джерел (з наданням ліцензії). Якщо додаток не пройде перевірку, користувач отримає запит завантажити його офіційну версію зі спеціальної сторінки.
Якщо ви ввімкнете автоматичний захист для певного додатка, Google Play автоматично захищатиме кожен створений вами випуск, готовий до розповсюдження на пристроях. Для цього Google Play створюватиме змінені файли APK і підписуватиме їх від вашого імені. Тому вам потрібно:
- використовувати функцію підписування додатків у Google Play;
- публікувати додатки у форматі Android App Bundle;
- націлювати додатки принаймні на 23-й рівень API.
Візьміть до уваги наведені нижче обмеження.
- Автоматичний захист підтримується лише на Android 6.0 Marshmallow (API 23-го рівня) і новіших версій. Android M випущено у 2015 році. Станом на 2023 рік націлювання на midSDK 23-го або вищого рівня охоплюватиме понад 97% активних пристроїв Android.
- Автоматичний захист підтримує такі інтерфейси ABI: x86, x86_64, armeabi-v7a і arm64-v8a. Щоб змінити цільові ABI додатка, оновіть налаштування Gradle. Інші інтерфейси ABI, які не використовуються на активних пристроях Android, можна вилучити з націлювання (це не вплине на доступність додатка).
- Автоматичний захист працює без підключення до Інтернету. Проте перевірка "Вимагати встановлення з Google Play" періодично запитує з’єднання з мережею, якщо додаток Play Маркет на пристрої довго не підключався до Інтернету.
- Якщо у вашому додатку вже використовується сервіс ліцензування Google Play, зніміть прапорець "Вимагати встановлення з Google Play".
- Коли ви завантажуєте додаток для внутрішнього доступу, захист не застосовується. Діліться посиланнями для внутрішнього доступу до додатків лише з надійними членами команди й не надавайте зовнішній доступ до незахищених версій.
- Функція автоматичного захисту несумісна з механізмом прозорості коду для наборів App Bundle, оскільки захист цілісності передбачає змінення коду. Набори App Bundle, завантажені з механізмом прозорості коду, відхилятимуться, якщо ввімкнено автоматичний захист.
- Додатки з миттєвим запуском не захищаються. Захищати можна лише набори App Bundle без миттєвого запуску. Ви можете додати і захищену версію набору App Bundle, і незахищену з миттєвим запуском.
Створіть випуск, як описано в розділі Крок 1 статті "Як підготувати й опублікувати випуск".
Ви можете ввімкнути захист під час створення випуску (як описано в розділі Крок 2 статті Як підготувати й опублікувати випуск) або на сторінці Цілісність додатка (Тестування й випуск > Цілісність додатка). Вона містить сервіси цілісності й підписування, які допоможуть забезпечити очікувану роботу ваших додатків і ігор.
Під час підготовки випуску ви побачите кнопку Увімкнути захист цілісності даних або Керування захистом цілісності даних. Щоб увімкнути захист цілісності даних, натисніть Так, увімкнути в розділі "Автоматичний захист". Google Play підписуватиме ваші випуски й додаватиме захист цілісності даних, щоб мінімізувати втручання й неавторизоване розповсюдження. Це означатиме, що автоматичний захист увімкнено.
Завершіть підготовку випуску й збережіть зміни.
За допомогою версій для тестування переконайтеся, що захист додатка не має неочікуваного впливу на його продуктивність або взаємодію з користувачем.
Радимо звернути увагу на наведене нижче.
- Протестуйте запуск додатка й переконайтеся, що немає збоїв і сповільнення роботи.
- Перевірте ті моменти в роботі додатка, коли нативний код (C/C++) робить зворотний виклик Java (у вашому власному коді або сторонніх бібліотеках). Наприклад, це стосується оголошень, реєстрації в журналі, інтеграції із соціальними мережами, автентифікації або таких функцій Android, як обробка дозволів.
Якщо під час перевірки виникнуть проблеми, ви зможете повернутися до попередньої версії автоматичного захисту, яку ви використовували в попередньому випуску, або вимкнути автоматичний захист. Радимо не випускати незахищений додаток у версіях для відкритого тестування або в робочій версії.
Щоб вимкнути захист цілісності даних для окремого випуску:
- Під час підготовки випуску натисніть Керування захистом цілісності даних.
- У розділі "Автоматичний захист" виберіть Попередня версія захисту або Вимкнути захист для цього випуску.
- Збережіть зміни. Зміни буде застосовано до цього випуску. Наступного разу, коли ви надішлете випуск, він знову отримає найновішу й найнадійнішу версію захисту.
Коли будете готові, можете опублікувати робочу версію в Play Console. Так ви надасте доступ до свого захищеного додатка всім користувачам Google Play у вибраних країнах.
Налаштування сторінки додатка, на яку користувачі переходитимуть, якщо він не пройшов перевірку джерела встановлення
Якщо автоматичний захист увімкнено, користувачі, які отримали ваш додаток із неофіційного джерела, отримуватимуть запити завантажити його з Google Play. Натиснувши такий запит, вони перейдуть на сторінку, де за допомогою кнопки Установити (або Купити чи Оновити) зможуть завантажити ваш додаток із Google Play.
Ви можете налаштувати об’єкти сторінки додатка для відвідувачів, які натискатимуть вікно захисту цілісності, зокрема назву, значок, описи й графічні об’єкти додатка. Щоб налаштувати сторінку, на яку переходитимуть користувачі з вікна захисту цілісності:
- Відкрийте Play Console і перейдіть на сторінку Цілісність додатка (Тестування й випуск > Цілісність додатка).
- Прокрутіть до розділу "Play Integrity API".
- Натисніть Налаштування.
- Прокрутіть до розділу "Спеціальні сторінки додатка".
- Виберіть Створити сторінку.
- Виконайте вказівки на сторінці Створення спеціальної сторінки додатка й натисніть Зберегти.
Ви також можете створити спеціальні сторінки додатка для вікон захисту цілісності безпосередньо на сторінці Спеціальні сторінки додатка. Для цього:
- Відкрийте Play Console і перейдіть на сторінку Спеціальні сторінки додатка (Збільшення кількості користувачів > Спеціальні сторінки додатка).
- Натисніть Створити сторінку додатка й виберіть, що потрібно зробити, – створити нову сторінку чи скопіювати наявну, а потім натисніть Далі.
- У розділі "Інформація про сторінку додатка" прокрутіть униз до пункту Цільова аудиторія.
- Виберіть За URL-адресою і введіть у текстове поле "playintegrity".
- Заповніть інші дані й натисніть Зберегти.
Підказка. Параметр URL-адреси playintegrity – це спеціальне ключове слово, зарезервоване для посилань на контент, пов’язаних із захистом цілісності, тому його потрібно вводити точно й без змін під час налаштування спеціальної сторінки додатка.
Практичні поради
Не випускайте незахищені версії додатка
Якщо ви опублікуєте незахищені версії додатка для відкритого тестування або через інші канали за межами Google Play, захист більше не працюватиме. Щоб захист цілісності даних додатка працював, усі його версії для відкритого тестування й робоча версія мають бути захищені.
Будьте обережні, поєднуючи різні засоби захисту від втручання
Автоматичний захист може бути несумісний з іншими динамічними засобами захисту від втручання. Їх одночасне використання може спричинити проблеми. Якщо ви вже впровадили ліцензування 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, якщо ви вимагаєте встановлення лише через Google Play.
Якщо ви виявили зламану версію додатка, повідомте нас про це.
Матеріали за темою
- Подивіться це відео про автоматичний захист
- Дізнайтеся про сервіси цілісності й підписування в Play Console
- Прочитайте про сервіси цілісності й підписування на сайті "Розробники Android"