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 białą listę, 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 używać aplikacji, które nie są odpowiednio umieszczone na białej liście, 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

Białe listy i dostęp

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

Android 8.0 wymagał jawnego umieszczenia na białej liście uprzywilejowanych aplikacji w plikach XML konfiguracji systemu w katalogu /etc/permissions . W systemie Android 9 i nowszych uprawnienia uprzywilejowane muszą znajdować się na białej liście 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 umieszczone na białej liście w celu uzyskania uprzywilejowanych uprawnień . (Sekcja Łączność zawiera powiązaną dyskusję na temat identyfikatorów urządzeń , ponieważ ma to wpływ na operatorów).

W systemie Android 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 Android IDs (AIDs), używając specyficznego dla urządzenia pliku android_filesystem_config.h w celu określenia możliwości systemu plików i/lub niestandardowych identyfikatorów AID producenta urządzenia. Android 8.0 i nowsze obsługują 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.