Android 11 rend Google Photos ennuyeux à utiliser, mais il existe peut-être un correctif

Grâce à Scoped Storage, Android 11 sur certains appareils rend la suppression d'images dans Google Photos un peu gênante, mais il peut y avoir un correctif.

Nous n'avons aucun moyen de savoir combien d'appareils sur le marché fonctionnent sous Android 11 depuis Google ne publie plus de statistiques de distribution, mais il y en a probablement des dizaines de millions maintenant que des entreprises comme Xiaomi et Samsung ont eu le temps de pousser la mise à jour vers beaucoup de leurs modèles. Si votre appareil fonctionne sous Android 11 et que vous utilisez Google Photos, il est possible que vous ayez rencontré un changement plutôt ennuyeux dans la façon dont l'application gère la suppression et la restauration des images. Au lieu de simplement sélectionner les images et les vidéos que vous souhaitez supprimer, d'appuyer sur l'icône de la corbeille, puis d'appuyer sur le bouton "Déplacer". à la corbeille", vous devrez maintenant appuyer sur une invite supplémentaire pour autoriser Google Photos à supprimer ou restaurer votre des dossiers.

Pour ceux d'entre vous qui prennent beaucoup de photos et de vidéos, il peut être ennuyeux de devoir accorder à Google Photos l'autorisation de supprimer ou de restaurer un fichier. Et comme l'a souligné AndroidPolice, appuyer sur un bouton supplémentaire n'est pas le seul problème auquel vous pourriez être confronté. Si vous utilisez Google Photos sur un autre appareil et que vous souhaitez modifier ou supprimer un fichier que vous avez téléchargé depuis votre téléphone exécutant Android 11, l'application peut vous demander de vérifier les « modifications non synchronisées ». Cela peut vite devenir ennuyeux si Google Photos continue de vous demander de revoir les modifications que vous venez d'apporter sur une autre plateforme.

L'étape supplémentaire pour supprimer ou restaurer un fichier n'était pas requise dans Android 10, mais est désormais requise dans Android 11 en raison de l'application de Scoped Storage. Avant Scoped Storage, l'accès à l'intégralité du répertoire de stockage externe était géré par un seul autorisation, ce qui rend difficile la limitation des applications pouvant accéder à vos documents privés, images ou vidéos. Avec Scoped Storage en place, Android limite l’accès d’une application aux fichiers sensibles sans le consentement explicite de l’utilisateur. Vous pouvez trouver plus de détails sur le stockage étendu dans cet article ou regardez le graphique de Google ci-dessous pour un résumé des modifications.

Alors qu'ils étaient occupés à restreindre l'accès au stockage dans Android 11, Google a également amélioré les API existantes pour améliorer l'expérience utilisateur. Par exemple, les applications ciblant Android 11 peuvent utiliser l'API MediaStore pour jeter un fichier plutôt que de le supprimer. Cependant, pour déplacer un fichier vers la corbeille, l'application doit demander à l'utilisateur de lui accorder un accès en écriture. Étant donné que la plupart des images et des vidéos que vous ajoutez à Google Photos depuis votre téléphone proviennent d'une autre application: comme l'application Stock Camera - Photos doit demander l'autorisation avant de pouvoir déplacer un fichier vers ou depuis le poubelle. Cependant, Google Photos ne demande pas l'autorisation de supprimer les fichiers si vous utilisez un téléphone Pixel sur lequel Android 11 est installé. Il demande cependant une autorisation sur pratiquement tous les autres appareils exécutant Android 11, y compris la plupart des appareils Samsung, Xiaomi, OnePlus et ASUS. Ce qui donne?

