Analiza wersji Androida Q, która wyciekła, pokazuje, że w systemie Android pojawi się więcej ulepszeń dotyczących prywatności: blokowanie odczytu ze schowka w tle, lepsza ochrona multimediów i nie tylko.
Każda nowa wersja Androida zawiera nowe funkcje, co oznacza, że Android potrzebuje nowych uprawnień, aby uzyskać dostęp do tych funkcji. Znalazłem wiele nowych uprawnień w środowisku Androida Q (nie wszystkie omówię w tym artykule, ponieważ wiele z nich nie jest interesujących). Niektóre z uprawnień, które znalazłem, nie miały żadnych opisów, ale ich nazwy i tak są dość oczywiste. Zagłębmy się w szczegóły i omówmy nowe, zakulisowe ulepszenia prywatności w Androidzie Q, a także kilka innych interesujących funkcji, które znalazłem.
Specjalne podziękowania dla PNF Software za udostępnienie nam licencji na użytkowanie Dekompilator JEB. JEB Decompiler to profesjonalne narzędzie do inżynierii wstecznej dla aplikacji na Androida.
Blokowanie dostępu do schowka w tle
Czy wiedziałeś o tym każda aplikacja na Androida może czytać Twój schowek
i nie musisz udzielać im uprawnień wykonawczych, aby to zrobić? Wiele osób prawdopodobnie kopiuje poufne informacje, takie jak nazwy użytkowników, hasła, adresy itp. przez cały czas, więc każda aplikacja może z łatwością zeskrobać te dane w tle. Dlatego wiele aplikacji do zarządzania hasłami lubi KeePass mają własne klawiatury, których możesz użyć do ominięcia menedżera schowka Androida. Aplikacje do zarządzania hasłami często czyszczą schowek po skopiowaniu i wklejeniu czegokolwiek. Powodem, dla którego aplikacje na Androida muszą czytać schowek, jest to, że bez niego nie mogą zaakceptować żadnego tekstu ze schowka, co oznacza, że nie można wkleić żadnego skopiowanego tekstu. Na szczęście Android Q chce to zmienić.Dodano nowe uprawnienie o nazwie „READ_CLIPBOARD_IN_BACKGROUND
”Wygląda na to, że zrobi dokładnie to, co mówi: ogranicz liczbę aplikacji, które mogą czytać schowek w tle. Poziom ochrony tego uprawnienia to „podpis”, co oznacza, że tylko aplikacje podpisane przez producenta OEM mogą otrzymać to uprawnienie.
<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>
Wsparcie dla obniżania wersji aplikacji?
Czy kiedykolwiek zainstalowałeś aktualizację aplikacji w Google Play i od razu tego pożałowałeś? Czasami programista wypuści aktualizację, która psuje coś, czego się nie spodziewał, ale gdy aktualizacja zostanie wypchnięta i zainstalowana, jest już za późno, aby cokolwiek z tym zrobić. Deweloper musi szybko wydać poprawkę, a użytkownik musi albo zaprzestać korzystania z aplikacji do czasu wydania aktualizacji, albo odinstalować aplikację i pobrać starszą wersję. Nie ma możliwości obniżenia wersji aplikacji, chyba że masz zrootowane urządzenie z taką aplikacją Kopia zapasowa tytanu, ponieważ menedżer pakietów Androida blokuje instalowanie starszych wersji aplikacji. Jest ku temu dobry powód, ponieważ zainstalowanie starszej wersji aplikacji może spowodować uszkodzenie, jeśli dane aplikacji nie zostaną wyczyszczone lub może to narazić użytkownika na niebezpieczeństwo, jeśli starsza wersja jest podatna na zagrożenia wada.
Chociaż nie wiemy na pewno, czy Google pozwoli użytkownikom przywracać aplikacje do starszej wersji, znaleźliśmy w Androidzie Q kilka uprawnień i poleceń, które sugerują, że będzie to możliwe. Po pierwsze, nowy „PACKAGE_ROLLBACK_AGENT
" I "MANAGE_ROLLBACKS
” sugerują, że preinstalowana aplikacja Market może działać jako agent zarządzający przywracaniem wersji aplikacji. Pierwsze uprawnienie to „podpis”, drugie to „instalator” nad „podpisem”, więc oznacza to tylko aplikację podpisaną przez platformę z możliwością instaluj aplikacje (zwykle tylko menedżer pakietów, Sklep Google Play lub inne własne sklepy z aplikacjami, w zależności od urządzenia) mogą korzystać z tych uprawnień. Dodano dwie nowe chronione intencje transmisji: „PACKAGE_ENABLE_ROLLBACK
" I "PACKAGE_ROLLBACK EXECUTED
.” Transmisje te nie mogą być wysyłane przez aplikacje innych firm i prawdopodobnie mają na celu umożliwienie aplikacji, której dotyczy problem, poinformowania o obniżeniu jej wersji (dużo na przykład sposób informowania aplikacji o ich aktualizacji, co daje im szansę wyświetlenia komunikatu przy następnym uruchomieniu). Na koniec dodano nową flagę do „pm install
” polecenie powłoki. Flaga, zwana „--enable-rollback
”, może pozwolić na przywrócenie aplikacji do wcześniejszej wersji. Jednak nie udało mi się go uruchomić.
<protected-broadcast android: name="android.intent.action.PACKAGE_ENABLE_ROLLBACK"/>
<protected-broadcast android: name="android.intent.action.PACKAGE_ROLLBACK_EXECUTED"/>
<permissionandroid: name="android.permission.PACKAGE_ROLLBACK_AGENT"android: protectionLevel="signature"/>
<permissionandroid: name="android.permission.MANAGE_ROLLBACKS"android: protectionLevel="installer|signature"/>
Zabezpieczanie plików w pamięci zewnętrznej
Przechowywanie danych w systemie Android obejmuje „pamięć wewnętrzną” (/data z wyłączeniem /data/media) i „pamięć zewnętrzną” (/data/media i wszelkie zamontowane karty SD lub dyski USB). Pliki APK i ich najbardziej wrażliwe dane są przechowywane w pamięci wewnętrznej, a wszelkie udostępnione multimedia, takie jak dokumenty, obrazy, filmy itp. są przechowywane w pamięci zewnętrznej. Domyślnie aplikacje mogą odczytywać i zapisywać pliki tylko w jednym katalogu w pamięci zewnętrznej: /data/media/[użytkownik]/Android/data/[nazwa_pakietu]. (Aby dowiedzieć się więcej na temat tego zachowania, polecam przeczytać mój artykuł o sdcardfs w Androidzie Oreo.) Gdy użytkownik udzieli aplikacji dowolnego uprawnienia w ramach grupy uprawnień do pamięci zewnętrznej (READ_EXTERNAL_STORAGE
Lub WRITE_EXTERNAL_STORAGE
), aplikacja może następnie odczytać lub zapisać dowolny plik w pamięci zewnętrznej. Jest to problematyczne, ponieważ dajesz aplikacji możliwość potencjalnego gromadzenia dużej ilości danych o Tobie, gdy chcesz tylko pozwolić jej na odczytanie lub zapisanie określonych plików. Aby to naprawić, wydaje się, że Google wprowadza kilka nowych uprawnień związanych z pamięcią zewnętrzną w Androidzie Q. Uprawnienia będą bramą dla następujących funkcji:
- Możliwość odczytania lokalizacji z multimediów. (Prawdopodobnie domyślnie blokuje dostęp do metadanych obrazów.)
- Możliwość dostępu do plików muzycznych.
- Możliwość dostępu do zdjęć.
- Możliwość dostępu do filmów.
W przypadku aplikacji, które już obsługują READ_EXTERNAL_STORAGE
Lub WRITE_EXTERNAL_STORAGE
uprawnienia przed aktualizacją Androida Q, otrzymają nowe Czytać uprawnienia, ale nie nowe pisać uprawnienia. Na przykład aplikacja, która została już przyznana READ_EXTERNAL_STORAGE
przez użytkownika zostanie automatycznie przyznany READ_MEDIA_IMAGES
pozwolenie, ale nie WRITE_MEDIA_IMAGES
pozwolenie.
Odpowiednie ciągi z framework-res Androida Q
<stringname="permgroupdesc_aural">access your musicstring>
<stringname="permgrouplab_visual">Photos & Videosstring>
<stringname="permgrouprequest_aural">Allow <b>%1$s</b> to access your music?string>
<stringname="permgroupdesc_visual">access your photos & videosstring>
<stringname="permgrouplab_activityRecognition">Activity recognitionstring>
<stringname="permgrouplab_aural">Musicstring>
<stringname="permdesc_videoRead">Allows the app to read your video collection.string>
<stringname="permdesc_videoWrite">Allows the app to modify your video collection.string>
<stringname="permdesc_imagesRead">Allows the app to read your photo collection.string>
<stringname="permdesc_imagesWrite">Allows the app to modify your photo collection.string>
<stringname="permdesc_audioRead">Allows the app to read your music collection.string>
<stringname="permdesc_audioWrite">Allows the app to modify your music collection.string>
<stringname="permlab_audioRead">read your music collectionstring>
<stringname="permlab_audioWrite">modify your music collectionstring>
<stringname="permdesc_mediaLocation">Allows the app to read locations from your media collection.string>
"android.permission.READ_EXTERNAL_STORAGE"
targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>"android.permission.WRITE_EXTERNAL_STORAGE"
targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>
Czytaj więcej
Powrót dostępu do lokalizacji w tle
Android Oreo i Android 9 Pie poczyniły duże postępy w zapewnianiu prywatności użytkowników, ale niektórzy użytkownicy uważali, że Google posunął się za daleko. Jednym z takich obszarów, który można uznać za regresję cech, jest dostęp do lokalizacji w tle. Dostęp do lokalizacji w Androidzie Oreo i nowszych wersjach jest mocno ograniczony, jeśli nie całkowicie wyłączony w przypadku aplikacji działających w tle, tzw aplikacje muszą działać na pierwszym planie lub mieć uruchomioną usługę na pierwszym planie, jeśli chcą w sposób ciągły odpytywać urządzenie Lokalizacja. Blokuje to aplikacje przed szpiegowaniem Twojej lokalizacji w tle, ale blokuje także użytkownikowi możliwość mapowania własnej lokalizacji za pomocą aplikacji działającej w tle. Jest to problem, który poruszyliśmy w osobnym artykule i wygląda na to, że Google dodaje nowe uprawnienia w Androidzie Q, aby rozwiać obawy tych programistów i użytkowników.
W systemie Android Q dodano nowe uprawnienia umożliwiające aplikacji dostęp w tle do lokalizacji urządzenia. Opis pozwolenia dla użytkownika ostrzega, że „aplikacja będzie zawsze miała dostęp do lokalizacji, nawet jeśli nie korzystasz z aplikacji”. To pozwolenie może uzyskać uprawnienia „dodatkowo do przybliżonej lub dokładnej lokalizacji”, aby aplikacja „mogła uzyskać dostęp do lokalizacji, działając w tle”. W przeciwieństwie, uprawnienie do przybliżonej lokalizacji może określić Twoją lokalizację tylko na podstawie źródeł sieciowych, takich jak maszty komórkowe lub sieci Wi-Fi, ale tylko wtedy, gdy aplikacja znajduje się w pierwszoplanowy.
Odpowiednie ciągi z framework-res Androida Q
<stringname="permgroupbackgroundrequest_location">Always allow <b>%1$s</b> to access this device’s location?string>
<stringname="permgroupbackgroundrequestdetail_location">The app will always have access to the location, even when you’re not using the app.string>
"permdesc_accessBackgroundLocation">If this is granted additionally to the approximate or precise location access the app can access the location while running in the background.</string>
"permdesc_accessCoarseLocation">This app can get your location based on network sources such as cell towers and Wi-Fi networks, but only when the app is in the foreground. These location services must be turned on and available on your phone for the app to be able to usethem.string>
"android.permission.ACCESS_FINE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>
"android.permission.ACCESS_COARSE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>
Czytaj więcej
Rozpoznawanie aktywności fizycznej
Do Androida Q dodano nowe uprawnienia, które umożliwiają aplikacji „rozpoznawanie Twojej aktywności fizycznej”. Technicznie rzecz biorąc, nie jest to nowe, ponieważ jest już częścią Usług Google Play, ale może to oznaczać, że Google oddzieli uprawnienia od Usług Play. Biorąc pod uwagę integralność usług Google Play w zapewnianiu podstawowych funkcji Androida, dobrze jest widzieć, jak część ich mocy została zwrócona firmie AOSP.
<stringname="permgroupdesc_activityRecognition">recognize activitystring>
<stringname="permgrouprequest_activityRecognition">Allow <b>%1$s</b> to recognize your physical activity?string>
<stringname="permdesc_activityRecognition">This app can recognize your physical activity.string>
Więcej aktualności na temat Androida Q znajdziesz w naszym artykule etykietka z najnowszymi wiadomościami posortowanymi według daty. Niedawno opublikowaliśmy artykuł zawierający wiele dowodów wskazujących na to, że Google pracuje nad tym obsługujący sprzęt do uwierzytelniania twarzy podobny do Face ID w Androidzie Q. Posiadamy również wczesne testy wersji Androida Q, która wyciekła (jest nawet film), który warto obejrzeć tutaj. Będziemy publikować więcej naszych ustaleń z wczesnej wersji Androida Q, którą uzyskaliśmy, więc bądź na bieżąco.