Uprawnienia aplikacji pomagają chronić prywatność użytkowników, ograniczając dostęp do:
- Dane z ograniczonym dostępem, takie jak stan systemu i informacje kontaktowe użytkowników.
- Działania ograniczone, takie jak łączenie się ze sparowanym urządzeniem i nagrywanie dźwięku
Na tej stronie znajdziesz 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ń i sprawdzone metody korzystania z uprawnień w aplikacji. Na innych stronach dowiesz się, jak ograniczyć prośby aplikacji o uprawnienia, deklarować uprawnienia, prosić o uprawnienia w czasie działania i ograniczać interakcje innych aplikacji z komponentami Twojej aplikacji.
Pełną listę uprawnień aplikacji na Androida znajdziesz na stronie z dokumentacją interfejsu API uprawnień.
Aby zobaczyć przykładowe aplikacje, które pokazują przepływ pracy związany z uprawnieniami, odwiedź repozytorium z przykładami uprawnień na Androidzie na GitHubie.
Proces korzystania z uprawnień
Jeśli Twoja aplikacja oferuje funkcje, które mogą wymagać dostępu do danych lub działań objętych ograniczeniami, sprawdź, czy możesz uzyskać te informacje lub wykonać te działania bez konieczności deklarowania uprawnień. Możesz realizować wiele przypadków użycia w aplikacji, takich jak robienie zdjęć, wstrzymywanie odtwarzania multimediów i wyświetlanie trafnych reklam, bez konieczności deklarowania uprawnień.
Jeśli zdecydujesz, że aplikacja musi mieć dostęp do danych objętych ograniczeniami lub wykonywać działania objęte ograniczeniami, aby spełnić wymagania przypadku użycia, zadeklaruj odpowiednie uprawnienia. Niektóre uprawnienia, nazywane uprawnieniami przyznawanymi podczas instalacji, są przyznawane automatycznie podczas instalowania aplikacji. Inne uprawnienia, nazywane uprawnieniami w czasie działania, wymagają od aplikacji wykonania dodatkowego kroku i poproszenia o uprawnienia w czasie działania.
Rysunek 1 przedstawia przepływ pracy związany z używaniem uprawnień aplikacji:
Typy uprawnień
Android dzieli uprawnienia na różne typy, w tym uprawnienia w czasie instalacji, uprawnienia w czasie działania i uprawnienia specjalne. Typ uprawnienia określa zakres danych podlegających ograniczeniom, do których aplikacja może mieć dostęp, oraz zakres działań podlegających ograniczeniom, które aplikacja może wykonywać, gdy system przyzna jej te uprawnienia. Poziom ochrony każdego uprawnienia zależy od jego typu i jest widoczny na stronie z dokumentacją API uprawnień.
Uprawnienia przyznawane podczas instalacji
Uprawnienia przyznawane podczas instalacji dają aplikacji ograniczony dostęp do danych z ograniczeniami lub pozwalają jej wykonywać działania z ograniczeniami, które mają minimalny wpływ na system lub inne aplikacje. Gdy zadeklarujesz w aplikacji uprawnienia wymagane podczas instalacji, sklep z aplikacjami wyświetli użytkownikowi informację o uprawnieniach, gdy otworzy on stronę z informacjami o aplikacji (jak na rysunku 2). System automatycznie przyznaje aplikacji uprawnienia, gdy użytkownik ją zainstaluje.
Android obejmuje kilka podtypów uprawnień przyznawanych podczas instalacji, w tym uprawnienia normalne i uprawnienia do podpisu.
Uprawnienia normalne
Te uprawnienia umożliwiają dostęp do danych i działań, które wykraczają poza piaskownicę aplikacji, ale stanowią bardzo niewielkie zagrożenie dla prywatności użytkownika i działania innych aplikacji.
System przypisuje poziom ochrony normal do uprawnień normalnych.
Uprawnienia do podpisu
System przyznaje aplikacji uprawnienia do podpisu tylko wtedy, gdy aplikacja jest podpisana tym samym certyfikatem co aplikacja lub system operacyjny, który definiuje uprawnienia.
Aplikacje, które implementują usługi uprzywilejowane, takie jak autouzupełnianie lub usługi VPN, również korzystają z uprawnień do podpisu. Te aplikacje wymagają uprawnień do podpisu powiązania usługi, aby tylko system mógł powiązać się z usługami.
System przypisuje uprawnieniom podpisu poziom ochrony signature.
Uprawnienia czasu działania
Uprawnienia w czasie działania (aplikacji), nazywane też uprawnieniami niebezpiecznymi, dają aplikacji dodatkowy dostęp do danych z ograniczeniami lub umożliwiają jej wykonywanie działań z ograniczeniami, które mają większy wpływ na system i inne aplikacje. Dlatego zanim uzyskasz dostęp do danych objętych ograniczeniami lub wykonasz 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 prosi o uprawnienia w czasie działania, system wyświetla prośbę o przyznanie uprawnień w czasie działania, jak pokazano na rysunku 3.
Wiele uprawnień w czasie działania aplikacji zapewnia dostęp do prywatnych danych użytkownika, czyli specjalnego typu danych z ograniczonym dostępem, które obejmują potencjalnie poufne informacje. Przykłady prywatnych danych użytkownika to lokalizacja i informacje kontaktowe.
Mikrofon i aparat zapewniają dostęp do szczególnie poufnych informacji. Dlatego system pomaga wyjaśnić, dlaczego aplikacja uzyskuje dostęp do tych informacji.
System przypisuje uprawnieniom w czasie działania poziom ochrony dangerous.
Uprawnienia specjalne
Uprawnienia specjalne odpowiadają konkretnym operacjom aplikacji. Tylko platforma i producenci OEM mogą definiować uprawnienia specjalne. Dodatkowo platforma i producenci OEM zwykle definiują uprawnienia specjalne, gdy chcą chronić dostęp do szczególnie zaawansowanych działań, takich jak rysowanie nad innymi aplikacjami.
Strona Aplikacje ze specjalnym dostępem w ustawieniach systemowych zawiera zestaw operacji, które użytkownik może przełączać. Wiele z tych operacji jest implementowanych jako uprawnienia specjalne.
Dowiedz się więcej o tym, jak poprosić o uprawnienia specjalne.
System przypisuje uprawnieniom specjalnym poziom ochrony appop.
Grupy uprawnień
Uprawnienia mogą należeć do grup uprawnień. Grupy uprawnień składają się z 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 zminimalizować liczbę okien dialogowych wyświetlanych użytkownikowi, gdy aplikacja prosi o powiązane uprawnienia. Gdy użytkownik zobaczy prośbę o przyznanie uprawnień aplikacji, uprawnienia należące do tej samej grupy zostaną wyświetlone w tym samym interfejsie. Uprawnienia mogą jednak zmieniać grupy bez powiadomienia, więc nie zakładaj, że dane uprawnienie jest zgrupowane z innym.
Sprawdzone metody
Uprawnienia aplikacji opierają się 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 rozumie, jakich danych używa aplikacja i dlaczego uzyskuje do nich dostęp.
- Minimalizacja danych: aplikacja uzyskuje dostęp tylko do tych danych, które są wymagane do wykonania określonego zadania lub działania wywołanego przez użytkownika, i tylko z nich korzysta.
W tej sekcji przedstawiamy zestaw podstawowych sprawdzonych metod skutecznego korzystania z uprawnień w aplikacji. Więcej informacji o tym, jak pracować z uprawnieniami na Androidzie, znajdziesz na stronie ze sprawdzonymi metodami dotyczącymi uprawnień aplikacji.
Prośba o minimalną liczbę uprawnień
Gdy użytkownik prosi o wykonanie określonego działania w aplikacji, aplikacja powinna prosić tylko o uprawnienia, które są jej potrzebne do wykonania tego działania. W zależności od tego, jak korzystasz z uprawnień, może istnieć alternatywny sposób na realizację przypadku użycia aplikacji bez konieczności uzyskiwania dostępu do informacji poufnych.
Powiązywanie uprawnień w czasie działania aplikacji z określonymi działaniami
Proś o uprawnienia jak najpóźniej w procesie 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ż użytkownik 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.
Uwzględnianie zależności aplikacji
Gdy dołączasz bibliotekę, dziedziczysz też jej wymagania dotyczące uprawnień. Zwróć uwagę na uprawnienia wymagane przez każdą zależność i na to, do czego są one używane.
Postaw na szczerość
Gdy prosisz o uprawnienia, jasno określ, do czego chcesz uzyskać dostęp, dlaczego i na jakie funkcje wpłynie odmowa, aby użytkownicy mogli podejmować świadome decyzje.
Wyraźne określanie dostępu do systemu
Jeśli uzyskujesz dostęp do danych wrażliwych lub sprzętu, takiego jak aparat lub mikrofon, wyświetlaj w aplikacji ciągłe powiadomienie, jeśli system nie wyświetla takich wskaźników. Dzięki temu użytkownicy będą dokładnie wiedzieć, kiedy aplikacja uzyskuje dostęp do danych podlegających ograniczeniom lub wykonuje działania podlegające ograniczeniom.
Uprawnienia w komponentach systemowych
Uprawnienia nie służą tylko do żądania funkcji systemowych. Komponenty systemowe aplikacji mogą ograniczać możliwość interakcji innych aplikacji z Twoją aplikacją, jak opisano na stronie o ograniczaniu interakcji z innymi aplikacjami.