В 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
У Даніеля практичне відео для наших YouTube-канал XDA TV, можливо, ви чули, як він згадував новий розділ «Ролі» в налаштуваннях програм за умовчанням (Налаштування --> Програми та сповіщення --> Програми за замовчуванням). Єдині «ролі», які були показані у відео, стосувалися браузера, телефону та обміну повідомленнями, що здавалося зайвим, оскільки вже існують категорії програм за замовчуванням для браузера, програм для телефону та програм для 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, 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. Чекайте моєї останньої статті, яка охоплює всі менші налаштування інтерфейсу користувача та UX. Слідкуйте за нашими Тег Android Q щоб отримати більше подібних статей. Ось посилання на деякі статті, до яких я повертався частіше, а також на кілька інших, які, на мою думку, вам варто прочитати:
- Ексклюзив: рання збірка Android Q має темну тему для всієї системи, оновлення дозволів, натяки на «Режим робочого столу» тощо
- Ексклюзив: Google працює над функцією Face ID для Android Q
- Android Q може блокувати зчитування буфера обміну у фоновому режимі, краще захищати ваші мультимедійні файли, підтримувати пониження версії програм тощо
- Android Q може постачатися з новими шрифтами, формою значків і накладанням акцентного кольору
- «Динамічний Android» може дозволити розробникам тестувати AOSP GSI на будь-якому пристрої Android Q
- Темний режим Android Q: як наступна ОС Android від Google вирішуватиме сліпуче світлі теми