Kuidas Android Q parandab Android Pie privaatsust ja lubade juhtelemente

Android Q uuendab lubade haldust ja täiustab kasutajate privaatsust. Siin on see, mida Google on pärast Android Pie'i muutnud.

Android 9 Pie turuosa on vaevalt a vilkuma radaril võrreldes vanemate Androidi versioonidega, kuid see ei lükka edasi Google'i plaane anda välja Androidi järgmine versioon Android Q. Eeldame, et Google avalikustab Android Q esimese arendaja eelvaate millalgi järgmisel kuul, kuid enne Google'i Meil on õnnestunud saada kätte Android Q ehitus, mis on Google'i arenduses tõenäoliselt üsna kaugel tsükkel. Meie esimeses artiklis, milles kirjeldatakse üksikasjalikult järgmise magustoidu väljaande muudatusi, rääkisime uuest lubade kontrolli liidesest. Näitasin aga uuendatud lubade haldamise süsteemist vaid mõnda ekraanipilti, nii et tahtsin vaadata rohkem üksikasju. Olen ka rohkem testinud ja kogunud rohkem teavet Android Q uute lubade, rollide funktsiooni, uue paketi installija ja muu kohta. Kuid kõigepealt on siin lühike kokkuvõte lubade haldamisest Androidis.

Androidi lubade haldamise lühiajalugu

Android 4.3 Jelly Bean esmakordselt tutvustati üksikasjalik lubade haldamine funktsiooni "App Ops" kaudu, kuigi see oli kasutaja eest peidetud. Android 4.4 KitKat tutvustas App Opsi liideses isegi uusi kasutaja poolt juhitavaid õigusi, kuigi vaja juurjuurdepääsu ja Xposed moodulit sellele juurde pääseda. Lõpuks tutvustas Android 6.0 Marshmallow meile kõigile tuttavat lubade süsteemi, ehkki piirangutega, milliseid õigusi saate piirata. Vanem App Opsi funktsioon on Androidis endiselt olemas, kuigi sellele pääseb juurde ainult käsurea kaudu (cmd appops). Teatud rakendused Google Play poes kasutage App Opsi käsurea rakendust, et pakkuda võimsamat lubade haldamise liidest. Google ei avalda App Opsi kasutajatele, kuna kasutaja ei pruugi teada, mida nad teevad, mistõttu nad keelavad rakendusele teatud õigused, mida see võib-olla õigeks toimimiseks vajada. Kahjuks pole me pärast Android Marshmallow lubade haldamise kasutuselevõttu näinud selles funktsioonis olulisi muudatusi – see tähendab kuni Android Q-ni.

Rakenduse toimingud Android 4.3 Jelly Beanis

Android 6.0 Marshmallow nägi suuri muutusi ka selles, kuidas rakendustele teatud õigused antakse. Enne Android 6.0, kõik määratud õigused aastal an rakenduse manifesti faili antakse paigaldamisel. Android 6.0, Google tutvustas käitusaja lubade haldust teatud lubade puhul, mida nad pidasid ohtlikuks, nagu juurdepääs välisele salvestusruumile, juurdepääs kaamerale, juurdepääs asukohale ja palju muud. Käitusaegsed load antakse alles pärast rakenduse installimist ja kasutaja peab nende lubade andmisega selgesõnaliselt nõustuma, puudutades nõudmisel lubade dialoogiboksis „luba”. Kuni Google'ini maha surutud vanemat API-taset sihivate rakenduste puhul võivad rakenduste arendajad käitusaja lubadest mööda minna, sihtides API taset 22 või madalamat (Android Lollipop või vanem). Android Q hoiatab kasutajaid üritab käitada rakendust, mis sihib API taset 22 või madalamat, motiveerides arendajaid veelgi oma rakendusi värskendama, et OS neid ei häbeneks. Seega, selleks ajaks, kui Android Q jõuab seadmetesse, peaksid peaaegu kõik kasutaja seadmes olevad rakendused olema allutatud Android 6.0+ kasutusele võetud lubade halduse juhtelementidele. Seda silmas pidades puhastab Google Android Q lubade juhtelemente, et kasutajatel oleks lihtsam hallata, millise juurdepääsutasemega rakendustel nende seadmes on.

