Android Q ще защити по-добре вашата поверителност с нови функции

Анализът на изтекла компилация на Android Q показва още подобрения на поверителността, идващи към Android: блокиране на четене на фонов клипборд, по-добра медийна защита и др.

Всяка нова версия на Android идва с нови функции, което означава, че Android се нуждае от нови разрешения за достъп до тези функции. Намерих много нови разрешения в рамката на Android Q (не всички от които ще разгледам в тази статия, защото много от тях не са интересни). Някои от разрешенията, които открих, нямаха никакви описания, но имената им така или иначе са доста ясни. Нека се потопим и обсъдим новите задкулисни подобрения на поверителността в Android Q, както и няколко други интересни функции, които открих.

Специални благодарности на PNF Software за предоставянето на лиценз за използване JEB декомпилатор. JEB Decompiler е професионален инструмент за обратно инженерство за Android приложения.

Блокиране на фонов достъп до клипборда

Знаете ли, че всяко приложение в Android може да чете клипборда вии не е нужно да им давате разрешение за изпълнение, за да го направят? Много хора вероятно копират чувствителна информация като потребителски имена, пароли, адреси и т.н. през цялото време, така че би било лесно за всяко приложение да изгребе тези данни във фонов режим. Ето защо много приложения за управление на пароли като

KeePass имат свои собствени клавиатури, които можете да използвате, за да заобиколите мениджъра на клипборда на Android. Приложенията за управление на пароли често изчистват клипборда вместо вас, след като копирате и поставите нещо. Причината, поради която приложенията за Android трябва да четат клипборда, е, че те не могат да приемат текст от клипборда без него, което означава, че не можете да поставите текст, който сте копирали. Android Q търси да промени това, за щастие.

Добавено е ново разрешение, наречено „READ_CLIPBOARD_IN_BACKGROUND”, което звучи така, сякаш ще направи точно това, което казва: ограничете кои приложения могат да четат клипборда във фонов режим. Нивото на защита на това разрешение е „подпис“, което означава, че само приложения, подписани от OEM, могат да получат това разрешение.

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

Поддръжка за понижаване на приложения?

Случвало ли ви се е да инсталирате актуализация за приложение в Google Play и веднага да съжалявате? Понякога програмист ще натисне актуализация, която нарушава нещо, което не е предвидил, но след като актуализацията бъде насочена и инсталирана, е твърде късно да се направи нещо по въпроса. Разработчикът трябва бързо да издаде актуална корекция и потребителят или трябва да спре да използва приложението, докато не бъде пусната актуализация, или да деинсталира приложението и да зареди странично по-стара версия. Няма начин да понижите версия на приложение, освен ако нямате руутнато устройство с приложение като TitaniumBackup, тъй като мениджърът на пакети на Android ви блокира да инсталирате по-стари версии на приложения. Има основателна причина да го направите, тъй като инсталирането на по-стара версия на приложение може да доведе до счупване, ако данните на приложението не са изчистени или може да изложи потребителя на опасност, ако по-старата версия е уязвима за защита недостатък.

Въпреки че не знаем със сигурност дали Google ще позволи на потребителите да връщат приложения към по-стара версия, открихме няколко разрешения и команди в Android Q, които предполагат, че това ще бъде възможно. Първо, новият „PACKAGE_ROLLBACK_AGENT" и "MANAGE_ROLLBACKS” разрешения предполагат, че предварително инсталираното пазарно приложение може да действа като агент за управление на връщането назад на версиите на приложението. Първото разрешение е „подпис“, докато второто е „инсталатор“ върху „подпис“, така че това означава само подписано от платформа приложение с възможност за инсталиране на приложения (обикновено само мениджърът на пакети, Google Play Store или други магазини за приложения на първи страни, в зависимост от устройството) могат да използват тези разрешения. Добавени са две нови намерения за защитено излъчване: „PACKAGE_ENABLE_ROLLBACK" и "PACKAGE_ROLLBACK EXECUTED.” Тези излъчвания не могат да се изпращат от приложения на трети страни и вероятно са предназначени да позволят на засегнатото приложение да разбере кога е било понижено (много например как се съобщава на приложенията, когато са били актуализирани, което им дава възможност да покажат някакво съобщение при следващото стартиране.) И накрая, добавен е нов флаг към „pm install” shell команда. Знамето, наречено „--enable-rollback”, може да ви позволи да върнете приложение към по-ранна версия. Въпреки това не можах да го накарам да работи.

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

