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