Dankzij Scoped Storage maakt Android 11 het op bepaalde apparaten een beetje lastig om afbeeldingen in Google Foto's te verwijderen, maar er is mogelijk een oplossing.
We weten niet hoeveel apparaten op de markt sinds Google Android 11 gebruiken publiceert niet langer distributiestatistieken, maar het zijn er waarschijnlijk tientallen miljoenen nu bedrijven als Xiaomi en Samsung de tijd hebben gehad om de update door te voeren veel van hun modellen. Als uw apparaat Android 11 gebruikt en u Google Foto's gebruikt, bestaat de kans dat u een nogal vervelende verandering bent tegengekomen in de manier waarop de app omgaat met het verwijderen en herstellen van afbeeldingen. In plaats van eenvoudigweg de afbeeldingen en video's te selecteren die u wilt verwijderen, klikt u op het prullenbakpictogram en tikt u vervolgens op de knop 'verplaatsen' naar prullenbak"-knop, moet je nu door een extra prompt tikken om Google Foto's toestemming te geven om je foto's te verwijderen of te herstellen bestanden.
Voor degenen onder u die veel foto's en video's maken, kan het vervelend zijn om Google Foto's toestemming te moeten geven om een bestand te verwijderen of te herstellen. En zoals aangegeven door AndroidPolitie, is het tikken op een extra knop niet het enige probleem waarmee u te maken kunt krijgen. Als je Google Foto's op een ander apparaat gebruikt en een bestand dat je hebt geüpload vanaf je telefoon met Android 11 wilt bewerken of verwijderen, kan de app je vragen om 'niet-gesynchroniseerde wijzigingen' te controleren. Dat kan snel vervelend worden als Google Foto's je blijft vragen om wijzigingen te bekijken die je zojuist op een ander platform hebt aangebracht.
De extra stap om een bestand te verwijderen of te herstellen was niet vereist in Android 10, maar is nu vereist in Android 11 vanwege de handhaving van Scoped Storage. Vóór Scoped Storage werd de toegang tot de gehele externe opslagdirectory beheerd door één enkele toestemming, waardoor het moeilijk voor u wordt om te beperken welke apps toegang hebben tot uw privédocumenten, afbeeldingen of videos. Met Scoped Storage beperkt Android hoeveel toegang een app kan hebben tot gevoelige bestanden zonder expliciete toestemming van de gebruiker. Meer informatie vindt u op Scoped Storage in dit artikel of bekijk de onderstaande afbeelding van Google voor een samenvatting van de wijzigingen.
Terwijl ze bezig waren met het beperken van de opslagtoegang in Android 11, was Google ook bezig met het verbeteren van bestaande API's om de gebruikerservaring te verbeteren. Apps die zich richten op Android 11 kunnen bijvoorbeeld de MediaStore API gebruiken verwijder een bestand in plaats van het te verwijderen. Om een bestand naar de prullenbak te verplaatsen, moet de app dat wel doen vraag de gebruiker om schrijftoegang te verlenen. Omdat de meeste afbeeldingen en video's die u vanaf uw telefoon aan Google Foto's toevoegt, afkomstig zijn uit een andere app: zoals de stockcamera-app: Foto's moeten om toestemming vragen voordat een bestand van of naar de afval. Google Foto's vraagt echter niet om toestemming om bestanden te verwijderen als je een Pixel-telefoon gebruikt waarop Android 11 is geïnstalleerd. Het vraagt echter wel om toestemming op vrijwel elk ander apparaat met Android 11, inclusief de meeste Samsung-, Xiaomi-, OnePlus- en ASUS-apparaten. Wat geeft?
De reden is dat de systeemgalerij-app niet onderworpen is aan Scoped Storage-beperkingen. Dat betekent dat de stockgalerij-app afbeeldingen en video's kan openen, bewerken of verwijderen zonder expliciete toestemming. Google Foto's is vooraf ingesteld als de systeemgalerij-app op Pixel-telefoons, maar de meeste OEM's stellen in plaats daarvan hun eigen galerij-app in. Bovendien is er geen gebruikersgerichte instelling om de systeemgalerij-app te wijzigen, zelfs niet in het scherm "standaardapps" van Android. Echter, daar is een verborgen manier om de systeemgalerij-app te wijzigen, maar er is er één groot waarschuwing: alleen een systeemapplicatie kan worden ingesteld als de systeemgalerij-app. Dat betekent dat alleen telefoons dat doen Google Foto's al vooraf geïnstalleerd als systeemapp kunnen profiteren van deze truc.
Niet veel telefoons voldoen aan dit criterium, maar op basis van onze tests, wij kunnen dit bevestigen werkt op de meeste OnePlus en sommige ASUS-telefoons. Deze methode werkte op geen enkele Samsung-telefoon waarop we hem hebben getest, en ook niet op een Xiaomi Mi 10 Pro. Als je root-toegang hebt of een aangepast ROM gebruikt, werkt deze methode mogelijk op je apparaat nadat je de Google Foto's-app hebt gesystematiseerd, maar we hebben deze methode alleen getest op standaardapparaten.
Hoe u (misschien) van Google Foto's de systeemgalerij-app kunt maken
Credits gaan naar Kieron Quinn (Quinny899 op de XDA-forums) voor het delen van deze truc!
Het eerste dat u hoeft te doen, is ADB op uw pc installeren. We hebben een bijgewerkte handleiding over hoe u dat kunt doen hier. Nadat u ADB hebt ingesteld, voert u de volgende opdracht in:
adbshellcmdroleadd-role-holderandroid.app.role.SYSTEM_GALLERYcom.google.android.apps.photos
Als u geen fout ziet, heeft het waarschijnlijk gewerkt! Je kunt snel controleren of het werkt door een foto te maken en deze vervolgens te verwijderen in Google Foto's. Als alternatief kunt u de volgende opdracht uitvoeren:
adb shell dumpsys role
...en controleer of de "houder" van "android.app.role. SYSTEM_GALLERY" is "com.google.android.apps.photos" (de pakketnaam van Google Foto's).
Wat doet deze opdracht?
Android 10 heeft een toegevoegd nieuwe API genaamd "Roles". Wanneer een app een bepaalde rol heeft, krijgt deze automatisch toegang tot bepaalde rechten. Bijvoorbeeld de SYSTEM_GALLERY rol verleent een app automatisch volledige lees- en schrijftoegang tot alle beeld- en videobestanden op externe opslag, inclusief toegang tot locatie metadata." De rol SYSTEM_GALLERY kan alleen worden toegekend aan systeemapplicaties en de standaardhouder ervan wordt gedefinieerd door de Android configuratiewaarde "config_systemGallery." Zoals we eerder hebben uitgelegd, stellen de meeste OEM's deze waarde vooraf in op de pakketnaam die overeenkomt met hun eigen galerij-app. Deze waarde kan niet worden gewijzigd zonder het raamwerk te wijzigen of een overlay te installeren, waarvoor beide root-toegang vereisen.
Echter, het is Het is mogelijk om een andere app toe te voegen als houder van de rol SYSTEM_GALLERY, maar alleen als die app ook een systeemapp is. Dit is mogelijk op veel OnePlus- en sommige ASUS-telefoons omdat deze OEM's Google Photos schijnbaar vooraf op systeemniveau hebben geïnstalleerd in plaats van op gebruikersniveau. Hierdoor komt de Google Foto's-app in aanmerking voor de rol SYSTEM_GALLERY en profiteren wij hiervan van de verborgen RoleManager-shellinterface van Android om toegang te verlenen tot machtigingen die normaal gesproken niet mogelijk zijn toegekend. Als u probeert de rol SYSTEM_GALLERY toe te kennen aan een niet-systeem-app, ziet u de volgende fout in logcat:
ERoleControllerServiceImpl: Packagedoesnotqualifyfortherole, package: com.google.android.apps.photos, role: android.app.role.SYSTEM_GALLERY
Helaas hebben we geen manier gevonden om deze beperking te omzeilen, maar als we dat wel doen, zullen we onze methode delen met de gemeenschap. Natuurlijk zouden we er de voorkeur aan geven dat Google de rol SYSTEM_GALLERY simpelweg door de gebruiker definieerbaar maakt, in plaats van beperkt te worden tot de keuze van de OEM.