diff --git a/init.hardware.rc b/init.hardware.rc index 4c2711ec..07049888 100644 --- a/init.hardware.rc +++ b/init.hardware.rc @@ -508,6 +508,13 @@ service thermal-engine /vendor/bin/thermal-engine -c ${sys.qcom.thermalcfg:-/ven socket thermal-recv-client stream 0660 system system socket thermal-recv-passive-client stream 0666 system system +service msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf + socket msm_irqbalance seqpacket 660 root system + class core + user root + group root + writepid /dev/cpuset/system-background/tasks + on property:persist.sys.ssr.restart_level=* start ssr_setup diff --git a/sepolicy/vendor/file.te b/sepolicy/vendor/file.te index e5ba3371..fc569b5a 100644 --- a/sepolicy/vendor/file.te +++ b/sepolicy/vendor/file.te @@ -87,3 +87,8 @@ type keylayout_file, file_type, vendor_file_type; # Battery Stats file typeattribute sysfs_batteryinfo mlstrustedobject; + +# msm_irqbalance +type proc_irq, fs_type; +type sysfs_irq, fs_type; +type irqbalance_socket, file_type; diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts index 9f395dfa..04703df4 100644 --- a/sepolicy/vendor/file_contexts +++ b/sepolicy/vendor/file_contexts @@ -49,6 +49,7 @@ /dev/socket/ims_datad u:object_r:ims_socket:s0 /dev/socket/ipacm_log_file u:object_r:ipacm_socket:s0 /dev/socket/cnd u:object_r:cnd_socket:s0 +/dev/socket/msm_irqbalance u:object_r:irqbalance_socket:s0 /dev/socket/thermal-send-client u:object_r:thermal_socket:s0 /dev/socket/thermal-recv-client u:object_r:thermal_socket:s0 /dev/socket/thermal-recv-passive-client u:object_r:thermal_socket:s0 @@ -120,6 +121,7 @@ /vendor/bin/hw/android\.hardware\.dumpstate@1\.0-service.wahoo u:object_r:hal_dumpstate_impl_exec:s0 /vendor/bin/hw/android\.hardware\.vr@1\.0-service.wahoo u:object_r:hal_vr_default_exec:s0 /vendor/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.1-service.wahoo u:object_r:hal_fingerprint_default_exec:s0 +/vendor/bin/msm_irqbalance u:object_r:irqbalance_exec:s0 /vendor/bin/perfd u:object_r:perfd_exec:s0 /vendor/bin/thermal-engine u:object_r:thermal-engine_exec:s0 /vendor/bin/sensors.qcom u:object_r:sensors_exec:s0 diff --git a/sepolicy/vendor/genfs_contexts b/sepolicy/vendor/genfs_contexts index 57766a1b..d5fee6b7 100644 --- a/sepolicy/vendor/genfs_contexts +++ b/sepolicy/vendor/genfs_contexts @@ -1,6 +1,7 @@ genfscon proc /debug/fwdump u:object_r:proc_wifi_dbg:s0 genfscon proc /debugdriver/driverdump u:object_r:proc_wifi_dbg:s0 genfscon proc /ath_pktlog/cld u:object_r:proc_wifi_dbg:s0 +genfscon proc /irq u:object_r:proc_irq:s0 genfscon sysfs /devices/soc/soc:qcom,cpubw u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/soc:qcom,mincpubw u:object_r:sysfs_msm_subsys:s0 @@ -66,6 +67,7 @@ genfscon sysfs /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb2 u:ob genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/usbpd0/typec u:object_r:sysfs_usb_c:s0 genfscon sysfs /module/diagchar u:object_r:sysfs_diag:s0 +genfscon sysfs /kernel/irq_helper/irq_blacklist_on u:object_r:sysfs_irq:s0 genfscon debugfs /kgsl/proc u:object_r:debugfs_kgsl:s0 genfscon debugfs /clk/debug_suspend u:object_r:debugfs_clk:s0 diff --git a/sepolicy/vendor/irqbalance.te b/sepolicy/vendor/irqbalance.te new file mode 100644 index 00000000..8b54f163 --- /dev/null +++ b/sepolicy/vendor/irqbalance.te @@ -0,0 +1,14 @@ +type irqbalance, domain; +type irqbalance_exec, exec_type, vendor_file_type, file_type; + +init_daemon_domain(irqbalance); + +allow irqbalance sysfs_devices_system_cpu:file rw_file_perms; +allow irqbalance proc_irq:dir r_dir_perms; +allow irqbalance proc_irq:file rw_file_perms; +allow irqbalance sysfs_irq:file r_file_perms; + +allow irqbalance proc_stat:file r_file_perms; +allow irqbalance proc_interrupts:file r_file_perms; + +r_dir_file(irqbalance, proc) diff --git a/sepolicy/vendor/vold.te b/sepolicy/vendor/vold.te index 9615edab..80edf33c 100644 --- a/sepolicy/vendor/vold.te +++ b/sepolicy/vendor/vold.te @@ -3,3 +3,6 @@ get_prop(vold, tee_listener_prop) allow vold sysfs_scsi_devices_0000:file write; allow vold persist_file:dir r_dir_perms; + +# generated by proc scan, unnecessary +dontaudit vold proc_irq:dir read;