From f8e389999aa016113582a2e6506d721843d86342 Mon Sep 17 00:00:00 2001 From: Cyber Knight Date: Fri, 17 Jun 2022 02:12:27 +0800 Subject: [PATCH] sdm710-common: Build KProfiles - Inherit KProfiles. - Address sepolicy. - Define sysfs_kprofiles as a domain. - Fix permission of nodes relevant to KProfiles at boot. Signed-off-by: Cyber Knight --- rootdir/etc/init.target.rc | 6 ++++++ sdm710.mk | 4 ++++ sepolicy/vendor/file.te | 3 +++ sepolicy/vendor/genfs_contexts | 4 ++++ sepolicy/vendor/init.te | 3 +++ sepolicy/vendor/system_app.te | 2 ++ 6 files changed, 22 insertions(+) create mode 100644 sepolicy/vendor/system_app.te diff --git a/rootdir/etc/init.target.rc b/rootdir/etc/init.target.rc index 75e32c4..443f263 100644 --- a/rootdir/etc/init.target.rc +++ b/rootdir/etc/init.target.rc @@ -100,6 +100,12 @@ on boot write /dev/cpuset/background/cpus 0-7 write /dev/cpuset/system-background/cpus 0-7 + # Allow system to manipulate KProfiles modes and parameters + chown system system /sys/module/kprofiles/parameters/auto_kprofiles + chmod 0660 /sys/module/kprofiles/parameters/auto_kprofiles + chown system system /sys/module/kprofiles/parameters/kp_mode + chmod 0660 /sys/module/kprofiles/parameters/kp_mode + ####Regionalization config and prop files#### chmod 0644 /persist/speccfg/spec chmod 0644 /persist/speccfg/devicetype diff --git a/sdm710.mk b/sdm710.mk index 1d6df36..4737ea9 100644 --- a/sdm710.mk +++ b/sdm710.mk @@ -261,6 +261,10 @@ PRODUCT_PACKAGES += \ vendor.lineage.livedisplay@2.0-service-sdm endif +# KProfiles +PRODUCT_PACKAGES += \ + KProfiles + # Media PRODUCT_PACKAGES += \ libavservices_minijail \ diff --git a/sepolicy/vendor/file.te b/sepolicy/vendor/file.te index d1ad543..8836d73 100644 --- a/sepolicy/vendor/file.te +++ b/sepolicy/vendor/file.te @@ -10,3 +10,6 @@ type sysfs_msm_subsys, sysfs_type, fs_type; type sysfs_rpm, sysfs_type, fs_type; type sysfs_system_sleep_stats, sysfs_type, fs_type; type sysfs_tp, fs_type, sysfs_type; + +# KProfiles +type sysfs_kprofiles, sysfs_type, fs_type; \ No newline at end of file diff --git a/sepolicy/vendor/genfs_contexts b/sepolicy/vendor/genfs_contexts index 3286f30..a7fd41b 100644 --- a/sepolicy/vendor/genfs_contexts +++ b/sepolicy/vendor/genfs_contexts @@ -6,3 +6,7 @@ genfscon proc /sys/kernel/sched_boost u:object_r:proc_sysctl_sch # DT2W genfscon sysfs /devices/virtual/touch/tp_dev/gesture_on u:object_r:sysfs_tp:s0 + +# KProfiles +genfscon sysfs /module/kprofiles/parameters/auto_kprofiles u:object_r:sysfs_kprofiles:s0 +genfscon sysfs /module/kprofiles/parameters/kp_mode u:object_r:sysfs_kprofiles:s0 diff --git a/sepolicy/vendor/init.te b/sepolicy/vendor/init.te index 9a42435..1a254eb 100644 --- a/sepolicy/vendor/init.te +++ b/sepolicy/vendor/init.te @@ -1,3 +1,6 @@ allow init self:netlink_route_socket rw_socket_perms_no_ioctl; allow init self:rawip_socket create_socket_perms_no_ioctl; allow init socket_device:sock_file { unlink setattr create }; + +# Allow init to set attribute to sysfs_kprofiles +allow init sysfs_kprofiles:file { setattr }; diff --git a/sepolicy/vendor/system_app.te b/sepolicy/vendor/system_app.te new file mode 100644 index 0000000..c8ca201 --- /dev/null +++ b/sepolicy/vendor/system_app.te @@ -0,0 +1,2 @@ +# Allow KProfiles to be adjusted by a system app +allow system_app sysfs_kprofiles:file rw_file_perms; \ No newline at end of file