Uprawnienia aplikacji pomagają chronić prywatność użytkowników, zapewniając dostęp do:
- Dane ograniczone, takie jak stan systemu i dane kontaktowe użytkowników.
- Działania ograniczone, takie jak łączenie z sparowanym urządzeniem i nagrywanie dźwięku.
Na tej stronie znajdziesz omówienie działania uprawnień w Androidzie, w tym ogólny proces używania uprawnień, opisy różnych typów uprawnień oraz sprawdzone metody używania uprawnień w aplikacji. Na innych stronach znajdziesz informacje o tym, jak zmniejszyć liczbę próśb o przyznanie uprawnień, deklarować uprawnienia, prosić o przyznanie uprawnień w czasie działania oraz ograniczyć sposób interakcji innych aplikacji z komponentami Twojej aplikacji.
Pełną listę uprawnień aplikacji na Androida znajdziesz na stronie referencyjnej 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 Twoja aplikacja oferuje funkcje, które mogą wymagać dostępu do danych lub działań o ograniczonym dostępie, określ, czy możesz uzyskać informacje lub wykonać działania bez deklarowania uprawnień. W aplikacji możesz realizować wiele scenariuszy, np. robić zdjęcia, wstrzymywać odtwarzanie multimediów i wyświetlać odpowiednie reklamy, bez konieczności deklarowania żadnych uprawnień.
Jeśli uznasz, że aplikacja musi mieć dostęp do danych objętych ograniczeniami lub wykonywać czynności objęte ograniczeniami, aby spełniać wymagania dotyczące przypadku użycia, zadeklaruj odpowiednie uprawnienia. Niektóre uprawnienia, zwane uprawnieniami na czas instalacji, są przyznawane automatycznie po zainstalowaniu aplikacji. Inne uprawnienia, zwane uprawnieniami w czasie działania, wymagają od aplikacji, aby poszła o krok dalej i poprosiła o uprawnienia w czasie działania.
Rysunek 1 przedstawia przepływ pracy związany z uprawnieniami aplikacji:
Typy uprawnień
Android dzieli uprawnienia na różne typy, m.in. uprawnienia do instalowania, uprawnienia do środowiska wykonawczego i uprawnienia specjalne. Typ każdego uprawnienia wskazuje zakres danych z ograniczonym dostępem, do których ma dostęp Twoja aplikacja, oraz zakres ograniczonych działań, które może wykonywać, gdy system przyzna jej to uprawnienie. Poziom ochrony dla poszczególnych uprawnień zależy od ich typu i jest widoczny na stronie dokumentacji interfejsu API dotyczącej uprawnień.
Uprawnienia na czas instalacji
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 w aplikacji uprawnienia na czas instalacji, sklep z aplikacjami wyświetli użytkownikowi powiadomienie o uprawnieniach na czas instalacji, gdy ten otworzy stronę z informacjami o aplikacji (patrz rys. 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 podpisywania usług, aby tylko system mógł się z nimi łączyć.
System przypisuje poziom ochrony signature
do uprawnień podpisu.
Uprawnienia czasu 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 zanim uzyskasz dostęp do danych objętych ograniczeniami lub wykonasz działania objęte ograniczeniami, musisz w swojej aplikacji poprosić o uprawnienia na czas działania. 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 odpowiedni komunikat, 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. Przykłady prywatnych danych użytkownika to 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. Tylko platforma i OEM mogą definiować uprawnienia specjalne. 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 uprawnieniom specjalnym poziom ochrony appop
.
Grupy uprawnień
Uprawnienia mogą należeć do grup uprawnień. Grupy uprawnień składają się z zestawu logicznie powiązanych 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 określone działanie w aplikacji, aplikacja powinna poprosić o tylko te uprawnienia, których potrzebuje do wykonania tego działania. W zależności od tego, jak używasz uprawnień, może istnieć inny sposób realizacji przypadku użycia aplikacji bez konieczności uzyskiwania dostępu do poufnych informacji.
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 Twoja aplikacja umożliwia użytkownikom wysyłanie wiadomości audio do innych osób, poczekaj, aż użytkownik przejdzie na ekran wiadomości i kliknie przycisk Wyślij wiadomość audio. Gdy użytkownik naciśnie przycisk, aplikacja może poprosić o dostęp do mikrofonu.
Zależności aplikacji
Gdy uwzględnisz bibliotekę, przejmiesz też 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ść
Gdy prosisz o przyznanie uprawnień, wyraźnie określ, do czego chcesz uzyskać dostęp, dlaczego tego potrzebujesz i jakie funkcje będą niedostępne, jeśli użytkownik odmówi. Dzięki temu użytkownicy będą mogli podejmować świadome decyzje.
Wyraźny dostęp do systemu
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 systemowe aplikacji mogą ograniczać, które inne aplikacje mogą wchodzić z nią w interakcje. Opisano to na stronie ograniczanie interakcji z innymi aplikacjami.