Android Q přinese přepracování správy oprávnění a vylepšení pro ochranu soukromí uživatelů. Zde je to, co Google změnil od Android Pie.
Pronikání Androidu 9 Pie na trh je sotva a záblesk na radaru ve srovnání se staršími verzemi Androidu, ale to nezdrží plány společnosti Google na vydání další verze Androidu, Android Q. Očekáváme, že Google odhalí první Developer Preview Androidu Q někdy příští měsíc, ale dříve než Google oznámení, podařilo se nám dostat do rukou sestavení Androidu Q, které je pravděpodobně ve vývoji Google dost daleko cyklus. V našem prvním článku, který podrobně popisuje změny přicházející do příští verze dezertů, jsme hovořili o novém rozhraní pro řízení oprávnění. Ukázal jsem však pouze několik snímků obrazovky přepracovaného systému správy oprávnění, takže jsem chtěl sledovat další podrobnosti. Také jsem provedl další testování a shromáždil více informací o nových oprávněních v Android Q, funkci „rolí“, novém instalačním programu balíčků a dalších. Nejprve je zde ale stručná rekapitulace správy oprávnění v Androidu.
Stručná historie správy oprávnění v systému Android
Android 4.3 Jelly Bean poprvé představen podrobnou správu oprávnění prostřednictvím funkce „App Ops“, i když byla před uživatelem skryta. Android 4.4 KitKat dokonce zavedl nová uživatelsky ovladatelná oprávnění v rozhraní App Ops, ačkoli vy potřeboval root přístup a modul Xposed pro přístup. Nakonec Android 6.0 Marshmallow představil systém oprávnění, který všichni známe, i když s omezeními, která oprávnění můžete omezit. Starší funkce App Ops v Androidu stále existuje, i když k ní lze přistupovat pouze pomocí příkazového řádku (cmd appops
). Určité aplikace v Obchodě Google Play využijte implementaci příkazového řádku App Ops k poskytnutí výkonnějšího rozhraní pro správu oprávnění. Google nezpřístupňuje App Ops uživatelům, protože uživatel nemusí vědět, co dělá, což vede k tomu, že aplikaci odepře některá oprávnění, která může skutečně potřebovat ke správnému fungování. Od zavedení správy oprávnění v Android Marshmallow jsme bohužel nezaznamenali žádné zásadní změny této funkce – tedy až do Androidu Q.
Operace aplikace v Androidu 4.3 Jelly Bean
Android 6.0 Marshmallow také zaznamenal zásadní změnu ve způsobu udělování určitých oprávnění aplikacím. Před Androidem 6.0, vše definovaná oprávnění v an soubor manifestu aplikace jsou uděleny při instalaci. S Androidem 6.0, Google zavedla správu oprávnění za běhu pro určitá oprávnění, která považovali za nebezpečná, jako je přístup k externímu úložišti, přístup ke kameře, přístup k poloze a další. Oprávnění za běhu jsou udělena až po instalaci aplikace a uživatel musí s udělením těchto oprávnění výslovně souhlasit klepnutím na „povolit“ v dialogovém okně oprávnění, když je o to požádán. Až do Googlu zasáhl u aplikací, které cílí na starší úroveň rozhraní API, mohou vývojáři aplikací obejít oprávnění za běhu cílením na úroveň API 22 nebo nižší (Android Lollipop nebo starší). Android Q upozorní uživatele pokusit se spustit aplikaci zacílenou na API úrovně 22 nebo nižší, což dále motivuje vývojáře, aby aktualizovali své aplikace, aby nebyli operačním systémem zahanbeni. V době, kdy se Android Q dostane do zařízení, by tedy téměř každá aplikace v zařízení uživatele měla podléhat ovládacím prvkům správy oprávnění zavedeným v systému Android 6.0+. S ohledem na to Google čistí ovládací prvky oprávnění v systému Android Q, aby uživatelům usnadnil správu úrovně přístupu aplikací na jejich zařízení.
Snazší správa oprávnění v systému Android Q versus Android Pie
Od Androidu 6.0 Marshmallow po Android 9 Pie umožňuje stávající správa oprávnění za běhu uživateli pouze povolit nebo odepřít aplikaci určitá oprávnění. V našem předchozím článku jsme poznamenali, že Android Q umožní uživateli omezit oprávnění pouze během používání aplikace. Tato funkce nadchla mnoho lidí, ale to musíme objasnit pouze oprávnění k poloze lze omezit na dobu, kdy se aplikace používá. To znamená, že nemůžete omezit mikrofon nebo kameru pouze během používání aplikace. Neměli byste tím být zklamáni, protože Android Pie již existuje představil některá omezení použití na pozadí Fotoaparát a mikrofon tím, že vyžaduje, aby aplikace byly v popředí nebo aby využívaly službu na popředí. Android Q to navíc rozšiřuje o sdělování uživateli, kdykoli jakákoli aplikace používá mikrofon, kameru nebo přistupuje k poloze zařízení. To se uživateli zobrazí jako ikony stavového řádku v pravém horním rohu. Když je stavový řádek rozbalen, text zobrazený vedle ikon informuje uživatele, která aplikace aktuálně používá jedno z těchto 3 citlivých oprávnění. Nakonec, pokud uživatel klepne na tuto ikonu, zobrazí se dialogové okno, které uživateli sdělí, která aplikace (aplikace) používá která oprávnění. Opět to platí pouze pro oprávnění ke kameře, poloze a mikrofonu.
Zdá se, že Google nabádá uživatele, aby omezili přístup k poloze pouze tehdy, když je aplikace používána, protože se připomenutí v Android Q, když uživatel udělil aplikaci, aby měla vždy přístup k jeho poloze. Toto připomenutí přichází ve formě oznámení, které uživateli sděluje, že aplikace používá jeho polohu a že má vždy možnost tak učinit. Klepnutím na oznámení se dostanete na stránku oprávnění k poloze pro danou aplikaci, přičemž uživateli umožníte omezit oprávnění k poloze pouze v době, kdy je tato aplikace používána. Díky za to, Google.
A konečně, v sestavení, které mám, se uživatelské rozhraní pro speciální přístupová oprávnění aplikací (jako je optimalizace baterie, správce zařízení, přístup k Nerušit, přístup k oznámení atd.) nezměnilo. Do seznamu však bylo přidáno nové zvláštní oprávnění „Financial Apps SMS Access“, i když si nejsem jistý, jak liší se od oprávnění „Prémiový přístup k SMS“, což je to, co aplikace potřebují k odesílání textových zpráv prémiovému čísla. Je možné, že toto nové oprávnění je určeno pro bankovní aplikace, které používají SMS pro určité transakce, v souladu s Nové zásady Google Play omezení oprávnění SMS a Call Log.
Správa oprávnění v systému Android Q
Zde je galerie snímků obrazovky ukazující nové změny rozhraní správy oprávnění v systému Android Q. Do popisků každého obrázku jsem zahrnul podrobné popisy každé stránky.
Udělení oprávnění v systému Android Q
Zde jsou snímky obrazovky ukazující správu oprávnění za běhu v systému Android Q. Už jsme mluvili o tom, co ukazují první dva snímky obrazovky, ale třetí snímek obrazovky je zcela nová funkce systému Android Q, o které jsem dříve nemluvil. Schopnost systému Android umožnit uživateli ovládat oprávnění před spuštěním starší aplikace (definovaná jako úroveň API pro cílení aplikací < 23) je něco, co je již možné v Android Pie s správná konfigurace, ale Google konečně přepnul přepínač a povolil jej v systému Android Q.
Sledování oprávnění v systému Android Q v reálném čase
Zde jsou snímky obrazovky, které ukazují, jak Android Q upozorní uživatele, když aplikace přistupuje k jednomu z několika citlivých/nebezpečných oprávnění, včetně fotoaparátu, polohy a mikrofonu.
Nová omezení přístupu ke schránce, přístupu k externím souborům
Omezení přístupu do schránky na pozadí
Ve svém předchozím článku jsem si všiml nového oprávnění v rámci systému Android Q, které naznačovalo, že nesystémové aplikace běžící na pozadí již nebudou moci číst systémovou schránku. Poté, co jsme zprovoznili Obchod Google Play, rozhodl jsem se nainstalovat několik oblíbených aplikací pro správu schránky, jako je Správce schránky, Klipr, a Zásobník klipů abych vyzkoušel, zda jsem měl pravdu. Ať už je to dobré nebo špatné, Google blokuje přístup do schránky na pozadí v systému Android Q, as žádná z testovaných aplikací nedokázala detekovat žádný text, který jsem zkopíroval do schránky. Dokonce jsem potvrdil, že tyto aplikace mají „READ_CLIPBOARD
" povolení, které požadovali pomocí následujícího příkazu App Ops:
adb shell cmd appops query-op --user 0 READ_CLIPBOARD allow
Naštěstí kopírování a vkládání textu do a z jakékoli aplikace stále funguje, ale aplikace běžící na pozadí již nemohou číst text, který se kopíruje. Je příliš brzy na to říci, zda tato změna zabije aplikace správce schránky, protože existuje možnost, že Google zavede nové rozhraní API, které z aplikace udělá výchozí obslužný program „správce schránky“. Nevidím však žádné důkazy o tom, že by se to dělo v Androidu Q.
Přístup k souborům externího úložiště
Téměř vše o této změně jsem popsal ve svém dřívějším článku, ale zde je shrnutí toho, co Google mění v systému Android Q s ohledem na přístup k souborům z externího úložiště. Nejprve musíme definovat, co znamená „externí úložiště“. V systému Android je externí úložiště místo, kde jsou uloženy všechny soubory a složky, které můžete vidět po připojení telefonu k počítači, jako jsou Stažené soubory, DCIM, Hudba, Filmy a Obrázky. Aplikace mají ukládat pouze soubory na externí úložiště, ke kterým mohou chtít přistupovat jiné aplikace, jako je hudba, obrázky, videa, dokumenty atd.
Aby mohla aplikace přistupovat k souborům na externím úložišti, aplikace musí držet READ_EXTERNAL_STORAGE a/nebo WRITE_EXTERNAL_STORAGE oprávnění, což jsou obě oprávnění za běhu. Jakmile má aplikace tato oprávnění, neexistují žádná omezení ohledně toho, jaké soubory na externím úložišti může číst nebo upravovat. V systému Android Q rozděluje Google tato dvě oprávnění na podrobnější oprávnění, což umožňuje uživateli omezit aplikaci, aby mohla číst nebo zapisovat pouze určité typy souborů. Konkrétně nová oprávnění v Androidu Q umožní uživateli omezit aplikaci tak, aby mohla pouze:
- Přečtěte si místa z vašich médií.
- Čtení nebo zápis hudebních souborů.
- Čtení nebo zápis souborů fotografií/obrázků.
- Čtení nebo zápis video souborů.
Aplikace, které již bylo uděleno oprávnění READ_EXTERNAL_STORAGE před tím, než uživatel upgradoval na Androidu Q budou automaticky udělena oprávnění ke čtení uvedená výše, nikoli však oprávnění k zápisu oprávnění.
Přístup k poloze na pozadí
Loni reportáž z The New York Times objasnila všudypřítomnost aplikací sledujících polohu uživatelů za účelem prodeje inzerentům. Nesprávné sledování polohy je problém, o kterém si je Google dobře vědom sami z toho obviněni. Představen Android 8.0 Oreo omezení o tom, jak často mohou aplikace běžící na pozadí přistupovat k poloze zařízení. Žádosti o polohu z aplikací spuštěných na pozadí jsou silně omezeny, takže pokud aplikace chce sledovat vaši polohu pomocí jakéhokoli stupeň přesnosti, musí odhalit, že tak činí s viditelnou aktivitou nebo službou na popředí a trvalou oznámení.
Pokaždé, když Google změní způsob, jakým fungují základní rozhraní Android API, jsou ovlivněni vývojáři, jejichž aplikace oprávněně používaly tato rozhraní API, jak bylo zamýšleno. Nedávno jsme byli svědky toho, jak se to hrálo s omezeními Google Play na oprávnění SMS a Seznam hovorů, což vedlo k mnoha oblíbené aplikace ztrácejí klíčové funkce. Stejná situace nastala, když Google omezil přístup k poloze na pozadí s uživateli populární golfová aplikacestěžování si že ji už nemohli používat ke sledování svých výstřelů. Naštěstí Android Q přidává novýACCESS_BACKGROUND_LOCATION
", které, když je uděleno, vždy umožňuje aplikaci mít přístup k poloze zařízení, i když je aplikace spuštěna na pozadí. Nová verze Androidu tak bude nejen nadále chránit uživatele před nežádoucím přístupem k poloze na pozadí, ale také poskytne uživatelům mechanismus pro povolení aplikací. podle jejich výběru sledovat jejich polohu na pozadí.
Přidání „rolí“ v systému Android Q
U Daniela praktické video pro naše YouTube kanál XDA TV, možná jste ho slyšeli zmínit novou sekci „Role“ v nastavení výchozích aplikací (Nastavení --> Aplikace a upozornění --> Výchozí aplikace). Jediné „role“, které byly ve videu zobrazeny, byly pro Prohlížeč, Telefon a Zprávy, což se zdálo nadbytečné, protože již existují výchozí kategorie aplikací pro prohlížeč, telefonní aplikace a SMS aplikace. Poté, co jsem strávil nějaký čas s Androidem Q na Pixel 3 XL, objevil jsem službu „role“, u které jsem mohl vypsat stav pomocí „dumpsys role
'příkaz. Poté jsem našel několik „rolí“, které neodpovídají žádné z již existujících výchozích kategorií aplikací: CAR_MODE_DIALER_APP
, CALL_COMPANION_APP
, CALL_SCREENING_APP
, a PROXY_CALLING_APP
. Po instalaci několika aplikací první strany od Googlu se mi podařilo zobrazit „aplikaci pro telefon v režimu auta“ a „aplikaci pro kontrolu hovorů“ na stránkách „rolí“, jak je uvedeno níže.
Dekompiloval jsem nový systémový soubor APK zodpovědný za rozhraní správy oprávnění Android Q, novou aplikaci s názvem "PermissionController" a našel soubor roles.xml, který naznačuje, co budou "role" dělat v příštím Androidu verze. Nebudu sem vkládat celé XML, ale podělím se o úryvek jedné z rolí, který by vám měl pomoci pochopit, co budou role dělat.
Řekněme, že vyberu aplikaci, která bude mít roli „galerie“. Aby se aplikace zobrazila jako platná aplikace galerie, musí mít jednu požadovanou součást: aktivitu, která se spouští pomocí filtrů záměrů akcí a kategorií. android.intent.action.MAIN
a android.intent.category.APP_GALLERY
respektive. Pokud je to pravda a aplikaci uživatel přidělí roli „galerie“, bude aplikaci automaticky udělena oprávnění v sadě oprávnění „media_visual“, která podle mého názoru odkazuje na nové oprávnění pro zvuk, video a obrázky, které jsem popsal dříve. Ve skutečnosti nový WRITE_MEDIA_VIDEO
a WRITE_MEDIA_IMAGES
oprávnění jsou výslovně povolena pro aplikaci s rolí „galerie“. Nakonec se aplikace stane preferovaným obslužným nástrojem, když jiná aplikace odešle záměr zavolat aplikaci galerie.
V zásadě platí, že každé aplikaci, které je udělena určitá „role“ a má deklarované požadované komponenty a oprávnění, jsou automaticky uděleny další sady oprávnění relevantní pro jejich případy použití. V příkladu, který jsem zveřejnil výše, je aplikaci s „rolí“ galerie automaticky uděleno oprávnění k sadám oprávnění souvisejících s přístupem k souborům, které potřebuje, aby fungovala. Pravděpodobně to znamená, že aplikace, které uživatel udělil roli galerie, nebude muset uživatele žádat o povolení ke čtení nebo zápisu souborů obrázků nebo videí.
Soudě podle jmen CAR_MODE_DIALER_APP
, CALL_COMPANION_APP
, CALL_SCREENING_APP
, a PROXY_CALLING_APP
role umožní uživateli vybrat si jinou aplikaci vytáčení, když řídí, aplikaci pro provádění různých funkcí, když je uživatel v telefonní hovor, aplikace pro prověřování telefonních hovorů předtím, než je uživatel zvedne, a aplikace pro usnadnění volání na číslo zprostředkovatele, respektive. Nevěříme, že role prověřování hovorů přímo souvisí s Google Pixel Obrazovka volajícího funkce, soudě podle toho, co jsme viděli v AOSP. Spíše je určen pro aplikace, které chtějí fungovat jako vyhazovač pro spamové hovory, jako je filtr hovorů.
Přepracovaný instalační balíček
Výchozí instalátor balíčků pro Android (aplikace, která zpracovává instalaci nových aplikací) prochází přepracováním. Spíše než zobrazení aktivity na celé obrazovce, kdykoli chcete nainstalovat novou aplikaci, aktualizovaný instalační program balíčku v Androidu Q zobrazí malý dialog uprostřed obrazovky. Toto uživatelské rozhraní pro instalaci mini balíčků se pro tablety Android používá již dlouhou dobu, ale toto je první, co jej vidíme na chytrých telefonech Android.
V systému Android Q se při spuštění jakékoli aplikace cílené na rozhraní API úrovně 22 nebo nižší (Android 5.0 Lollipop) zobrazí varování, že aplikace je zastaralá. Domnívám se, že toto varování je dostatečné k tomu, aby odradilo většinu uživatelů od toho, aby se obtěžovali aplikacemi zaměřenými na verze starší než Android Marshmallow. Spojte to se skutečností, že Google bude vyžadovat, aby cílily všechny aplikace odeslané do Obchodu Play po srpnu 2019 API úrovně 28, můžete vidět, jak jsou vývojáři se zastaralými aplikacemi nuceni přepracovat své aplikace tak, aby cílily na novější API úroveň. Jak to všechno souvisí s novým instalačním programem balíčku? Vzhledem k tomu, že Android 5.0 Lollipop je poslední úrovní API bez povinných žádostí o povolení běhu pro určitá citlivá oprávnění, případná smrt cílení aplikací Úroveň API 22 a nižší znamená, že Google již nemusí vytvářet místo ve zprávě instalačního programu balíčku, aby mohl zobrazovat dlouhý seznam oprávnění, která jsou aplikaci udělena. instalace.
Tento zjednodušený instalační program však pravděpodobně neuvidíte na všech zařízeních Android Q. Huawei například přizpůsobuje instalátor balíčků pomocí vestavěného skeneru virů a malwaru (něco, co nesnáším) a také vestavěný správce oprávnění (něco, co miluji.) EMUI 10 se proto pravděpodobně bude držet celoobrazovkového instalátoru balíčků, jsme všichni bývalo.
Nové možnosti blokování hovorů
Funkce mysleli jsme, že přichází v Android Pie se skutečně dostal do Androidu Q a ukazuje vám, jak blízko jsme ve skutečnosti k dokončení základních funkcí Androidu Q. Funkce, kterou jsme tehdy našli, vám umožní blokovat hovory z neznámých, soukromých, placených telefonních čísel nebo jakýchkoli čísel, která nejsou ve vašem seznamu kontaktů. Zde je snímek obrazovky funkce z aplikace AOSP dialer. Aplikace Google Phone zatím nebyla o tuto funkci aktualizována, ale předpokládáme, že ji někdy brzy dostane.
Všechny nainstalované aplikace nyní zobrazují ikony spouštěče (možná chyba?)
Většina aplikací ve vašem zařízení má spouštěcí ikony, protože jsou určeny jako brány do jejich uživatelského rozhraní. Ne každá aplikace však má uživatelské rozhraní, v takovém případě se vývojář může rozhodnout nedeklarovat aktivitu pomocí filtrů záměrů akcí a kategorií. android.intent.action.MAIN
a android.intent.category.LAUNCHER
respektive. Nejsem si jistý, zda je to jen chyba, ale v Androidu Q všechny aplikace, dokonce i ty, které se snaží skrýt své spouštěcí ikony výše popsaným způsobem, zobrazí ikony ve spouštěči. Testoval jsem to na sériovém spouštěči AOSP, Pixel Launcher a Nova Launcher na Google Pixel 3 XL se systémem uniklé sestavení Androidu Q a porovnal jej s Google Pixel 2 XL s nejnovějším Androidem 9 Pie stavět. Když klepnete na jednu z těchto ikon, jednoduše se dostanete na informační stránku dané aplikace v Nastavení.
Pokud to není jen chyba, pak by to byl způsob, jak by uživatelé mohli rychle zjistit, zda byla nainstalována nová aplikace, i když se tato aplikace snaží před uživatelem skrýt.
Dlaždice Rychlé nastavení „Sensors Off“.
K dispozici je nová dlaždice Rychlé nastavení s názvem „Sensors off“, která nejen zapíná režim v letadle, ale také deaktivuje všechny údaje ze senzorů na zařízení. Potvrdil jsem to instalací DevCheck z XDA Recognized Developer flar2 a porovnávání výstupu naměřených hodnot senzoru s přepínačem „Sensors off“ a bez něj. Když je dlaždice „Sensors off“ zapnutá, zařízení přestane hlásit ze všech senzorů v zařízení. Nejsem si jistý, zda je tato dlaždice Rychlé nastavení určena pouze k ladění inženýrů Google, ale bylo by to a užitečná funkce pro každého, kdo se skutečně zajímá o to, jaká data o nich jejich zařízení shromažďuje životní prostředí.
Cena: Zdarma.
4.6.
Více o Androidu Q
To je vše, co se týká ochrany osobních údajů a oprávnění, co jsem zatím v Androidu Q našel. Zůstaňte naladěni na můj poslední článek pokrývající všechna menší vylepšení uživatelského rozhraní a UX. Sledujte naše Značka Android Q pro více takových článků. Zde je odkaz na některé články, na které jsem se vracel častěji, a také na několik dalších, o kterých si myslím, že byste si je měli přečíst:
- Exkluzivní: Rané sestavení Androidu Q obsahuje tmavé téma pro celý systém, vylepšení oprávnění, tipy na „režim počítače“ a další
- Exkluzivně: Google pracuje na funkci podobné Face ID pro Android Q
- Android Q může blokovat čtení ze schránky na pozadí, lépe chránit vaše mediální soubory, podporovat downgrade aplikací a další
- Android Q může být dodáván s novými překryvnými vrstvami Font, Icon Shape a Accent Color
- „Dynamic Android“ může vývojářům umožnit testovat AOSP GSI na jakémkoli zařízení Android Q
- Tmavý režim Androidu Q: Jak se příští operační systém Android od Googlu vypořádá s oslnivě světlými tématy