La raison en est que l’application de galerie système n’est pas soumise aux restrictions de stockage étendu. Cela signifie que l'application Stock Gallery peut ouvrir, modifier ou supprimer des images et des vidéos sans autorisation explicite. Google Photos est prédéfini comme application de galerie système sur les téléphones Pixel, mais la plupart des OEM prédéfinissent plutôt leur propre application de galerie. De plus, il n'existe aucun paramètre permettant à l'utilisateur de modifier l'application de la galerie système, pas même dans l'écran "Applications par défaut" d'Android. Cependant, là est un moyen caché de modifier l'application de la galerie système, mais il y en a un grand mise en garde: seule une application système peut être définie comme application de galerie système. Cela signifie uniquement les téléphones qui Google Photos est déjà préinstallé en tant qu'application système peut profiter de cette astuce.

Peu de téléphones répondent à ce critère, mais basé sur nos tests, nous pouvons le confirmer fonctionne sur la plupart des téléphones OnePlus et certains téléphones ASUS. Cette méthode n’a fonctionné sur aucun des téléphones Samsung sur lesquels nous l’avons testée, et elle n’a pas non plus fonctionné sur un Xiaomi Mi 10 Pro. Si vous disposez d'un accès root ou si vous exécutez une ROM personnalisée, cette méthode peut fonctionner sur votre appareil après avoir systématisé l'application Google Photos, mais nous n'avons testé cette méthode que sur des appareils d'origine.

Comment (peut-être) faire de Google Photos l'application de galerie système

Les crédits reviennent à Kieron Quinn (Quinny899 sur les forums XDA) pour avoir partagé cette astuce !

La première chose à faire est d'installer ADB sur votre PC. Nous avons un guide mis à jour sur la façon de procéder ici. Une fois que vous avez configuré ADB, entrez la commande suivante :

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

Si vous ne voyez pas d’erreur, alors cela a probablement fonctionné! Vous pouvez rapidement vérifier que cela a fonctionné en prenant une photo, puis en essayant de la supprimer dans Google Photos. Vous pouvez également exécuter la commande suivante :

adb shell dumpsys role

...et vérifiez si le "titulaire" de "android.app.role. SYSTEM_GALLERY" est "com.google.android.apps.photos" (le nom du package de Google Photos).

Si votre sortie correspond au texte mis en évidence dans le rectangle rouge, cela a fonctionné.

Que fait cette commande?

Android 10 a ajouté un nouvelle API appelée "Rôles". Lorsqu'une application a un certain rôle, elle se voit automatiquement accorder l'accès à certaines autorisations. Par exemple, le Rôle SYSTEM_GALLERY accorde automatiquement à une application "un accès complet en lecture et en écriture à tous les fichiers image et vidéo sur le stockage externe, y compris l'accès à l'emplacement métadonnées." Le rôle SYSTEM_GALLERY ne peut être accordé qu'aux applications système, et son titulaire par défaut est défini par le système Android. valeur de configuration « config_systemGallery ». Comme nous l'avons expliqué précédemment, la plupart des constructeurs OEM prédéfinissent cette valeur sur le nom du package correspondant à leur propre application de galerie. Cette valeur ne peut pas être modifiée sans modifier le framework ou installer une superposition, qui nécessitent toutes deux un accès root.

Cependant, il est possible d'ajouter une autre application en tant que titulaire du rôle SYSTEM_GALLERY, mais uniquement si cette application est également une application système. Cela est possible sur de nombreux téléphones OnePlus et certains téléphones ASUS, car ces constructeurs OEM ont apparemment préinstallé Google Photos au niveau du système plutôt qu'au niveau de l'utilisateur. Pour cette raison, l'application Google Photos est éligible pour occuper le rôle SYSTEM_GALLERY, et nous profitons de l'interface shell RoleManager cachée d'Android pour lui accorder l'accès à des autorisations qu'il ne peut normalement pas obtenir accordé. Si vous tentez d'accorder le rôle SYSTEM_GALLERY à une application non système, vous verrez l'erreur suivante dans logcat :

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

Malheureusement, nous n'avons pas trouvé de moyen de contourner cette limitation, mais si nous le faisons, nous partagerons notre méthode avec la communauté. Bien entendu, nous préférerions que Google rende simplement le rôle SYSTEM_GALLERY définissable par l'utilisateur plutôt que limité au choix de l'OEM.