Lihtsam lubade haldamine Android Q-s võrreldes Android Pie'ga

Alates Android 6.0 Marshmallow-st kuni Android 9 Pie-ni võimaldab olemasolev käitusaja lubade haldamine kasutajal lubada või keelata rakendusele ainult teatud õigusi. Eelmises artiklis märkisime, et Android Q võimaldab kasutajal luba piirata ainult siis, kui rakendus on kasutusel. See funktsioon tekitas paljusid inimesi, kuid me peame seda selgitama ainult asukohaluba saab piirata rakenduse kasutamise ajal. See tähendab, et te ei saa mikrofoni või kaamerat piirata ainult siis, kui rakendus on kasutusel. Te ei tohiks selles siiski pettuda, kuna Android Pie on juba olemas tutvustati mõned piirangud taustal kasutamiseks kaamera ja mikrofon nõudes, et rakendused oleksid esiplaanil või kasutaksid esiplaani teenust. Lisaks laiendab Android Q seda kasutajale avaldamine, kui mõni rakendus kasutab mikrofoni, kaamerat või pääseb juurde seadme asukohale. Seda kuvatakse kasutajale olekuriba ikoonidena paremas ülanurgas. Kui olekuriba on laiendatud, annab ikoonide kõrval kuvatav tekst kasutajale teada, milline rakendus kasutab praegu üht neist kolmest tundlikust loast. Lõpuks, kui kasutaja seda ikooni puudutab, kuvatakse dialoogiaken, mis annab kasutajale teada, milline rakendus (rakendused) millist õigust kasutab. Jällegi kehtib see ainult kaamera, asukoha ja mikrofoni lubade kohta.

Tundub, et Google julgustab kasutajaid piirama juurdepääsu asukohale ainult siis, kui rakendus on kasutusel, kuna nad on meeldetuletus Android Q-s, kui kasutaja on andnud rakendusele alati juurdepääsu oma asukohale. See meeldetuletus on teatise vormis, mis annab kasutajale teada, et rakendus on tema asukohta kasutanud ja et tal on alati võimalus seda teha. Teatise puudutamine viib teid selle rakenduse asukohalubade lehele, võimaldades kasutajal piirata asukohaluba ainult siis, kui rakendus on kasutusel. Au selle eest, Google.

Lõpuks, minu järgus on rakenduste spetsiaalsete juurdepääsulubade kasutajaliides (nt aku optimeerimine, seadme administraator, juurdepääs režiimile Mitte segada, juurdepääs teavitustele jne) muutumatu. Siiski on loendisse lisatud uus eriluba "Finantsrakenduste SMS-juurdepääs", kuigi ma pole kindel, kuidas see erineb loast "Premium SMS-juurdepääs", mida rakendused peavad lisatasu tekstisõnumite saatmiseks numbrid. Võimalik, et see uus luba on mõeldud pangarakendustele, mis kasutavad teatud tehinguteks SMS-i, vastavalt Google Play uued eeskirjad SMS-i ja kõnelogi lubade piiramine.

Lubade haldamine Android Q-s

Siin on ekraanipiltide galerii, mis näitab Android Q uute lubade haldusliidese muudatusi. Lisasin iga lehe üksikasjalikud kirjeldused iga pildi pealkirjadesse.

Lubade andmine Android Q-s

Siin on ekraanipildid, mis näitavad käitusaja lubade haldamist Android Q-s. Oleme juba rääkinud sellest, mida kaks esimest ekraanipilti näitavad, kuid kolmas ekraanipilt on täiesti uus Android Q funktsioon, mida ma pole varem arutanud. Androidi võimalus lubada kasutajal enne pärandrakenduse käivitamist õigusi juhtida (määratletud kui rakenduse sihtimise API tase < 23) on Android Pie-s juba võimalik õige konfiguratsioon, kuid Google on lõpuks lüliti ümber pööranud ja lubanud selle Android Q-s.

