Системные камеры

На устройствах под управлением Android 11 и выше платформа Android поддерживает системные камеры, которые являются устройствами видеонаблюдения, видимыми только процессам, имеющим разрешение android.permission.SYSTEM_CAMERA , а также обычные разрешения на использование камеры. Разрешение android.permission.SYSTEM_CAMERA , введенное в Android 11, имеет уровень защиты system|signature . Это означает, что это разрешение может быть предоставлено только приложениям, установленным в системном разделе с тем же сертификатом, что и система, или подписанным им. Сторонние общедоступные приложения не могут получить доступ к системным камерам.

Системные камеры полезны для производителей устройств, которые хотят реализовать функции, требующие доступа к камере, но при этом доступные только для привилегированных или системных приложений.

Поскольку системные приложения, которым предоставлено разрешение android.permission.SYSTEM_CAMERA , также должны иметь разрешение android.permission.CAMERA , пользователи могут отозвать обычные разрешения на CAMERA , чтобы предотвратить доступ такого приложения к камерам устройства.

Выполнение

Чтобы сделать конкретное устройство камеры системной камерой, HAL камеры должен добавить в свой список возможностей строку ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA .

Для создания приложения, имеющего доступ к системной камере, приложение должно быть включено в список разрешенных в файле privapp-permissions.xml , специфичном для устройства, который определяет приложения, которым должно быть предоставлено разрешение android.permission.SYSTEM_CAMERA .

Валидация

Чтобы убедиться, что ни одно системное приложение на устройстве не может обнаружиться, запустите тест CTS android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery .

Все тесты CTS для камер выполняются на системных камерах.