Uprawnienia Androida

Uprawnienia Androida zapewniają kontrolę, która zwiększa świadomość użytkowników i ogranicza dostęp aplikacji do poufnych danych. Konfigurowanie uprawnień w systemie Android 8.0 i starszych obejmuje listę dozwolonych, bez której uprzywilejowane aplikacje są wyłączone, nawet jeśli znajdują się w ścieżce priv-app . W systemie Android 9 lub nowszym urządzenie, które próbuje korzystać z aplikacji, które nie są prawidłowo umieszczone na liście dozwolonych, nie uruchamia się.

Android 10 wprowadził pojęcie roli , unikalnej nazwy w systemie związanej z określonymi wymaganiami i uprawnieniami. Przypisz role do aplikacji, aby przyznać im uprawnienia do określonego celu, i skonfiguruj role domyślne, korzystając z zasobów konfiguracji platformy.

Zwiększona ochrona przed potencjalnie szkodliwymi aplikacjami (PHA) poprawia się

  • Przejrzystość na potencjalnie szkodliwe zachowanie aplikacji.
  • Kontrola użytkownika nad zachowaniem aplikacji.
  • Swoboda twórców aplikacji podczas korzystania z prywatnych danych chronionych uprawnieniami.

Instalacja pakietu i uprawnienia

W systemie Android 9 i niższych funkcje instalacji pakietu i kontroli uprawnień były zawarte w pakiecie PackageInstaller ( //packages/apps/PackageInstaller ). W systemie Android 10 i nowszych funkcja kontroli uprawnień znajduje się w osobnym pakiecie PermissionController ( //packages/apps/PermissionController ). Rysunek 1 pokazuje, gdzie znajdują się te dwa pakiety w systemie Android 10.

Rozdzielenie funkcji instalacji pakietów i kontroli uprawnień dla aplikacji systemowych i używanych przez aplikacje zainstalowane przez użytkowników
Rysunek 1. Funkcje instalacji pakietu i kontroli uprawnień w systemie Android 10

Listy dozwolonych i dostęp

W Androidzie 6.0 i nowszych aplikacje żądają dostępu do niebezpiecznych uprawnień w czasie wykonywania . Android 10 dodaje uprawnienia do rozpoznawania aktywności (AR), które skłaniają użytkownika do modyfikacji lub zezwolenia na niebezpieczne uprawnienia.

Android 8.0 wymagał jawnej listy dozwolonych aplikacji uprzywilejowanych w plikach XML konfiguracji systemu w katalogu /etc/permissions . W systemie Android 9 i nowszych uprawnienia uprzywilejowane muszą być na liście dozwolonych lub urządzenie nie może się uruchomić.

Aby ograniczyć widoczność wewnętrznego interfejsu API i zapobiec przypadkowemu dostępowi aplikacji do bibliotek platformy, w systemie Android 7.0 wprowadzono przestrzenie nazw dla bibliotek natywnych . Oddziela to biblioteki systemowe od bibliotek aplikacji, a producenci urządzeń mogą dodawać własne biblioteki natywne.

Aplikacje na Androida 10 muszą mieć zarówno uprawnienia do podpisu, jak i zgodę użytkownika na dostęp do zawartości ekranu urządzenia . Uprzywilejowane aplikacje, które opierają się na funkcji cichego przechwytywania, takie jak robienie zrzutów ekranu, powinny zamiast tego używać klasy MediaProjection .

Przejrzystość i prywatność

W Androidzie 6.0 i nowszych fabryczny adres MAC urządzenia jest chroniony przed dostępem dostawców usług Wi-Fi i analizatorów pakietów. Dodatkowe ograniczenia od Androida 10 ograniczają dostęp aplikacji do niezmiennych identyfikatorów urządzeń (ID) , chyba że są one dozwolone na liście uprawnień uprzywilejowanych . (Sekcja Łączność zawiera powiązaną dyskusję na temat identyfikatorów urządzeń , ponieważ ma to wpływ na operatorów).

W Androidzie 9 i starszych użytkownicy dokonują stałych wyborów, przyznając aplikacjom dostęp do lokalizacji. Począwszy od Androida 10, funkcja trójstanowych uprawnień do lokalizacji daje użytkownikom trzy opcje zezwalania aplikacji na dostęp do lokalizacji urządzenia. Te wymagania dotyczące uprawnień są stosowane do aplikacji w systemie Android 10 niezależnie od docelowego pakietu SDK.

Skonfiguruj uprawnienia dla innych funkcji przejrzystości i prywatności, począwszy od Androida 10

Usprawnione konfiguracje

Konfiguracje uprawnień zostały uproszczone dla Androida 6.0 i nowszych.

  • Możliwości otoczenia dla usług uruchamianych przez init utrzymują wszystkie aspekty konfiguracji usługi w jednym pliku .rc . Podczas ustawiania możliwości dla usług, które nie są uruchamiane przez init , skonfiguruj możliwości systemu plików za pomocą fs_config.c .
  • Android 7.x i niższe rozszerzają mechanizm identyfikatorów Android (AID), używając pliku android_filesystem_config.h specyficznego dla urządzenia, aby określić możliwości systemu plików i/lub niestandardowe identyfikatory AID producenta urządzenia. Android 8.0 i nowszy obsługuje nową metodę rozszerzania możliwości systemu plików .
  • W systemie Android 8.0 obsługa poleceń USB została przeniesiona ze skryptów init specyficznych dla urządzenia (zastąpienie warstw HAL) i do natywnego demona USB. Interfejs USB HAL musi być zaimplementowany na każdym urządzeniu z systemem Android 8.0 i nowszym.