Uprawnienia Androida

Uprawnienia Androida zapewniają ustawienia, które zwiększają świadomość użytkowników i ograniczają dostęp aplikacji do danych wrażliwych. Konfigurowanie uprawnień w Androidzie 8.0 i starszych obejmuje listę dozwolonych, bez której aplikacje z uprawnieniami są wyłączone, nawet jeśli znajdują się na ścieżce priv-app. W Androidzie 9 i nowszych wersjach urządzenie, które próbuje użyć aplikacji, które nie są prawidłowo dodane do listy dozwolonych, nie będzie się uruchamiać.

Android 10 wprowadził pojęcie roli, czyli unikalnego w systemie nazwy powiązanej z określonymi wymaganiami i uprawnieniami. Przypisz aplikacjom role, aby przyznać im uprawnienia do określonych celów, i skonfiguruj domyślne role za pomocą zasobów konfiguracji platformy.

Zwiększona ochrona przed potencjalnie szkodliwymi aplikacjami poprawia:

  • przejrzystość dotycząca potencjalnie szkodliwego działania aplikacji;
  • kontrola użytkownika nad działaniem aplikacji.
  • deweloperzy aplikacji mogą używać danych prywatnych chronionych przez uprawnienia według własnego uznania;

Instalowanie pakietów i uprawnienia

W Androidzie 9 i starszych funkcje instalowania pakietów i zarządzania uprawnieniami były zawarte w pakiecie PackageInstaller (//packages/apps/PackageInstaller). W Androidzie 10 i nowszych funkcja zarządzania uprawnieniami znajduje się w oddzielnym pakiecie PermissionController (//packages/apps/PermissionController). Rysunek 1 pokazuje, gdzie znajdują się te 2 pakiety w Androidzie 10.

oddzielenie funkcji instalowania pakietów i zarządzania uprawnieniami w przypadku aplikacji systemowych oraz aplikacji instalowanych przez użytkownika;

Rysunek 1. Funkcje instalowania pakietów i zarządzania uprawnieniami w Androidzie 10

Listy dozwolonych i dostęp

W Androidzie 6.0 i nowszych aplikacje proszą o dostęp do niebezpiecznych uprawnień w czasie działania. Android 10 dodaje uprawnienia do rozpoznawania aktywności (AR) w czasie działania, które wymagają od użytkownika zmodyfikowania lub zezwolenia na niebezpieczne uprawnienia.

Android 8.0 wymagał dodania aplikacji z uprawnieniami do listy dozwolonych w plikach XML konfiguracji systemu w katalogu /etc/permissions. W Androidzie 9 i nowszych uprawnienia te muszą być na liście dozwolonych. W przeciwnym razie urządzenie nie będzie się mogło uruchomić.

Aby ograniczyć wewnętrzną widoczność interfejsów API i zapobiegać przypadkowemu dostępowi aplikacji do bibliotek platformy, w Androidzie 7.0 wprowadziliśmy przestrzenie nazw dla bibliotek natywnych. Oddziela to biblioteki systemowe od bibliotek aplikacji, a producenci urządzeń mogą dodawać własne biblioteki natywne.

Od Androida 10 aplikacje muszą mieć zarówno uprawnienia do podpisu, jak i zgodę użytkownika na dostęp do treści na ekranie urządzenia. Aplikacje z uprawnieniami, które korzystają z funkcji cichego przechwytywania, np. robienia zrzutów ekranu, powinny zamiast tego używać klasy MediaProjection.

W Androidzie 15 musisz w plikach XML konfiguracji systemu w katalogu /etc/permissions wyraźnie dodawać do listy dozwolonych uprawnienia do podpisywania platformy, których zażądały aplikacje niesystemowe lub które zostały dodane przez aktualizacje aplikacji systemowych.

Przejrzystość i prywatność

W Androidzie 6.0 i nowszych adres MAC fabryczny urządzenia jest chroniony przed dostępem przez dostawców usług Wi-Fi i analizatory pakietów. Dodatkowe ograniczenia w Androidzie 10 uniemożliwiają aplikacjom dostęp do niezmiennych identyfikatorów urządzenia, chyba że są dodane do listy zezwalających uprawnień. W sekcji Połączenia znajdziesz powiązane artykuły na temat identyfikatorów urządzeń, które mają wpływ na operatorów.

W Androidzie 9 i starszych wersjach użytkownicy podejmują trwałe wybory podczas przyznawania aplikacjom dostępu do lokalizacji. Od Androida 10 użytkownicy mają 3 opcje zezwolenia aplikacji na dostęp do lokalizacji urządzenia. Te wymagania dotyczące uprawnień są stosowane do aplikacji na Androida 10 niezależnie od docelowego pakietu SDK.

Konfigurowanie uprawnień do innych funkcji przejrzystości i prywatności od Androida 10

Uproszczone konfiguracje

Konfiguracje uprawnień zostały uproszczone w przypadku Androida 6.0 lub nowszego.

  • Funkcje tła dla usług uruchamianych przez init przechowują wszystkie aspekty konfiguracji usługi w pojedynczym pliku .rc. Podczas konfigurowania uprawnień usług nieuruchamianych przez init użyj uprawnień systemu plików zamiast fs_config.c.
  • Android 7.x i starsze wersje rozszerzają mechanizm identyfikatorów Androida (AID) za pomocą pliku android_filesystem_config.h, który służy do określania możliwości systemu plików lub niestandardowych identyfikatorów AID producenta urządzenia. Android 8.0 i nowsze wersje obsługują nową metodę rozszerzania możliwości systemu plików.
  • W Androidzie 8.0 obsługa poleceń USB została przeniesiona ze skryptów init (zastępujących warstwy HAL) do natywnego demona USB. Interfejs USB HAL musi być zaimplementowany na każdym urządzeniu z Androidem 8.0 lub nowszym.