Uprawnienia na Androidzie

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

  • Dane objęte ograniczeniami, 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 przepływ pracy związany z używaniem uprawnień, opisy różnych typów uprawnień oraz wybrane sprawdzone metody korzystania z uprawnień w aplikacji. Na innych stronach wyjaśniamy, jak zminimalizować liczbę żądań przyznania uprawnień, deklarować uprawnienia, prosić o uprawnienia w czasie działania oraz ograniczyć współdziałanie innych aplikacji z jej komponentami.

Aby zobaczyć pełną listę uprawnień aplikacji na Androida, otwórz stronę z informacjami o uprawnieniach interfejsu API.

Aby wyświetlić kilka przykładowych aplikacji ilustrujących przepływ pracy dotyczący uprawnień, odwiedź repozytorium przykładowych uprawnień Androida na GitHubie.

Procedura korzystania z uprawnień

Jeśli aplikacja oferuje funkcje, które mogą wymagać dostępu do danych objętych ograniczeniami lub działań z ograniczeniami, ustal, czy możesz uzyskać te informacje lub wykonywać działania bez konieczności deklarowania uprawnień. Aplikacja może pełnić wiele funkcji, takich jak robienie zdjęć, wstrzymywanie odtwarzania multimediów czy wyświetlanie odpowiednich reklam bez konieczności deklarowania uprawnień.

Jeśli zdecydujesz, że aplikacja musi uzyskiwać dostęp do danych objętych ograniczeniami lub wykonywać działania z ograniczeniami, aby zrealizować określony przypadek użycia, zadeklaruj odpowiednie uprawnienia. Niektóre uprawnienia, nazywane uprawnieniami podczas instalacji, są przyznawane automatycznie podczas instalowania aplikacji. Inne uprawnienia, nazywane uprawnieniami środowiska wykonawczego, wymagają od aplikacji dalszych działań i wysyłania prośby o ich przyznanie w czasie działania.

Ilustracja 1 przedstawia proces korzystania z uprawnień aplikacji:

Rysunek 1. Ogólny przepływ pracy związany z korzystaniem z uprawnień na Androidzie.

Typy uprawnień

Android dzieli uprawnienia na różne typy, w tym uprawnienia w czasie instalacji, uprawnienia w czasie działania i specjalne uprawnienia. Typ każdego uprawnienia wskazuje zakres ograniczonych danych, do których aplikacja ma dostęp, oraz zakres działań, które aplikacja może wykonać, gdy system przyzna jej te uprawnienia. Poziom ochrony każdego uprawnienia zależy od jego typu i jest widoczny na stronie Dokumentacja 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: zezwolenia i odmowy.
Rysunek 2. Lista uprawnień aplikacji podczas instalacji, która jest widoczna w sklepie z aplikacjami.

Uprawnienia podczas instalacji zapewniają aplikacji ograniczony dostęp do danych podlegających ograniczeniom lub pozwalają jej wykonywać działania z ograniczeniami, które w minimalnym stopniu wpływają na system lub inne aplikacje. Gdy zadeklarujesz uprawnienia w czasie instalacji, sklep z aplikacjami wyświetli użytkownikowi powiadomienie o uprawnieniach w czasie instalacji, gdy otworzy się strona z informacjami o aplikacji, tak jak na ilustracji 2. System automatycznie przyznaje aplikacji uprawnienia, gdy użytkownik ją zainstaluje.

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

Zwykłe uprawnienia

Te uprawnienia umożliwiają dostęp do danych i działań, które wykraczają poza piaskownicę Twojej aplikacji, ale stanowią bardzo niewielkie zagrożenie dla prywatności użytkownika i działania innych aplikacji.

System przypisuje poziom ochrony normal do normalnych uprawnień.

Uprawnienia do podpisu

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

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

System przypisuje poziom ochrony signature do uprawnień do podpisu.

Uprawnienia czasu działania

Wyskakujące okno z 2 opcjami: zezwolenia na dostęp i odrzucanie.
Rysunek 3. Prośba o uprawnienia systemowe, która pojawia się, gdy aplikacja poprosi o uprawnienia w czasie działania.

Uprawnienia w czasie działania, nazywane też niebezpiecznymi uprawnieniami, dają aplikacji dodatkowe uprawnienia dostępu do danych objętych ograniczeniami lub pozwalają jej na wykonywanie ograniczonych działań, które w większym stopniu wpływają na system i inne aplikacje. Dlatego, aby uzyskać dostęp do danych podlegających ograniczeniom lub wykonać działania objęte ograniczeniami, musisz poprosić o uprawnienia w czasie działania w aplikacji. Nie zakładaj, że te uprawnienia zostały przyznane wcześniej – sprawdź je i w razie potrzeby poproś o nie przed każdym uzyskaniem dostępu.

