Grazie a Scoped Storage, Android 11 su alcuni dispositivi rende un po' scomodo eliminare le immagini in Google Foto, ma potrebbe esserci una soluzione.
Non abbiamo modo di sapere quanti dispositivi sul mercato eseguono Android 11 dopo Google non pubblica più statistiche di distribuzione, ma ora ce ne sono probabilmente decine di milioni a cui aziende come Xiaomi e Samsung hanno avuto il tempo di spingere l'aggiornamento molti dei loro modelli. Se il tuo dispositivo esegue Android 11 e utilizzi Google Foto, è possibile che tu abbia riscontrato un cambiamento piuttosto fastidioso nel modo in cui l'app gestisce l'eliminazione e il ripristino delle immagini. Invece di selezionare semplicemente le immagini e i video che desideri eliminare, premendo l'icona del cestino e quindi toccando il pulsante "sposta nel cestino", ora dovrai toccare un messaggio aggiuntivo per autorizzare Google Foto a eliminare o ripristinare i tuoi file File.
Per quelli di voi che scattano molte foto e video, potrebbe essere fastidioso dover concedere l'autorizzazione a Google Foto per eliminare o ripristinare un file. E come sottolineato da
AndroidPolizia, toccare un pulsante aggiuntivo non è l'unico problema che potresti dover affrontare. Se utilizzi Google Foto su un altro dispositivo e desideri modificare o eliminare nel cestino un file caricato dal tuo telefono con Android 11, l'app potrebbe chiederti di rivedere le "modifiche non sincronizzate". Ciò può diventare rapidamente fastidioso se Google Foto continua a chiederti di rivedere le modifiche appena apportate su un'altra piattaforma.Il passaggio aggiuntivo per eliminare o ripristinare un file non era richiesto in Android 10 ma ora lo è in Android 11 a causa dell'applicazione dell'archiviazione con ambito. Prima dell'archiviazione con ambito, l'accesso all'intera directory di archiviazione esterna era gestito da un singolo autorizzazione, rendendo difficile per te limitare quali app possono accedere ai tuoi documenti privati, immagini o video. Con l'archiviazione con ambito in atto, Android limita la quantità di accesso che un'app può avere sui file sensibili senza il consenso esplicito dell'utente. È possibile trovare ulteriori dettagli su Archiviazione con ambito in questo articolo oppure guarda il grafico di Google qui sotto per un riepilogo delle modifiche.
Mentre erano impegnati a limitare l’accesso allo spazio di archiviazione in Android 11, Google stava anche migliorando le API esistenti per migliorare l’esperienza dell’utente. Ad esempio, le app destinate ad Android 11 possono utilizzare l'API MediaStore per cestinare un file anziché eliminarlo. Per spostare un file nel cestino, tuttavia, l'app deve farlo richiedere all'utente di concedergli l'accesso in scrittura. Poiché la maggior parte delle immagini e dei video che aggiungi a Google Foto dal tuo telefono provengono da un'app diversa, come l'app fotocamera stock: le foto devono chiedere l'autorizzazione prima di poter spostare un file da o verso spazzatura. Tuttavia, Google Foto non richiede l'autorizzazione per eliminare i file nel cestino se utilizzi un telefono Pixel con Android 11 installato. Tuttavia, richiede l'autorizzazione praticamente su tutti gli altri dispositivi con Android 11, inclusa la maggior parte dei dispositivi Samsung, Xiaomi, OnePlus e ASUS. Cosa dà?
Il motivo è che l'app della Galleria di sistema non è soggetta alle restrizioni di archiviazione con ambito. Ciò significa che l'app Galleria stock può aprire, modificare o eliminare immagini e video senza autorizzazione esplicita. Google Foto è preimpostato come app della galleria di sistema sui telefoni Pixel, ma la maggior parte degli OEM preimposta invece la propria app della galleria. Inoltre, non esiste alcuna impostazione rivolta all'utente per modificare l'app della galleria di sistema, nemmeno nella schermata "app predefinite" di Android. Tuttavia, lì È un modo nascosto per modificare l'app della Galleria di sistema, ma ce n'è uno grande avvertenza: solo un'applicazione di sistema può essere impostata come app della Galleria di sistema. Ciò significa che solo i telefoni hai già Google Foto preinstallato come app di sistema può trarre vantaggio da questo trucco.
Non molti telefoni soddisfano questo criterio, ma in base ai nostri test, possiamo confermarlo funziona sulla maggior parte dei telefoni OnePlus e alcuni ASUS. Questo metodo non ha funzionato su nessuno dei telefoni Samsung su cui l'abbiamo testato e non ha funzionato nemmeno su Xiaomi Mi 10 Pro. Se disponi di accesso root o stai utilizzando una ROM personalizzata, questo metodo potrebbe funzionare sul tuo dispositivo dopo aver sistematizzato l'app Google Foto, ma abbiamo testato questo metodo solo su dispositivi di serie.
Come (forse) rendere Google Foto l'app della Galleria di sistema
I crediti vanno a Kieron Quinn (Quinny899 sui forum XDA) per aver condiviso questo trucco!
La prima cosa che dovrai fare è installare ADB sul tuo PC. Abbiamo una guida aggiornata su come farlo Qui. Una volta completata la configurazione di ADB, inserisci il seguente comando:
adbshellcmdroleadd-role-holderandroid.app.role.SYSTEM_GALLERYcom.google.android.apps.photos
Se non vedi un errore, probabilmente ha funzionato! Puoi verificare rapidamente che funzioni scattando una foto e provando a eliminarla in Google Foto. In alternativa, puoi eseguire il seguente comando:
adb shell dumpsys role
...e controlla se il "titolare" di "android.app.role. SYSTEM_GALLERY" è "com.google.android.apps.photos" (il nome del pacchetto di Google Foto).
Cosa fa questo comando?
Android 10 ha aggiunto a nuova API denominata "Roles". Quando un'app ha un determinato ruolo, le viene automaticamente concesso l'accesso a determinate autorizzazioni. Ad esempio, il Ruolo SYSTEM_GALLERY garantisce automaticamente a un'app "l'accesso completo in lettura e scrittura a tutti i file di immagini e video nella memoria esterna, incluso l'accesso alla posizione metadati." Il ruolo SYSTEM_GALLERY può essere concesso solo alle applicazioni di sistema e il suo titolare predefinito è definito dal file Android valore di configurazione "config_systemGallery". Come spiegato in precedenza, la maggior parte degli OEM preimposta questo valore sul nome del pacchetto corrispondente al loro propria app per la galleria. Questo valore non può essere modificato senza modificare il framework o installare un overlay, entrambi i quali richiedono l'accesso root.
Tuttavia, esso È possibile aggiungere un'altra app come titolare del ruolo SYSTEM_GALLERY, ma solo se l'app è anche un'app di sistema. Ciò è possibile su molti telefoni OnePlus e alcuni ASUS perché questi OEM sembrano preinstallare Google Foto a livello di sistema anziché a livello di utente. Per questo motivo, l'app Google Foto è idonea a ricoprire il ruolo SYSTEM_GALLERY e noi ne traiamo vantaggio dell'interfaccia nascosta della shell RoleManager di Android per concedergli l'accesso ad autorizzazioni che normalmente non può avere concesso. Se tenti di concedere il ruolo SYSTEM_GALLERY a un'app non di sistema, vedrai il seguente errore in logcat:
ERoleControllerServiceImpl: Packagedoesnotqualifyfortherole, package: com.google.android.apps.photos, role: android.app.role.SYSTEM_GALLERY
Purtroppo non abbiamo trovato un modo per aggirare questa limitazione, ma se lo troviamo, condivideremo il nostro metodo con la comunità. Naturalmente, preferiremmo che Google rendesse semplicemente il ruolo SYSTEM_GALLERY definibile dall'utente anziché limitato alla scelta dell'OEM.