sm6375-common: Make fastrpc_shell_3 publicly available

* Used by GCAM for DSP-accelerated HDR processing
 * Arguably we should label /vendor/dsp/cdsp/fastrpc_shell_3 to
   same_process_hal_file like Pixels, but the partition is prebuilt thus
   we're unable to relabel it.
 * Copy the file to writable tmpfs, setup attributes and bind mount back
   to workaround the limitation.

[ghostrider-reborn]:
Allow adsp/cdsprpcd and neuralnetworks HAL to access fastrpc_shell_3

[kras edit:
 1. rename some contexts as per qva/kona
 2. extend to allow camera HAL and VPP service to access it as well]

Co-authored-by: Adithya R <gh0strider.2k18.reborn@gmail.com>
Change-Id: Ide90e5c7307d413db5ece736e859559f06679545
This commit is contained in:
dianlujitao
2020-05-07 00:10:55 +08:00
committed by Ramii Ahmed
parent 8966e9aea6
commit 3f8897df42
9 changed files with 23 additions and 1 deletions

View File

@@ -84,6 +84,11 @@ on init
on post-fs on post-fs
chmod 0755 /sys/kernel/debug/tracing chmod 0755 /sys/kernel/debug/tracing
mkdir /mnt/vendor/dsp 0770 root root
copy /vendor/dsp/cdsp/fastrpc_shell_3 /mnt/vendor/dsp/fastrpc_shell_3
chmod 0644 /mnt/vendor/dsp/fastrpc_shell_3
mount none /mnt/vendor/dsp/fastrpc_shell_3 /vendor/dsp/cdsp/fastrpc_shell_3 bind
on early-boot on early-boot
# set RLIMIT_MEMLOCK to 64MB # set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864 setrlimit 8 67108864 67108864

View File

@@ -1 +1,4 @@
type public_adsprpcd_file, file_type;
r_dir_file(vendor_adsprpcd, public_adsprpcd_file)
r_dir_file(vendor_adsprpcd, vendor_sysfs_graphics) r_dir_file(vendor_adsprpcd, vendor_sysfs_graphics)

View File

@@ -1,2 +1,5 @@
get_prop({ appdomain -isolated_app }, vendor_fingerprint_prop) get_prop({ appdomain -isolated_app }, vendor_fingerprint_prop)
get_prop({ appdomain -isolated_app }, vendor_tee_listener_prop) get_prop({ appdomain -isolated_app }, vendor_tee_listener_prop)
allow { appdomain -isolated_app } adsprpcd_file:dir r_dir_perms;
allow { appdomain -isolated_app } public_adsprpcd_file:file r_file_perms;

1
sepolicy/vendor/cdsprpcd.te vendored Normal file
View File

@@ -0,0 +1 @@
r_dir_file(vendor_cdsprpcd, public_adsprpcd_file)

View File

@@ -15,6 +15,11 @@
# Camera # Camera
/mnt/vendor/persist/camera(/.*)? u:object_r:camera_persist_file:s0 /mnt/vendor/persist/camera(/.*)? u:object_r:camera_persist_file:s0
# Hexagon DSP-side executable needed for Halide operation
# This is labeled as public_adsprpcd_file as it needs to be read by apps
# (e.g. Google Camera App)
/mnt/vendor/dsp/fastrpc_shell_3 u:object_r:public_adsprpcd_file:s0
# Fingerprint # Fingerprint
/dev/goodix_fp u:object_r:vendor_fingerprint_device:s0 /dev/goodix_fp u:object_r:vendor_fingerprint_device:s0
/dev/silead_fp u:object_r:vendor_fingerprint_device:s0 /dev/silead_fp u:object_r:vendor_fingerprint_device:s0

View File

@@ -1,2 +1,4 @@
r_dir_file(hal_camera_default, camera_persist_file) r_dir_file(hal_camera_default, camera_persist_file)
set_prop(hal_camera_default, vendor_camera_sensor_prop) set_prop(hal_camera_default, vendor_camera_sensor_prop)
allow hal_camera_default public_adsprpcd_file:file r_file_perms;

View File

@@ -0,0 +1 @@
r_dir_file(vendor_hal_neuralnetworks_default, public_adsprpcd_file)

1
sepolicy/vendor/init.te vendored Normal file
View File

@@ -0,0 +1 @@
allow init adsprpcd_file:file mounton;

1
sepolicy/vendor/vppservice.te vendored Normal file
View File

@@ -0,0 +1 @@
r_dir_file(vendor_vppservice, public_adsprpcd_file)