Uprawnienia na Androidzie

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

  • 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

Na tej stronie znajdziesz omówienie działania uprawnień w Androidzie, w tym ogólny proces korzystania z uprawnień, opisy różnych typów uprawnień oraz sprawdzone metody korzystania z uprawnień w aplikacji. Na innych stronach znajdziesz informacje o tym, jak zmniejszyć liczbę próśb o uprawnienia, deklarować uprawnienia, prosić o uprawnienia w czasie działania aplikacji oraz ograniczyć sposób interakcji innych aplikacji z komponentami Twojej aplikacji.

Pełną listę uprawnień aplikacji na Androida znajdziesz na stronie z dokumentacją interfejsu API uprawnień.

Aby wyświetlić przykładowe aplikacje, które demonstrują proces przyznawania uprawnień, otwórz repozytorium przykładowych aplikacji z uprawnieniami Androida w GitHub.

Procedura dotycząca używania 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ń. W aplikacji możesz realizować wiele przypadków użycia, takich jak robienie zdjęć, wstrzymywanie odtwarzania multimediów i wyświetlanie odpowiednich reklam, bez konieczności deklarowania żadnych uprawnień.

Jeśli zdecydujesz, że aplikacja musi mieć 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, zwane uprawnieniami na czas instalacji, są przyznawane automatycznie po zainstalowaniu 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 proces korzystania z uprawnień na Androidzie.

Typy uprawnień

Android dzieli uprawnienia na różne rodzaje, w tym uprawnienia w czasie instalacji, uprawnienia w czasie działania i specjalne uprawnienia. Typ każdego uprawnienia wskazuje zakres danych z ograniczonym dostępem, do których ma dostęp aplikacja, oraz zakres ograniczonych działań, które aplikacja może wykonywać, gdy system przyznaje jej to uprawnienie. Poziom ochrony każdego uprawnienia zależy od jego typu i jest wyświetlany na stronie Dokumentacja API uprawnień.

Uprawnienia na czas instalacji

Po lewej stronie widać listę uprawnień wymaganych w momencie instalacji aplikacji. Obraz po prawej stronie przedstawia wyskakujące okienko z 2 opcjami: zezwalaj i odmów.
Rysunek 2. Lista uprawnień wymaganych do instalacji aplikacji, która jest widoczna w sklepie z aplikacjami.

Uprawnienia na czas instalacji zapewniają aplikacji ograniczony dostęp do danych objętych ograniczeniami lub umożliwiają jej wykonywanie ograniczonych działań, które minimalnie 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 te uprawnienia, gdy użytkownik ją zainstaluje.

Android obsługuje kilka podtypów uprawnień na czas instalacji, w tym uprawnienia normalne i uprawnienia sygnatury.

Normalne uprawnienia

Te uprawnienia umożliwiają dostęp do danych i działań wykraczających poza piaskownicę aplikacji, ale nie stanowią dużego zagrożenia dla prywatności użytkownika ani działania innych aplikacji.

System przypisuje do normalnych uprawnień poziom ochrony normal.

Uprawnienia dotyczące podpisu

System przyznaje uprawnienie do podpisywania aplikacji tylko wtedy, gdy aplikacja jest podpisana tym samym certyfikatem co aplikacja lub system operacyjny, który definiuje uprawnienie.

Aplikacje, które implementują usługi uprzywilejowane, takie jak autouzupełnianie czy usługi VPN, również korzystają z uprawnień podpisu. 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ń podpisu.

Uprawnienia czasu działania

Wyskakujące okno z 2 opcjami: zezwolenia na dostęp i odrzucanie.
Rysunek 3. Prośba o uprawnienia wyświetlana przez system, gdy aplikacja prosi o uprawnienia w czasie działania.

Uprawnienia w czasie wykonywania, zwane też niebezpiecznymi, zapewniają aplikacji dodatkowy dostęp do danych z ograniczonym dostępem lub umożliwiają wykonywanie 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 już przyznane. Sprawdź je i w razie potrzeby poproś o nie przed każdym dostępem.

Gdy aplikacja poprosi o uprawnienia w czasie działania, system wyświetli prośbę o uprawnienia w czasie działania, jak pokazano na rysunku 3.

Wiele uprawnień w czasie działania aplikacji umożliwia dostęp do prywatnych danych użytkownika, czyli specjalnego typu danych zastrzeżonych, które obejmują potencjalnie poufne informacje. Prywatne dane użytkownika to na przykład lokalizacja i informacje kontaktowe.

Mikrofon i aparat dają dostęp do szczególnie wrażliwych informacji. Dlatego system pomaga Ci wyjaśnić, dlaczego Twoja aplikacja uzyskuje dostęp do tych informacji.

System przypisuje uprawnieniom czasowym poziom ochrony dangerous.

Uprawnienia specjalne

Uprawnienia specjalne odpowiadają określonym operacjom aplikacji. Specjalne uprawnienia mogą określać tylko platforma i producent OEM. Dodatkowo platforma i OEM-y zwykle definiują specjalne uprawnienia, gdy chcą chronić dostęp do szczególnie zaawansowanych działań, takich jak rysowanie na innych aplikacjach.

Strona Dostęp specjalny aplikacji w ustawieniach systemowych zawiera zestaw operacji, które użytkownik może włączać i wyłączać. Wiele z tych operacji jest implementowanych 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ż oba dotyczą interakcji aplikacji z SMS-ami.

Grupy uprawnień pomagają systemowi ograniczyć liczbę okien dialogowych systemu wyświetlanych użytkownikowi, gdy aplikacja prosi o powiązane ze sobą uprawnienia. Gdy użytkownik otrzyma prośbę o przyznanie uprawnień aplikacji, uprawnienia należące do tej samej grupy będą wyświetlane w tym samym interfejsie. Uprawnienia mogą jednak zmieniać grupy bez powiadomienia, więc nie zakładaj, że dane uprawnienie jest pogrupowane z innym uprawnieniem.

Sprawdzone metody

Uprawnienia aplikacji są oparte na funkcjach zabezpieczeń systemu i pomagają Androidowi realizować te cele związane z prywatnością użytkowników:

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

W tej sekcji znajdziesz kilka podstawowych sprawdzonych metod skutecznego używania uprawnień w aplikacji. Więcej informacji o obsługiwaniu uprawnień na Androidzie znajdziesz na stronie sprawdzonych metod dotyczących uprawnień aplikacji.

Proś o minimalną liczbę uprawnień

Gdy użytkownik wykona w aplikacji określone działanie, aplikacja powinna poprosić o tylko te uprawnienia, których potrzebuje 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ązywanie uprawnień w czasie działania z określonymi działaniami

Proś o uprawnienia jak najpóźniej w trakcie korzystania z 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ń. Pamiętaj o uprawnieniach wymaganych przez każdą zależność i o tym, do czego są one 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

Jeśli aplikacja ma dostęp do danych wrażliwych lub sprzętu, takiego jak kamera czy mikrofon, wyświetlaj w niej ciągły wskaźnik, jeśli system nie wyświetla już tego wskaźnika. To przypomnienie pomaga użytkownikom dokładnie zrozumieć, kiedy aplikacja uzyskuje dostęp do danych objętych ograniczeniami lub wykonuje działania objęte ograniczeniami.

Uprawnienia w komponentach systemu

Uprawnienia nie służą tylko do żądania 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.