Analiza različice Android Q, ki je ušla, kaže, da v Androidu prihaja več nadgradenj zasebnosti: blokiranje branja odložišča v ozadju, boljša zaščita medijev in drugo.
Vsaka nova različica Androida ima nove funkcije, kar pomeni, da Android potrebuje nova dovoljenja za dostop do teh funkcij. V ogrodju Android Q sem našel veliko novih dovoljenj (v tem članku ne bom obravnaval vseh, ker mnoga od njih niso zanimiva). Nekatera dovoljenja, ki sem jih našel, niso imela nobenega opisa, vendar so njihova imena vseeno precej samoumevna. Poglobimo se in razpravljajmo o novih izboljšavah zasebnosti v zakulisju v sistemu Android Q ter nekaj drugih zanimivih funkcijah, ki sem jih našel.
Posebna zahvala PNF Software, ki nam je zagotovila licenco za uporabo JEB Decompiler. JEB Decompiler je profesionalno orodje za obratno inženirstvo za aplikacije Android.
Blokiranje dostopa do odložišča v ozadju
Ali ste vedeli, da vsaka aplikacija v Androidu lahko prebere vaše odložišče, in jim za to ni treba podeliti dovoljenja za izvajanje? Veliko ljudi verjetno kopira občutljive podatke, kot so uporabniška imena, gesla, naslovi itd. ves čas, tako da bi lahko katera koli aplikacija preprosto postrgala te podatke v ozadju. Zato je veliko aplikacij za upravljanje gesel, kot je
KeePass imajo lastne tipkovnice, s katerimi lahko obidete upravitelja odložišča Android. Aplikacije za upravljanje gesel pogosto namesto vas počistijo odložišče, potem ko kar koli kopirate in prilepite. Razlog, zakaj morajo aplikacije za Android prebrati odložišče, je, da ne morejo sprejeti nobenega besedila iz odložišča brez njega, kar pomeni, da ne morete prilepiti nobenega besedila, ki ste ga kopirali. Android Q želi to spremeniti, na srečo.Dodano je bilo novo dovoljenje z imenom »READ_CLIPBOARD_IN_BACKGROUND
«, kar zveni, kot da bo naredil točno to, kar piše: omeji, katere aplikacije lahko berejo odložišče v ozadju. Raven zaščite tega dovoljenja je »podpis«, kar pomeni, da je to dovoljenje mogoče podeliti samo aplikacijam, ki jih je podpisal OEM.
<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>
Podpora za starejše aplikacije?
Ste že kdaj namestili posodobitev za aplikacijo v Googlu Play in vam je bilo takoj žal? Včasih bo razvijalec potisnil posodobitev, ki pokvari nekaj, česar ni pričakoval, toda ko je posodobitev potisnjena in nameščena, je prepozno, da bi glede tega kar koli naredili. Razvijalec mora hitro izdati hitri popravek, uporabnik pa mora bodisi prenehati uporabljati aplikacijo, dokler ni izdana posodobitev, bodisi odstraniti aplikacijo in naložiti starejšo različico. Ni možnosti, da bi znižali aplikacijo, razen če imate zakoreninjeno napravo z aplikacijo, kot je TitaniumBackup, ker vam Androidov upravitelj paketov preprečuje namestitev starejših različic aplikacij. Za to obstaja dober razlog, saj lahko namestitev starejše različice aplikacije povzroči okvaro, če podatki aplikacije niso izbrisani ali pa bi lahko uporabnika izpostavili nevarnosti, če je starejša različica ranljiva za varnost napaka.
Čeprav ne vemo zagotovo, ali bo Google uporabnikom dovolil povrnitev aplikacij na starejšo različico, smo v sistemu Android Q našli več dovoljenj in ukazov, ki kažejo, da bo to mogoče. Prvič, novi "PACKAGE_ROLLBACK_AGENT
« in »MANAGE_ROLLBACKS
” dovoljenja kažejo, da lahko vnaprej nameščena aplikacija Market deluje kot posrednik za upravljanje povrnitve različic aplikacije. Prvo dovoljenje je »podpis«, drugo pa »namestitveni program« nad »podpisom«, tako da to pomeni samo aplikacijo, podpisano s platformo, z možnostjo nameščanje aplikacij (običajno samo upravitelj paketov, trgovina Google Play ali druge trgovine z aplikacijami pristnih proizvajalcev, odvisno od naprave) lahko uporabljajo ta dovoljenja. Dodana sta bila dva nova namena zaščitenega oddajanja: "PACKAGE_ENABLE_ROLLBACK
« in »PACKAGE_ROLLBACK EXECUTED
.” Teh oddaj ne morejo pošiljati aplikacije tretjih oseb in so verjetno namenjene temu, da prizadeti aplikaciji omogočijo vedeti, kdaj je bila znižana (veliko na primer, kako so aplikacije obveščene, ko so bile posodobljene, kar jim daje možnost, da prikažejo sporočilo ob naslednjem zagonu.) Nazadnje je bila dodana nova zastavica "pm install
” lupinski ukaz. Zastava, imenovana "--enable-rollback
,« vam lahko omogoči povrnitev aplikacije na starejšo različico. Vendar ga nisem mogel spraviti v delo.
<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ščita datotek v zunanjem pomnilniku
Shranjevanje podatkov v sistemu Android vključuje »notranji pomnilnik« (/data brez /data/media) in »zunanji pomnilnik« (/data/media in vse nameščene kartice SD ali pogoni USB). APK-ji in njihovi najbolj občutljivi podatki so shranjeni v notranjem pomnilniku, medtem ko vsi mediji v skupni rabi, kot so dokumenti, slike, videoposnetki itd. so shranjeni v zunanjem pomnilniku. Privzeto lahko aplikacije berejo in pišejo datoteke le v en sam imenik v zunanjem pomnilniku: /data/media/[user]/Android/data/[package_name]. (Če želite izvedeti več o tem vedenju, priporočam, da preberete moje članek o sdcardfs v sistemu Android Oreo.) Ko uporabnik odobri aplikaciji katero koli dovoljenje v skupini dovoljenj za zunanji pomnilnik (READ_EXTERNAL_STORAGE
oz WRITE_EXTERNAL_STORAGE
), lahko aplikacija nato bere ali piše katero koli datoteko v zunanjem pomnilniku. To je problematično, ker aplikaciji dajete možnost, da potencialno pridobi veliko podatkov o vas, ko ste ji želeli dovoliti branje ali pisanje določenih datotek. Da bi to popravil, se zdi, da Google v Android Q uvaja nekaj novih dovoljenj, povezanih z zunanjim pomnilnikom. Dovoljenja bodo omogočila naslednje funkcije:
- Sposobnost branja lokacij iz vašega medija. (Verjetno privzeto blokira dostop do metapodatkov slik.)
- Možnost dostopa do glasbenih datotek.
- Možnost dostopa do fotografij.
- Možnost dostopa do video posnetkov.
Za aplikacije, ki že imajo READ_EXTERNAL_STORAGE
oz WRITE_EXTERNAL_STORAGE
dovoljenja pred posodobitvijo za Android Q, bodo dobili novo prebrati dovoljenja, vendar ne novega pisati dovoljenja. Na primer aplikacija, ki je že bila odobrena READ_EXTERNAL_STORAGE
uporabnik samodejno dodeli READ_MEDIA_IMAGES
dovoljenje, ne pa tudi WRITE_MEDIA_IMAGES
dovoljenje.
Ustrezni nizi iz framework-res za Android 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>
Preberi več
Vrnitev dostopa do lokacije v ozadju
Android Oreo in Android 9 Pie sta naredila velik korak naprej pri varovanju zasebnosti uporabnikov, vendar so nekateri uporabniki menili, da je Google šel stvari predaleč. Eno takih področij, ki se lahko šteje za regresijo značilnosti, je v dostop do lokacije v ozadju. Dostop do lokacije v sistemu Android Oreo in novejših različicah je za aplikacije, ki se izvajajo v ozadju, močno omejen, če ne celo onemogočen, zato aplikacije morajo biti v ospredju ali imeti zagnano storitev v ospredju, če želijo nenehno preverjati podatke naprave lokacijo. To prepreči aplikacijam, da bi vohunile za vašo lokacijo v ozadju, vendar tudi blokira uporabnika, da bi preslikal svojo lokacijo z uporabo aplikacije v ozadju. To je težava, ki smo se je dotaknili v ločenem članku, in zdi se, da Google dodaja novo dovoljenje v Android Q za reševanje skrbi teh razvijalcev in uporabnikov.
V sistemu Android Q je bilo dodano novo dovoljenje, ki aplikaciji omogoča dostop do lokacije naprave v ozadju. Opis dovoljenja za uporabnika opozarja, da bo imela "aplikacija vedno dostop do lokacije, tudi ko aplikacije ne uporabljate." To dovoljenje lahko dodeliti dovoljenja »poleg približne ali natančne lokacije«, tako da lahko aplikacija »dostopa do lokacije, ko teče v ozadju«. V nasprotju, dovoljenje za grobo lokacijo lahko pridobi vašo lokacijo samo na podlagi omrežnih virov, kot so bazne postaje ali omrežja Wi-Fi, vendar le, ko je aplikacija v ospredje.
Ustrezni nizi iz framework-res za Android 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>
Preberi več
Prepoznavanje telesne dejavnosti
Androidu Q je bilo dodano novo dovoljenje, ki aplikaciji omogoča, da »prepozna vašo telesno dejavnost«. To tehnično ni novost, saj je že del storitev Google Play, vendar bi to lahko pomenilo, da bo Google ločil dovoljenje od storitev Play. Glede na to, kako celovite so bile storitve Google Play pri zagotavljanju osnovnih funkcij Androida, je dobro videti, da je del njihove moči vrnjen AOSP.
<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 več novic o Androidu Q si oglejte naše oznaka z najnovejšimi novicami, razvrščenimi po datumu. Nedavno smo objavili članek z veliko dokazi, ki kažejo, da Google dela na tem podpira strojno opremo za preverjanje pristnosti obraza, podobno Face ID-ju v sistemu Android Q. Imamo tudi zgodnja praktična uporaba različice Android Q, ki je pricurljala v javnost (in obstaja celo video), ki si ga morate ogledati tukaj. Objavili bomo več naših ugotovitev iz te zgodnje gradnje Android Q, ki smo jo pridobili, zato ostanite z nami.