Aparaty systemowe

Na urządzeniach z Androidem 11 lub nowszym framework Androida obsługuje aparaty systemowe, czyli urządzenia z aparatem, które są widoczne tylko dla procesów z uprawnieniami android.permission.SYSTEM_CAMERA i zwykłymi uprawnieniami do aparatu. Uprawnienie android.permission.SYSTEM_CAMERA, wprowadzone w Androidzie 11, ma poziom ochrony system|signature. Oznacza to, że to uprawnienie mogą uzyskać tylko aplikacje zainstalowane na partycji systemowej i podpisane tym samym certyfikatem co system. Publiczne aplikacje innych firm nie mają dostępu do kamer systemowych.

Aparaty systemowe są przydatne dla producentów urządzeń, którzy chcą wdrożyć funkcje, które wymagają dostępu do aparatu, ale mogą też ograniczać się do aplikacji systemowych lub aplikacji z podwyższonymi uprawnieniami.

Aplikacje systemowe, które mają uprawnienia android.permission.SYSTEM_CAMERA, muszą mieć też uprawnienia android.permission.CAMERA. Użytkownicy mogą cofnąć normalne uprawnienia CAMERA, aby uniemożliwić takiej aplikacji dostęp do kamer na urządzeniu.

Implementacja

Aby przekształcić konkretne urządzenie z aparatem w aparat systemowy, HAL aparatu musi reklamować ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA na liście funkcji.

Aby utworzyć aplikację, która ma dostęp do aparatu systemowego, musi ona znaleźć się na liście dozwolonych aplikacji w pliku privapp-permissions.xml, który określa aplikacje, którym należy przyznać uprawnienia.android.permission.SYSTEM_CAMERA

Weryfikacja

Aby sprawdzić, czy publiczna aplikacja nie może wykryć żadnej kamery systemowej na urządzeniu, uruchom test android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery CTS.

Wszystkie testy CTS aparatu są przeprowadzane na urządzeniach z aparatem systemowym.