Google детально описує пропозицію дизайну SDK Runtime для Android Privacy Sandbox

Google надав деякі подробиці про пропозицію дизайну SDK Runtime. SDK Runtime є частиною Android Privacy Sandbox.

Нещодавно ми бачили, як Apple і Google прагнуть створити екосистему, яка більше дбайливо ставиться до конфіденційності, коли йдеться про рекламу. З Apple це було з введенням кнопки, щоб заборонити програмам стежити за вами, а з Google це було Ініціатива Android Privacy Sandbox. Хоча під час анонсу інформації було мало, з’явилося більше подробиць про «SDK Runtime», який містить частину рішення Google щодо реклами та конфіденційності.

Android Privacy Sandbox складається з двох основних компонентів — SDK Runtime та Privacy-Preserving API — які розповсюджуватимуться як модульні системні компоненти, які ви можете пам’ятати як Проект Mainline. Відтоді Google опублікував документацію для розробників щодо SDK Runtime і того, як це покращить конфіденційність користувачів. Компанія заявляє, що SDK Runtime дозволить стороннім SDK працювати в спеціальному середовищі виконання в Android 13, від коду програми.

В Android кожна програма працює в пісочниці з власними дозволами та різним доступом до системи залежно від наданого доступу. Як говорить Google, "якщо програма A намагається зробити щось зловмисне, наприклад прочитати дані програми B або набрати номер телефону без дозволу, вона не зможе це зробити, оскільки вона не має відповідні привілеї користувача за замовчуванням." SDK Runtime додатково розширює це пісочне середовище для виконання сторонніх SDK у спеціальному середовищі виконання, подалі від будь-якого конкретного додаток

Чому існує SDK Runtime

Google хоче запобігти зловмисному (або навіть ненавмисному) збору даних SDK рекламодавця, до яких він не повинен мати доступу, у результаті спільного використання пісочниці хост-програми. Коли SDK для реклами виконується всередині програми, він також має доступ до всього, що робить програма, і розробник програми може не повністю усвідомлювати, який доступ це насправді. Вилучивши цей код рекламодавця та виконавши його у власному середовищі виконання, він матиме доступ лише до тих даних, якими розробник явно надає йому доступ.

Як наслідок, Google каже, що SDK Runtime забезпечує наступні сильніші засоби захисту та гарантії щодо збору та обміну даними користувачів:

  • Змінене середовище виконання
  • Чітко визначені дозволи та права доступу до даних для SDK

Перша версія SDK Runtime зосереджена виключно на пакетах SDK, пов’язаних із рекламою, включаючи SDK, які дозволяють розміщувати рекламу, вимірювати рекламу, шахрайство з рекламою та виявлення зловживань.

Як працює SDK Runtime

Наразі без середовища виконання SDK процес програми викличе SDK, і цей SDK виконуватиметься всередині того самого пісочниці, що й решта коду програми. Google хоче, щоб розробники натомість мали інтерфейс для SDK, який працює в першому процесі програми, і цей інтерфейс може потім підключатися до певних даних і обмінюватися ними туди й назад із наявним SDK використаний.

Раніше

після

Діаграма «до» (перша) показує, що код виклику SDK разом із SDK, які отримують виклики від цього коду, знаходяться в процесі програми. Це означає, що SDK може отримати доступ до всіх даних, доступних програмі. Діаграма «після» (друга) показує, що в процесі переднього плану програми код виклику SDK взаємодіє з інтерфейсами SDK. Потім ці інтерфейси перетинають межі процесу в процес SDK Runtime, щоб викликати самі SDK. Це означає, що використовуваний SDK не може просто отримати доступ до всього, що забажає, йому можна надати лише інформацію з програми, з якою він працює.

Нова надійна модель розповсюдження для SDK

Наразі, коли ви завантажуєте програму зі сторонніми SDK, розробник додає їх до програми, яка завантажується та розповсюджується в Google Play Store. Натомість Google хоче, щоб коли ви встановлюєте програму на свій телефон, яка використовує ці SDK, вони завантажуються окремо із самої програми. Це означає, що розробники SDK можуть вносити непорушні зміни (тобто не змінювати API або їх семантику) до своїх SDK і розповсюджувати їх на пристрої без будь-якої участі програми розробників.

У свою чергу, незламні зміни SDK можна розгорнути або відкотити без необхідності чекати для розробників додатків, щоб перебудувати свої додатки з новими SDK, або чекаючи, поки кінцеві користувачі оновлять свої програми. Критичні зміни, які змінюють API та їхню семантику, все одно потребуватимуть оновлення розробників додатків, але розробники SDK можуть отримати найновішу постійну версію змінює та виправляє швидше та більш уніфіковано для більшої кількості людей одночасно, не покладаючись на те, що розробник програми оновить свою програму та пакет у новому SDK.

