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 APIs – които ще се разпространяват като модулни системни компоненти, които може би си спомняте като Основна линия на проекта. Оттогава 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, за да извикат самите SDK. Това означава, че SDK, който се използва, не може просто да има достъп до всичко, което иска, може да му бъде предоставена само информация от приложението, което работи заедно.
Нов доверен модел на разпространение за SDK
Понастоящем, когато изтеглите приложение със SDK на трети страни, те се включват от разработчика в приложението, което се качва и разпространява в Google Play Store. Вместо това Google иска да бъде така, че когато инсталирате приложение на телефона си, което използва тези SDK, те се изтеглят отделно от самото приложение. Това означава, че разработчиците на SDK биха могли да правят постоянни промени (т.е. без промени в API или тяхната семантика) към техните SDK и ги разпространява на устройства без никакво участие от приложението разработчици.
На свой ред неразрушимите промени в SDK могат да бъдат внедрени или върнати назад, без непременно да е необходимо да чакате за разработчиците на приложения да възстановят приложенията си с новите SDK или да чакат крайните потребители да актуализират своите приложения. Разрушителните промени, които променят API и тяхната семантика, все пак ще трябва да бъдат актуализирани от разработчиците на приложения, но разработчиците на SDK могат да получат най-новия си ненарушим променя и поправя по-бързо и по-еднакво за повече хора наведнъж, без да разчита на разработчик на приложение да актуализира приложението и пакета си в новия SDK.
Преди
След
Диаграмата "преди" показва точно как приложенията се разпространяват с SDK сега. Те са опаковани в приложение и приложението е това, което се изпраща в Google Play Store. В диаграмата „след“ разработчиците на SDK вече няма да поставят своите SDK директно в приложения; вместо това разработчиците на SDK ще качат SDK и ще го публикуват в Google Play Store. След това Google Play Store ще обработва разпространението на приложения, заедно с всякакви зависимости от SDK, до устройствата на крайните потребители. Google също умишлено използва фразата „магазин за приложения“ в своите диаграми, тъй като това е отворено и общо решение, което може да работи в други магазини.
Промени в начина на изграждане, изпълнение и разпространение на SDK и приложения
Първоначалното предложение за SDK Runtime предлага серия от промени в пет ключови области:
- Достъп
- Екзекуция
- Комуникации
- развитие
- Разпределение
Google иска да дефинира следния набор от разрешения за SDK Runtime:
-
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 Store, няма причина други магазини за приложения да не могат да включат подобна структура. Google казва, че следните предимства са ясни:
- Осигурете качеството и последователността на SDK.
- Рационализирайте публикуването за разработчиците на SDK.
- Ускорете внедряването на актуализации на второстепенни версии на SDK за инсталирани приложения.
Android Privacy Sandbox изглежда обещаващо
Графикът на Google за пускане е първото тримесечие на 2022 г. да включва първоначалните предложения за дизайн и обратната връзка и повторенията на дизайна. Визуализациите за разработчици ще се появят по-късно през годината, с бета версия в края на годината. И накрая, през 2023 г. ще започне мащабно тестване. Тези визуализации и бета версии ще бъдат независими от ритъма на издаване на Android 13. Ще има и контроли, насочени към потребителя, в приложението за настройки, след като бъде пуснато.
Според мен Android Privacy Sandbox изглежда обещаващо, но ще трябва да изчакаме и да видим как компанията ще го приложи. Напълно възможно е разработчиците да не го харесат или всъщност да създават повече проблеми, отколкото да решават. Разработчиците се насърчават да прочетат документацията, публикувана от Google, за да получат по-добра представа какво предстои в бъдещето на поверителността на Android.
В момента това е предложение, а не окончателна перспектива за какво точно ще се случи в бъдеща версия на Android, но е вероятно да свърши доста близо. Ще следим за по-нататъшно развитие!
източник: Документация за разработчици на Android