Android 11 znepříjemňuje používání Fotek Google, ale může existovat náprava

Díky Scoped Storage je pro Android 11 na určitých zařízeních trochu nepohodlné mazání obrázků ve Fotkách Google, ale může dojít k nápravě.

Nemáme způsob, jak zjistit, kolik zařízení na trhu používá Android 11 od Googlu již nezveřejňuje statistiky distribuce, ale pravděpodobně se nyní jedná o desítky milionů, kterým společnosti jako Xiaomi a Samsung měly čas aktualizaci prosadit mnoho jejich modelů. Pokud vaše zařízení používá Android 11 a používáte Fotky Google, je možné, že jste narazili na poměrně nepříjemnou změnu ve způsobu, jakým aplikace zpracovává mazání a obnovu obrázků. Namísto prostého výběru obrázků a videí, které chcete smazat, klepněte na ikonu koše a poté klepněte na „přesunout do koše“, nyní budete muset klepnout na další výzvu, abyste dali Fotkám Google povolení k odstranění nebo obnovení vašeho soubory.

Pro ty z vás, kteří pořizují hodně fotek a videí, může být nepříjemné udělit Fotkám Google povolení k odstranění nebo obnovení souboru. A jak podotkl AndroidPoliceklepnutí na další tlačítko není jediným problémem, se kterým se možná budete muset vypořádat. Pokud používáte Fotky Google na jiném zařízení a chcete upravit nebo vyhodit do koše soubor, který jste nahráli z telefonu se systémem Android 11, aplikace vás může požádat o kontrolu „nesynchronizovaných změn“. To může být rychle nepříjemné, pokud vás Fotky Google stále žádají o kontrolu změn, které jste právě provedli na jiné platformě.

Další krok k odstranění nebo obnovení souboru nebyl vyžadován v Androidu 10, ale nyní je vyžadován v Androidu 11 kvůli vynucení Scoped Storage. Před Scoped Storage byl přístup k celému adresáři externího úložiště spravován jediným povolení, takže je pro vás obtížné omezit, jaké aplikace mohou přistupovat k vašim soukromým dokumentům, obrázkům nebo videa. Díky funkci Scoped Storage omezuje Android, jak velký přístup může mít aplikace k citlivým souborům bez výslovného souhlasu uživatele. Další podrobnosti najdete na Scoped Storage v tomto článku nebo se podívejte na obrázek Google níže, kde najdete souhrn změn.

Zatímco byli zaneprázdněni omezováním přístupu k úložišti v systému Android 11, Google také vylepšoval stávající rozhraní API, aby zlepšil uživatelský dojem. Například aplikace cílené na Android 11 mohou používat MediaStore API vyhodit soubor do koše, než jej odstranit. Aby však bylo možné přesunout soubor do koše, aplikace musí vyzve uživatele, aby mu udělil přístup pro zápis. Protože většina obrázků a videí, které přidáte do Fotek Google z telefonu, pochází z jiné aplikace – jako je například aplikace pro fotoaparáty – Fotky musí požádat o povolení, než budou moci přesunout soubor do nebo z odpadky. Pokud však používáte telefon Pixel s nainstalovaným Androidem 11, Fotky Google nepožadují povolení vyhodit soubory do koše. Požaduje však povolení v podstatě na každém druhém zařízení se systémem Android 11, včetně většiny zařízení Samsung, Xiaomi, OnePlus a ASUS. Co dává?

Důvodem je, že aplikace systémové galerie nepodléhá omezením Scoped Storage. To znamená, že aplikace Galerie akcií může otevírat, upravovat nebo mazat obrázky a videa bez výslovného povolení. Fotky Google jsou přednastaveny jako systémová aplikace galerie na telefonech Pixel, ale většina výrobců OEM si místo toho přednastaví vlastní aplikaci galerie. Kromě toho neexistuje žádné uživatelské nastavení pro změnu aplikace systémové galerie, a to ani na obrazovce „výchozích aplikací“ systému Android. Nicméně, tam je skrytý způsob, jak změnit aplikaci systémové galerie, ale jeden existuje velký upozornění: Jako aplikaci systémové galerie lze nastavit pouze systémovou aplikaci. To znamená, že pouze telefony již mají Fotky Google předinstalované jako systémovou aplikaci může využít tento trik.

