Google detaljno opisuje prijedlog dizajna SDK Runtime za Android Privacy Sandbox

Google je dao neke detalje o prijedlogu dizajna SDK Runtime. SDK Runtime čini dio Android Privacy Sandboxa.

Nedavno smo vidjeli kako Apple i Google teže stvaranju ekosustava koji više vodi računa o privatnosti kada su u pitanju reklame. S Appleom je to bilo s uvođenjem gumba za sprječavanje aplikacija da vas prate, a s Googleom je to Android Privacy Sandbox inicijativa. Iako je tijekom najave bilo malo informacija, pojavilo se više detalja vezanih uz "SDK Runtime" koji obuhvaća dio Googleovog rješenja za oglašavanje i privatnost.

Android Privacy Sandbox sastoji se od dvije glavne komponente -- SDK Runtime i Privacy-Preserving APIs -- koje će se distribuirati kao modularne komponente sustava, kojih se možda sjećate kao Glavni projekt. Google je od tada objavio dokumentaciju razvojnog programera koja se odnosi na SDK Runtime i kako će dodatno poboljšati privatnost korisnika. Tvrtka kaže da će SDK Runtime omogućiti pokretanje SDK-ova trećih strana u namjenskom runtime okruženju u Android 13, daleko od koda aplikacije.

U Androidu svaka aplikacija radi u sandboxu s vlastitim dopuštenjima i različitim pristupom sustavu ovisno o dodijeljenom pristupu. Kako to Google kaže, "ako aplikacija A pokuša učiniti nešto zlonamjerno, kao što je čitanje podataka aplikacije B ili pozivanje telefona bez dopuštenja, spriječena je u tome jer nema odgovarajuće zadane korisničke povlastice." SDK Runtime dodatno proširuje taj sandbox za izvođenje SDK-ova trećih strana u namjenskom okruženju za izvođenje, daleko od bilo kojeg određenog aplikacija

Zašto postoji SDK Runtime

Google želi spriječiti oglašivačeve SDK-ove u prikupljanju podataka kojima ne bi trebao imati pristup zlonamjerno (ili čak nenamjerno) kao rezultat dijeljenja sandboxa host aplikacije. Kada se SDK za oglašavanje izvede unutar aplikacije, on također ima pristup svemu što i aplikacija radi, a razvojni programer aplikacije možda nije u potpunosti svjestan koliki je to zapravo pristup. Uklanjanjem tog koda oglašivača i njegovim izvršavanjem u vlastitom vremenu izvođenja, tada može pristupiti samo podacima koje razvojni programer izričito dijeli s njim.

Kao rezultat toga, Google kaže da SDK Runtime pruža sljedeće jače zaštitne mjere i jamstva oko prikupljanja i dijeljenja korisničkih podataka:

  • Modificirano okruženje izvršavanja
  • Dobro definirana dopuštenja i prava pristupa podacima za SDK-ove

Prva verzija SDK Runtimea fokusirana je isključivo na SDK-ove koji se odnose na oglašavanje, uključujući SDK-ove koji omogućuju posluživanje oglasa, mjerenje oglasa, prijevare s oglasima i otkrivanje zlouporabe.

Kako radi SDK Runtime

Trenutačno, bez vremena izvođenja SDK-a, proces aplikacije će pozvati SDK i taj SDK će se izvršiti unutar istog sandboxa kao i ostatak koda aplikacije. Google želi da programeri umjesto toga imaju sučelje za SDK koje radi u procesu aplikacije u prvom planu, a to se sučelje zatim može povezati i dijeliti određene podatke naprijed-natrag sa SDK-om koji se nalazi iskorišteni.

Prije

Nakon

Dijagram "prije" (prvi) pokazuje da se kod za pozivanje SDK-a, zajedno sa SDK-ovima koji primaju pozive iz ovog koda, svi nalaze u procesu aplikacije. To znači da SDK može pristupiti svim podacima koje aplikacija može. Dijagram "nakon" (drugi) pokazuje da, u procesu aplikacije u prvom planu, SDK pozivni kod komunicira sa SDK sučeljima. Ta sučelja zatim prelaze granicu procesa u SDK Runtime proces kako bi pozvali same SDK-ove. To znači da SDK koji se koristi ne može samo pristupiti čemu god želi, mogu mu se pružiti samo informacije iz aplikacije uz koju radi.

Novi pouzdani distribucijski model za SDK-ove

Trenutačno, kada preuzmete aplikaciju sa SDK-ovima trećih strana, programer ih uključuje u aplikaciju koja se prenosi i distribuira u Trgovini Google Play. Google umjesto toga želi da bude slučaj da kada instalirate aplikaciju na svoj telefon koja koristi te SDK-ove, oni se preuzimaju odvojeno iz same aplikacije. To znači da bi razvojni programeri SDK-a mogli unositi izmjene bez prekida (to jest, bez promjena API-ja ili njihovu semantiku) u svoje SDK-ove i distribuirati ih uređajima bez ikakvog uplitanja aplikacije programeri.

S druge strane, neprobojne promjene SDK-a mogu se implementirati ili vratiti, bez nužnog čekanja za programere aplikacija da ponovno izgrade svoje aplikacije s novim SDK-ovima ili čekaju da krajnji korisnici ažuriraju svoje aplikacije. Pogrešne promjene koje mijenjaju API-je i njihovu semantiku i dalje bi trebali ažurirati razvojni programeri aplikacija, ali razvojni programeri SDK-a mogli bi dobiti svoje najnovije nepopravljive mijenja i popravlja brže i jednoobraznije za više ljudi odjednom, bez oslanjanja na razvojnog programera aplikacije da ažurira svoju aplikaciju i paket u novom SDK.

