Nutekėjusio „Android Q“ versijos analizė rodo, kad į „Android“ ateina daugiau privatumo naujinimų: blokuojamas foninis iškarpinės skaitymas, geresnė medijos apsauga ir kt.
Kiekvienoje naujoje „Android“ versijoje yra naujų funkcijų, o tai reiškia, kad „Android“ reikia naujų leidimų, kad būtų galima pasiekti šias funkcijas. „Android Q“ sistemoje radau daug naujų leidimų (ne visus juos aptarsiu šiame straipsnyje, nes daugelis jų neįdomūs). Kai kurie leidimai, kuriuos radau, neturėjo jokių aprašymų, bet jų pavadinimai vis tiek yra gana aiškūs. Pasinerkime ir aptarkime naujus „Android Q“ privatumo patobulinimus užkulisiuose, taip pat keletą kitų įdomių funkcijų, kurias radau.
Ypatingas ačiū PNF programinei įrangai už suteiktą licenciją naudoti JEB dekompiliatorius. JEB Decompiler yra profesionalus atvirkštinės inžinerijos įrankis, skirtas Android programoms.
Blokuojama prieiga prie iškarpinės fone
Ar žinote, kad kiekviena „Android“ programa gali skaityti jūsų iškarpinę, ir jūs neturite jiems suteikti vykdymo leidimo tai padaryti? Daugelis žmonių tikriausiai kopijuoja neskelbtiną informaciją, pvz., naudotojų vardus, slaptažodžius, adresus ir kt. visą laiką, todėl bet kuriai programai būtų lengva iškrapštyti šiuos duomenis fone. Štai kodėl daugelis slaptažodžių tvarkyklės programų mėgsta
KeePass turi savo klaviatūras, kurias galite naudoti norėdami apeiti „Android“ iškarpinės tvarkyklę. Slaptažodžių tvarkyklės programos dažnai išvalo iškarpinę už jus, kai ką nors nukopijuojate ir įklijuojate. Priežastis, kodėl „Android“ programoms reikia skaityti iškarpinę, yra ta, kad be jos jos negali priimti jokio teksto iš mainų srities, o tai reiškia, kad negalite įklijuoti jokio nukopijuoto teksto. Laimei, „Android Q“ nori tai pakeisti.Pridėtas naujas leidimas pavadinimu „READ_CLIPBOARD_IN_BACKGROUND
“, atrodo, kad jis atliks būtent tai, ką sako: apribos, kokios programos gali skaityti iškarpinę fone. Šio leidimo apsaugos lygis yra „parašas“, o tai reiškia, kad šis leidimas gali būti suteiktas tik OĮG pasirašytoms programoms.
<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>
Palaikoma programų keitimo versija?
Ar kada nors įdiegėte programos naujinį sistemoje „Google Play“ ir iškart dėl to gailėjotės? Kartais kūrėjas siunčia naujinimą, kuris sulaužo tai, ko jie nenumatė, bet kai naujinimas buvo nustumtas ir įdiegtas, jau per vėlu ką nors padaryti. Kūrėjas turi greitai išleisti karštąsias pataisas, o vartotojas turi nustoti naudotis programa, kol bus išleistas naujinimas, arba pašalinti programą ir įkelti senesnę versiją. Nėra galimybės grąžinti programos ankstesnės versijos, nebent turite įsišaknijusį įrenginį su tokia programa Titano atsarginė kopija, nes „Android“ paketų tvarkyklė neleidžia įdiegti senesnių programų versijų. Tam yra rimta priežastis, nes įdiegus senesnę programos versiją, ji gali sugesti programos duomenys neišvalomi arba vartotojui gali kilti pavojus, jei senesnė versija yra pažeidžiama saugos trūkumas.
Nors tiksliai nežinome, ar „Google“ leis vartotojams grąžinti programas į senesnę versiją, „Android Q“ radome keletą leidimų ir komandų, kurios rodo, kad tai bus įmanoma. Pirma, naujasis „PACKAGE_ROLLBACK_AGENT
“ ir „MANAGE_ROLLBACKS
“ leidimai rodo, kad iš anksto įdiegta rinkos programa gali veikti kaip agentas, valdantis programos versijų grąžinimą. Ankstesnis leidimas yra „parašas“, o antrasis yra „diegimo programa“ šalia „parašo“, taigi tai reiškia tik platformoje pasirašytą programą su galimybe diegti programas (paprastai tik paketų tvarkytuvė, „Google Play“ parduotuvė ar kitos pirmosios šalies programų parduotuvės, atsižvelgiant į įrenginį) gali naudoti šiuos leidimus. Buvo pridėti du nauji saugomi transliavimo tikslai: „PACKAGE_ENABLE_ROLLBACK
“ ir „PACKAGE_ROLLBACK EXECUTED
. Šių transliacijų negali siųsti trečiųjų šalių programos. Tikėtina, kad jos skirtos leisti paveiktai programai žinoti, kada ji buvo grąžinta į ankstesnę versiją (daug pvz., kaip programoms pranešama, kai jos buvo atnaujintos, suteikiant galimybę kitą kartą paleidus parodyti tam tikrą pranešimą.) Galiausiai prie programos pridėta nauja vėliavėlė "pm install
“ apvalkalo komanda. vėliava, vadinama „--enable-rollback
“, gali leisti grąžinti programą į ankstesnę versiją. Vis dėlto man nepavyko to padaryti.
<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"/>
Failų apsauga išorinėje saugykloje
Duomenų saugykla „Android“ apima „vidinę atmintį“ (/duomenys, išskyrus /data/media) ir „išorinę atmintį“ (/data/media ir bet kokias prijungtas SD korteles arba USB diskus). APK ir jautriausi jų duomenys saugomi vidinėje atmintyje, o visos bendrinamos medijos, pvz., dokumentai, vaizdai, vaizdo įrašai ir kt. yra saugomi išorinėje saugykloje. Pagal numatytuosius nustatymus programos gali skaityti ir rašyti failus tik į vieną katalogą išorinėje saugykloje: /data/media/[naudotojas]/Android/data/[paketo_pavadinimas]. (Norėdami sužinoti daugiau apie šį elgesį, rekomenduoju perskaityti mano Straipsnis apie sdcardfs „Android Oreo“.) Kai vartotojas suteikia programai bet kokį leidimą pagal išorinės saugyklos leidimų grupę (READ_EXTERNAL_STORAGE
arba WRITE_EXTERNAL_STORAGE
), programa gali skaityti arba įrašyti bet kurį failą išorinėje saugykloje. Tai kelia problemų, nes suteikiate programai galimybę surinkti daug duomenų apie jus, kai tiesiog norėjote leisti jai skaityti ar rašyti tam tikrus failus. Kad tai išspręstų, „Google“, atrodo, pristato keletą naujų su išorine saugykla susijusių leidimų „Android Q“. Leidimai suteiks šias funkcijas:
- Galimybė skaityti vietas iš jūsų žiniasklaidos. (Tikėtina, kad pagal numatytuosius nustatymus blokuojama prieiga prie vaizdų metaduomenų.)
- Galimybė pasiekti muzikos failus.
- Galimybė pasiekti nuotraukas.
- Galimybė pasiekti vaizdo įrašus.
Programoms, kuriose jau yra READ_EXTERNAL_STORAGE
arba WRITE_EXTERNAL_STORAGE
leidimus prieš „Android Q“ naujinimą, jie gaus naują skaityti leidimai, bet ne nauji rašyti leidimai. Pavyzdžiui, jau suteikta programėlė READ_EXTERNAL_STORAGE
vartotojas automatiškai suteiks READ_MEDIA_IMAGES
leidimas, bet ne WRITE_MEDIA_IMAGES
leidimas.
Atitinkamos eilutės iš 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>
Skaityti daugiau
Foninės vietos prieigos grįžimas
„Android Oreo“ ir „Android 9 Pie“ žengė didelius žingsnius į priekį užtikrindami naudotojų privatumą, tačiau kai kurie vartotojai manė, kad „Google“ padarė per toli. Viena iš tokių sričių, kuri gali būti laikoma ypatybių regresija, yra prieiga prie vietos fone. Prieiga prie vietos „Android Oreo“ ir naujesnėse versijose yra labai apribota, jei ne iš karto užblokuota fone veikiančioms programoms, todėl programos turi būti pirmame plane arba turi veikti priekinio plano paslaugą, jei nori nuolat apklausti įrenginio vieta. Tai neleidžia programoms šnipinėti jūsų buvimo vietos fone, bet taip pat neleidžia vartotojui susieti savo buvimo vietos naudojant programą fone. Tai yra problema, kurią palietėme atskirame straipsnyje, ir panašu, kad „Google“ prideda naują leidimą „Android Q“, kad išspręstų šių kūrėjų ir vartotojų rūpesčius.
„Android Q“ buvo pridėtas naujas leidimas, leidžiantis programai turėti foninę prieigą prie įrenginio vietos. Leidimo aprašymas vartotojui įspėja, kad „programa visada turės prieigą prie vietos, net kai nenaudojate programos“. Šis leidimas gali gauti leidimus „papildomai nustatyti apytikslę arba tikslią vietą“, kad programa „gali pasiekti vietą veikdama fone“. Priešingai, apytikslis vietos leidimas gali gauti jūsų vietą tik pagal tinklo šaltinius, pvz., mobiliojo ryšio bokštus ar „Wi-Fi“ tinklus, bet tik tada, kai programa yra priekinio plano.
Atitinkamos eilutės iš 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>
Skaityti daugiau
Fizinio aktyvumo atpažinimas
Prie „Android Q“ buvo pridėtas naujas leidimas, leidžiantis programai „atpažinti jūsų fizinį aktyvumą“. Techniškai tai nėra nauja, nes taip yra jau yra „Google Play“ paslaugų dalis, bet tai gali reikšti, kad „Google“ atsieis leidimą nuo „Play“ paslaugų. Kadangi „Google Play“ paslaugos buvo neatsiejamos teikiant pagrindines „Android“ funkcijas, malonu matyti, kad dalis jų galios grąžinama 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>
Daugiau Android Q naujienų rasite mūsų žyma su naujausiomis naujienomis, surūšiuotomis pagal datą. Neseniai paskelbėme straipsnį su daugybe įrodymų, rodančių, kad „Google“ dirba palaikanti į „Face ID“ panašią veido autentifikavimo aparatinę įrangą „Android Q“. Mes taip pat turime pradžioje nutekintos „Android Q“ versijos praktinė versija (ir yra net vaizdo įrašas), kurį turėtumėte peržiūrėti čia. Paskelbsime daugiau savo išvadų iš šios ankstyvosios „Android Q“ versijos, kurią gavome, todėl sekite naujienas.