Merge rvc-qpr-dev-plus-aosp-without-vendor@6881855

Bug: 172690556
Merged-In: I1ccde569e04939c5d9f082cf058c0d6255f0842a
Change-Id: I55c1e41284c66ea3ee9ea53ea1eab878bb48148f
diff --git a/googlebattery/file_contexts b/googlebattery/file_contexts
new file mode 100644
index 0000000..f4fc712
--- /dev/null
+++ b/googlebattery/file_contexts
@@ -0,0 +1 @@
+/vendor/bin/hw/vendor\.google\.google_battery@1\.0-service-vendor                     u:object_r:hal_googlebattery_exec:s0
diff --git a/googlebattery/hal_googlebattery.te b/googlebattery/hal_googlebattery.te
new file mode 100644
index 0000000..6e6697b
--- /dev/null
+++ b/googlebattery/hal_googlebattery.te
@@ -0,0 +1,13 @@
+type hal_googlebattery, domain;
+type hal_googlebattery_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(hal_googlebattery)
+
+r_dir_file(hal_googlebattery, sysfs_batteryinfo)
+
+allow hal_googlebattery sysfs_batteryinfo:file rw_file_perms;
+allow hal_googlebattery self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
+
+hwbinder_use(hal_googlebattery)
+add_hwservice(hal_googlebattery, hal_googlebattery_hwservice)
+get_prop(hal_googlebattery, hwservicemanager_prop)
diff --git a/googlebattery/hwservice.te b/googlebattery/hwservice.te
new file mode 100644
index 0000000..40323ef
--- /dev/null
+++ b/googlebattery/hwservice.te
@@ -0,0 +1 @@
+type hal_googlebattery_hwservice, hwservice_manager_type;
diff --git a/googlebattery/hwservice_contexts b/googlebattery/hwservice_contexts
new file mode 100644
index 0000000..40f1526
--- /dev/null
+++ b/googlebattery/hwservice_contexts
@@ -0,0 +1 @@
+vendor.google.google_battery::IGoogleBattery                    u:object_r:hal_googlebattery_hwservice:s0
diff --git a/googlebattery/platform_app.te b/googlebattery/platform_app.te
new file mode 100644
index 0000000..0ee586f
--- /dev/null
+++ b/googlebattery/platform_app.te
@@ -0,0 +1,3 @@
+# allow SystemUI to find and bind Google Battery HAL
+allow platform_app hal_googlebattery_hwservice:hwservice_manager find;
+binder_call(platform_app, hal_googlebattery)
diff --git a/googlebattery/system_app.te b/googlebattery/system_app.te
new file mode 100644
index 0000000..05723bf
--- /dev/null
+++ b/googlebattery/system_app.te
@@ -0,0 +1,3 @@
+# To allow Settings to find and bind Google Battery HAL
+allow system_app hal_googlebattery_hwservice:hwservice_manager find;
+binder_call(system_app, hal_googlebattery)
diff --git a/googlebattery/turbo_adapter.te b/googlebattery/turbo_adapter.te
new file mode 100644
index 0000000..33f99cd
--- /dev/null
+++ b/googlebattery/turbo_adapter.te
@@ -0,0 +1,3 @@
+# To find and bind Google Battery HAL
+allow turbo_adapter hal_googlebattery_hwservice:hwservice_manager find;
+binder_call(turbo_adapter, hal_googlebattery)
diff --git a/thermal/hal_thermal_default.te b/thermal/hal_thermal_default.te
index 55073a9..846f07a 100644
--- a/thermal/hal_thermal_default.te
+++ b/thermal/hal_thermal_default.te
@@ -4,5 +4,7 @@
 
 allow hal_thermal_default self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
 
+hal_client_domain(hal_thermal_default, hal_power);
+
 # read thermal_config
 get_prop(hal_thermal_default, vendor_thermal_prop)