Раніше

після

Діаграма «раніше» показує, як програми розповсюджуються за допомогою SDK зараз. Вони упаковані в програму, і ця програма надсилається в магазин Google Play. На діаграмі «після» розробники SDK більше не розміщуватимуть свої SDK безпосередньо в програмах; замість цього розробники SDK завантажують SDK і публікують його в Google Play Store. Тоді Google Play Store займатиметься розповсюдженням програм разом із будь-якими залежностями SDK на пристрої кінцевих користувачів. Google також навмисно використовує фразу «магазин додатків» у своїх діаграмах, оскільки це відкрите та загальне рішення, яке може працювати в інших магазинах.

Зміни в тому, як створюються, запускаються та розповсюджуються SDK і програми

Початкова пропозиція щодо середовища виконання SDK пропонує серію змін у п’яти ключових сферах:

  • Доступ
  • виконання
  • Комунікації
  • розвиток
  • Розподіл

Google хоче визначити такий набір дозволів для середовища виконання SDK:

  • INTERNET: доступ до Інтернету для зв’язку з веб-службою.
  • ACCESS_NETWORK_STATE: доступ до інформації про мережі.
  • Дозволи на доступ до API, що зберігають конфіденційність, які надають основні рекламні можливості без доступу до міжпрограмних ідентифікаторів. Назви дозволів ще не визначено, але ці API будуть обмежені доступом програми до цих дозволів.
  • AD_ID: можливість запиту рекламного ідентифікатора. Це також буде обмежено доступом програми до цього дозволу.
  • BIND_GET_INSTALL_REFERRER_SERVICE: Уміння використовувати Google Play Install Referrer API щоб вказати джерело встановлення програми.

Компанія також хоче обмежити доступ SDK до пам’яті запущеної програми, а також запобігти доступу програми до власних даних SDK. Програма не зможе отримати прямий доступ до свого сховища SDK, і навпаки, зовнішнє сховище не матиме відкритий для SDK, і буде як сховище, доступне для всіх SDK, так і сховище, приватне для даного SDK.

Що стосується того, як працюватимуть SDK, вони працюватимуть із дещо нижчим пріоритетом, ніж сама програма. Тобто дуже ймовірно, що програма буде припинена незабаром після завершення SDK Runtime, якщо виникне ситуація, що її потрібно буде закрити системі. У випадку, якщо вона не припиняється одночасно, або якщо є інша причина, пропозиція пропонує пов’язані методи зворотного виклику життєвого циклу для розробників додатків, щоб вони могли обробити цей виняток і повторно ініціалізувати SDK Час виконання. SDK середовища виконання не зможуть використовувати API сповіщень для надсилання сповіщень користувачам у будь-який момент часу.

Нарешті Google зазначає, що це загальна пропозиція, яка не є унікальною для будь-якого конкретного магазину додатків. Хоча його, ймовірно, буде вбудовано в магазин Google Play, немає причин, чому інші магазини додатків не могли б включити подібну структуру. Google каже, що такі переваги очевидні:

  • Забезпечте якість і узгодженість SDK.
  • Оптимізація публікації для розробників SDK.
  • Прискорення розгортання оновлень проміжної версії SDK для встановлених програм.

Android Privacy Sandbox виглядає багатообіцяюче

Google розраховує на випуск у першому кварталі 2022 року, в якому будуть представлені початкові пропозиції щодо дизайну, відгуки та ітерації. Попередній перегляд для розробників з’явиться пізніше цього року, а бета-версія – наприкінці року. Нарешті, у 2023 році почнеться масштабне тестування. Ці попередні перегляди та бета-версії не залежатимуть від частоти випуску Android 13. У додатку налаштувань також з’являться елементи керування, доступні для користувача, після розгортання.

На мою думку, Android Privacy Sandbox виглядає багатообіцяюче, але нам доведеться почекати і подивитися, як компанія це реалізує. Цілком можливо, що розробникам це не сподобається, або що це насправді створить більше проблем, ніж вирішить. Розробникам пропонується прочитати документацію, опубліковану Google, щоб краще зрозуміти, що буде в майбутньому щодо конфіденційності Android.

Наразі це пропозиція, а не остаточний погляд на що точно станеться в майбутній версії Android, але ймовірно, що це буде дуже близько. Ми будемо уважно стежити за подальшим розвитком подій!


Джерело: Документація для розробників Android