Android Q ще внесе преработка в управлението на разрешенията и подобрения за защита на поверителността на потребителите. Ето какво промени Google след Android Pie.
Навлизането на Android 9 Pie на пазара е едва миг на радара в сравнение с по-старите версии на Android, но това няма да забави плановете на Google да пусне следващата версия на Android, Android Q. Очакваме Google да представи първата предварителна версия за разработчици на Android Q някъде следващия месец, но преди това на Google съобщение, че успяхме да се сдобием с компилация на Android Q, която вероятно е доста далеч в развитието на Google цикъл. В първата ни статия, описваща промените, идващи към следващата версия на десерта, говорихме за новия интерфейс за контрол на разрешенията. Въпреки това показах само няколко екранни снимки на обновената система за управление на разрешения, така че исках да продължа с повече подробности. Освен това направих повече тестове и събрах повече информация за новите разрешения в Android Q, функцията „роли“, новата програма за инсталиране на пакети и други. Но първо, ето кратко обобщение на управлението на разрешения в Android.
Кратка история на управлението на разрешения в Android
Android 4.3 Jelly Bean въведени за първи път подробно управление на разрешения чрез функцията „App Ops“, въпреки че беше скрито от потребителя. Android 4.4 KitKat дори въведе нови контролирани от потребителя разрешения в интерфейса App Ops, въпреки че вие необходим root достъп и Xposed модул за достъп до него. И накрая, Android 6.0 Marshmallow представи системата за разрешения, с която всички сме запознати, макар и с ограничения за това какви разрешения можете да ограничите. По-старата функция App Ops все още съществува в Android, въпреки че може да бъде достъпна само чрез командния ред (cmd appops
). Определени приложения в Google Play Store се възползвайте от внедряването на командния ред на App Ops, за да предоставите по-мощен интерфейс за управление на разрешения. Google не излага App Ops на потребителите, тъй като потребителят може да не знае какво прави, в резултат на което отказват на приложение някои разрешения, които може наистина да са му необходими, за да функционира правилно. За съжаление, след въвеждането на управлението на разрешенията в Android Marshmallow, не сме виждали големи промени във функцията – тоест до Android Q.
Операции на приложението в Android 4.3 Jelly Bean
Android 6.0 Marshmallow също видя голяма промяна в начина, по който определени разрешения се предоставят на приложения. Преди Android 6.0, всички дефинирани разрешения в ан манифестен файл на приложението се предоставят при инсталиране. С Android 6.0, Google въведе управление на разрешения по време на изпълнение за определени разрешения, които смятат за опасни, като достъп до външно хранилище, достъп до камера, достъп до местоположение и др. Разрешенията за изпълнение се дават само след инсталирането на приложение и потребителят трябва изрично да даде съгласието си за предоставяне на тези разрешения, като докосне „разреши“ в диалогов прозорец за разрешение, когато бъде поискано. До Google напукани на приложения, насочени към по-старо ниво на API, разработчиците на приложения могат да заобиколят разрешенията за изпълнение, като насочат ниво на API 22 или по-ниско (Android Lollipop или по-старо). Android Q ще предупреди потребителите опитвайки се да стартирате приложение, насочено към API ниво 22 или по-ниско, допълнително стимулирайки разработчиците да актуализират приложенията си, за да избегнат засрамването им от операционната система. По този начин, докато Android Q си проправи път към устройствата, почти всяко приложение на устройството на потребителя трябва да бъде подложено на контроли за управление на разрешенията, въведени в Android 6.0+. Имайки това предвид, Google изчиства контролите за разрешения в Android Q, за да улесни потребителите да управляват какво ниво на достъп имат приложенията на тяхното устройство.
По-лесно управление на разрешения в Android Q в сравнение с Android Pie
От Android 6.0 Marshmallow до Android 9 Pie, съществуващото управление на разрешенията по време на изпълнение позволява само на потребителя да разреши или откаже на приложение определени разрешения. В предишната ни статия отбелязахме, че Android Q ще позволи на потребителя да ограничи разрешение само докато приложението се използва. Тази функция развълнува много хора, но трябва да изясним това само разрешението за местоположение може да бъде ограничено до когато дадено приложение се използва. Това означава, че не можете да ограничите микрофона или камерата само докато приложението се използва. Не бива да сте разочаровани от това обаче, тъй като Android Pie вече е налице въведени някои ограничения за фоново използване на камера и микрофон като изисквате приложенията да са на преден план или да използват услуга на преден план. В допълнение, Android Q разширява това с разкриване на потребителя всеки път, когато някое приложение използва микрофона, камерата или осъществява достъп до местоположението на устройството. Това се показва на потребителя като икони в лентата на състоянието в горния десен ъгъл. Когато лентата на състоянието е разширена, текстът, показан до иконите, казва на потребителя кое приложение в момента използва едно от тези 3 чувствителни разрешения. И накрая, ако потребителят докосне тази икона, се показва диалогов прозорец, който казва на потребителя кое приложение(а) използва кое разрешение(а). Отново, това се отнася само за разрешенията на камерата, местоположението и микрофона.
Изглежда, че Google насърчава потребителите да ограничават достъпа до местоположение само когато дадено приложение се използва, тъй като те са изпечени в напомняне в Android Q, когато потребителят е предоставил на приложение винаги достъп до тяхното местоположение. Това напомняне идва под формата на известие, което казва на потребителя, че приложението е използвало тяхното местоположение и че винаги има възможност да го направи. Докосването на известието ви отвежда до страницата с разрешение за местоположение за това приложение, което позволява на потребителя да избере да ограничи разрешението за местоположение само докато това приложение се използва. Браво за това, Google.
И накрая, в компилацията, която имам, потребителският интерфейс за специалните разрешения за достъп до приложението (като оптимизация на батерията, администратор на устройството, достъп „Не безпокойте“, достъп до известия и т.н.) е непроменен. Към списъка обаче беше добавено ново специално разрешение „Достъп до SMS до финансови приложения“, въпреки че не съм сигурен как то се различава от разрешението „Премиум SMS достъп“, което е необходимо на приложенията, за да изпращат текстови съобщения до премиум числа. Възможно е това ново разрешение да е предназначено за банкови приложения, които използват SMS за определени транзакции, в съответствие с Нови правила на Google Play ограничаване на разрешенията за SMS и регистър на обажданията.
Управление на разрешения в Android Q
Ето галерия от екранни снимки, показваща новите промени в интерфейса за управление на разрешения в Android Q. Включих подробни описания на всяка страница в надписите на всяко изображение.
Предоставяне на разрешения в Android Q
Ето екранни снимки, показващи управлението на разрешения по време на изпълнение в Android Q. Вече говорихме какво показват първите две екранни снимки, но третата екранна снимка е изцяло нова функция на Android Q, която не съм обсъждал досега. Възможността за Android да позволи на потребителя да контролира разрешенията, преди да стартира наследено приложение (дефинирано като приложение, насочено към API ниво < 23) е нещо, което вече е възможно в Android Pie с правилна конфигурация, но Google най-накрая превключи превключвателя и го активира в Android Q.
Мониторинг в реално време на разрешения в Android Q
Ето екранни снимки, които показват как Android Q ще предупреди потребителя, когато дадено приложение има достъп до едно от няколко чувствителни/опасни разрешения, включително камера, местоположение и микрофон.
Нови ограничения за достъп до клипборда, достъп до външни файлове
Ограничения за достъп до буферната памет във фонов режим
В предишната си статия отбелязах ново разрешение в рамката на Android Q, което предполага, че несистемните приложения, работещи във фонов режим, вече няма да могат да четат системния клипборд. След като накарахме Google Play Store да работи, реших да инсталирам няколко популярни приложения за управление на клипборда като Мениджър на клипборда, Машинка за подстригване, и Клип стек за да проверя дали съм прав. За добро или лошо, Google блокира фоновия достъп до клипборда в Android Q, като нито едно от приложенията, които тествах, не можа да открие текст, който копирах в клипборда. Дори потвърдих, че тези приложения имат "READ_CLIPBOARD
" разрешение, което са поискали с помощта на следната команда App Ops:
adb shell cmd appops query-op --user 0 READ_CLIPBOARD allow
За щастие, копирането и поставянето на текст към и от всяко приложение все още работи, но приложенията, работещи във фонов режим, вече не могат да четат текста, който се копира. Твърде рано е да се каже дали тази промяна ще убие приложенията за управление на клипборда, тъй като има възможност Google да въведе нов API, за да направи приложението манипулатор на „мениджър на клипборда“ по подразбиране. Въпреки това не виждам никакви доказателства това да се случва в Android Q.
Достъп до файлове за външно съхранение
Обхванах почти всичко за тази промяна в моята предишна статия, но ето обобщение на това, което Google променя в Android Q по отношение на достъпа до външни файлове за съхранение. Първо, трябва да дефинираме какво означава "външно хранилище". В Android външното хранилище е мястото, където се съхраняват всички файлове и папки, които можете да видите, когато включите телефона си в компютър, като изтегляния, DCIM, музика, филми и снимки. Приложенията трябва да съхраняват само файлове във външно хранилище, до които други приложения може да искат достъп, като музика, изображения, видеоклипове, документи и т.н.
За да може приложение да осъществява достъп до файлове във външно хранилище, приложението трябва да задържи READ_EXTERNAL_STORAGE и/или WRITE_EXTERNAL_STORAGE разрешения, които и двете са разрешения за изпълнение. След като дадено приложение има тези разрешения, няма ограничения за това какви файлове във външно хранилище може да чете или променя. В Android Q Google разделя тези две разрешения на по-подробни разрешения, позволявайки на потребителя да ограничи приложение, така че то да може да чете или пише само определени типове файлове. По-конкретно, новите разрешения в Android Q ще позволят на потребителя да ограничи приложение, така че то да може само:
- Прочетете местоположенията от вашата медия.
- Четете или записвайте музикални файлове.
- Четете или записвайте снимки/файлове с изображения.
- Четете или записвайте видео файлове.
Приложение, което вече е получило разрешение READ_EXTERNAL_STORAGE преди потребителят да надстрои до Android Q автоматично ще получи разрешенията за „четене“, изброени по-горе, но не и „запис“ разрешения.
Достъп до местоположение на заден план
Миналата година доклад от Ню Йорк Таймс хвърли светлина върху разпространеността на приложенията, проследяващи местоположението на потребителите, за да ги продават на рекламодатели. Неправилното проследяване на местоположението е проблем, за който Google е добре запознат самите те са обвинени в това. Представен е Android 8.0 Oreo ограничения за това колко често приложенията, работещи във фонов режим, имат достъп до местоположението на устройството. Заявките за местоположение от приложения, работещи във фонов режим, са силно ограничени, така че ако дадено приложение иска да проследи местоположението ви с степен на точност, той трябва да разкрие, че прави това с видима дейност или услуга на преден план и постоянен уведомление.
Въпреки това, всеки път, когато Google промени начина, по който работят основните API на Android, разработчиците, чиито приложения законно са използвали тези API по предназначение, са засегнати. Наскоро видяхме това да се играе с ограниченията на Google Play за разрешения за SMS и регистър на обажданията, което доведе до много популярните приложения губят ключова функционалност. Същата ситуация се случи, когато Google ограничи достъпа до местоположението във фонов режим с потребителите на популярен приложение за голфоплаквам се че вече не могат да го използват за проследяване на изстрелите си. За щастие, Android Q добавя нов "ACCESS_BACKGROUND_LOCATION
" разрешение, което, когато е предоставено, винаги позволява на приложението да има достъп до местоположението на устройството, дори когато приложението работи във фонов режим. По този начин новата версия на Android не само ще продължи да защитава потребителите от нежелан достъп до фоново местоположение, но също така ще предостави механизъм за потребителите да разрешават приложения по техен избор за да следите местоположението им във фонов режим.
Добавянето на „Роли“ в Android Q
В Даниел практическо видео за нашите XDA TV YouTube канал, може да сте го чули да споменава нов раздел „Роли“ в настройките на приложенията по подразбиране (Настройки --> Приложения и известия --> Приложения по подразбиране). Единствените „роли“, които бяха показани във видеото, бяха за браузър, телефон и съобщения, което изглеждаше излишно, тъй като вече има категории приложения по подразбиране за приложения за браузър, телефонни приложения и SMS приложения. След като прекарах още известно време с Android Q на Pixel 3 XL, открих услуга за „роля“, за която мога да захвърля състоянието чрез „dumpsys role
’ команда. След като го направих, намерих няколко „роли“, които не съответстват на никоя от стандартните категории приложения, които вече съществуват: CAR_MODE_DIALER_APP
, CALL_COMPANION_APP
, CALL_SCREENING_APP
, и PROXY_CALLING_APP
. След като инсталирах няколко от приложенията на първи страни на Google, успях да накарам „Приложението за телефон в режим на кола“ и „Приложението за проверка на обаждания“ да се показват в страниците с „роли“, както е показано по-долу.
Декомпилирах новия системен APK, отговорен за интерфейса за управление на разрешения на Android Q, ново приложение, наречено „PermissionController“ и намерих файл roles.xml, който подсказва какво ще правят „ролите“ в следващия Android версия. Няма да поставям целия XML тук, но ще споделя фрагмент от една от ролите, който трябва да ви помогне да разберете какво ще правят ролите.
Да кажем, че избера приложение, което да има ролята на „галерия“. За да се покаже приложение като валидно приложение за галерия, то трябва да има един задължителен компонент: дейност, която се стартира с филтрите за действие и намерение за категория android.intent.action.MAIN
и android.intent.category.APP_GALLERY
съответно. Ако това е вярно и на приложението е дадена ролята на „галерия“ от потребителя, тогава приложението автоматично ще получи разрешения в набора от разрешения "media_visual", което според мен се отнася до новото разрешение за аудио, видео и изображения, което описах по-рано. Всъщност новото WRITE_MEDIA_VIDEO
и WRITE_MEDIA_IMAGES
разрешенията са изрично разрешени за приложение с ролката „галерия“. И накрая, приложението става предпочитан манипулатор, когато друго приложение изпрати намерение да извика приложение за галерия.
По принцип всяко приложение, на което е предоставена определена „роля“ и има декларирани необходими компоненти и разрешения, автоматично получава други набори разрешения, подходящи за техните случаи на употреба. В примера, който публикувах по-горе, приложение с „роля“ на галерията автоматично получава разрешение за набори разрешения, свързани с достъпа до файлове, които трябва да работят. Предполага се, че това означава, че приложение, на което потребителят е предоставил ролята на галерия, няма да има нужда да иска от потребителя разрешение за четене или писане на изображения или видео файлове.
Съдейки по имената, CAR_MODE_DIALER_APP
, CALL_COMPANION_APP
, CALL_SCREENING_APP
, и PROXY_CALLING_APP
ролите ще позволят на потребителя да избере различно приложение за набиране, когато шофира, приложение за изпълнение на различни функции, докато потребителят е в телефонно обаждане, приложение за проверка на телефонни обаждания, преди потребителят да вдигне, и приложение за улесняване на обаждането с междинен номер, съответно. Не вярваме, че ролята на проверка на обажданията е пряко свързана с тази на Google Pixel Call Screen функция, съдейки по това, което видяхме в AOSP. По-скоро е предназначено за приложения, които искат да действат като отбивач за спам обаждания, като филтър за обаждания.
Обновен пакет за инсталиране
Инсталаторът на пакети по подразбиране на Android (приложението, което обработва инсталирането на нови приложения) получава нов дизайн. Вместо да показва активност на цял екран всеки път, когато искате да инсталирате ново приложение, актуализираният пакет за инсталиране на Android Q показва малък диалог в средата на екрана. Този потребителски интерфейс за инсталиране на мини пакети се използва за таблети с Android от дълго време, но това е първият, който го виждаме на смартфони с Android.
В Android Q, стартирането на всяко приложение, насочено към API ниво 22 или по-ниско (Android 5.0 Lollipop), ще покаже предупреждение, че приложението е остаряло. Подозирам, че това предупреждение е достатъчно, за да възпре повечето потребители да се занимават с приложения, насочени към версии преди Android Marshmallow. Съчетайте това с факта, че Google ще изисква всички приложения, изпратени в Play Store след август 2019 г., да бъдат насочени API ниво 28, можете да видите как разработчиците с остарели приложения са принудени да преработят своите приложения, за да се насочат към по-нов API ниво. Как всичко това е свързано с новия пакет за инсталиране? Е, тъй като Android 5.0 Lollipop е последното ниво на API без задължителни заявки за разрешения по време на изпълнение за определени чувствителни разрешения, евентуалната смърт на насочването на приложения API ниво 22 и по-ниско означава, че Google вече не трябва да прави място в съобщението за инсталиране на пакета, за да покаже дълъг списък с разрешения, за които е дадено приложение инсталация.
Вероятно обаче няма да видите този опростен пакет за инсталиране на всички устройства с Android Q. Huawei, например, персонализира програмата за инсталиране на пакети с вграден скенер за вируси и зловреден софтуер (нещо, което мразя), както и вграден мениджър на разрешения (нещо, което обичам.) Следователно EMUI 10 вероятно ще се придържа към инсталатора на пакети на цял екран, който всички сме използван за.
Нови опции за блокиране на обаждания
Характеристика мислехме, че идва в Android Pie всъщност си проправи път в Android Q, показвайки ви колко близо сме всъщност до финализирането на основните функции на Android Q. Функцията, която открихме тогава, ще ви позволи да блокирате обаждания от неизвестни, частни, платени телефонни номера или всякакви номера, които не са в списъка ви с контакти. Ето екранна снимка на функцията от приложението за набиране на AOSP. Приложението Google Phone все още не е актуализирано с тази функция, но предполагаме, че скоро ще я получи.
Всички инсталирани приложения вече показват икони за стартиране (Възможна грешка?)
Повечето приложения на вашето устройство имат икони за стартиране, защото те са предназначени да бъдат шлюзове към техния потребителски интерфейс. Въпреки това, не всяко приложение има потребителски интерфейс, в който случай разработчикът може да избере да не декларира дейност с филтрите за действие и намерение за категория android.intent.action.MAIN
и android.intent.category.LAUNCHER
съответно. Не съм сигурен дали това е просто грешка, но в Android Q всички приложения, дори тези, които се опитват да скрият своите икони за стартиране по начина, описан по-горе, ще показват икони в стартовия панел. Тествах това на стандартния AOSP Launcher, Pixel Launcher и Nova Launcher на работещ Google Pixel 3 XL изтеклата версия на Android Q и я сравни с Google Pixel 2 XL, работещ с най-новия Android 9 Pie изграждане. Когато докоснете една от тези икони, тя просто ви отвежда до информационната страница на това приложение в Настройки.
Ако това не е просто грешка, тогава това би бил начин потребителите бързо да разберат дали е инсталирано ново приложение, дори ако това приложение се опитва да се скрие от потребителя.
Плочка за бързи настройки „Сензори изключени“.
Има нова плочка за бързи настройки, наречена „сензори изключени“, която не само включва самолетен режим, но и деактивира всички сензорни показания на устройството. Потвърдих това чрез инсталиране DevCheck от XDA Recognized Developer flar2 и сравняване на изхода от показанията на сензора със и без превключвателя „сензори изключени“. Когато плочката „изключени сензори“ е включена, устройството спира да отчита от всички сензори на устройството. Не съм сигурен дали тази плочка за бързи настройки е само за инженерите на Google за отстраняване на грешки, но това би било полезна функция за всеки, който наистина се интересува от това какви данни събира тяхното устройство заобикаляща среда.
Цена: Безплатно.
4.6.
Още за Android Q
Това е всичко, свързано с поверителността и разрешенията, което открих досега в Android Q. Очаквайте последната ми статия, обхващаща всички по-малки UI и UX настройки. Следвайте нашите Android Q етикет за повече статии като тази. Ето връзка към някои от статиите, към които се връщах по-често, както и към няколко други, които смятам, че трябва да прочетете:
- Ексклузивно: Ранната компилация на Android Q има тъмна тема за цялата система, преработено разрешение, намеци за „Desktop Mode“ и много повече
- Ексклузивно: Google работи върху функция, подобна на Face ID, за Android Q
- Android Q може да блокира четенията на фоновия клипборд, да защити по-добре вашите медийни файлове, да поддържа понижаване на приложения и други
- Android Q може да се достави с нов шрифт, форма на икона и наслагвания с цвят на акцента
- „Динамичният Android“ може да позволи на разработчиците да тестват AOSP GSI на всяко Android Q устройство
- Тъмният режим на Android Q: Как следващата операционна система Android на Google ще се справи с ослепително леки теми