Gdy aplikacja prosi o takie uprawnienia, system wyświetla prośbę o pozwolenie w czasie działania, jak widać na rysunku 3.

Wiele uprawnień w czasie działania aplikacji uzyskuje dostęp do prywatnych danych użytkownika, czyli specjalnego typu danych z ograniczeniami, które zawierają potencjalnie poufne informacje. Prywatne dane użytkownika to na przykład 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.

Uprawnienia specjalne

Uprawnienia specjalne odpowiadają konkretnym operacjom w aplikacji. Specjalne uprawnienia mogą określać tylko platforma i producent OEM. Ponadto platforma i producenci OEM zwykle definiują specjalne uprawnienia, gdy chcą chronić dostęp do szczególnie zaawansowanych działań, takich jak wyświetlanie nad innymi aplikacjami.

Strona Specjalny dostęp aplikacji w ustawieniach systemu zawiera zestaw operacji, które użytkownik może przełączyć. Wiele z tych działań jest wdrożonych jako specjalne uprawnienia.

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

System przypisuje poziom ochrony appop do specjalnych uprawnień.

Grupy uprawnień

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

Grupy uprawnień pomagają systemowi zminimalizować liczbę okien dialogowych wyświetlanych użytkownikowi, gdy aplikacja prosi o ściśle powiązane uprawnienia. Gdy użytkownikowi wyświetla się prośba o przyznanie uprawnień aplikacji, w tym samym interfejsie wyświetlane są uprawnienia należące do tej samej grupy. Uprawnienia mogą jednak zmieniać grupy bez powiadomienia, dlatego nie zakładaj, że konkretne uprawnienie jest zgrupowane z innymi uprawnieniami.

Sprawdzone metody

Uprawnienia aplikacji bazują na funkcjach zabezpieczeń systemu i pomagają Androidowi w realizacji tych celów związanych z prywatnością użytkowników:

  • Kontrola: użytkownik ma kontrolę nad danymi, które udostępnia aplikacjom.
  • Przejrzystość: użytkownik wie, jakich danych używa aplikacja i dlaczego ma do nich dostęp.
  • Minimalizacja danych: aplikacja uzyskuje dostęp do danych wymaganych do określonego zadania lub działania wywoływanego przez użytkownika i korzysta tylko z nich.

Ta sekcja zawiera zestaw podstawowych sprawdzonych metod efektywnego korzystania z uprawnień w aplikacji. Więcej informacji na temat korzystania z uprawnień na Androidzie znajdziesz na sprawdzonych metodach dotyczących uprawnień aplikacji.

Poproś o minimalną liczbę uprawnień

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

Powiąż uprawnienia czasu działania z konkretnymi działaniami

Poproś o uprawnienia na jak najpóźniejszym etapie użycia aplikacji. Jeśli na przykład aplikacja umożliwia użytkownikom wysyłanie wiadomości głosowych do innych osób, poczekaj, aż przejdzie do ekranu wiadomości i naciśnie przycisk Wyślij wiadomość głosową. Gdy użytkownik naciśnie przycisk, aplikacja może poprosić o dostęp do mikrofonu.

Weź pod uwagę zależności aplikacji

Gdy dołączysz bibliotekę, odziedziczysz też jej wymagania dotyczące uprawnień. Zwróć uwagę na uprawnienia, które są wymagane w przypadku każdej zależności i do czego te uprawnienia są potrzebne.

Postaw na szczerość

Po przesłaniu prośby o uprawnienia wyjaśnij w jasny sposób, do czego się łączysz, dlaczego i na jakie funkcje wpływa odmowa przyznania uprawnień. Dzięki temu użytkownicy będą mogli podejmować świadome decyzje.

Ustaw dostęp systemu jako przeznaczony dla pełnoletnich

Gdy uzyskujesz dostęp do danych wrażliwych lub sprzętu, np. aparatu czy mikrofonu, pamiętaj o ciągłym informowaniu aplikacji, jeśli system jeszcze ich nie udostępnił. To przypomnienie pomaga użytkownikom dowiedzieć się, kiedy aplikacja uzyskuje dostęp do danych objętych ograniczeniami lub wykonuje działania z ograniczonym dostępem.

Uprawnienia w komponentach systemu

Uprawnienia nie służą tylko do wysyłania żądań funkcji systemowych. Komponenty systemu aplikacji mogą określać, które inne aplikacje mogą wchodzić z nią w interakcję, zgodnie z opisem na stronie ograniczania interakcji z innymi aplikacjami.