Uprawnienia Androida

Uprawnienia Androida zapewniają kontrolę, która zwiększa świadomość użytkowników i ogranicza dostęp aplikacji do danych wrażliwych. Konfigurowanie uprawnień na urządzeniach z Androidem 8.0 i starszym obejmuje dodawanie aplikacji do listy dozwolonych. Bez tego uprzywilejowane aplikacje są wyłączone, nawet jeśli znajdują się w ścieżce priv-app. Na urządzeniach z Androidem 9 lub nowszym, które próbują używać aplikacji, które nie są prawidłowo dodane do listy dozwolonych, nie można uruchomić systemu.

W Androidzie 10 wprowadzono pojęcie roli, czyli unikalnej nazwy w systemie powiązanej z określonymi wymaganiami i uprawnieniami. Przypisuj aplikacjom role, aby przyznawać im uprawnienia do określonych celów, i konfiguruj role domyślne za pomocą zasobów konfiguracji platformy.

Większa ochrona przed potencjalnie szkodliwymi aplikacjami (PHA) zapewnia:

  • Przejrzystość w zakresie działania potencjalnie szkodliwych aplikacji.
  • Użytkownik ma kontrolę nad działaniem aplikacji.
  • Deweloperzy aplikacji mogą korzystać z danych prywatnych chronionych przez uprawnienia.

Instalowanie pakietów i uprawnienia

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

Oddzielenie funkcji instalacji pakietu i kontroli uprawnień w przypadku aplikacji systemowych i aplikacji zainstalowanych 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 nowszym aplikacje proszą o dostęp do uprawnień niebezpiecznych w czasie działania. Android 10 dodaje uprawnienia środowiska wykonawczego rozpoznawania aktywności, które wyświetlają użytkownikowi prośbę o zmodyfikowanie lub zezwolenie na niebezpieczne uprawnienia.

W Androidzie 8.0 aplikacje z uprawnieniami musiały być wyraźnie dodawane do listy dozwolonych w plikach XML konfiguracji systemu w katalogu /etc/permissions. W Androidzie 9 i nowszych wersjach uprawnienia uprzywilejowane muszą być dodane do listy dozwolonych, w przeciwnym razie urządzenie nie uruchomi się.

Aby ograniczyć widoczność wewnętrznych interfejsów API i zapobiec przypadkowemu uzyskiwaniu przez aplikacje dostępu do bibliotek platformy, w Androidzie 7.0 wprowadzono przestrzenie nazw bibliotek natywnych. Dzięki temu biblioteki systemowe są oddzielone od bibliotek aplikacji, a producenci urządzeń mogą dodawać własne biblioteki natywne.

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

Android 15 wymaga, aby w plikach XML konfiguracji systemu w katalogu /etc/permissions wyraźnie dodać do listy dozwolonych uprawnienia związane z podpisem platformy, o które proszą aplikacje inne niż systemowe lub które są nowo wymagane przez aktualizacje aplikacji systemowych.

Przejrzystość i prywatność

W Androidzie 6.0 i nowszym fabryczny adres MAC urządzenia jest chroniony przed dostępem dostawców usług Wi-Fi i analizatorów pakietów. Dodatkowe ograniczenia wprowadzone w Androidzie 10 uniemożliwiają aplikacjom dostęp do niezmiennych identyfikatorów urządzenia, chyba że znajdują się one na liście dozwolonych uprawnień. (W sekcji Łączność znajdziesz powiązane informacje o identyfikatorach urządzeń, ponieważ ma to wpływ na operatorów).

W starszych wersjach Androida (do wersji 9 włącznie) użytkownicy podejmują trwałe decyzje, gdy przyznają aplikacjom dostęp do lokalizacji. W Androidzie 10 i nowszych trójstanowe uprawnienia do lokalizacji dają użytkownikom 3 opcje zezwalania aplikacjom na dostęp do lokalizacji urządzenia. Te wymagania dotyczące uprawnień są stosowane w przypadku aplikacji na Androidzie 10 niezależnie od docelowego pakietu SDK.

Konfigurowanie uprawnień do innych funkcji związanych z przejrzystością i prywatnością od Androida 10

Uproszczone konfiguracje

Konfiguracje uprawnień zostały uproszczone w przypadku Androida 6.0 i nowszych wersji.

  • Funkcje otoczenia w przypadku usług uruchamianych przez init przechowują wszystkie aspekty konfiguracji usługi w jednym .rc pliku. Podczas ustawiania uprawnień usług, które nie są uruchamiane przez init, skonfiguruj uprawnienia systemu plików za pomocą fs_config.c.
  • Android w wersji 7.x i starszych rozszerza mechanizm identyfikatorów Androida (AID), używając pliku android_filesystem_config.hspecyficznego dla urządzenia, aby określić możliwości systemu plików lub niestandardowe identyfikatory 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 specyficznych dla urządzeniainit (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.