Analiza verzije Androida Q koja je procurila pokazuje da na Androidu dolazi više nadogradnji privatnosti: blokiranje čitanja međuspremnika u pozadini, bolja zaštita medija i više.
Svaka nova verzija Androida dolazi s novim značajkama, što znači da Android treba nove dozvole za pristup tim značajkama. Pronašao sam puno novih dopuštenja u okviru Androida Q (neću sve pokriti u ovom članku jer mnoga od njih nisu zanimljiva). Neka od dopuštenja koja sam pronašao nisu imala opise, ali njihova su imena svejedno prilično razumljiva. Zaronimo i razgovarajmo o novim poboljšanjima privatnosti iza kulisa u Androidu Q, kao io nekoliko drugih zanimljivih značajki koje sam pronašao.
Posebno zahvaljujemo PNF Software-u što nam je dao licencu za korištenje JEB Decompiler. JEB Decompiler je profesionalni alat za obrnuto inženjerstvo za Android aplikacije.
Blokiranje pristupa pozadinskom međuspremniku
Jeste li znali da svaka aplikacija u Androidu može čitati vaš međuspremnik, a za to im ne morate dati dopuštenje za vrijeme izvođenja? Mnogi ljudi vjerojatno kopiraju osjetljive informacije poput korisničkih imena, lozinki, adresa itd. cijelo vrijeme, tako da bi svakoj aplikaciji bilo lako strugati te podatke u pozadini. Zbog toga mnoge aplikacije za upravljanje lozinkama poput
KeePass imaju vlastite tipkovnice koje možete koristiti za zaobilaženje Android upravitelja međuspremnika. Aplikacije za upravljanje lozinkama često čiste međuspremnik nakon što bilo što kopirate i zalijepite. Razlog zašto Android aplikacije moraju čitati međuspremnik je taj što ne mogu prihvatiti nikakav tekst iz međuspremnika bez njega, što znači da ne možete zalijepiti tekst koji ste kopirali. Android Q nastoji to promijeniti, srećom.Dodana je nova dozvola pod nazivom "READ_CLIPBOARD_IN_BACKGROUND
” koji zvuči kao da će učiniti točno ono što kaže: ograničiti koje aplikacije mogu čitati međuspremnik u pozadini. Razina zaštite ove dozvole je "potpis", što znači da samo aplikacije koje je potpisao OEM mogu dobiti ovu dozvolu.
<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>
Podrška za vraćanje aplikacija na stariju verziju?
Jeste li ikada instalirali ažuriranje za aplikaciju na Google Playu i odmah požalili? Ponekad će razvojni programer gurnuti ažuriranje koje kvari nešto što nisu očekivali, ali nakon što je ažuriranje gurnuto i instalirano, prekasno je učiniti bilo što u vezi s tim. Razvojni programer mora brzo izdati hitni popravak, a korisnik mora ili prestati koristiti aplikaciju dok se ažuriranje ne objavi ili deinstalirati aplikaciju i učitati stariju verziju sa strane. Ne postoji način da vratite aplikaciju na stariju verziju osim ako nemate rootan uređaj s aplikacijom poput TitaniumBackup, jer vam Androidov upravitelj paketa onemogućuje instaliranje starijih verzija aplikacija. Postoji dobar razlog za to jer bi instaliranje starije verzije aplikacije moglo dovesti do kvara ako podaci aplikacije nisu izbrisani ili bi mogli izložiti korisnika opasnosti ako je starija verzija ranjiva na sigurnost mana.
Iako ne znamo sa sigurnošću hoće li Google dopustiti korisnicima vraćanje aplikacija na stariju verziju, pronašli smo nekoliko dozvola i naredbi u Androidu Q koje sugeriraju da će to biti moguće. Prvo, novi "PACKAGE_ROLLBACK_AGENT
" i "MANAGE_ROLLBACKS
” dopuštenja sugeriraju da unaprijed instalirana tržišna aplikacija može djelovati kao agent za upravljanje vraćanjem verzija aplikacije. Prvo dopuštenje je "potpis", dok je drugo "instalacijski program" povrh "potpisa", tako da to znači samo aplikaciju potpisanu na platformi s mogućnošću instalacijske aplikacije (obično samo upravitelj paketa, Google Play Store ili druge trgovine aplikacija prve strane, ovisno o uređaju) mogu koristiti ova dopuštenja. Dodane su dvije nove zaštićene namjere emitiranja: "PACKAGE_ENABLE_ROLLBACK
" i "PACKAGE_ROLLBACK EXECUTED
.” Ova emitiranja ne mogu slati aplikacije trećih strana i vjerojatno su namijenjena da se pogođenoj aplikaciji omogući da zna kada je vraćena na stariju verziju (mnogo poput načina na koji se aplikacijama javlja kada su ažurirane, dajući im priliku da prikažu neku poruku pri sljedećem pokretanju.) Na kraju, dodana je nova zastavica "pm install
” naredba ljuske. Zastava, zvana “--enable-rollback
”, može vam omogućiti vraćanje aplikacije na prethodnu verziju. Međutim, nisam ga mogao natjerati da radi.
<protected-broadcast android: name="android.intent.action.PACKAGE_ENABLE_ROLLBACK"/>
<protected-broadcast android: name="android.intent.action.PACKAGE_ROLLBACK_EXECUTED"/>
<permissionandroid: name="android.permission.PACKAGE_ROLLBACK_AGENT"android: protectionLevel="signature"/>
<permissionandroid: name="android.permission.MANAGE_ROLLBACKS"android: protectionLevel="installer|signature"/>
Zaštita datoteka na vanjskoj pohrani
Pohrana podataka u Androidu uključuje "unutarnju pohranu" (/data isključujući /data/media) i "vanjsku pohranu" (/data/media i sve montirane SD kartice ili USB pogone). APK-ovi i njihovi najosjetljiviji podaci pohranjuju se u internu pohranu, dok svi dijeljeni mediji poput dokumenata, slika, videozapisa itd. pohranjuju se u vanjsku pohranu. Prema zadanim postavkama, aplikacije mogu samo čitati i pisati datoteke u jedan direktorij u vanjskoj pohrani: /data/media/[user]/Android/data/[package_name]. (Da biste saznali više o ovom ponašanju, preporučujem da pročitate moje članak o sdcardfs u Androidu Oreo.) Nakon što korisnik aplikaciji dodijeli bilo koje dopuštenje u okviru grupe dopuštenja za vanjsku pohranu (READ_EXTERNAL_STORAGE
ili WRITE_EXTERNAL_STORAGE
), aplikacija tada može čitati ili pisati bilo koju datoteku u vanjskoj pohrani. To je problematično jer aplikaciji dajete mogućnost da potencijalno prikupi mnogo podataka o vama kada ste joj samo htjeli dopustiti da čita ili piše određene datoteke. Kako bi to popravio, čini se da Google u Android Q uvodi nekoliko novih dozvola povezanih s vanjskom pohranom. Dopuštenja će omogućiti sljedeće značajke:
- Sposobnost čitanja lokacija s vašeg medija. (Vjerojatno blokira pristup metapodacima slika prema zadanim postavkama.)
- Mogućnost pristupa glazbenim datotekama.
- Mogućnost pristupa fotografijama.
- Mogućnost pristupa video zapisima.
Za aplikacije koje već sadrže READ_EXTERNAL_STORAGE
ili WRITE_EXTERNAL_STORAGE
dopuštenja prije ažuriranja Androida Q, dobit će novu čitati dozvole, ali ne i novi pisati dozvole. Na primjer, aplikacija koja je već odobrena READ_EXTERNAL_STORAGE
korisnik će automatski dobiti READ_MEDIA_IMAGES
dopuštenje ali ne i WRITE_MEDIA_IMAGES
dopuštenje.
Relevantni nizovi iz okvirne rezolucije Androida Q
<stringname="permgroupdesc_aural">access your musicstring>
<stringname="permgrouplab_visual">Photos & Videosstring>
<stringname="permgrouprequest_aural">Allow <b>%1$s</b> to access your music?string>
<stringname="permgroupdesc_visual">access your photos & videosstring>
<stringname="permgrouplab_activityRecognition">Activity recognitionstring>
<stringname="permgrouplab_aural">Musicstring>
<stringname="permdesc_videoRead">Allows the app to read your video collection.string>
<stringname="permdesc_videoWrite">Allows the app to modify your video collection.string>
<stringname="permdesc_imagesRead">Allows the app to read your photo collection.string>
<stringname="permdesc_imagesWrite">Allows the app to modify your photo collection.string>
<stringname="permdesc_audioRead">Allows the app to read your music collection.string>
<stringname="permdesc_audioWrite">Allows the app to modify your music collection.string>
<stringname="permlab_audioRead">read your music collectionstring>
<stringname="permlab_audioWrite">modify your music collectionstring>
<stringname="permdesc_mediaLocation">Allows the app to read locations from your media collection.string>
"android.permission.READ_EXTERNAL_STORAGE"
targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>"android.permission.WRITE_EXTERNAL_STORAGE"
targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>
Čitaj više
Povratak pristupa lokaciji u pozadini
Android Oreo i Android 9 Pie napravili su velike korake naprijed u osiguravanju privatnosti korisnika, ali neki korisnici smatraju da je Google otišao predaleko. Jedno takvo područje koje se može smatrati regresijom značajke je u pristup lokaciji u pozadini. Pristup lokaciji u sustavu Android Oreo i novijim je jako ograničen ako ne i potpuno uništen za aplikacije koje rade u pozadini, pa aplikacije moraju biti u prvom planu ili imati pokrenutu uslugu u prvom planu ako žele kontinuirano ispitivati podatke uređaja mjesto. To blokira aplikacije da špijuniraju vašu lokaciju u pozadini, ali također blokira korisnika da mapira svoju lokaciju pomoću aplikacije u pozadini. Ovo je problem kojeg smo dotakli u zasebnom članku, a čini se da Google dodaje novo dopuštenje u Android Q kako bi riješio probleme ovih programera i korisnika.
U sustavu Android Q dodano je novo dopuštenje koje aplikaciji omogućuje pozadinski pristup lokaciji uređaja. Opis dopuštenja za korisnika upozorava da će "aplikacija uvijek imati pristup lokaciji, čak i kada ne koristite aplikaciju." Ovo dopuštenje može dobiti dopuštenja "dodatno uz približnu ili preciznu lokaciju" tako da aplikacija "može pristupiti lokaciji dok radi u pozadini". U kontrastu, grubo dopuštenje za lokaciju može dobiti vašu lokaciju samo na temelju mrežnih izvora poput mobilnih tornjeva ili Wi-Fi mreža, ali samo kada je aplikacija u prvi plan.
Relevantni nizovi iz okvirne rezolucije Androida Q
<stringname="permgroupbackgroundrequest_location">Always allow <b>%1$s</b> to access this device’s location?string>
<stringname="permgroupbackgroundrequestdetail_location">The app will always have access to the location, even when you’re not using the app.string>
"permdesc_accessBackgroundLocation">If this is granted additionally to the approximate or precise location access the app can access the location while running in the background.</string>
"permdesc_accessCoarseLocation">This app can get your location based on network sources such as cell towers and Wi-Fi networks, but only when the app is in the foreground. These location services must be turned on and available on your phone for the app to be able to usethem.string>
"android.permission.ACCESS_FINE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>
"android.permission.ACCESS_COARSE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>
Čitaj više
Prepoznavanje tjelesne aktivnosti
U Android Q dodano je novo dopuštenje koje aplikaciji omogućuje "prepoznavanje vaše fizičke aktivnosti". Ovo tehnički nije novo jer jest već dio Google Play usluga, no to bi moglo značiti da će Google odvojiti dopuštenje od Play usluga. S obzirom na to koliko su usluge Google Play integralne u pružanju osnovnih značajki Androida, dobro je vidjeti da je dio njihove moći vraćen AOSP-u.
<stringname="permgroupdesc_activityRecognition">recognize activitystring>
<stringname="permgrouprequest_activityRecognition">Allow <b>%1$s</b> to recognize your physical activity?string>
<stringname="permdesc_activityRecognition">This app can recognize your physical activity.string>
Za više vijesti o Androidu Q, pogledajte naše označiti s najnovijim vijestima poredanim po datumu. Nedavno smo objavili članak s puno dokaza koji upućuju na to da Google radi na tome podržava hardver za autentifikaciju lica sličan Face ID-u u Androidu Q. Također imamo rani praktični pregled verzije Androida Q koja je procurila (a postoji čak i video) koji biste trebali pogledati ovdje. Objavit ćemo više naših otkrića iz ove rane verzije Androida Q koju smo nabavili, stoga nas pratite.