Android Q kommer att skydda din integritet bättre med nya funktioner

Analys av ett läckt Android Q-bygge visar att fler sekretessuppgraderingar kommer till Android: blockering av bakgrundsläsning av urklipp, bättre mediaskydd och mer.

Varje ny version av Android kommer med nya funktioner, vilket innebär att Android behöver nya behörigheter för att få åtkomst till dessa funktioner. Jag hittade många nya behörigheter i Android Q: s ramverk (inte alla som jag kommer att täcka i den här artikeln eftersom många av dem inte är intressanta). Några av de behörigheter som jag hittade hade inga beskrivningar, men deras namn är ganska självförklarande ändå. Låt oss dyka in och diskutera de nya sekretessförbättringarna bakom kulisserna i Android Q, såväl som några andra intressanta funktioner som jag hittade.

Särskilt tack till PNF Software för att du har gett oss en licens att använda JEB Decompiler. JEB Decompiler är ett professionellt verktyg för reverse engineering för Android-applikationer.

Blockerar åtkomst till Urklipp i bakgrunden

Visste du att varje app i Android kan läsa ditt urklipp

, och du behöver inte ge dem en körtidsbehörighet för att göra det? Många människor kopierar förmodligen känslig information som användarnamn, lösenord, adresser etc. hela tiden, så det skulle vara lätt för vilken app som helst att skrapa dessa data i bakgrunden. Det är därför som många lösenordshanterarappar gillar KeepPass har sina egna tangentbord som du kan använda för att kringgå Android urklippshanteraren. Lösenordshanterarens appar rensar ofta urklippet åt dig efter att du har kopierat och klistrat in något. Anledningen till att Android-appar behöver läsa urklippet är att de inte kan acceptera någon text från klippbordet utan den, vilket innebär att du inte kan klistra in någon text som du har kopierat. Android Q vill ändra på det, tack och lov.

En ny behörighet har lagts till som heter "READ_CLIPBOARD_IN_BACKGROUND” som låter som att den kommer att göra exakt vad den säger: begränsa vilka appar som kan läsa urklippet i bakgrunden. Skyddsnivån för den här behörigheten är "signatur", vilket innebär att endast appar som är signerade av OEM kan beviljas denna behörighet.

<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>

Stöd för nedgradering av appar?

Har du någonsin installerat en uppdatering för en app på Google Play och omedelbart ångrat dig? Ibland kommer en utvecklare att pusha en uppdatering som bryter något de inte förutsåg, men när uppdateringen har pushats och installerats är det för sent att göra något åt ​​det. Utvecklaren måste snabbt utfärda en snabbkorrigering och användaren måste antingen sluta använda appen tills en uppdatering släpps eller avinstallera appen och sidladda en äldre version. Det finns inget sätt att nedgradera en app om du inte har en rotad enhet med en app som TitaniumBackup, eftersom Androids pakethanterare blockerar dig från att installera äldre versioner av appar. Det finns en bra anledning att göra det eftersom installation av en äldre version av en app kan leda till brott om appens data rensas inte, eller det kan utsätta användaren för fara om den äldre versionen är sårbar för en säkerhet fel.

Även om vi inte vet säkert om Google kommer att tillåta användare att återställa appar till en äldre version, hittade vi flera behörigheter och kommandon i Android Q som tyder på att det kommer att vara möjligt. Först den nya "PACKAGE_ROLLBACK_AGENT" och "MANAGE_ROLLBACKS”-behörigheter tyder på att den förinstallerade marknadsappen kan fungera som en agent för att hantera återställningen av programversioner. Den förra behörigheten är "signatur" medan den senare är "installatör" ovanpå "signatur", så detta betyder endast en plattformssignerad app med möjlighet att installera appar (vanligtvis endast pakethanteraren, Google Play Butik eller andra appbutiker från första part, beroende på enhet) kan använda dessa behörigheter. Två nya skyddade sändningsavsikter har lagts till: "PACKAGE_ENABLE_ROLLBACK" och "PACKAGE_ROLLBACK EXECUTED.” Dessa sändningar kan inte skickas av appar från tredje part och är sannolikt avsedda att låta den berörda appen veta när den har nedgraderats (mycket som hur appar berättas när de har uppdaterats, vilket ger dem en chans att visa ett meddelande vid nästa start.) Slutligen har en ny flagga lagts till i den "pm install” skalkommando. Flaggan, kallad "--enable-rollback,” kan låta dig återställa ett program till en tidigare version. Jag kunde dock inte få det att fungera.

