Android 11 sprawia, że ​​Zdjęcia Google są denerwujące w użyciu, ale może być rozwiązanie

Dzięki Scoped Storage Android 11 na niektórych urządzeniach powoduje, że usuwanie zdjęć ze Zdjęć Google jest nieco niewygodne, ale może być rozwiązanie.

Nie mamy możliwości sprawdzenia, ile urządzeń dostępnych na rynku ma system Android 11 od czasów Google nie publikuje już statystyk dystrybucji, ale prawdopodobnie są już dziesiątki milionów, do których firmy takie jak Xiaomi i Samsung zdążyły wypchnąć aktualizację wiele ich modeli. Jeśli Twoje urządzenie działa pod kontrolą Androida 11 i korzystasz ze Zdjęć Google, istnieje prawdopodobieństwo, że napotkałeś dość irytującą zmianę w sposobie, w jaki aplikacja obsługuje usuwanie i przywracanie zdjęć. Zamiast po prostu wybierać obrazy i filmy, które chcesz usunąć, uderzać w ikonę kosza, a następnie dotykać przycisku „przenieś do kosza”, musisz teraz kliknąć dodatkowy monit, aby zezwolić Zdjęciom Google na usunięcie lub przywrócenie pliku akta.

Dla tych z Was, którzy robią dużo zdjęć i filmów, konieczność udzielenia Zdjęciom Google pozwolenia na usunięcie lub przywrócenie pliku może być denerwująca. I jak zauważył

Policja Androidanaciśnięcie dodatkowego przycisku nie jest jedynym problemem, z jakim możesz się spotkać. Jeśli korzystasz ze Zdjęć Google na innym urządzeniu i chcesz edytować lub usunąć plik przesłany z telefonu z Androidem 11, aplikacja może poprosić Cię o sprawdzenie „niesynchronizowanych zmian”. Może to szybko stać się denerwujące, jeśli Zdjęcia Google ciągle proszą Cię o sprawdzenie zmian wprowadzonych właśnie na innej platformie.

Dodatkowy krok polegający na usunięciu lub przywróceniu pliku nie był wymagany w systemie Android 10, ale jest teraz wymagany w systemie Android 11 ze względu na wymuszenie przechowywania ograniczonego. Przed Scoped Storage dostęp do całego katalogu pamięci zewnętrznej był zarządzany przez jednego pozwolenie, co utrudnia ograniczenie dostępu aplikacji do Twoich prywatnych dokumentów, obrazów lub plików filmy. Dzięki wdrożeniu usługi Scoped Storage system Android ogranicza dostęp aplikacji do poufnych plików bez wyraźnej zgody użytkownika. Więcej informacji na temat magazynu o określonym zakresie można znaleźć w tym artykule lub spójrz na poniższą grafikę Google, aby zapoznać się z podsumowaniem zmian.

Podczas gdy firma Google była zajęta ograniczaniem dostępu do pamięci w systemie Android 11, ulepszała także istniejące interfejsy API, aby poprawić wygodę użytkownika. Na przykład aplikacje przeznaczone dla systemu Android 11 mogą korzystać z interfejsu API MediaStore wyrzuć plik do kosza, zamiast go usuwać. Aby jednak przenieść plik do kosza, aplikacja musi to zrobić poproś użytkownika o przyznanie mu dostępu do zapisu. Ponieważ większość zdjęć i filmów, które dodajesz do Zdjęć Google z telefonu, pochodzi z innej aplikacji — takich jak standardowa aplikacja aparatu — Zdjęcia muszą poprosić o pozwolenie, zanim będą mogły przenieść plik do lub z śmieci. Jednak Zdjęcia Google nie pytają o pozwolenie na usunięcie plików z kosza, jeśli używasz telefonu Pixel z zainstalowanym Androidem 11. Prosi jednak o pozwolenie w zasadzie na każdym innym urządzeniu z systemem Android 11, w tym na większości urządzeń Samsung, Xiaomi, OnePlus i ASUS. Co daje?

