SDK
Google предлагает дизайн SDK Runtime для «Песочницы конфиденциальности Android»
В первом квартале 2022 года будут представлены первоначальные предложения по дизайну, а также приняты отзывы и итерации дизайна. Предварительные версии для разработчиков появятся позже в этом году, а бета-версия — в конце года.
В последнее время Apple и Google стремятся создать экосистему, более ориентированную на конфиденциальность пользователей. В случае с Apple это выразилось в создание системы, которая запрашивает разрешение пользователей на отслеживание данных, а у Google появилась инициатива Android Privacy Sandbox. Хотя во время анонса информации было мало, сейчас появилось больше подробностей о SDK Runtime (среде выполнения SDK), которая является частью решения Google для рекламы и конфиденциальности.
Android Privacy Sandbox состоит из двух основных компонентов — SDK Runtime и Privacy-Preserving API, которые будут распространяться как Модульные Системные Компоненты или Project Mainline. Google опубликовал документацию для разработчиков, касающуюся среды выполнения SDK и того, как она будет способствовать дальнейшему повышению конфиденциальности пользователей. Компания заявляет, что SDK Runtime позволит запускать сторонние SDK в выделенной среде выполнения в Android 13, обособленно от кода приложения.
В Android каждое приложение работает в песочнице со своими собственными разрешениями и доступом к системе в зависимости от разрешений. По словам Google, «если приложение A попытается сделать что-то злонамеренное, например прочитать данные приложения B или набрать номер телефона без разрешения, оно не сможет сделать это, потому что у него нет соответствующих пользовательских привилегий по умолчанию». Среда выполнения SDK дополнительно расширяет эту изолированную программную среду для выполнения сторонних SDK в выделенной среде выполнения, отдельно от какого-либо конкретного приложения.
Для чего существует среда выполнения SDK
Google хочет, чтобы SDK рекламодателей не собирали данные, к которым они не должны иметь доступ. Когда рекламный SDK работает внутри приложения, он также имеет доступ ко всему, что делает приложение, и разработчик приложения может не до конца осознавать, какой это на самом деле доступ. Если удалить этот код рекламодателя и запустить его в своей собственной среде выполнения, то он сможет получить доступ только к тем данным, которыми разработчик явно поделится с ним.
В результате Google заявляет, что среда выполнения SDK обеспечивает следующие более надежные меры безопасности и гарантии в отношении сбора и обмена данными пользователей:
- Измененная среда выполнения
- Четко определенные разрешения и права доступа к данным для SDK
Первая версия SDK Runtime ориентирована исключительно на SDK, связанные с рекламой, включая SDK, которые обеспечивают показ рекламы, измерение рекламы и мошенничества с ней.
Как работает среда выполнения SDK
В настоящее время без среды выполнения SDK процесс приложения вызывает SDK, и этот SDK выполняется в той же изолированной программной среде, что и остальной код приложения. Google хочет, чтобы разработчики вместо этого имели интерфейс, который работает в приоритетном процессе приложения, и этот интерфейс может затем подключаться и обмениваться определенными данными с используемым SDK.
До
После
Диаграмма «До» (первая) показывает, что код, вызывающий SDK, вместе с SDK, который получает вызовы из этого кода, находятся в процессе приложения. Это означает, что SDK может получить доступ ко всем данным, которые может получить приложение. Диаграмма «После» (вторая) показывает, что в активном процессе приложения код вызова SDK взаимодействует с интерфейсами SDK. Эти интерфейсы могут пересекать границу процесса для вызова в SDK Runtime самих пакетов. Это означает, что используемый SDK не может просто получить доступ к чему угодно, ему может быть предоставлена информация только из приложения, с которым он работает.
Новая доверенная модель распространения SDK
В настоящее время, когда вы загружаете приложение со сторонними SDK, они включаются разработчиком в приложение, которое загружается и распространяется в магазине Google Play. Вместо этого Google хочет, чтобы при установке на телефон приложения, использующего эти SDK, они загружались отдельно от самого приложения. Это означает, что разработчики SDK могут вносить некритические изменения (то есть не изменять API или их семантику) в свои SDK и распространять их на устройства без участия разработчиков приложений.
В свою очередь, некритические изменения SDK можно развертывать или откатывать без необходимости ждать, пока разработчики приложений пересоберут и опубликуют свои приложения с новыми SDK, или ждать, пока конечные пользователи обновят свои приложения. Критические изменения, которые изменяют API и их семантику, по-прежнему должны быть обновлены вместе с разработчиками приложений.
До
После
На диаграмме «До» показано, как сейчас приложения распространяются с помощью SDK. Они упакованы в приложение, и приложение отправляется в Google Play Store. На диаграмме «После» SDK больше не будут размещаться непосредственно в приложениях, вместо этого SDK будут публиковаться в Google Play Store. Затем Google Play Store будет сам обрабатывать распространение приложений вместе с любыми зависимостями на устройствах конечных пользователей.
Изменения в том, как создаются, запускаются и распространяются SDK и приложения.
Первоначальное предложение для SDK Runtime предлагает ряд изменений в пяти ключевых областях:
- Доступ
- Выполнение
- Коммуникации
- Разработка
- Распространение
Google хочет определить следующий набор разрешений для среды выполнения SDK:
- INTERNET: Доступ к Интернету для связи с веб-службой.
- ACCESS_NETWORK_STATE: Доступ к информации о сетях.
- Разрешения на доступ к privacy-preserving APIs, которые предоставляют основные рекламные возможности без необходимости доступа к идентификаторам приложений. Имена разрешений еще не определены, но эти API будут ограничены доступом приложения к этим разрешениям.
- AD_ID: Возможность запрашивать рекламный идентификатор. Это также будет ограничено доступом приложения к этому разрешению.
- BIND_GET_INSTALL_REFERRER_SERVICE: возможность использовать Google Play Install Referrer API для определения источника установки приложения.
Компания также хочет ограничить доступ SDK к памяти работающего приложения, а также запретить приложению доступ к собственным данным SDK. Приложение не сможет получить прямой доступ к своему хранилищу SDK, и наоборот, внешнее хранилище не будет открыто для SDK, и будет как хранилище, доступное для всех SDK, так и хранилище, которое является частным для данного SDK.
Что касается того, как будут работать SDK, они будут работать с немного более низким приоритетом, чем само приложение. В случае, если они не завершаются одновременно или по другой причине, вероятно будут соответствующие методы обратного вызова жизненного цикла для разработчиков приложений, чтобы они могли обработать это исключение и повторно инициализировать среду выполнения SDK. SDK Runtime не сможет использовать API-интерфейсы уведомлений для отправки уведомлений пользователям в любой момент времени.
Наконец, Google отмечает, что это общее предложение, которое не является уникальным для какого-либо конкретного магазина приложений. Хотя предположительно он будет встроен в Google Play Store, нет никаких причин, по которым другие магазины приложений не могли бы использовать аналогичную структуру. Google говорит, что очевидны следующие преимущества:
- Обеспечение качества и согласованности SDK.
- Оптимизация публикации для разработчиков SDK.
- Ускорение развертывания дополнительных версий SDK для установленных приложений.
Android Privacy Sandbox выглядит многообещающе
В первом квартале 2022 года будут представлены первоначальные предложения по дизайну, а также приняты отзывы и итерации дизайна. Предварительные версии для разработчиков появятся позже в этом году, а бета-версия — в конце года. Наконец, в 2023 году начнутся масштабные испытания. Эти предварительные и бета-версии не будут зависеть от частоты выпуска Android 13. После развертывания в настройках ОС также появятся элементы управления, ориентированные на пользователя.
Android Privacy Sandbox выглядит многообещающе, но нам придется подождать и посмотреть, как компания ее реализует. Вполне возможно, что разработчикам это не понравится или на самом деле создаст больше проблем, чем решит. Разработчикам рекомендуется прочитать документацию, опубликованную Google, чтобы лучше понять, что будет в будущем конфиденциальности Android.
В настоящее время это лишь предложение, а не окончательный взгляд на то, что именно произойдет в будущей версии Android. Будем следить за дальнейшим развитием событий!