<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"/>

Säkra filer på extern lagring

Datalagring i Android involverar "intern lagring" (/data exklusive /data/media) och "extern lagring" (/data/media och eventuella monterade SD-kort eller USB-enheter). APK-filer och deras mest känsliga data lagras i intern lagring, medan alla delade media som dokument, bilder, videor, etc. lagras i extern lagring. Som standard kan appar bara läsa och skriva filer till en enda katalog i extern lagring: /data/media/[användare]/Android/data/[paketnamn]. (För att lära dig mer om detta beteende rekommenderar jag att du läser min artikel om sdcardfs i Android Oreo.) När användaren beviljar en app valfri behörighet under behörighetsgruppen för extern lagring (READ_EXTERNAL_STORAGE eller WRITE_EXTERNAL_STORAGE), kan appen sedan läsa eller skriva vilken fil som helst i extern lagring. Detta är problematiskt eftersom du ger en app möjlighet att potentiellt samla in mycket data om dig när du bara ville låta den läsa eller skriva vissa filer. För att fixa detta verkar Google introducera ett par nya externa lagringsrelaterade behörigheter i Android Q. Behörigheterna kommer att gate följande funktioner:

  • Möjlighet att läsa platserna från dina media. (Blockerar sannolikt åtkomst till metadata för bilder som standard.)
  • Möjlighet att komma åt musikfiler.
  • Möjlighet att komma åt bilder.
  • Möjlighet att komma åt videor.

För appar som redan har READ_EXTERNAL_STORAGE eller WRITE_EXTERNAL_STORAGE behörigheter innan Android Q-uppdateringen får de den nya läsa behörigheter men inte de nya skriva behörigheter. Till exempel en app som redan har beviljats READ_EXTERNAL_STORAGE av användaren kommer automatiskt att beviljas READ_MEDIA_IMAGES tillstånd men inte WRITE_MEDIA_IMAGES lov.

Relevanta strängar från Android Q: s ramverksupplösning

<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 mer

Återkomsten av bakgrundsplatsåtkomst

Android Oreo och Android 9 Pie tog stora steg framåt för att säkra användarnas integritet, men vissa användare tyckte att Google tog saker för långt. Ett sådant område som kan betraktas som en funktionsregression finns i platsåtkomst i bakgrunden. Platsåtkomst i Android Oreo och senare är kraftigt strypt om inte direkt dödad för appar som körs i bakgrunden, så appar måste antingen vara i förgrunden eller ha en förgrundstjänst igång om de kontinuerligt vill polla enhetens plats. Det blockerar appar från att spionera på din plats i bakgrunden, men det blockerar också användaren från att kartlägga sin egen plats med en app i bakgrunden. Detta är ett problem som vi berörde i en separat artikel, och det ser ut som att Google lägger till en ny behörighet i Android Q för att ta itu med dessa utvecklares och användares oro.

I Android Q har en ny behörighet lagts till för att tillåta en app att ha bakgrundsåtkomst till enhetens plats. Tillståndets beskrivning till användaren varnar för att "appen alltid kommer att ha tillgång till platsen, även när du inte använder appen." Detta tillstånd kan ges behörigheter "utöver den ungefärliga eller exakta platsen" så att appen "kan komma åt platsen medan den körs i bakgrunden." I kontrast, den grova platsbehörigheten kan bara få din plats baserat på nätverkskällor som mobiltorn eller Wi-Fi-nätverk, men bara när appen är i förgrund.

Relevanta strängar från Android Q: s ramverksupplösning

<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 mer

Erkännande av fysisk aktivitet

En ny behörighet har lagts till i Android Q som tillåter en app att "känna igen din fysiska aktivitet." Detta är tekniskt sett inte nytt eftersom det är det redan en del av Google Play Services, men det kan innebära att Google kommer att koppla bort behörigheten från Play Services. Med hur integrerad Google Play Services har varit när det gäller att tillhandahålla grundläggande Android-funktioner, är det bra att se en del av dess kraft återförs till 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>

För fler Android Q-nyheter, kolla in vår märka med de senaste nyheterna sorterade efter datum. Vi publicerade nyligen en artikel med mycket bevis som pekar mot att Google arbetar med stöder Face ID-liknande maskinvara för ansiktsautentisering i Android Q. Vi har också en tidig hands-on av det läckta Android Q-bygget (och det finns till och med en video) som du bör kolla in här. Vi kommer att publicera fler av våra resultat från denna tidiga Android Q-version som vi fick, så håll utkik.