Lubade reaalajas jälgimine Android Q-s

Siin on ekraanipildid, mis näitavad, kuidas Android Q hoiatab kasutajat, kui rakendus pääseb juurde ühele mitmest tundlikust/ohtlikust loast, sealhulgas kaamera, asukoha ja mikrofoni lubadest.

Uued piirangud lõikelauale juurdepääsule, välisele failidele juurdepääsule

Tausta lõikelauale juurdepääsu piirangud

Eelmises artiklis märkisin Android Q raamistikus uut luba, mis viitas sellele, et taustal töötavad süsteemivälised rakendused ei saa enam süsteemi lõikepuhvrit lugeda. Pärast seda, kui saime Google Play poe tööle, otsustasin installida mõned populaarsed lõikelauahalduri rakendused, näiteks Lõikelaua haldur, Clipperja Clip Stack et kontrollida, kas mul oli õigus. Paremal või halvemal juhul blokeerib Google Android Q-s taustal juurdepääsu lõikelauale ükski testitud rakendustest ei tuvastanud lõikepuhvrisse kopeeritud teksti. Ma isegi kinnitasin, et nendel rakendustel on "READ_CLIPBOARD" luba, mida nad taotlesid, kasutades järgmist App Ops käsku:

adb shell cmd appops query-op --user 0 READ_CLIPBOARD allow

Õnneks töötab teksti kopeerimine ja kleepimine igasse rakendusse ja sealt edasi, kuid taustal töötavad rakendused ei saa enam kopeeritavat teksti lugeda. On liiga vara öelda, kas see muudatus tapab lõikepuhvrihalduri rakendused, sest on võimalus, et Google võib kasutusele võtta uue API, et muuta rakendus vaikimisi lõikelauahalduriks. Kuid ma ei näe Android Q-s tõendeid selle kohta, et see juhtuks.

Juurdepääs välismälufailidele

Ma käsitlesin oma varasemas artiklis peaaegu kõike selle muudatuse kohta, kuid siin on kokkuvõte sellest, mida Google muudab Android Q-s seoses välise salvestusfaili juurdepääsuga. Esiteks peame määratlema, mida tähendab "väline mälu". Androidis on väline salvestuskoht koht, kuhu salvestatakse kõik failid ja kaustad, mida näete telefoni arvutiga ühendamisel (nt allalaadimised, DCIM, muusika, filmid ja pildid). Rakendused peaksid välismälusse salvestama ainult faile, millele teised rakendused võivad juurde pääseda (nt muusika, pildid, videod, dokumendid jne).

Et rakendus pääseks juurde välismälu failidele, peab rakendus hoidma all READ_EXTERNAL_STORAGE ja/või WRITE_EXTERNAL_STORAGE õigused, mis on mõlemad käitusaja õigused. Kui rakendusel on need õigused, pole piiranguid sellele, milliseid välismälu faile see lugeda või muuta saab. Android Q-s jagab Google need kaks luba üksikasjalikumateks lubadeks, võimaldades kasutajal rakendust piirata, et see saaks lugeda või kirjutada ainult teatud failitüüpe. Täpsemalt, Android Q uued load võimaldavad kasutajal rakendust piirata nii, et see saab ainult:

  • Lugege asukohti oma meediast.
  • Lugege või kirjutage muusikafaile.
  • Lugege või kirjutage fotosid/pildifaile.
  • Lugege või kirjutage videofaile.

Rakendus, millele on juba antud luba READ_EXTERNAL_STORAGE, enne kui kasutaja uuemale versioonile üle läheb Android Q-le antakse automaatselt ülaltoodud lugemisõigused, kuid mitte kirjutamisõigused load.

Juurdepääs asukohale taustal