Toto kritérium nesplňuje mnoho telefonů, ale na základě našeho testování, můžeme to potvrdit funguje na většině telefonů OnePlus a některých ASUS. Tato metoda nefungovala na žádném z telefonů Samsung, na kterých jsme ji testovali, a také nefungovala na Xiaomi Mi 10 Pro. Pokud máte přístup root nebo používáte vlastní ROM, může tato metoda na vašem zařízení fungovat po systematizaci aplikace Fotky Google, ale tuto metodu jsme testovali pouze na standardních zařízeních.

Jak (možná) udělat z Fotek Google aplikaci systémové galerie

Poděkování patří Kieron Quinn (Quinny899 na XDA fórech) za sdílení tohoto triku!

První věc, kterou musíte udělat, je nainstalovat ADB na váš počítač. Máme pro vás aktualizovaný návod, jak na to tady. Po nastavení ADB zadejte následující příkaz:

adbshellcmdroleadd-role-holderandroid.app.role.SYSTEM_GALLERYcom.google.android.apps.photos

Pokud nevidíte chybu, pravděpodobně to fungovalo! Fungování můžete rychle ověřit tak, že vyfotíte fotku a pokusíte se ji smazat ve Fotkách Google. Případně můžete spustit následující příkaz:

adb shell dumpsys role

...a zkontrolujte, zda "držitel" "android.app.role. SYSTEM_GALLERY“ je „com.google.android.apps.photos“ (název balíčku Fotek Google).

Pokud váš výstup odpovídá textu zvýrazněnému v červeném obdélníku, fungovalo to.

Co tento příkaz dělá?

Android 10 přidal a nové API s názvem „Roles". Když má aplikace určitou roli, je jí automaticky udělen přístup k určitým oprávněním. Například, Role SYSTEM_GALLERY automaticky uděluje aplikaci plný přístup pro čtení a zápis ke všem souborům obrázků a videí na externím úložišti, včetně přístupu k umístění metadata." Roli SYSTEM_GALLERY lze udělit pouze systémovým aplikacím a její výchozí držitel je definován systémem Android konfigurační hodnota "config_systemGallery." Jak jsme vysvětlili dříve, většina výrobců OEM přednastavuje tuto hodnotu na název balíčku, který odpovídá jejich vlastní aplikace galerie. Tuto hodnotu nelze změnit bez úpravy rámce nebo instalace překryvné vrstvy, přičemž obojí vyžaduje přístup root.

Nicméně, to je možné přidat další aplikaci jako držitele role SYSTEM_GALLERY, ale pouze pokud je tato aplikace také systémovou aplikací. To je možné na mnoha telefonech OnePlus a některých telefonech ASUS, protože tito výrobci OEM zdánlivě předinstalovali Fotky Google spíše na úrovni systému než na úrovni uživatele. Z tohoto důvodu je aplikace Fotky Google způsobilá zastávat roli SYSTEM_GALLERY a my toho využíváme skrytého rozhraní prostředí RoleManager systému Android, které mu udělí přístup k oprávněním, která normálně být nemohou uděleno. Pokud se pokusíte udělit roli SYSTEM_GALLERY nesystémové aplikaci, zobrazí se v logcat následující chyba:

ERoleControllerServiceImpl: Packagedoesnotqualifyfortherole, package: com.google.android.apps.photos, role: android.app.role.SYSTEM_GALLERY

Bohužel jsme nenašli způsob, jak toto omezení obejít, ale pokud ano, podělíme se o naši metodu s komunitou. Samozřejmě bychom preferovali, aby Google jednoduše učinil roli SYSTEM_GALLERY uživatelsky definovatelnou, nikoli omezenou na výběr OEM.