image

Источник: androidauthority.com

Сразу скажу, что это не централизованное блокирование со стороны самой корпорации Google. Нет, компания просто разрешила самим разработчикам ПО закрывать возможность загрузки их приложений из сторонних источников. Включая и установку посредством APK-файлов. Вполне может быть, что некоторые разработчики коммерческих приложений, популярных среди пользователей, этой возможностью могут воспользоваться. Что случилось и к чему это может привести?


Что происходит


Разработчики Android-приложений теперь способны блокировать установку своего софта со сторонних источников. Т. е. создатель какой-то программы может разрешить ее установку лишь из Google Play. Запретить можно даже давно привычную многим установку из APK-файлов. А это может довольно сильно повлиять на баланс сил в экосистеме Android-приложений.

Пользователи OS Андроид за 16 лет существования операционной системы Android привыкли к тому, что практически любое приложение можно установить откуда угодно. Вернее, из любого места, где оно вообще есть, включая и загрузку APK-файла. Очень часто именно эту возможность приводят в качестве преимущества Android перед iOS. Администраторы каталога приложений под iOS могут в любое время заблокировать любое приложение — и ничего с этим не поделать. Простого способа установить приложение, которого нет в App Store, нет.

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

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

PlayIntegrityManager integrityManager = PlayIntegrityManagerFactory.create(context);
IntegrityTokenRequest integrityTokenRequest = IntegrityTokenRequest.builder()
    .setNonce(nonce) // Генерация уникального nonce для каждого запроса
    .build();

integrityManager.requestIntegrityToken(integrityTokenRequest)
    .addOnSuccessListener(new OnSuccessListener<IntegrityTokenResponse>() {
        @Override
        public void onSuccess(IntegrityTokenResponse integrityTokenResponse) {
            String integrityToken = integrityTokenResponse.token(); 
            // Отправка токена на сервер для валидации
        }
    })
    .addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(Exception e) {
            // Обработка ошибок
        }
    });

Основные задачи Play Integrity API по данным Google


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

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

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

Почему это изменение настолько важно


Дело в том, что пользователей Android гораздо больше, чем юзеров iOS. Доля рынка Android составляет 71,67% против 21,73% у iOS. Соответственно, изменения могут затронуть десятки миллионов пользователей. И, скорее всего, затронут.

Проблема появилась не так давно: дело в том, что корпорация Google представила новые инструменты на конференции Google I/O 2024 и всего через четыре месяца сделала их доступными для всех. Сделано это, вероятно, потому, что со стороны производителей игр и софта поступали запросы относительно мер против пиратства. Корпорация, вероятно, не хотела использовать такие централизованные методы блокирования приложений, как в iOS. Поэтому, поразмыслив, компания решила предоставить разработчикам автономный инструмент, который позволяет предотвращать загрузку пиратских копий ПО.

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

Здесь стоит вспомнить еще и о том, что у большинства крупных поставщиков Android-устройств есть собственный каталог приложений: GetApps у Xiaomi, AppGallery у Huawei, Galaxy Store у Samsung, а в РФ это RuStore, который сейчас актуален для многих пользователей. И если все эти сторонние каталоги перестанут работать, то крупные компании столкнутся с претензиями своих клиентов, ведь проданные телефоны ценны, прежде всего, благодаря возможности устанавливать любые приложения.

Эксперты считают, что со временем проблема будет усугубляться, поскольку количество разработчиков, применяющих Play Integrity API, увеличится. По мнению представителей портала Android Authority, некоторые разработчики уже внедрили новые инструменты. Речь, например, про Tesco и BeyBlade X, а также игру Diablo Immortal.

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

А как вы считаете, что изменится из-за Play Integrity API в ближайшем будущем? Делитесь мнением в комментариях.

Комментарии (5)


  1. dsoastro
    15.09.2024 07:30
    +6

    Я понял, что это контролируется в самом коде приложения. Значит в принципе это можно оттуда вырезать Не совсем ясно в чем принципиальное отличие от LVL, (проверка лицензии), которая очень давно реализована. Там то же можно было блокировать приложения, установленные не из маркета.


    1. petejones83
      15.09.2024 07:30

      Тут двухэтапная проверка. Сначала на самом устройстве можно проверить, и показать какой-то экран, что аппка установлена неправильно.

      Потом токен, который вернул integrity api, посылается на бекенд, и на бекенде можно отклонить запрос, если токен невалидный.


  1. Surrogate
    15.09.2024 07:30
    +1

    GetApps у Xiaomi, AppGallery у Huawei, Galaxy Store у Samsung, а в РФ это RuStore, который сейчас актуален для многих пользователей. И если все эти сторонние каталоги перестанут работать, то крупные компании столкнутся с претензиями своих клиентов, ведь проданные телефоны ценны, прежде всего, благодаря возможности устанавливать любые приложения.

    У дочери был для школы первый телефон Honor, там только AppGallery, покупал специально думал будет меньше игрушек под него. Хочет ребенок поставить популярную игру, забивает в поиске. Вылезает куча ссылок, часть относится к "проверенным источникам", часть к непроверенным. Можно скачать игру с "проверенного", и в итоге там совсем не то. В общем быстро забивалась вся память, пока поймёшь есть ли подобная игра на AppGallery.

    Если я правильно понимаю в RuStore, в основном те приложения которые были удалены из PlayMarket. Скорее всего их авторы не будут пытаться что-то блокировать через Play Integrity API.


    1. Larymar
      15.09.2024 07:30

      Было бы крайне тупо, чтоб разработчики выкладывали свои приложения в сторонние маркеты и сами же их и блокировали.

      Так что я плохо понимаю, почему все так переживают, что сторонние маркеты перестанут работать. С чегоб это


      1. Surrogate
        15.09.2024 07:30

        чтоб разработчики выкладывали свои приложения в сторонние маркеты и сами же их и блокировали.

        Я писал выше про AppGallery, там было много клонов не от разработчиков оригинальных приложений.

        Есть какая то статистика, насколько часто разработчики портируют свои приложения для AppGallery/ GetAps/ Galaxy Store?