Eelmisel aastal aruanne alates New York Times andis valgust kasutajate asukohta jälgivate rakenduste levikule, et neid reklaamijatele müüa. Vale asukoha jälgimine on probleem, millest Google on hästi teadlik süüdistatakse selles ise. Tutvustatakse Android 8.0 Oreo piiranguid selle kohta, kui sageli saavad taustal töötavad rakendused juurdepääsu seadme asukohale. Taustal töötavate rakenduste asukohapäringud on tugevalt piiratud, nii et kui rakendus soovib teie asukohta jälgida mis tahes täpsusastmega, peab ta avalikustama, et teeb seda nähtava tegevuse või esiplaani teenusega ja püsivalt teatis.

Kuid iga kord, kui Google muudab Androidi põhiliste API-de tööviisi, mõjutab see arendajaid, kelle rakendused kasutasid neid API-sid õiguspäraselt ettenähtud viisil. Oleme seda hiljuti näinud Google Play piirangutega SMS-ide ja kõnelogi lubadele, mille tulemuseks on palju populaarsed rakendused kaotavad põhifunktsioonid. Sama olukord juhtus ka siis, kui Google piiras populaarse asukoha kasutajate juurdepääsu taustal asukohale golfirakenduskaebavad et nad ei saanud seda enam oma laskude jälgimiseks kasutada. Õnneks lisab Android Q uue "ACCESS_BACKGROUND_LOCATION" luba, mis lubab rakendusel alati juurdepääsu seadme asukohale, isegi kui rakendus töötab taustal. Seega ei kaitse uus Androidi versioon mitte ainult kasutajate kaitsmist taustal soovimatu juurdepääsu eest asukohale, vaid pakub kasutajatele ka mehhanismi rakenduste lubamiseks. nende valikul et jälgida nende asukohta taustal.

"Rollide" lisamine Android Q-s

Danieli juures praktiline video meie XDA TV YouTube'i kanal, olete võib-olla kuulnud teda mainimas rakenduste vaikeseadetes (Seaded --> Rakendused ja teatised --> Vaikerakendused) uut jaotist „Rollid”. Ainsad "rollid", mida videos näidati, olid brauseri, telefoni ja sõnumside jaoks, mis tundusid olevat üleliigsed, kuna brauseri, telefonirakenduste ja SMS-rakenduste jaoks on juba vaikerakenduste kategooriad. Pärast seda, kui olin Pixel 3 XL-is Android Q-ga rohkem aega veetnud, avastasin rolliteenuse, mille oleku sai tühistadadumpsys role' käsk. Pärast seda leidsin mitu rolli, mis ei vasta ühelegi juba olemasolevale rakenduse vaikekategooriale. CAR_MODE_DIALER_APP, CALL_COMPANION_APP, CALL_SCREENING_APPja PROXY_CALLING_APP. Pärast mõne Google'i esimese osapoole rakenduse installimist õnnestus mul saada "Autorežiimi telefonirakendus" ja "Kõnede sõelumise rakendus", mis kuvatakse "rollide" lehtedel, nagu allpool näidatud.

Dekompileerisin uue süsteemi APK, mis vastutab Android Q lubade haldamise liidese eest, uue rakenduse nimega "PermissionController" ja leidis faili roles.xml, mis annab vihje, mida "rollid" järgmises Androidis teevad. versioon. Ma ei hakka siia tervet XML-i kleepima, kuid jagan ühe rolli katkendit, mis peaks aitama teil mõista, mida rollid teevad.

PermissionController.apk/res/xml/roles.xml

Oletame, et valin rakenduse, millel on "galerii" roll. Selleks et rakendust kuvataks kehtiva galeriirakendusena, peab sellel olema üks nõutav komponent: tegevus, mis käivitub koos toimingu ja kategooria eesmärgi filtritega. android.intent.action.MAIN ja android.intent.category.APP_GALLERY vastavalt. Kui see on tõsi ja kasutaja on andnud rakendusele galerii rolli, antakse rakendusele automaatselt load lubade komplektis "media_visual", mis minu arvates viitab minu kirjeldatud uuele heli-, video- ja pildiloale varem. Tegelikult uus WRITE_MEDIA_VIDEO ja WRITE_MEDIA_IMAGES "galerii" rulliga rakenduse jaoks on õigused selgesõnaliselt lubatud. Lõpuks muutub rakendus eelistatud töötlejaks, kui mõni teine ​​rakendus saadab kavatsuse galeriirakendusele helistamiseks.

