diff --git a/vendor/debug_camera_app.te b/vendor/debug_camera_app.te index 4199b078..c55f64e3 100644 --- a/vendor/debug_camera_app.te +++ b/vendor/debug_camera_app.te @@ -20,4 +20,7 @@ userdebug_or_eng(` # Allows GCA_Eng & GCA-Next to access the PowerHAL. hal_client_domain(debug_camera_app, hal_power) + + # Allows GCA_Eng & GCA-Next to access the hw_jpeg /dev/video12. + allow debug_camera_app hw_jpg_device:chr_file rw_file_perms; ') diff --git a/vendor/device.te b/vendor/device.te index 0c93859c..f63086db 100644 --- a/vendor/device.te +++ b/vendor/device.te @@ -6,6 +6,10 @@ type mfg_data_block_device, dev_type; type ufs_internal_block_device, dev_type; type logbuffer_device, dev_type; type gxp_device, dev_type, mlstrustedobject; +type hw_jpg_device, dev_type; +userdebug_or_eng(` + typeattribute hw_jpg_device mlstrustedobject; +') type fingerprint_device, dev_type; type uci_device, dev_type; diff --git a/vendor/file_contexts b/vendor/file_contexts index ac2afaaf..aab91964 100644 --- a/vendor/file_contexts +++ b/vendor/file_contexts @@ -37,6 +37,8 @@ # Vendor libraries /vendor/lib(64)?/libgxp\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/gxp_metrics_logger\.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/lib_jpg_encoder\.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/libhwjpeg\.so u:object_r:same_process_hal_file:s0 # Vendor /data/vendor/bluetooth(/.*)? u:object_r:vendor_bt_data_file:s0 @@ -198,6 +200,7 @@ /dev/dma_heap/vscaler-secure u:object_r:vscaler_secure_heap_device:s0 /dev/dma_heap/vstream-secure u:object_r:dmabuf_system_secure_heap_device:s0 /dev/uci u:object_r:uci_device:s0 +/dev/video12 u:object_r:hw_jpg_device:s0 # Raw HID device /dev/hidraw[0-9]* u:object_r:hidraw_device:s0 diff --git a/vendor/hal_camera_default.te b/vendor/hal_camera_default.te index 56189163..92e5cd47 100644 --- a/vendor/hal_camera_default.te +++ b/vendor/hal_camera_default.te @@ -80,6 +80,9 @@ allow hal_camera_default sysfs_leds:file r_file_perms; allow hal_camera_default hal_radioext_hwservice:hwservice_manager find; binder_call(hal_camera_default, hal_radioext_default); +# Allows camera HAL to access the hw_jpeg /dev/video12. +allow hal_camera_default hw_jpg_device:chr_file rw_file_perms; + # For camera hal to talk with rlsservice allow hal_camera_default rls_service:service_manager find; binder_call(hal_camera_default, rlsservice)