Uprawnienia na Androidzie

Uprawnienia aplikacji pomagają chronić prywatność użytkowników, ponieważ chronią dostęp do tych elementów:

  • Dane podlegające ograniczeniom, takie jak stan systemu i informacje kontaktowe użytkowników
  • Działania z ograniczeniami, takie jak łączenie się ze sparowanym urządzeniem i nagrywanie dźwięku

Ta strona zawiera omówienie działania uprawnień Androida, w tym ogólny opis przepływu pracy na potrzeby ich używania, opisy różnych typów uprawnień i sprawdzone metody korzystania z uprawnień w aplikacji. Inne strony wyjaśniają, jak minimalizować liczbę próśb o uprawnienia, deklarować uprawnienia, prosić o uprawnienia w czasie działania oraz ograniczać sposób interakcji innych aplikacji z komponentami aplikacji.

Pełną listę uprawnień aplikacji na Androida znajdziesz na stronie z informacjami o interfejsie API uprawnień.

Aby zobaczyć przykładowe aplikacje przedstawiające przepływ pracy z uprawnieniami, odwiedź repozytorium z przykładami uprawnień na Androida w GitHubie.

Proces korzystania z uprawnień

Jeśli Twoja aplikacja oferuje funkcje, które mogą wymagać dostępu do danych podlegających ograniczeniom lub działań z ograniczeniami, ustal, czy możesz uzyskać te informacje lub wykonać działania bez konieczności deklarowania uprawnień. Aplikacja sprawdza się w wielu przypadkach, takich jak robienie zdjęć, wstrzymywanie odtwarzania multimediów czy wyświetlanie trafnych reklam, bez konieczności zgłaszania żadnych uprawnień.

Jeśli uznasz, że w celu realizacji konkretnego przypadku użycia aplikacja musi mieć dostęp do danych objętych ograniczeniami lub wykonywać działania z ograniczeniami, zadeklaruj odpowiednie uprawnienia. Niektóre uprawnienia, zwane uprawnieniami podczas instalacji, są przyznawane automatycznie podczas instalowania aplikacji. Inne uprawnienia, zwane uprawnieniami czasu działania, wymagają od aplikacji przejścia dalej i prośby o ich przyznanie w czasie działania.

Rysunek 1 przedstawia proces korzystania z uprawnień aplikacji:

Rysunek 1. Ogólny przepływ pracy dotyczący korzystania z uprawnień na Androidzie.

Typy uprawnień

Android dzieli uprawnienia na różne typy, np. na czas instalacji, uprawnienia w czasie działania i specjalne uprawnienia. Typ każdego uprawnienia wskazuje zakres danych podlegających ograniczeniom, do których aplikacja ma dostęp, oraz zakres ograniczonych działań, które może wykonać aplikacja, gdy system przyzna jej odpowiednie uprawnienia. Poziom ochrony każdego uprawnienia zależy od jego typu i jest wyświetlany na stronie z informacjami o interfejsie API uprawnień.

Uprawnienia podczas instalacji

Obraz po lewej stronie przedstawia listę uprawnień aplikacji podczas instalacji. Obraz po prawej stronie przedstawia wyskakujące okienko z 2 opcjami: zezwalaj i odrzucaj.
Rysunek 2. Lista uprawnień podczas instalacji aplikacji, która jest widoczna w sklepie z aplikacjami.

Uprawnienia w czasie instalacji zapewniają aplikacji ograniczony dostęp do ograniczonych danych lub umożliwiają jej wykonywanie ograniczonych działań, które mają minimalny wpływ na system lub inne aplikacje. Po zadeklarowaniu w aplikacji uprawnień na czas instalacji sklep z aplikacjami wyświetla użytkownikowi powiadomienie o uprawnieniach w czasie instalacji na stronie z informacjami o aplikacji, tak jak na ilustracji 2. System automatycznie przyznaje aplikacji uprawnienia, gdy użytkownik ją zainstaluje.

Android obejmuje kilka podtypów uprawnień podczas instalacji, w tym uprawnienia normalne i uprawnienia do podpisu.

Normalne uprawnienia

Te uprawnienia umożliwiają dostęp do danych i działań spoza piaskownicy aplikacji, ale stwarzają bardzo niewielkie ryzyko dla prywatności użytkownika i działania innych aplikacji.

System przypisuje normalnym uprawnieniom poziom ochrony normal.

Uprawnienia do podpisu

System nadaje aplikacji uprawnienia do podpisu tylko wtedy, gdy jest ona podpisana tym samym certyfikatem co aplikacja lub system operacyjny, który określa to uprawnienie.

Z tych uprawnień korzystają też aplikacje implementujące usługi z podwyższonymi uprawnieniami, takie jak autouzupełnianie czy usługi VPN. Te aplikacje wymagają uprawnień do podpisywania powiązania usług, aby tylko system mógł z nimi powiązać usługi.

System przypisuje poziom ochrony signature do uprawnień do podpisu.

Uprawnienia czasu działania

Wyskakujące okienko z 2 opcjami: zezwalaj i odrzucaj.
Rysunek 3. Prośba o uprawnienia systemowe, która wyświetla się, gdy aplikacja prosi o przyznanie uprawnień w czasie działania.

Uprawnienia czasu działania, nazywane też niebezpiecznymi uprawnieniami, dają aplikacji dodatkowy dostęp do danych objętych ograniczeniami lub umożliwiają aplikacji wykonywanie ograniczonych działań, które w znacznym stopniu wpływają na system i inne aplikacje. Dlatego, aby uzyskać dostęp do danych podlegających ograniczeniom lub wykonywać działania z ograniczeniami, musisz poprosić o uprawnienia w czasie działania w swojej aplikacji. Nie zakładaj, że uprawnienia zostały przyznane już wcześniej – sprawdź je i w razie potrzeby poproś o nie przy każdym dostępie.

