Merge "gps: separate the init_gps rc file" into udc-dev
diff --git a/edgetpu/edgetpu.mk b/edgetpu/edgetpu.mk
index 2f0f77c..5ad2711 100644
--- a/edgetpu/edgetpu.mk
+++ b/edgetpu/edgetpu.mk
@@ -28,3 +28,8 @@
 
 # Tflite Darwinn delegate property
 PRODUCT_VENDOR_PROPERTIES += vendor.edgetpu.tflite_delegate.force_disable_io_coherency=0
+
+# Edgetpu CPU scheduler property
+PRODUCT_VENDOR_PROPERTIES += vendor.edgetpu.cpu_scheduler.policy=FIFO
+PRODUCT_VENDOR_PROPERTIES += vendor.edgetpu.cpu_scheduler.priority=99
+
diff --git a/edgetpu/sepolicy/edgetpu_dba_service.te b/edgetpu/sepolicy/edgetpu_dba_service.te
index 3717e20..da210da 100644
--- a/edgetpu/sepolicy/edgetpu_dba_service.te
+++ b/edgetpu/sepolicy/edgetpu_dba_service.te
@@ -45,3 +45,5 @@
 get_prop(edgetpu_dba_server, vendor_tflite_delegate_prop)
 # Allow EdgeTPU DBA service to read hetero runtime properties
 get_prop(edgetpu_dba_server, vendor_hetero_runtime_prop)
+# Allow EdgeTPU DBA service to read EdgeTPU CPU scheduler properties
+get_prop(edgetpu_dba_server, vendor_edgetpu_cpu_scheduler_prop)
diff --git a/edgetpu/sepolicy/edgetpu_vendor_server.te b/edgetpu/sepolicy/edgetpu_vendor_server.te
index 1060510..4c03744 100644
--- a/edgetpu/sepolicy/edgetpu_vendor_server.te
+++ b/edgetpu/sepolicy/edgetpu_vendor_server.te
@@ -29,3 +29,6 @@
 
 # Allow EdgeTPU vendor service to read the overcommit_memory info.
 allow edgetpu_vendor_server proc_overcommit_memory:file r_file_perms;
+
+# Allow EdgeTPU vendor service to read hetero runtime properties
+get_prop(edgetpu_vendor_server, vendor_hetero_runtime_prop)
diff --git a/edgetpu/sepolicy/property.te b/edgetpu/sepolicy/property.te
index 1ed9a59..625ed0a 100644
--- a/edgetpu/sepolicy/property.te
+++ b/edgetpu/sepolicy/property.te
@@ -6,5 +6,9 @@
 # and then read by apps, camera hal, and some Darwinn vendor services.
 system_vendor_config_prop(vendor_tflite_delegate_prop)
 
+# The EdgeTPU CPU scheduler properties are written once by vendor_init,
+# and then read by HAL service.
+system_vendor_config_prop(vendor_edgetpu_cpu_scheduler_prop)
+
 # Hetero runtime properties, including tracing levels.
 system_vendor_config_prop(vendor_hetero_runtime_prop)
diff --git a/edgetpu/sepolicy/property_contexts b/edgetpu/sepolicy/property_contexts
index c21eb13..dabbd20 100644
--- a/edgetpu/sepolicy/property_contexts
+++ b/edgetpu/sepolicy/property_contexts
@@ -1,5 +1,6 @@
 # for EdgeTPU
 vendor.edgetpu.service.                         u:object_r:vendor_edgetpu_service_prop:s0
+vendor.edgetpu.cpu_scheduler.                   u:object_r:vendor_edgetpu_cpu_scheduler_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
index c9506f0..d0ee1f9 100644
--- a/edgetpu/sepolicy/vendor_init.te
+++ b/edgetpu/sepolicy/vendor_init.te
@@ -1,2 +1,4 @@
 # Allow vendor_init to set tflite Darwinn delegate properties
 set_prop(vendor_init, vendor_tflite_delegate_prop)
+# Allow vendor_init to set the EdgeTPU CPU scheduler properties.
+set_prop(vendor_init, vendor_edgetpu_cpu_scheduler_prop)