Põhimõtteliselt antakse igale rakendusele, millele on antud teatud "roll" ja millel on deklareeritud nõutavad komponendid ja õigused, automaatselt muud kasutusjuhtumitega seotud lubade komplektid. Eespool postitatud näites antakse galerii "rolliga" rakendusele automaatselt luba failidele juurdepääsuga seotud lubade komplektide jaoks, mida see vajab. Eeldatavasti tähendab see, et rakendus, millele kasutaja on andnud galerii rolli, ei pea küsima kasutajalt luba pildi- või videofailide lugemiseks või kirjutamiseks.

Nimede järgi otsustades CAR_MODE_DIALER_APP, CALL_COMPANION_APP, CALL_SCREENING_APPja PROXY_CALLING_APP rollid võimaldavad kasutajal valida sõidu ajal erineva helistamisrakenduse, rakenduse, mis täidab erinevaid funktsioone, kui kasutaja on telefonikõne, rakendus telefonikõnede kontrollimiseks enne, kui kasutaja kõnele vastab, ja rakendus vahendajanumbriga helistamise hõlbustamiseks, vastavalt. Me ei usu, et kõnede läbivaatamise roll on Google Pixeli funktsiooniga otseselt seotud Kõnede ekraan funktsioon, otsustades selle järgi, mida oleme AOSP-s näinud. Pigem on see mõeldud rakendustele, mis soovivad toimida rämpspostikõnede tagasilükkajana, näiteks kõnefiltrina.

Uuendatud paketi installija

Androidi paketi vaikeinstaller (rakendus, mis tegeleb uute rakenduste installimisega) on ümber kujundatud. Selle asemel, et kuvada täisekraanil toimuvat tegevust igal ajal, kui soovite uut rakendust installida, kuvab Android Q värskendatud paketi installija ekraani keskel väikese dialoogiakna. Seda minipaketi installija kasutajaliidest on Android-tahvelarvutite jaoks kasutatud pikka aega, kuid see on esimene, mida näeme Android-nutitelefonides.

Android Q-s kuvatakse mis tahes rakenduse, mis sihib API taset 22 või madalamat (Android 5.0 Lollipop), käitamisel hoiatust, et rakendus on aegunud. Ma kahtlustan, et see hoiatus on piisav, et enamik kasutajaid ei hakkaks nägema vaeva Androidi Marshmallow-eelseid versioone sihtivate rakendustega. Ühendage see tõsiasjaga, et Google nõuab, et kõik rakendused, mis esitatakse Play poodi pärast 2019. aasta augustit, sihtiksid API tasemel 28, näete, kuidas vananenud rakendustega arendajad on sunnitud oma rakendusi uuema API sihtimiseks ümber töötama tasemel. Kuidas see kõik on seotud uue paketi installijaga? Kuna Android 5.0 Lollipop on viimane API-tase, kus pole teatud tundlike lubade jaoks kohustuslikke käitusaja lubade taotlusi, siis rakenduste sihtimise lõpp API tase 22 ja madalam tähendab, et Google ei pea enam paketi installija sõnumis ruumi tegema, et kuvada pikka loendit lubadest, mis rakendusele antakse paigaldus.

Tõenäoliselt ei näe te seda lihtsustatud paketi installijat kõigis Android Q seadmetes. Näiteks Huawei kohandab paketi installijat sisseehitatud viiruse- ja pahavaraskanneriga (mida ma vihkan) ning sisseehitatud lubade haldur (miski, mida ma armastan.) EMUI 10 jääb seetõttu tõenäoliselt kinni täisekraani paketi installija juurde, mida me kõik oleme harjunud.

Uued kõnede blokeerimise valikud