Prije

Nakon

Dijagram "prije" pokazuje točno kako se sada aplikacije distribuiraju sa SDK-ovima. Zapakirani su u aplikaciju, a aplikacija je ono što se šalje u Trgovinu Google Play. U dijagramu "nakon", programeri SDK-a više ne bi stavljali svoje SDK-ove izravno u aplikacije; umjesto toga, programeri SDK-a bi prenijeli SDK i objavili ga u Google Play trgovini. Trgovina Google Play tada bi upravljala distribucijom aplikacija, zajedno sa svim ovisnostima o SDK-u, na uređaje krajnjih korisnika. Google također namjerno koristi izraz "trgovina aplikacija" u svojim dijagramima, budući da je to otvoreno i općenito rješenje koje može funkcionirati u drugim trgovinama.

Promjene u načinu izrade, pokretanja i distribucije SDK-ova i aplikacija

Početni prijedlog za SDK Runtime predlaže niz promjena u pet ključnih područja:

  • Pristup
  • Izvršenje
  • Komunikacije
  • Razvoj
  • Distribucija

Google želi definirati sljedeći skup dopuštenja za SDK Runtime:

  • INTERNET: Pristup internetu kako biste mogli komunicirati s web uslugom.
  • ACCESS_NETWORK_STATE: Pristup informacijama o mrežama.
  • Dopuštenja za pristup API-ji koji čuvaju privatnost, koji pružaju osnovne mogućnosti oglašavanja bez potrebe za pristupom identifikatorima za više aplikacija. Nazivi dopuštenja nisu finalizirani, ali ovi API-ji bi bili ograničeni pristupom aplikacije tim dopuštenjima.
  • AD_ID: Mogućnost traženja ID-a za oglašavanje. To bi također bilo ograničeno pristupom aplikacije ovom dopuštenju.
  • BIND_GET_INSTALL_REFERRER_SERVICE: Sposobnost korištenja Google Play API za preporuku za instalaciju za pripisivanje izvora instalacije aplikacije.

Tvrtka također želi ograničiti pristup koji SDK-ovi imaju memoriji pokrenute aplikacije, ali i spriječiti aplikaciju da pristupi vlastitim podacima SDK-a. Aplikacija ne bi mogla izravno pristupiti svojoj pohrani SDK-a, i obrnuto, vanjska pohrana ne bi mogla otvoren za SDK-ove, a postojala bi i pohrana dostupna svim SDK-ovima i pohrana koja je privatna za određeni SDK.

Što se tiče načina na koji će se SDK-ovi izvoditi, oni će raditi s nešto nižim prioritetom od same aplikacije. To znači da je vrlo vjerojatno da će aplikacija biti prekinuta ubrzo nakon što je SDK Runtime prekinut ako dođe do situacije da ju sustav treba zatvoriti. U slučaju da se ne raskine u isto vrijeme ili u slučaju da postoji drugi razlog, prijedlog nudi srodne metode povratnog poziva životnog ciklusa razvojnim programerima aplikacija kako bi oni riješili ovu iznimku i ponovno inicijalizirali SDK Runtime. Runtime SDK-ovi neće moći koristiti API-je za obavijesti za slanje korisničkih obavijesti u bilo kojem trenutku.

Na kraju, Google napominje da je ovo općeniti prijedlog koji nije jedinstven ni za jednu određenu trgovinu aplikacija. Iako će vjerojatno biti ugrađen u Google Play Store, nema razloga zašto druge trgovine aplikacija ne bi mogle ugraditi sličnu strukturu. Google kaže da su sljedeće prednosti jasne:

  • Osigurajte kvalitetu i dosljednost SDK-ova.
  • Pojednostavite objavljivanje za SDK programere.
  • Ubrzajte uvođenje ažuriranja manje verzije SDK-a za instalirane aplikacije.

Android Privacy Sandbox izgleda obećavajuće

Googleov vremenski okvir za objavu je prvo tromjesečje 2022. koje uključuje početne prijedloge dizajna i povratne informacije o dizajnu i ponavljanja. Pregledi za razvojne programere doći će kasnije tijekom godine, s beta verzijom na kraju godine. Napokon, 2023. će započeti opsežna testiranja. Ovi pregledi i beta verzije bit će neovisni o ritmu izdavanja Androida 13. Također će postojati kontrole okrenute prema korisniku u aplikaciji postavki, nakon što se uvede.

Po mom mišljenju, Android Privacy Sandbox izgled obećavajuće, ali morat ćemo pričekati i vidjeti kako će ga tvrtka implementirati. Sasvim je moguće da se programerima neće svidjeti ili da će zapravo uzrokovati više problema nego što će ih riješiti. Programeri se potiču da pročitaju dokumentaciju koju je Google objavio kako bi stekli bolji dojam o tome što će doći u budućnosti privatnosti Androida.

Ovo je trenutačno prijedlog, a ne konačan pogled na što točno dogodit će se u budućoj verziji Androida, ali je vjerojatno da će završiti prilično blizu. Pratit ćemo daljnji razvoj događaja!


Izvor: Dokumentacija za razvojne programere za Android