Gdy aplikacja prosi o przyznanie uprawnień czasu działania, system wyświetla prośbę o przyznanie uprawnień w czasie działania, tak jak na ilustracji 3.

Wiele uprawnień czasu działania ma dostęp do prywatnych danych użytkowników, czyli specjalnego typu danych podlegających ograniczeniom, które mogą obejmować informacje poufne. Przykładowe dane prywatne użytkownika to lokalizacja i informacje kontaktowe.

Mikrofon i aparat zapewniają dostęp do szczególnie poufnych informacji. Dzięki temu system pomaga wyjaśnić, dlaczego aplikacja uzyskuje dostęp do tych informacji.

System przypisuje poziom ochrony dangerous do uprawnień w czasie działania aplikacji.

Uprawnienia specjalne

Uprawnienia specjalne odpowiadają określonym operacjom w aplikacji. Tylko platforma i producent OEM mogą określać specjalne uprawnienia. Dodatkowo platforma i producenci OEM zwykle określają specjalne uprawnienia, gdy chcą chronić dostęp do szczególnie zaawansowanych działań, takich jak przeciągnięcie nad innymi aplikacjami.

Strona Specjalny dostęp do aplikacji w ustawieniach systemu zawiera zestaw operacji, które użytkownik może przełączać. Wiele z tych operacji to uprawnienia specjalne.

Dowiedz się więcej o tym, jak poprosić o uprawnienia specjalne.

System przypisuje specjalny poziom ochrony appop.

Grupy uprawnień

Uprawnienia mogą należeć do grup uprawnień. Grupy uprawnień składają się z powiązanych logicznie uprawnień. Na przykład uprawnienia do wysyłania i odbierania SMS-ów mogą należeć do tej samej grupy, ponieważ oba są związane z obsługą SMS-ów przez aplikację.

Grupy uprawnień pomagają systemowi zminimalizować liczbę okien systemowych wyświetlanych użytkownikowi, gdy aplikacja prosi o zbliżone uprawnienia. Gdy użytkownik zostanie poproszony o przyznanie uprawnień aplikacji, uprawnienia należące do tej samej grupy zostaną przedstawione w tym samym interfejsie. Uprawnienia mogą jednak zmieniać grupę bez powiadomienia, więc nie zakładaj, że konkretne uprawnienie zostało zgrupowane z innymi uprawnieniami.

Sprawdzone metody

Uprawnienia aplikacji bazują na funkcjach zabezpieczeń systemu i pomagają Androidowi osiągać następujące cele związane z prywatnością użytkownika:

  • Kontrola: użytkownik ma kontrolę nad danymi udostępnianymi aplikacjom.
  • Przejrzystość: użytkownik wie, jakich danych używa aplikacja i dlaczego ma do nich dostęp.
  • Minimalizowanie danych: aplikacja uzyskuje dostęp do tych danych i wykorzystuje tylko te dane, które są wymagane do wykonania określonego zadania lub działania wywoływanego przez użytkownika.

W tej sekcji przedstawiamy podstawowe sprawdzone metody efektywnego korzystania z uprawnień w aplikacji. Więcej informacji o tym, jak korzystać z uprawnień na Androidzie, znajdziesz na stronie ze sprawdzonymi metodami korzystania z uprawnień aplikacji.

Poproś o minimalną liczbę uprawnień

Gdy użytkownik poprosi o określone działanie w aplikacji, powinna ona prosić tylko o uprawnienia wymagane do wykonania tego działania. W zależności od tego, w jaki sposób korzystasz z uprawnień, może istnieć alternatywny sposób realizacji zastosowania aplikacji bez konieczności korzystania z dostępu do informacji poufnych.

Powiąż uprawnienia czasu działania z określonymi działaniami

Prośby o uprawnienia należy wysyłać na jak najwcześniejszym etapie procesu użycia aplikacji. Jeśli na przykład Twoja aplikacja umożliwia użytkownikom wysyłanie wiadomości dźwiękowych do innych osób, poczekaj, aż użytkownik przejdzie do ekranu wiadomości i nie kliknie przycisku Wyślij wiadomość głosową. Gdy użytkownik naciśnie przycisk, aplikacja może poprosić o dostęp do mikrofonu.

Przeanalizuj zależności aplikacji

Jeśli dołączysz bibliotekę, zostaną też dziedziczone wymagania dotyczące uprawnień. Poznaj uprawnienia, których wymaga każda zależność, oraz informacje o tym, do czego służą.

Postaw na szczerość

Przesyłając prośbę o przyznanie uprawnień, jasno określ, do czego korzystasz, dlaczego i jakie funkcje będą miały wpływ na ich odmowę. Dzięki temu użytkownicy będą mogli podejmować świadome decyzje.

Wyraźnie określ dostęp do systemu

Gdy uzyskujesz dostęp do poufnych danych lub sprzętu, takiego jak kamera czy mikrofon, aplikacja informuje na bieżąco o tym, czy system nie udostępnia tych wskaźników. To przypomnienie pomaga użytkownikom dokładnie zrozumieć, kiedy Twoja aplikacja uzyskuje dostęp do danych objętych ograniczeniami lub wykonuje działania z ograniczeniami.

Uprawnienia dotyczące komponentów systemu

Uprawnienia nie służą tylko do żądania funkcji systemowych. Komponenty systemowe aplikacji mogą określać, które inne aplikacje mogą wchodzić w interakcje z aplikacją, zgodnie z opisem na stronie jak ograniczać interakcje z innymi aplikacjami.