Android 11 čini Google Photos neugodnim za korištenje, ali možda postoji popravak

Zahvaljujući Scoped Storageu, Android 11 na određenim uređajima čini pomalo nezgodnim brisanje slika u Google fotografijama, ali možda postoji rješenje.

Ne možemo znati koliko uređaja na tržištu pokreće Android 11 od Googlea više ne objavljuje statistiku distribucije, ali sada vjerojatno postoje deseci milijuna za koje su tvrtke poput Xiaomija i Samsunga imale vremena progurati ažuriranje mnogi njihovi modeli. Ako vaš uređaj pokreće Android 11 i koristite Google Photos, postoji mogućnost da ste naišli na prilično neugodnu promjenu u načinu na koji aplikacija obrađuje brisanje i vraćanje slika. Umjesto jednostavnog odabira slika i videozapisa koje želite izbrisati, pritisnite ikonu kante za smeće, a zatim dodirnite "premjesti u smeće", sada ćete morati dodirnuti dodatni upit kako biste Google fotografijama dali dopuštenje za brisanje ili vraćanje vašeg datoteke.

Za one od vas koji snimaju puno fotografija i videozapisa, možda će biti neugodno da Google Photos moraju dati dopuštenje za brisanje ili vraćanje datoteke. I kako je istaknuo

AndroidPolice, dodirivanje dodatnog gumba nije jedini problem s kojim ćete se možda morati suočiti. Ako koristite Google Photos na drugom uređaju i želite urediti ili baciti datoteku koju ste prenijeli sa svog telefona s Androidom 11, aplikacija može tražiti da pregledate "promjene koje nisu sinkronizirane". To brzo može postati neugodno ako vas Google Photos neprestano traži da pregledate promjene koje ste upravo napravili na drugoj platformi.

Dodatni korak za brisanje ili vraćanje datoteke nije bio potreban u Androidu 10, ali sada je potreban u Androidu 11 zbog primjene Scoped Storage. Prije Scoped Storagea, pristupom cijelom vanjskom direktoriju za pohranu upravljao je jedan dopuštenje, što vam otežava ograničavanje aplikacija koje mogu pristupiti vašim privatnim dokumentima, slikama ili videa. Uz postavljenu Scoped Storage, Android ograničava koliko aplikacija može imati pristup osjetljivim datotekama bez izričitog pristanka korisnika. Više detalja možete pronaći na Scoped Storage u ovom članku ili pogledajte Googleovu grafiku ispod za sažetak promjena.

Dok su bili zauzeti ograničavanjem pristupa pohrani u Androidu 11, Google je također poboljšavao postojeće API-je kako bi poboljšao korisničko iskustvo. Na primjer, aplikacije koje ciljaju Android 11 mogu koristiti MediaStore API za bacite datoteku u smeće umjesto da je izbrišete. Da bi se datoteka premjestila u smeće, aplikacija to mora učiniti zatražiti od korisnika da mu odobri pristup pisanja. Budući da većina slika i videozapisa koje dodate u Google fotografije sa svog telefona dolazi iz druge aplikacije — kao što je standardna aplikacija za kameru — Photos mora tražiti dopuštenje prije nego što može premjestiti datoteku na ili s otpad. Međutim, Google Photos ne traži dopuštenje za bacanje datoteka u smeće ako koristite Pixel telefon s instaliranim Androidom 11. Međutim, traži dopuštenje na gotovo svakom drugom uređaju s Androidom 11, uključujući većinu Samsung, Xiaomi, OnePlus i ASUS uređaja. Što daje?

Razlog je taj što aplikacija galerije sustava nije podvrgnuta ograničenjima Scoped Storage. To znači da aplikacija Stock Gallery može otvarati, uređivati ​​ili brisati slike i videozapise bez izričitog dopuštenja. Google Photos unaprijed je postavljen kao aplikacija galerije sustava na Pixel telefonima, ali većina OEM-a umjesto toga unaprijed postavlja vlastitu aplikaciju galerije. Nadalje, nema korisničkih postavki za promjenu aplikacije galerije sustava, čak ni na Androidovom zaslonu "zadanih aplikacija". Međutim, tamo je skriveni način za promjenu aplikacije galerije sustava, ali postoji jedan velik upozorenje: Samo aplikacija sustava može se postaviti kao aplikacija galerije sustava. To znači samo telefone koji već imate Google fotografije unaprijed instalirane kao sistemsku aplikaciju može iskoristiti ovaj trik.