Защита на файлове на външно хранилище

Съхранението на данни в Android включва „вътрешно хранилище“ (/данни с изключение на /data/media) и „външно хранилище“ (/data/media и всякакви монтирани SD карти или USB устройства). APK файловете и техните най-чувствителни данни се съхраняват във вътрешна памет, докато всички споделени медии като документи, изображения, видеоклипове и т.н. се съхраняват във външна памет. По подразбиране приложенията могат да четат и записват файлове само в една директория във външно хранилище: /data/media/[user]/Android/data/[package_name]. (За да научите повече за това поведение, препоръчвам ви да прочетете моите статия за sdcardfs в Android Oreo.) След като потребителят предостави на приложение каквото и да е разрешение под групата разрешения за външно съхранение (READ_EXTERNAL_STORAGE или WRITE_EXTERNAL_STORAGE), след това приложението може да чете или записва всеки файл във външно хранилище. Това е проблематично, защото предоставяте на приложение възможността потенциално да събира много данни за вас, когато просто искате да му позволите да чете или записва определени файлове. За да коригира това, Google изглежда въвежда няколко нови разрешения, свързани с външно хранилище, в Android Q. Разрешенията ще предоставят следните функции:

  • Възможност за четене на местоположенията от вашата медия. (Вероятно блокира достъпа до метаданните на изображенията по подразбиране.)
  • Възможност за достъп до музикални файлове.
  • Възможност за достъп до снимки.
  • Възможност за достъп до видеоклипове.

За приложения, които вече държат READ_EXTERNAL_STORAGE или WRITE_EXTERNAL_STORAGE разрешения преди актуализацията на Android Q, те ще получат новото Прочети разрешения, но не и новия пишете разрешения. Например приложение, което вече е предоставено READ_EXTERNAL_STORAGE от потребителя автоматично ще бъде предоставено READ_MEDIA_IMAGES разрешение, но не и WRITE_MEDIA_IMAGES разрешение.

Съответни низове от framework-res на Android Q

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

Прочетете още

Връщането на фоновия достъп до местоположението

Android Oreo и Android 9 Pie направиха големи крачки напред в осигуряването на поверителността на потребителите, но някои потребители смятат, че Google е отвел нещата твърде далеч. Една такава област, която може да се счита за регресия на характеристиките, е в фонов достъп до местоположението. Достъпът до местоположението в Android Oreo и по-нови версии е силно ограничен, ако не и напълно унищожен за приложения, работещи във фонов режим, така че приложенията трябва или да са на преден план, или да имат работеща услуга на преден план, ако искат непрекъснато да анкетират на устройството местоположение. Това блокира приложенията да шпионират вашето местоположение във фонов режим, но също така блокира потребителя да картографира собственото си местоположение с помощта на приложение във фонов режим. Това е проблем, който засегнахме в отделна статия и изглежда, че Google добавя ново разрешение в Android Q, за да отговори на притесненията на тези разработчици и потребители.

В Android Q е добавено ново разрешение, което позволява на приложението да има фонов достъп до местоположението на устройството. Описанието на разрешението за потребителя предупреждава, че „приложението винаги ще има достъп до местоположението, дори когато не използвате приложението“. Това разрешение може да бъдат предоставени разрешения „в допълнение към приблизителното или точното местоположение“, така че приложението „да има достъп до местоположението, докато работи във фонов режим“. За разлика, грубото разрешение за местоположение може да получи вашето местоположение само въз основа на мрежови източници като клетъчни кули или Wi-Fi мрежи, но само когато приложението е в преден план.

Съответни низове от framework-res на Android Q

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

Прочетете още

Разпознаване на физическа активност

Към Android Q е добавено ново разрешение, което позволява на приложението да „разпознае вашата физическа активност“. Това технически не е ново, тъй като е вече е част от услугите на Google Play, но това може да означава, че Google ще отдели разрешението от Play Services. Тъй като услугите на Google Play са интегрирани в предоставянето на основните функции на Android, е добре да видим част от силата им върната на 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>

За още новини за Android Q вижте нашия етикет с последните новини, сортирани по дата. Наскоро публикувахме статия с много доказателства, сочещи, че Google работи върху поддържа хардуер за удостоверяване на лицето, подобен на Face ID в Android Q. Ние също имаме ранна практическа работа с изтеклата версия на Android Q (и дори има видео), което трябва да разгледате тук. Ще публикуваме повече от нашите открития от тази ранна компилация на Android Q, която получихме, така че следете.