Uprawnienia Androida

Uprawnienia Androida zapewniają użytkownikom kontrolę, która zwiększa ich świadomość i ogranicza 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 uruchomi się.

Android 10 wprowadził pojęcie roli, czyli unikalnego nazwy w systemie 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 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 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.

W Androidzie 8.0 musisz wyraźnie zezwolić na korzystanie z aplikacji uprzywilejowanych w plikach XML konfiguracji systemu w katalogu /etc/permissions. W Androidzie 9 i nowszych uprawnienia uprzywilejowane muszą być dozwolone, inaczej urządzenie nie będzie się uruchamiać.

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

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 dodać 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ą wymienione na liście dozwolonych uprawnień. (w sekcji Połączenia znajdziesz informacje na temat identyfikatorów urządzeń, ponieważ mają one wpływ na operatorów).

W Androidzie 9 i starszych użytkownicy dokonują trwałych wyborów, gdy zezwalają aplikacjom na dostęp do lokalizacji. Od Androida 10 użytkownicy mają 3 opcje zezwolenia aplikacji na dostęp do lokalizacji urządzenia. Wymagania dotyczące uprawnień są stosowane w przypadku 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 zawiera informacje o możliwościach systemu plików lub niestandardowych identyfikatorach 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.