Powodem jest to, że aplikacja galerii systemowej nie podlega ograniczeniom dotyczącym pamięci masowej. Oznacza to, że aplikacja galerii stockowych może otwierać, edytować i usuwać obrazy i filmy bez wyraźnej zgody. Zdjęcia Google są wstępnie ustawione jako aplikacja galerii systemowej na telefonach Pixel, ale większość producentów OEM ma zamiast tego skonfigurowaną własną aplikację galerii. Co więcej, nie ma dostępnej dla użytkownika opcji zmiany aplikacji galerii systemowej, nawet na ekranie „aplikacji domyślnych” Androida. Jednak tam Jest ukryty sposób na zmianę aplikacji galerii systemowej, ale jest jeden duży zastrzeżenie: Jako galerię systemową można ustawić wyłącznie aplikację systemową. Oznacza to, że tylko tak można telefonować masz już preinstalowane Zdjęcia Google jako aplikację systemową może skorzystać z tej sztuczki.

Niewiele telefonów spełnia to kryterium, ale na podstawie naszych testów, możemy to potwierdzić działa na większości telefonów OnePlus i niektórych telefonach ASUS. Ta metoda nie działała na żadnym z telefonów Samsung, na których ją testowaliśmy, a także nie działała na Xiaomi Mi 10 Pro. Jeśli masz dostęp do konta root lub używasz niestandardowej pamięci ROM, ta metoda może działać na Twoim urządzeniu po usystematyzowaniu aplikacji Zdjęcia Google, ale testowaliśmy tę metodę tylko na urządzeniach standardowych.

Jak (być może) ustawić Zdjęcia Google jako aplikację galerii systemowej

Kredyty należą się Kieronowi Quinnowi (Quinny899 na forach XDA) za udostępnienie tej sztuczki!

Pierwszą rzeczą, którą musisz zrobić, to zainstalować ADB na swoim komputerze. Mamy zaktualizowany przewodnik, jak to zrobić Tutaj. Po skonfigurowaniu ADB wprowadź następujące polecenie:

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

Jeśli nie widzisz błędu, prawdopodobnie zadziałało! Możesz szybko sprawdzić, czy działa, robiąc zdjęcie, a następnie próbując je usunąć w Zdjęciach Google. Alternatywnie możesz uruchomić następujące polecenie:

adb shell dumpsys role

...i sprawdź, czy „posiadacz” pliku „android.app.role. SYSTEM_GALLERY” to „com.google.android.apps.photos” (nazwa pakietu Zdjęć Google).

Jeśli dane wyjściowe odpowiadają tekstowi zaznaczonemu w czerwonym prostokącie, oznacza to, że zadziałało.

Co robi to polecenie?

Android 10 dodał: nowe API o nazwie „Roles". Gdy aplikacja pełni określoną rolę, automatycznie uzyskuje dostęp do określonych uprawnień. Na przykład Rola SYSTEM_GALLERY automatycznie przyznaje aplikacji „pełny dostęp do odczytu i zapisu wszystkich plików obrazów i wideo w pamięci zewnętrznej, w tym dostęp do lokalizacji metadane." Rolę SYSTEM_GALLERY można nadawać tylko aplikacjom systemowym, a jej domyślny posiadacz jest definiowany przez Androida wartość konfiguracyjna „config_systemGallery”. Jak wyjaśniliśmy wcześniej, większość producentów OEM wstępnie ustawia tę wartość na nazwę pakietu odpowiadającą ich własna aplikacja galeria. Tej wartości nie można zmienić bez modyfikacji środowiska lub zainstalowania nakładki, a oba wymagają dostępu do konta root.

Jednakże to Jest możliwe jest dodanie kolejnej aplikacji jako posiadacza roli SYSTEM_GALLERY, ale tylko jeśli ta aplikacja jest również aplikacją systemową. Jest to możliwe w wielu telefonach OnePlus i niektórych telefonach ASUS, ponieważ ci producenci OEM najwyraźniej preinstalowali Zdjęcia Google na poziomie systemu, a nie użytkownika. Z tego powodu aplikacja Zdjęcia Google może pełnić rolę SYSTEM_GALLERY, a my z tego korzystamy ukrytego interfejsu powłoki RoleManager systemu Android, aby przyznać mu dostęp do uprawnień, których normalnie nie ma nadany. Jeśli spróbujesz przyznać rolę SYSTEM_GALLERY aplikacji niesystemowej, w logcat zobaczysz następujący błąd:

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

Niestety nie znaleźliśmy sposobu na obejście tego ograniczenia, ale jeśli tak się stanie, podzielimy się naszą metodą ze społecznością. Oczywiście wolelibyśmy, aby Google po prostu umożliwił użytkownikowi zdefiniowanie roli SYSTEM_GALLERY, a nie ograniczał ją do wyboru producenta OEM.