Nopludinātas Android Q versijas analīze parāda, ka operētājsistēmā Android tiek nodrošināts vairāk privātuma jauninājumu: fona starpliktuves lasīšanas bloķēšana, labāka multivides aizsardzība un daudz kas cits.
Katrā jaunajā Android versijā ir jaunas funkcijas, kas nozīmē, ka Android ir nepieciešamas jaunas atļaujas, lai piekļūtu šīm funkcijām. Es atklāju daudz jaunu atļauju Android Q sistēmā (ne visas no kurām es aplūkošu šajā rakstā, jo daudzas no tām nav interesantas). Dažām atļaujām, ko atradu, nebija aprakstu, taču to nosaukumi tik un tā ir diezgan pašsaprotami. Iedziļināsimies un apspriedīsim jaunos Android Q aizkulišu privātuma uzlabojumus, kā arī dažas citas interesantas funkcijas, kuras atradu.
Īpašs paldies PNF programmatūrai par lietošanas licenci JEB dekompilators. JEB Decompiler ir profesionāla līmeņa reversās inženierijas rīks Android lietojumprogrammām.
Bloķējot piekļuvi starpliktuvei fonā
Vai jūs zinājāt, ka katra Android lietotne var lasīt jūsu starpliktuvi, un jums nav viņiem jāpiešķir izpildlaika atļauja, lai to izdarītu? Daudzi cilvēki, iespējams, kopē sensitīvu informāciju, piemēram, lietotājvārdus, paroles, adreses utt. visu laiku, tāpēc jebkurai lietotnei būtu viegli nokasīt šos datus fonā. Tāpēc daudzām paroļu pārvaldnieka lietotnēm patīk
KeePass ir savas tastatūras, kuras varat izmantot, lai apietu Android starpliktuves pārvaldnieku. Paroļu pārvaldnieka lietotnes bieži notīra starpliktuvi jūsu vietā pēc tam, kad esat kaut ko kopējis un ielīmējis. Iemesls, kāpēc Android lietotnēm ir jālasa starpliktuve, ir tāds, ka tās nevar pieņemt tekstu no starpliktuves bez tās, kas nozīmē, ka jūs nevarat ielīmēt nevienu kopēto tekstu. Par laimi, Android Q vēlas to mainīt.Ir pievienota jauna atļauja ar nosaukumu "READ_CLIPBOARD_IN_BACKGROUND
Izklausās, ka tas darīs tieši to, ko saka: ierobežos to, kuras lietotnes var lasīt starpliktuvē fonā. Šīs atļaujas aizsardzības līmenis ir “paraksts”, kas nozīmē, ka šo atļauju var piešķirt tikai OEM parakstītām lietotnēm.
<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>
Atbalsts lietojumprogrammu pazemināšanai?
Vai esat kādreiz instalējis lietotnes atjauninājumu pakalpojumā Google Play un uzreiz to nožēlojis? Dažreiz izstrādātājs izspiež atjauninājumu, kas izjauc kaut ko tādu, ko viņi nebija paredzējuši, taču, kad atjauninājums ir izspiests un instalēts, ir par vēlu kaut ko darīt lietas labā. Izstrādātājam ir ātri jāizdod labojumfails, un lietotājam vai nu jāpārtrauc lietotnes lietošana, līdz tiek izlaists atjauninājums, vai arī jāatinstalē lietotne un jāielādē vecāka versija. Nav iespējams pazemināt lietotnes versiju, ja vien jums nav saknes ierīces ar tādu lietotni kā Titanium Backup, jo Android pakotņu pārvaldnieks neļauj instalēt vecākas lietotņu versijas. Tam ir labs iemesls, jo vecākas lietotnes versijas instalēšana var izraisīt bojājumus, ja lietotnes dati netiek notīrīti, vai arī tas var pakļaut lietotāju briesmām, ja vecākā versija ir neaizsargāta pret drošību trūkums.
Lai gan mēs nezinām, vai Google ļaus lietotājiem atsaukt lietotnes uz vecāku versiju, mēs atradām vairākas atļaujas un komandas operētājsistēmā Android Q, kas liecina, ka tas būs iespējams. Pirmkārt, jaunais "PACKAGE_ROLLBACK_AGENT
" un "MANAGE_ROLLBACKS
” atļaujas liecina, ka iepriekš instalētā tirgus lietotne var darboties kā aģents, lai pārvaldītu lietojumprogrammu versiju atcelšanu. Pirmā atļauja ir “paraksts”, bet otrā ir “instalēšanas programma” papildus “parakstam”, tāpēc tas nozīmē tikai platformā parakstītu lietotni ar iespēju instalēt lietotnes (parasti tikai pakotņu pārvaldnieks, Google Play veikals vai citi pirmās puses lietotņu veikali atkarībā no ierīces) var izmantot šīs atļaujas. Ir pievienoti divi jauni aizsargāti apraides nolūki: "PACKAGE_ENABLE_ROLLBACK
" un "PACKAGE_ROLLBACK EXECUTED
”. Šīs apraides nevar nosūtīt trešo pušu lietotnes, un tās, visticamāk, ir paredzētas, lai ietekmētā lietotne uzzinātu, kad tā ir pazemināta (daudz piemēram, kā lietotnēm tiek paziņots, kad tās ir atjauninātas, dodot tām iespēju nākamajā palaišanas reizē parādīt kādu ziņojumu.) Visbeidzot, lietotnei ir pievienots jauns karogs. "pm install
” čaulas komanda. Karogs ar nosaukumu "--enable-rollback
”, iespējams, varat atsaukt lietojumprogrammu uz vecāku versiju. Tomēr es nevarēju to panākt.
<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"/>
Failu aizsardzība ārējā krātuvē
Datu krātuve operētājsistēmā Android ietver “iekšējo atmiņu” (/dati, izņemot /data/media) un “ārējo krātuvi” (/data/media un visas pievienotās SD kartes vai USB diski). APK faili un to sensitīvākie dati tiek glabāti iekšējā atmiņā, savukārt visi koplietotie multivides faili, piemēram, dokumenti, attēli, videoklipi utt. tiek glabāti ārējā atmiņā. Pēc noklusējuma lietotnes var lasīt un rakstīt failus tikai vienā direktorijā ārējā atmiņā: /data/media/[lietotājs]/Android/data/[pakotnes_nosaukums]. (Lai uzzinātu vairāk par šo uzvedību, iesaku izlasīt manu raksts par sdcardfs operētājsistēmā Android Oreo.) Kad lietotājs piešķir lietotnei jebkādu atļauju ārējās krātuves atļauju grupā (READ_EXTERNAL_STORAGE
vai WRITE_EXTERNAL_STORAGE
), lietotne pēc tam var lasīt vai rakstīt jebkuru failu ārējā atmiņā. Tas ir problemātiski, jo jūs piešķirat programmai iespēju potenciāli ievākt daudz datu par jums, kad vienkārši gribējāt ļaut tai lasīt vai rakstīt noteiktus failus. Lai to labotu, šķiet, ka Google operētājsistēmā Android Q ievieš pāris jaunas ar ārējo krātuvi saistītas atļaujas. Atļaujas nodrošinās šādas funkcijas:
- Iespēja nolasīt atrašanās vietas no jūsu multivides. (Visticamāk, pēc noklusējuma tiek bloķēta piekļuve attēlu metadatiem.)
- Iespēja piekļūt mūzikas failiem.
- Iespēja piekļūt fotoattēliem.
- Iespēja piekļūt videoklipiem.
Programmām, kurām jau ir READ_EXTERNAL_STORAGE
vai WRITE_EXTERNAL_STORAGE
atļaujas pirms Android Q atjaunināšanas, viņi saņems jauno lasīt atļaujas, bet ne jaunās rakstīt atļaujas. Piemēram, lietotne, kas jau ir piešķirta READ_EXTERNAL_STORAGE
lietotājs automātiski piešķirs READ_MEDIA_IMAGES
atļauja, bet ne WRITE_MEDIA_IMAGES
atļauju.
Attiecīgās virknes no Android Q 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>
Lasīt vairāk
Fona atrašanās vietas piekļuves atgriešana
Android Oreo un Android 9 Pie spēra lielus soļus uz priekšu lietotāju privātuma nodrošināšanā, taču daži lietotāji uzskatīja, ka Google ir pārāk tālu. Viena no šādām jomām, ko var uzskatīt par pazīmju regresiju, ir fona atrašanās vietas piekļuve. Piekļuve atrašanās vietai operētājsistēmā Android Oreo un jaunākās versijās ir ļoti ierobežota, ja ne tiešā veidā tiek pārtraukta lietotnēm, kas darbojas fonā, tāpēc lietotnēm ir jāatrodas priekšplānā vai jādarbojas priekšplāna pakalpojumam, ja tās vēlas nepārtraukti aptaujāt ierīces atrašanās vieta. Tas neļauj lietotnēm fonā izspiegot jūsu atrašanās vietu, taču tas arī neļauj lietotājam kartēt savu atrašanās vietu, izmantojot lietotni fonā. Šī ir problēma, kuru mēs pieskārāmies atsevišķā rakstā, un šķiet, ka Google pievieno jaunu atļauju Android Q, lai risinātu šo izstrādātāju un lietotāju bažas.
Operētājsistēmā Android Q ir pievienota jauna atļauja, kas ļauj lietotnei piekļūt ierīces atrašanās vietai fonā. Atļaujas apraksts lietotājam brīdina, ka “lietotnei vienmēr būs piekļuve atrašanās vietai, pat ja jūs neizmantojat lietotni”. Šī atļauja var tiek piešķirtas “papildus aptuvenai vai precīzai atrašanās vietai” atļaujas, lai lietotne “var piekļūt atrašanās vietai, darbojoties fonā”. Turpretim aptuvenās atrašanās vietas atļauja var iegūt jūsu atrašanās vietu tikai, pamatojoties uz tīkla avotiem, piemēram, mobilo sakaru torņiem vai Wi-Fi tīkliem, bet tikai tad, ja lietotne ir priekšplānā.
Attiecīgās virknes no Android Q 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>
Lasīt vairāk
Fizisko aktivitāšu atpazīšana
Android Q ir pievienota jauna atļauja, kas ļauj lietotnei “atpazīt jūsu fiziskās aktivitātes”. Tas tehniski nav jauns, jo tas ir jau ir daļa no Google Play pakalpojumiem, taču tas varētu nozīmēt, ka Google atdalīs atļauju no Play pakalpojumiem. Tā kā Google Play pakalpojumi ir bijuši neatņemami Android pamatfunkciju nodrošināšanā, ir labi redzēt, ka daļa no tā jaudas tiek atdota 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>
Lai uzzinātu vairāk par Android Q jaunumiem, skatiet mūsu tagu ar jaunākajām ziņām, kas sakārtotas pēc datuma. Mēs nesen publicējām rakstu ar daudziem pierādījumiem, kas norāda uz Google darbu atbalsta Face ID līdzīgu sejas autentifikācijas aparatūru operētājsistēmā Android Q. Mums ir arī nopludinātās Android Q versijas agrīnā praktiskā pieredze (un ir pat video), kuru jums vajadzētu apskatīt šeit. Mēs publicēsim citus atklājumus no šīs agrīnās Android Q versijas, ko ieguvām, tāpēc sekojiet līdzi jaunumiem.