Analyse af en lækket Android Q-build viser, at der kommer flere privatlivsopgraderinger til Android: blokering af baggrundslæsning af udklipsholder, bedre mediebeskyttelse og mere.
Hver ny version af Android kommer med nye funktioner, hvilket betyder, at Android har brug for nye tilladelser for at få adgang til disse funktioner. Jeg fandt en masse nye tilladelser i Android Q's framework (ikke alle, som jeg vil dække i denne artikel, fordi mange af dem ikke er interessante). Nogle af de tilladelser, som jeg fandt, havde ingen beskrivelser, men deres navne er alligevel ret selvforklarende. Lad os dykke ned og diskutere de nye forbedringer af privatlivets fred bag kulisserne i Android Q, samt et par andre interessante funktioner, som jeg fandt.
Særlig tak til PNF Software for at give os en licens til at bruge JEB Decompiler. JEB Decompiler er et professionelt reverse engineering-værktøj til Android-applikationer.
Blokering af baggrundsudklipsholderadgang
Vidste du, at hver app i Android kan læse din udklipsholder
, og du behøver ikke give dem en køretidstilladelse for at gøre det? Mange mennesker kopierer sandsynligvis følsomme oplysninger som brugernavne, adgangskoder, adresser osv. hele tiden, så det ville være nemt for enhver app at skrabe disse data i baggrunden. Det er grunden til, at mange password manager-apps kan lide KeepPass har deres egne tastaturer, du kan bruge til at omgå Android-udklipsholderen. Adgangskodehåndteringsapps rydder ofte udklipsholderen for dig, efter du har kopieret og indsat noget. Grunden til, at Android-apps skal læse udklipsholderen, er, at de ikke kan acceptere nogen tekst fra udklipsholderen uden den, hvilket betyder, at du ikke kan indsætte nogen tekst, du har kopieret. Android Q søger at ændre det, heldigvis.Der er tilføjet en ny tilladelse kaldet "READ_CLIPBOARD_IN_BACKGROUND
”, der lyder som om den vil gøre præcis, hvad den siger: begrænse, hvilke apps der kan læse udklipsholderen i baggrunden. Beskyttelsesniveauet for denne tilladelse er "signatur", hvilket betyder, at kun apps, der er signeret af OEM, kan tildeles denne tilladelse.
<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>
Support til nedgradering af apps?
Har du nogensinde installeret en opdatering til en app på Google Play og fortrudt det med det samme? Nogle gange vil en udvikler skubbe en opdatering, der bryder noget, de ikke havde forudset, men når opdateringen er blevet skubbet og installeret, er det for sent at gøre noget ved det. Udvikleren skal hurtigt udstede et hotfix, og brugeren skal enten stoppe med at bruge appen, indtil en opdatering er frigivet, eller at afinstallere appen og sideloade en ældre version. Der er ingen måde at nedgradere en app, medmindre du har en rootet enhed med en app som TitaniumBackup, fordi Androids pakkehåndtering blokerer dig for at installere ældre versioner af apps. Der er en god grund til at gøre det, fordi installation af en ældre version af en app kan føre til brud, hvis appens data ryddes ikke, eller det kan udsætte brugeren for fare, hvis den ældre version er sårbar over for en sikkerhed fejl.
Selvom vi ikke ved med sikkerhed, om Google vil tillade brugere at rulle apps tilbage til en ældre version, fandt vi flere tilladelser og kommandoer i Android Q, der tyder på, at det vil være muligt. For det første den nye "PACKAGE_ROLLBACK_AGENT
" og "MANAGE_ROLLBACKS
”-tilladelser tyder på, at den forudinstallerede markedsapp kan fungere som en agent til at administrere tilbagerulning af applikationsversioner. Førstnævnte tilladelse er "signatur", mens sidstnævnte er "installatør" oven på "signatur", så dette betyder kun en platform-signeret app med mulighed for at installere apps (typisk kun pakkehåndteringen, Google Play Butik eller andre førsteparts appbutikker, afhængigt af enheden) kan bruge disse tilladelser. To nye beskyttede udsendelseshensigter er blevet tilføjet: "PACKAGE_ENABLE_ROLLBACK
" og "PACKAGE_ROLLBACK EXECUTED
." Disse udsendelser kan ikke sendes af tredjepartsapps og er sandsynligvis beregnet til at give den berørte app mulighed for at vide, hvornår den er blevet nedgraderet (meget som hvordan apps bliver fortalt, når de er blevet opdateret, hvilket giver dem en chance for at vise en besked ved næste start.) Endelig er der tilføjet et nyt flag til det "pm install
” shell-kommando. Flaget, kaldet "--enable-rollback
," kan lade dig rulle et program tilbage til en tidligere version. Jeg kunne dog ikke få det til at virke.
<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"/>
Sikring af filer på eksternt lager
Datalagring i Android involverer "intern lagring" (/data undtagen /data/media) og "ekstern lagring" (/data/media og eventuelle monterede SD-kort eller USB-drev). APK'er og deres mest følsomme data gemmes i internt lager, mens alle delte medier som dokumenter, billeder, videoer osv. opbevares i eksternt lager. Som standard kan apps kun læse og skrive filer til en enkelt mappe i eksternt lager: /data/media/[bruger]/Android/data/[pakkenavn]. (For at lære mere om denne adfærd, anbefaler jeg, at du læser min artikel om sdcardfs i Android Oreo.) Når brugeren giver en app enhver tilladelse under den eksterne lagertilladelsesgruppe (READ_EXTERNAL_STORAGE
eller WRITE_EXTERNAL_STORAGE
), kan appen derefter læse eller skrive enhver fil i eksternt lager. Dette er problematisk, fordi du giver en app mulighed for potentielt at høste en masse data om dig, når du bare ville lade den læse eller skrive bestemte filer. For at rette op på dette ser det ud til, at Google introducerer et par nye eksterne lagringsrelaterede tilladelser i Android Q. Tilladelserne vil gate følgende funktioner:
- Evne til at læse placeringerne fra dine medier. (Sandsynligvis blokerer adgangen til metadata for billeder som standard.)
- Mulighed for at få adgang til musikfiler.
- Mulighed for at få adgang til billeder.
- Mulighed for at få adgang til videoer.
For apps, der allerede har READ_EXTERNAL_STORAGE
eller WRITE_EXTERNAL_STORAGE
tilladelser før Android Q-opdateringen, får de den nye Læs tilladelser, men ikke de nye skrive tilladelser. For eksempel en app, der allerede er blevet tildelt READ_EXTERNAL_STORAGE
af brugeren vil automatisk blive tildelt READ_MEDIA_IMAGES
tilladelse, men ikke WRITE_MEDIA_IMAGES
tilladelse.
Relevante strenge fra Android Q's framework-res
<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>
Læs mere
Tilbagekomsten af baggrundsplaceringsadgang
Android Oreo og Android 9 Pie tog store skridt fremad i at sikre brugernes privatliv, men nogle brugere følte, at Google tog tingene for langt. Et sådant område, der kan betragtes som en funktionsregression, er i adgang til baggrundsplacering. Placeringsadgang i Android Oreo og nyere er stærkt droslet, hvis ikke direkte dræbt for apps, der kører i baggrunden, så apps skal enten være i forgrunden eller have en forgrundstjeneste kørende, hvis de løbende vil polle enhedens Beliggenhed. Det blokerer apps fra at spionere på din placering i baggrunden, men det blokerer også for brugeren i at kortlægge deres egen placering ved hjælp af en app i baggrunden. Dette er et problem, vi berørte i en separat artikel, og det ser ud til, at Google tilføjer en ny tilladelse i Android Q for at imødekomme disse udvikleres og brugeres bekymringer.
I Android Q er der tilføjet en ny tilladelse til at tillade en app at have baggrundsadgang til enhedens placering. Tilladelsens beskrivelse til brugeren advarer om, at "appen altid vil have adgang til placeringen, selv når du ikke bruger appen." Denne tilladelse kan evt gives "udover den omtrentlige eller præcise placering"-tilladelser, så appen "kan få adgang til placeringen, mens den kører i baggrunden." I modsætning, den grove placeringstilladelse kan kun få din placering baseret på netværkskilder som mobilmaster eller Wi-Fi-netværk, men kun når appen er i forgrunden.
Relevante strenge fra Android Q's framework-res
<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>
Læs mere
Anerkendelse af fysisk aktivitet
En ny tilladelse er blevet tilføjet til Android Q, der tillader en app at "genkende din fysiske aktivitet." Dette er teknisk set ikke nyt, da det er allerede en del af Google Play Services, men det kan betyde, at Google vil afkoble tilladelsen fra Play Services. Med hvor integreret Google Play Services har været i at levere kernefunktioner til Android, er det godt at se noget af dets kraft tilbage til 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>
For flere Android Q-nyheder, tjek vores tag med de seneste nyheder sorteret efter dato. Vi har for nylig offentliggjort en artikel med en masse beviser, der peger i retning af, at Google arbejder på understøtter Face ID-lignende hardware til ansigtsgodkendelse i Android Q. Vi har også en tidlig hands-on af den lækkede Android Q build (og der er endda en video), som du bør tjekke ud her. Vi vil offentliggøre flere af vores resultater fra denne tidlige Android Q-bygning, vi har fået, så følg med.