Tack vare Scoped Storage gör Android 11 på vissa enheter det lite obekvämt att ta bort bilder i Google Photos, men det kan finnas en åtgärd.
Vi har inget sätt att veta hur många enheter på marknaden som kör Android 11 sedan Google publicerar inte längre distributionsstatistik, men det finns förmodligen tiotals miljoner nu när företag som Xiaomi och Samsung har hunnit driva uppdateringen till många av deras modeller. Om din enhet kör Android 11 och du använder Google Photos, finns det en chans att du har stött på en ganska irriterande förändring med hur appen hanterar bildradering och återställning. Istället för att bara välja de bilder och videor du vill radera, trycker du på papperskorgen och trycker sedan på "flytta till papperskorgen", måste du nu trycka igenom en extra uppmaning för att ge Google Foto tillåtelse att radera eller återställa din filer.
För dig som tar många foton och filmer kan det vara irriterande att behöva ge Google Photos tillåtelse att radera eller återställa en fil. Och som påpekats av
AndroidPolice, att trycka på en extra knapp är inte det enda problemet du kan behöva ta itu med. Om du använder Google Foto på en annan enhet och vill redigera eller kassera en fil som du laddat upp från din telefon som kör Android 11, kan appen be dig att granska "osynkroniserade ändringar". Det kan snabbt bli irriterande om Google Foton fortsätter att be dig granska ändringar du just gjort på en annan plattform.Det extra steget att ta bort eller återställa en fil krävdes inte i Android 10 men krävs nu i Android 11 på grund av tillämpningen av Scoped Storage. Innan Scoped Storage hanterades åtkomst till hela den externa lagringskatalogen av en enda tillstånd, vilket gör det svårt för dig att begränsa vilka appar som kan komma åt dina privata dokument, bilder eller videoklipp. Med Scoped Storage på plats begränsar Android hur mycket åtkomst en app kan ha till känsliga filer utan uttryckligt användarmedgivande. Du kan hitta mer information om Scoped Storage i den här artikeln eller titta på Googles grafik nedan för en sammanfattning av ändringarna.
Medan de var upptagna med att begränsa åtkomst till lagring i Android 11, förbättrade Google också befintliga API: er för att förbättra användarupplevelsen. Till exempel kan appar som är inriktade på Android 11 använda MediaStore API för att kasta en fil istället för att radera den. För att kunna flytta en fil till papperskorgen måste appen göra det uppmana användaren att ge den skrivåtkomst. Eftersom de flesta bilder och videor du lägger till i Google Foto från din telefon kom från en annan app — till exempel stockkameraappen — Foton måste be om tillstånd innan den kan flytta en fil till eller från skräp. Google Photos ber dock inte om tillåtelse att kasta filer om du använder en Pixel-telefon med Android 11 installerad. Den ber dock om tillstånd på i princip alla andra enheter som kör Android 11, inklusive de flesta Samsung-, Xiaomi-, OnePlus- och ASUS-enheter. Vad ger?
Anledningen är att systemgalleriappen inte är föremål för begränsningar för Scoped Storage. Det betyder att stockgalleriappen kan öppna, redigera eller radera bilder och videor utan uttryckligt tillstånd. Google Photos är förinställt som systemgalleriappen på Pixel-telefoner, men de flesta OEM-tillverkare förinställer sin egen galleriapp istället. Dessutom finns det ingen användarvänd inställning för att ändra systemgalleriappen, inte ens på Androids "standardappar"-skärm. Däremot är ett dolt sätt att ändra systemgalleriappen, men det finns ett stor varning: Endast en systemapplikation kan ställas in som systemgalleriappen. Det betyder bara telefoner som redan har Google Foton förinstallerat som en systemapp kan dra nytta av detta trick.
Inte många telefoner uppfyller detta kriterium, men baserat på våra tester, vi kan bekräfta detta fungerar på de flesta OnePlus och vissa ASUS-telefoner. Den här metoden fungerade inte på någon av Samsung-telefonerna vi testade den på, och den fungerade inte heller på en Xiaomi Mi 10 Pro. Om du har root-åtkomst eller kör en anpassad ROM kan den här metoden fungera på din enhet efter att du har systematiserat Google Foto-appen, men vi testade bara den här metoden på lagerenheter.
Hur man (kanske) gör Google Foto till systemgalleriappen
Krediter går till Kieron Quinn (Quinny899 på XDA-forumen) för att dela detta trick!
Det första du behöver göra är att installera ADB på din PC. Vi har en uppdaterad guide om hur man gör det här. När du har installerat ADB anger du följande kommando:
adbshellcmdroleadd-role-holderandroid.app.role.SYSTEM_GALLERYcom.google.android.apps.photos
Om du inte ser något fel så har det förmodligen fungerat! Du kan snabbt verifiera att det fungerade genom att ta ett foto och sedan försöka ta bort det i Google Foto. Alternativt kan du köra följande kommando:
adb shell dumpsys role
...och kontrollera om "innehavaren" av "android.app.role. SYSTEM_GALLERY" är "com.google.android.apps.photos" (paketnamnet för Google Foto).
Vad gör detta kommando?
Android 10 lade till en nytt API som heter "Roles". När en app har en viss roll ges den automatiskt åtkomst till vissa behörigheter. Till exempel SYSTEM_GALLERY roll ger automatiskt en app "full läs- och skrivåtkomst till alla bild- och videofiler på extern lagring, inklusive åtkomst till plats metadata." Rollen SYSTEM_GALLERY kan endast beviljas till systemapplikationer, och dess standardinnehavare definieras av Android konfigurationsvärdet "config_systemGallery." Som vi förklarade tidigare förinställer de flesta OEM-tillverkare detta värde till paketnamnet som motsvarar deras egen galleriapp. Detta värde kan inte ändras utan att antingen modifiera ramverket eller installera en överlagring, som båda kräver root-åtkomst.
Men det är möjligt att lägga till en annan app som innehavare av rollen SYSTEM_GALLERY, men bara om den appen också är en systemapp. Detta är möjligt på många OnePlus och vissa ASUS-telefoner eftersom dessa OEM-tillverkare till synes förinstallerade Google Photos på systemnivå snarare än på användarnivå. På grund av detta är Google Foto-appen kvalificerad att inneha rollen SYSTEM_GALLERY, och vi utnyttjar av Androids dolda RoleManager-skalgränssnitt för att ge det åtkomst till behörigheter som det normalt inte kan vara beviljas. Om du försöker tilldela rollen SYSTEM_GALLERY till en app som inte är i systemet, ser du följande fel i logcat:
ERoleControllerServiceImpl: Packagedoesnotqualifyfortherole, package: com.google.android.apps.photos, role: android.app.role.SYSTEM_GALLERY
Tyvärr har vi inte hittat någon väg runt denna begränsning, men om vi gör det kommer vi att dela vår metod med samhället. Naturligtvis skulle vi föredra att Google helt enkelt gör rollen SYSTEM_GALLERY användardefinierbar snarare än begränsad till OEM: s val.