hal_health_default: fix avc denials

Bug: 146318912
Bug: 150858700
Test: Ensure access is correctly granted to healthd
Signed-off-by: Jack Wu <wjack@google.com>
Change-Id: Ifebe1f4712b68e77b159cea662205768f34172e2
diff --git a/vendor/google/file.te b/vendor/google/file.te
index ce6a826..7a7d931 100644
--- a/vendor/google/file.te
+++ b/vendor/google/file.te
@@ -4,3 +4,4 @@
 type sysfs_display, sysfs_type, fs_type;
 type sysfs_pixelstats, sysfs_type, fs_type;
 type persist_battery_file, file_type;
+type sysfs_chargelevel, sysfs_type, fs_type;
diff --git a/vendor/google/genfs_contexts b/vendor/google/genfs_contexts
index b6ac47a..76b661d 100644
--- a/vendor/google/genfs_contexts
+++ b/vendor/google/genfs_contexts
@@ -14,3 +14,7 @@
 genfscon debugfs /tcpm/usbpd0                                           u:object_r:debugfs_usb:s0
 genfscon debugfs /logbuffer/smblib                                      u:object_r:debugfs_usb:s0
 genfscon debugfs /logbuffer/usbpd                                       u:object_r:debugfs_usb:s0
+
+# Charger
+genfscon sysfs /devices/platform/soc/soc:google,charger/charge_start_level      u:object_r:sysfs_chargelevel:s0
+genfscon sysfs /devices/platform/soc/soc:google,charger/charge_stop_level       u:object_r:sysfs_chargelevel:s0
diff --git a/vendor/google/hal_health_default.te b/vendor/google/hal_health_default.te
index 8eb0348..4aa8d4e 100644
--- a/vendor/google/hal_health_default.te
+++ b/vendor/google/hal_health_default.te
@@ -19,9 +19,11 @@
 allow hal_health_default sysfs_mmc:file rw_file_perms;
 allow hal_health_default sysfs_thermal:dir r_dir_perms;
 allow hal_health_default sysfs_thermal:file rw_file_perms;
+allow hal_health_default sysfs_chargelevel:file rw_file_perms;
 
 get_prop(hal_health_default, vendor_shutdown_prop)
 set_prop(hal_health_default, vendor_shutdown_prop)
+set_prop(hal_health_default, vendor_battery_defender_prop)
 
 allow hal_health_default self:capability2 wake_alarm;
 allow hal_health_default mnt_vendor_file:dir search;
diff --git a/vendor/google/property.te b/vendor/google/property.te
index 9c44528..497f454 100644
--- a/vendor/google/property.te
+++ b/vendor/google/property.te
@@ -7,3 +7,6 @@
 
 type vendor_build_type_prop, property_type;
 type vendor_modem_prop, property_type;
+
+# hal_health
+type vendor_battery_defender_prop, property_type;
diff --git a/vendor/google/property_contexts b/vendor/google/property_contexts
index 8d7c961..302d8cb 100644
--- a/vendor/google/property_contexts
+++ b/vendor/google/property_contexts
@@ -13,6 +13,9 @@
 ro.vibrator.hal.long.voltage       u:object_r:vendor_vibrator_prop:s0
 ro.vibrator.hal.long.frequency.shift    u:object_r:vendor_vibrator_prop:s0
 
+# battery
+vendor.battery.defender.                      u:object_r:vendor_battery_defender_prop:s0
+
 # fingerprint
 vendor.fps.init.succeed               u:object_r:vendor_fingerprint_prop:s0
 vendor.fps.init_retry.count           u:object_r:vendor_fingerprint_prop:s0
diff --git a/vendor/qcom/common/init-devstart-sh.te b/vendor/qcom/common/init-devstart-sh.te
index 4924e27..57ea5d2 100644
--- a/vendor/qcom/common/init-devstart-sh.te
+++ b/vendor/qcom/common/init-devstart-sh.te
@@ -17,3 +17,6 @@
 
 # Set boot_adsp and boot_slpi to 1
 allow init-qcom-devstart-sh sysfs_msm_subsys:file w_file_perms;
+
+# Support for battery defender
+allow init-qcom-devstart-sh sysfs_chargelevel:file rw_file_perms;