summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibXZR <i@xzr.moe>2021-09-01 17:59:29 +0800
committerSemavi Ulusoy <doc.divxm@gmail.com>2022-05-12 01:26:44 +0300
commit589e30c322cb5adf2d39fe5b0e2fd1c726903c0e (patch)
tree9ddf75d7e45672e5f57ed8ba245b7fd46934891e
parent7d836af10a05a8230852d3abf9d4b893b8af7898 (diff)
sepolicy: Add support for Optimized Charge
Change-Id: I2761b5d1d9b951e57424e2b96b91730c781dfe9c Signed-off-by: LibXZR <i@xzr.moe>
-rw-r--r--common/dynamic/hal_chargecontrol.te5
-rw-r--r--common/dynamic/hwservice.te1
-rw-r--r--common/dynamic/hwservice_contexts1
-rw-r--r--common/private/service.te3
-rw-r--r--common/private/service_contexts3
-rw-r--r--common/private/system_server.te3
-rw-r--r--common/public/attributes2
-rw-r--r--common/vendor/file_contexts2
-rw-r--r--common/vendor/hal_chargecontrol_default.te8
9 files changed, 28 insertions, 0 deletions
diff --git a/common/dynamic/hal_chargecontrol.te b/common/dynamic/hal_chargecontrol.te
new file mode 100644
index 0000000..e18b8ae
--- /dev/null
+++ b/common/dynamic/hal_chargecontrol.te
@@ -0,0 +1,5 @@
+# HWBinder IPC from client to server
+binder_call(hal_chargecontrol_client, hal_chargecontrol_server)
+
+add_hwservice(hal_chargecontrol_server, hal_chargecontrol_hwservice)
+allow hal_chargecontrol_client hal_chargecontrol_hwservice:hwservice_manager find;
diff --git a/common/dynamic/hwservice.te b/common/dynamic/hwservice.te
new file mode 100644
index 0000000..8ca7daf
--- /dev/null
+++ b/common/dynamic/hwservice.te
@@ -0,0 +1 @@
+type hal_chargecontrol_hwservice, hwservice_manager_type;
diff --git a/common/dynamic/hwservice_contexts b/common/dynamic/hwservice_contexts
new file mode 100644
index 0000000..f7bc5a4
--- /dev/null
+++ b/common/dynamic/hwservice_contexts
@@ -0,0 +1 @@
+vendor.kscope.chgctrl::IChargeControl u:object_r:hal_chargecontrol_hwservice:s0
diff --git a/common/private/service.te b/common/private/service.te
index 9f57551..1108041 100644
--- a/common/private/service.te
+++ b/common/private/service.te
@@ -6,3 +6,6 @@ type dc_dimming_service, system_api_service, system_server_service, service_mana
# App Lock
type app_lock_service, system_api_service, system_server_service, service_manager_type;
+
+# Optimized Charge Control
+type optimizedcharge_service, system_api_service, system_server_service, service_manager_type;
diff --git a/common/private/service_contexts b/common/private/service_contexts
index 76d4a6e..5a35920 100644
--- a/common/private/service_contexts
+++ b/common/private/service_contexts
@@ -1,5 +1,8 @@
pocket u:object_r:pocket_service:s0
+# Optimized Charge Control
+optimizedcharge u:object_r:optimizedcharge_service:s0
+
# DC Dimming
dc_dim_service u:object_r:dc_dimming_service:s0
# App Lock
diff --git a/common/private/system_server.te b/common/private/system_server.te
index 1b90da7..6a765e8 100644
--- a/common/private/system_server.te
+++ b/common/private/system_server.te
@@ -7,3 +7,6 @@ add_service(system_server, dc_dimming_service);
# Applock
add_service(system_server, app_lock_service);
+
+# Optimized Charge Control
+hal_client_domain(system_server, hal_chargecontrol)
diff --git a/common/public/attributes b/common/public/attributes
new file mode 100644
index 0000000..e8b2ecd
--- /dev/null
+++ b/common/public/attributes
@@ -0,0 +1,2 @@
+# HALs
+hal_attribute_lineage(chargecontrol)
diff --git a/common/vendor/file_contexts b/common/vendor/file_contexts
new file mode 100644
index 0000000..0fdb919
--- /dev/null
+++ b/common/vendor/file_contexts
@@ -0,0 +1,2 @@
+# Optimized charge HAL
+/(vendor|system/vendor)/bin/hw/vendor\.kscope\.chgctrl@1\.0-service u:object_r:hal_chargecontrol_default_exec:s0
diff --git a/common/vendor/hal_chargecontrol_default.te b/common/vendor/hal_chargecontrol_default.te
new file mode 100644
index 0000000..c9ab9f2
--- /dev/null
+++ b/common/vendor/hal_chargecontrol_default.te
@@ -0,0 +1,8 @@
+type hal_chargecontrol_default, domain;
+hal_server_domain(hal_chargecontrol_default, hal_chargecontrol)
+
+type hal_chargecontrol_default_exec, exec_type, vendor_file_type, file_type;
+init_daemon_domain(hal_chargecontrol_default)
+
+allow hal_chargecontrol_default vendor_sysfs_battery_supply:dir search;
+allow hal_chargecontrol_default vendor_sysfs_battery_supply:file rw_file_perms;