Nema mnogo telefona koji ispunjavaju ovaj kriterij, ali na temelju našeg testiranja, možemo to potvrditi radi na većini OnePlus i nekim ASUS telefonima. Ova metoda nije radila ni na jednom Samsung telefonu na kojem smo je testirali, a nije radila ni na Xiaomi Mi 10 Pro. Ako imate root pristup ili koristite prilagođeni ROM, ova metoda može funkcionirati na vašem uređaju nakon što sistematizirate aplikaciju Google Photos, ali ovu smo metodu testirali samo na standardnim uređajima.

Kako (možda) učiniti Google Photos aplikacijom za galeriju sustava

Zasluge idu Kieronu Quinnu (Quinny899 na XDA forumima) za dijeljenje ovog trika!

Prvo što morate učiniti je instalirati ADB na svoje računalo. Imamo ažurirani vodič o tome kako to učiniti ovdje. Nakon što postavite ADB, unesite sljedeću naredbu:

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

Ako ne vidite pogrešku, vjerojatno je radilo! Možete brzo potvrditi da radi tako da snimite fotografiju i pokušate je izbrisati u Google fotografijama. Alternativno, možete pokrenuti sljedeću naredbu:

adb shell dumpsys role

...i provjerite je li "nositelj" "android.app.role. SYSTEM_GALLERY" je "com.google.android.apps.photos" (naziv paketa Google fotografija).

Ako se vaš rezultat podudara s tekstom istaknutim u crvenom pravokutniku, onda je uspio.

Što ova naredba radi?

Android 10 dodao je a novi API pod nazivom "Uloge". Kada aplikacija ima određenu ulogu, automatski joj se dodjeljuje pristup određenim dopuštenjima. Na primjer, uloga SYSTEM_GALLERY automatski daje aplikaciji "potpuni pristup za čitanje i pisanje svim slikovnim i video datotekama na vanjskoj pohrani, uključujući pristup lokaciji metapodataka." Uloga SYSTEM_GALLERY može se dodijeliti samo sistemskim aplikacijama, a njezinog zadanog nositelja definira Android konfiguracijska vrijednost "config_systemGallery." Kao što smo ranije objasnili, većina OEM-a unaprijed postavlja ovu vrijednost na naziv paketa koji odgovara njihovom aplikacija vlastite galerije. Ova se vrijednost ne može promijeniti bez izmjene okvira ili instaliranja sloja, a oboje zahtijevaju root pristup.

Međutim, to je moguće dodati drugu aplikaciju kao nositelja uloge SYSTEM_GALLERY, ali samo ako je ta aplikacija također aplikacija sustava. To je moguće na mnogim OnePlus i nekim ASUS telefonima jer su ti OEM-ovi naizgled unaprijed instalirali Google Photos na razini sustava, a ne na razini korisnika. Zbog toga aplikacija Google Photos ispunjava uvjete za držanje uloge SYSTEM_GALLERY, a mi koristimo prednost Androidovog skrivenog sučelja ljuske RoleManager kako bi mu se omogućio pristup dopuštenjima koja inače ne mogu biti odobreno. Ako pokušate dodijeliti ulogu SYSTEM_GALLERY aplikaciji koja nije sustav, vidjet ćete sljedeću pogrešku u logcatu:

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

Nažalost, nismo pronašli način da zaobiđemo ovo ograničenje, ali ako nađemo, podijelit ćemo našu metodu sa zajednicom. Naravno, radije bismo da Google jednostavno ulogu SYSTEM_GALLERY učini korisnički definiranom umjesto da je ograniči na izbor OEM-a.