Kamery 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 może zostać przyznane tylko aplikacjom zainstalowanym na partycji systemowej i podpisanych tym samym certyfikatem co system. Aplikacje publiczne innych firm nie mają dostępu do kamer systemowych.

Kamery systemowe są przydatne dla producentów urządzeń, którzy chcą wdrażać funkcje wymagające dostępu do aparatu, ale ograniczone do aplikacji z uprawnieniami lub systemowych.

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 dane urządzenie z kamerą stało się kamerą systemową, interfejs HAL kamery musi uwzględniać je na liście swoich możliwościANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA.

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.