Funktsioon arvasime, et see tuleb Android Pie's jõudis tegelikult Android Q-sse, näidates teile, kui lähedal me tegelikult oleme Android Q põhifunktsioonide lõpuleviimisele. Toona leitud funktsioon võimaldas teil blokeerida kõned tundmatutelt, privaatselt, tasulistelt telefoninumbritelt või muudelt numbritelt, mis pole teie kontaktiloendis. Siin on ekraanipilt funktsioonist AOSP helistaja rakendusest. Google'i telefoni rakendust pole selle funktsiooniga veel värskendatud, kuid eeldame, et see jõuab selle varsti kätte.

Kõik installitud rakendused näitavad nüüd käivitaja ikoone (võimalik viga?)

Enamikul teie seadme rakendustel on käivitusikoonid, kuna need on mõeldud nende kasutajaliidese lüüsiks. Kuid mitte igal rakendusel pole kasutajaliidest. Sel juhul võib arendaja otsustada tegevuse ja kategooria eesmärgi filtritega tegevust mitte deklareerida. android.intent.action.MAIN ja android.intent.category.LAUNCHER vastavalt. Ma pole kindel, kas see on lihtsalt viga, kuid Android Q-s kuvavad kõik rakendused, isegi need, mis üritavad oma käivitusikoone ülalkirjeldatud viisil peita, käivitusprogrammis ikoone. Testisin seda varuosas AOSP Launcheris, Pixel Launcheris ja Nova Launcheris töötavas Google Pixel 3 XL-is lekkinud Android Q konstruktsiooni ja võrreldi seda Google Pixel 2 XL-iga, milles töötab uusim Android 9 Pie ehitada. Kui puudutate ühte neist ikoonidest, viib see teid lihtsalt selle rakenduse teabelehele seadetes.

Hyperioni dokk, Hyperion Launcheri lisand, tavaliselt käivitusikooni ei näita. Android Q-s toimib see siiski.

Kui see pole lihtsalt viga, saaksid kasutajad kiiresti teada, kas uus rakendus on installitud, isegi kui see rakendus üritab end kasutaja eest varjata.

Kiirseadete paan "Andurid väljas".

Seal on uus kiirseadete paan nimega "andurid välja lülitatud", mis mitte ainult ei lülita sisse lennukirežiimi, vaid ka keelab kõik anduri näidud seadmes. Kinnitasin seda installimisega DevCheck XDA Recognized Developer flar2-st ja andurite näitude väljundi võrdlemine lülitiga "sensors off" ja ilma selleta. Kui paan "Andurid väljas" on sisse lülitatud, lõpetab seade kõigi seadme andurite aruandluse. Ma pole kindel, kas see kiirseadete paan on mõeldud ainult Google'i inseneridele silumiseks, kuid see oleks kasulik funktsioon kõigile, kes on tõeliselt mures selle pärast, milliseid andmeid nende seade nende kohta kogub keskkond.

DevChecki seadme ja süsteemi teaveArendaja: laiendus2

Hind: tasuta.

4.6.

Lae alla

Lisateavet Android Q kohta

See on kõik privaatsusega ja lubadega seotud, mida olen siiani Android Q-st leidnud. Olge kursis minu viimase artikliga, mis hõlmab kõiki väiksemaid kasutajaliidese ja UX-i muudatusi. Jälgi meie Android Q silt rohkemate selliste artiklite jaoks. Siin on link mõnele artiklile, millele ma sagedamini viitasin, ja ka mõnele teisele, mida peaksite lugema:

  • Eksklusiivne: varasel Android Q versioonil on kogu süsteemi hõlmav tume teema, lubade uuendamine, vihjed töölauarežiimile ja palju muud
  • Eksklusiivne: Google töötab Android Q jaoks näo ID-laadse funktsiooni kallal
  • Android Q võib blokeerida taustal lõikelaua lugemist, kaitsta teie meediumifaile paremini, toetada rakenduste vanemaks versiooniks muutmist ja palju muud
  • Android Q võib tarnida koos uute fondi-, ikoonikuju- ja aktsentvärviülekatetega
  • „Dünaamiline Android” võib lubada arendajatel testida AOSP GSI-d mis tahes Android Q seadmes
  • Android Q tume režiim: kuidas Google'i järgmine Android OS käsitleb pimestavalt heledaid teemasid