Merge "Allow battery_mitigation to use Binder IPC"
diff --git a/battery_mitigation/battery_mitigation.cpp b/battery_mitigation/battery_mitigation.cpp
index 70e8188..a7c1fd4 100644
--- a/battery_mitigation/battery_mitigation.cpp
+++ b/battery_mitigation/battery_mitigation.cpp
@@ -68,6 +68,7 @@
const char kReadyProperty[] = "vendor.brownout.mitigation.ready";
const char kLastMealPath[] = "/data/vendor/mitigation/lastmeal.txt";
const char kBRRequestedProperty[] = "vendor.brownout_reason";
+const char kLastMealProperty[] = "vendor.brownout.br.feasible";
const std::regex kTimestampRegex("^\\S+\\s[0-9]+:[0-9]+:[0-9]+\\S+$");
int main(int /*argc*/, char ** /*argv*/) {
@@ -85,6 +86,7 @@
std::ifstream src(cfg.LogFilePath, std::ios::in);
std::ofstream dst(kLastMealPath, std::ios::out);
dst << src.rdbuf();
+ android::base::SetProperty(kLastMealProperty, "1");
}
bool isBatteryMitigationReady = false;
std::string ready_str;
diff --git a/battery_mitigation/battery_mitigation.rc b/battery_mitigation/battery_mitigation.rc
index fcc9a4f..c190431 100644
--- a/battery_mitigation/battery_mitigation.rc
+++ b/battery_mitigation/battery_mitigation.rc
@@ -87,6 +87,9 @@
on property:ro.boot.bootreason=reboot,ocp,buckbs && property:sys.boot.reason=reboot,ocp,buckbs
setprop vendor.brownout_reason "ocp,buckbs"
+on property:vendor.brownout.br.feasible=1
+ chown system system data/vendor/mitigation/lastmeal.txt
+
service vendor.battery_mitigation /vendor/bin/hw/battery_mitigation
user system
group system
diff --git a/battery_mitigation/sepolicy/battery_mitigation.te b/battery_mitigation/sepolicy/battery_mitigation.te
index 354fe89..e954409 100644
--- a/battery_mitigation/sepolicy/battery_mitigation.te
+++ b/battery_mitigation/sepolicy/battery_mitigation.te
@@ -5,6 +5,7 @@
get_prop(battery_mitigation, vendor_brownout_reason_prop)
get_prop(battery_mitigation, system_boot_reason_prop)
set_prop(battery_mitigation, vendor_mitigation_ready_prop)
+set_prop(battery_mitigation, vendor_brownout_br_feasible_prop)
hal_client_domain(battery_mitigation, hal_thermal);
hal_client_domain(battery_mitigation, hal_health);
diff --git a/battery_mitigation/sepolicy/property.te b/battery_mitigation/sepolicy/property.te
index d750f09..3dfa12e 100644
--- a/battery_mitigation/sepolicy/property.te
+++ b/battery_mitigation/sepolicy/property.te
@@ -1,3 +1,4 @@
# Battery Mitigation
vendor_internal_prop(vendor_mitigation_ready_prop)
vendor_public_prop(vendor_brownout_reason_prop)
+vendor_internal_prop(vendor_brownout_br_feasible_prop)
diff --git a/battery_mitigation/sepolicy/property_contexts b/battery_mitigation/sepolicy/property_contexts
index 014cb14..d5d538a 100644
--- a/battery_mitigation/sepolicy/property_contexts
+++ b/battery_mitigation/sepolicy/property_contexts
@@ -1,3 +1,4 @@
# Battery Mitigation
vendor.brownout.mitigation.ready u:object_r:vendor_mitigation_ready_prop:s0
vendor.brownout_reason u:object_r:vendor_brownout_reason_prop:s0
+vendor.brownout.br.feasible u:object_r:vendor_brownout_br_feasible_prop:s0
diff --git a/battery_mitigation/sepolicy/vendor_init.te b/battery_mitigation/sepolicy/vendor_init.te
index 275f377..1517b13 100644
--- a/battery_mitigation/sepolicy/vendor_init.te
+++ b/battery_mitigation/sepolicy/vendor_init.te
@@ -1,3 +1,4 @@
# Battery Mitigation
set_prop(vendor_init, vendor_brownout_reason_prop)
+get_prop(vendor_init, vendor_brownout_br_feasible_prop)
get_prop(vendor_init, system_boot_reason_prop)
diff --git a/edgetpu/edgetpu.mk b/edgetpu/edgetpu.mk
index 7b93487..862de56 100644
--- a/edgetpu/edgetpu.mk
+++ b/edgetpu/edgetpu.mk
@@ -25,3 +25,6 @@
PRODUCT_PACKAGES += libedgetpu_dba.google
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/edgetpu/sepolicy
+
+# Tflite Darwinn delegate property
+PRODUCT_VENDOR_PROPERTIES += vendor.edgetpu.tflite_delegate.force_disable_io_coherency=1
diff --git a/edgetpu/sepolicy/appdomain.te b/edgetpu/sepolicy/appdomain.te
new file mode 100644
index 0000000..37cb1db
--- /dev/null
+++ b/edgetpu/sepolicy/appdomain.te
@@ -0,0 +1,2 @@
+# Allow apps to read tflite Darwinn delegate properties
+get_prop(appdomain, vendor_tflite_delegate_prop)
diff --git a/edgetpu/sepolicy/edgetpu_dba_service.te b/edgetpu/sepolicy/edgetpu_dba_service.te
index 2e8f908..dca4ac4 100644
--- a/edgetpu/sepolicy/edgetpu_dba_service.te
+++ b/edgetpu/sepolicy/edgetpu_dba_service.te
@@ -36,3 +36,6 @@
# Allow EdgeTPU DBA service to send trace packets to Perfetto with SELinux enabled
# under userdebug builds.
userdebug_or_eng(`perfetto_producer(edgetpu_dba_server)')
+
+# Allow EdgeTPU DBA service to read tflite Darwinn delegate properties
+get_prop(edgetpu_dba_server, vendor_tflite_delegate_prop)
diff --git a/edgetpu/sepolicy/hal_camera_default.te b/edgetpu/sepolicy/hal_camera_default.te
new file mode 100644
index 0000000..a8ea541
--- /dev/null
+++ b/edgetpu/sepolicy/hal_camera_default.te
@@ -0,0 +1,2 @@
+# Allow camera HAL to read tflite Darwinn delegate properties
+get_prop(hal_camera_default, vendor_tflite_delegate_prop)
diff --git a/edgetpu/sepolicy/property.te b/edgetpu/sepolicy/property.te
index ed93d44..254d059 100644
--- a/edgetpu/sepolicy/property.te
+++ b/edgetpu/sepolicy/property.te
@@ -2,3 +2,6 @@
# since it lives under /system_ext/.
system_public_prop(vendor_edgetpu_service_prop)
+# Tflite Darwinn delegate properties are written once by vendor_init,
+# and then read by apps, camera hal, and some Darwinn vendor services.
+system_vendor_config_prop(vendor_tflite_delegate_prop)
diff --git a/edgetpu/sepolicy/property_contexts b/edgetpu/sepolicy/property_contexts
index 130cfef..56c2bf6 100644
--- a/edgetpu/sepolicy/property_contexts
+++ b/edgetpu/sepolicy/property_contexts
@@ -1,3 +1,5 @@
# for EdgeTPU
vendor.edgetpu.service. u:object_r:vendor_edgetpu_service_prop:s0
+# for DarwinnDelegate
+vendor.edgetpu.tflite_delegate. u:object_r:vendor_tflite_delegate_prop:s0
diff --git a/edgetpu/sepolicy/vendor_init.te b/edgetpu/sepolicy/vendor_init.te
new file mode 100644
index 0000000..c9506f0
--- /dev/null
+++ b/edgetpu/sepolicy/vendor_init.te
@@ -0,0 +1,2 @@
+# Allow vendor_init to set tflite Darwinn delegate properties
+set_prop(vendor_init, vendor_tflite_delegate_prop)
diff --git a/pixel_metrics/sepolicy/genfs_contexts b/pixel_metrics/sepolicy/genfs_contexts
index b914014..b17bb4a 100644
--- a/pixel_metrics/sepolicy/genfs_contexts
+++ b/pixel_metrics/sepolicy/genfs_contexts
@@ -1,4 +1,6 @@
#vendor-metrics
genfscon sysfs /kernel/metrics/resume_latency/resume_latency_metrics u:object_r:sysfs_vendor_metrics:s0
genfscon sysfs /kernel/metrics/irq/long_irq_metrics u:object_r:sysfs_vendor_metrics:s0
-genfscon sysfs /kernel/metrics/temp_residency/temp_residency_all/stats u:object_r:sysfs_vendor_metrics:s0
+
+genfscon sysfs /kernel/metrics/thermal/tr_by_group/tmu/stats u:object_r:sysfs_vendor_metrics:s0
+genfscon sysfs /kernel/metrics/thermal/tr_by_group/spmic/stats u:object_r:sysfs_vendor_metrics:s0