diff --git a/prebuilts/api/28.0/private/compat/26.0/26.0.ignore.cil b/prebuilts/api/28.0/private/compat/26.0/26.0.ignore.cil
index 461e6b61d6db5a915884b817bc6f837e9e8b8ca2..9b28ab4518a935a4a0294c56d1b49a46e9ef6ee2 100644
--- a/prebuilts/api/28.0/private/compat/26.0/26.0.ignore.cil
+++ b/prebuilts/api/28.0/private/compat/26.0/26.0.ignore.cil
@@ -100,6 +100,7 @@
     system_boot_reason_prop
     system_net_netd_hwservice
     system_update_service
+    test_boot_reason_prop
     thermal_service
     thermalcallback_hwservice
     thermalserviced
diff --git a/prebuilts/api/28.0/private/compat/27.0/27.0.ignore.cil b/prebuilts/api/28.0/private/compat/27.0/27.0.ignore.cil
index 839ee0a84f1e03f812a91b336fc30b3b284d46f2..5a6509e0bfe0c00ce13a6a27f791684072983e77 100644
--- a/prebuilts/api/28.0/private/compat/27.0/27.0.ignore.cil
+++ b/prebuilts/api/28.0/private/compat/27.0/27.0.ignore.cil
@@ -85,6 +85,7 @@
     storaged_data_file
     system_boot_reason_prop
     system_update_service
+    test_boot_reason_prop
     tombstone_wifi_data_file
     trace_data_file
     traced
diff --git a/prebuilts/api/28.0/private/platform_app.te b/prebuilts/api/28.0/private/platform_app.te
index f60597a7ef59918bbe2d4405781b6777b8e0bd82..6d6ec9832dd654154abb1da2b2ef61e67a2c875a 100644
--- a/prebuilts/api/28.0/private/platform_app.te
+++ b/prebuilts/api/28.0/private/platform_app.te
@@ -74,6 +74,9 @@ read_runtime_log_tags(platform_app)
 allow platform_app system_server:udp_socket {
         connect getattr read recvfrom sendto write getopt setopt };
 
+# allow platform apps to connect to the property service
+set_prop(platform_app, test_boot_reason_prop)
+
 ###
 ### Neverallow rules
 ###
diff --git a/prebuilts/api/28.0/private/property_contexts b/prebuilts/api/28.0/private/property_contexts
index eeb2b6582e7716a99b07072ee7b0d77818f0b340..1b2743284669df8c5753ab3962a2dbec476269e3 100644
--- a/prebuilts/api/28.0/private/property_contexts
+++ b/prebuilts/api/28.0/private/property_contexts
@@ -71,6 +71,7 @@ ro.boot.bootreason      u:object_r:bootloader_boot_reason_prop:s0
 persist.sys.boot.reason u:object_r:last_boot_reason_prop:s0
 sys.boot.reason         u:object_r:system_boot_reason_prop:s0
 pm.                     u:object_r:pm_prop:s0
+test.sys.boot.reason    u:object_r:test_boot_reason_prop:s0
 
 # Boolean property set by system server upon boot indicating
 # if device owner is provisioned.
diff --git a/prebuilts/api/28.0/public/property.te b/prebuilts/api/28.0/public/property.te
index 5dd88dccbaafab4e0ae7790dbecba7eceade9ead..de8e4bec92d2f8480b5e305744dfbe4be8975fbe 100644
--- a/prebuilts/api/28.0/public/property.te
+++ b/prebuilts/api/28.0/public/property.te
@@ -51,6 +51,7 @@ type shell_prop, property_type, core_property_type;
 type system_boot_reason_prop, property_type;
 type system_prop, property_type, core_property_type;
 type system_radio_prop, property_type, core_property_type;
+type test_boot_reason_prop, property_type;
 type traced_enabled_prop, property_type;
 type vold_prop, property_type, core_property_type;
 type wifi_log_prop, property_type, log_property_type;
diff --git a/private/compat/26.0/26.0.ignore.cil b/private/compat/26.0/26.0.ignore.cil
index 461e6b61d6db5a915884b817bc6f837e9e8b8ca2..9b28ab4518a935a4a0294c56d1b49a46e9ef6ee2 100644
--- a/private/compat/26.0/26.0.ignore.cil
+++ b/private/compat/26.0/26.0.ignore.cil
@@ -100,6 +100,7 @@
     system_boot_reason_prop
     system_net_netd_hwservice
     system_update_service
+    test_boot_reason_prop
     thermal_service
     thermalcallback_hwservice
     thermalserviced
diff --git a/private/compat/27.0/27.0.ignore.cil b/private/compat/27.0/27.0.ignore.cil
index 839ee0a84f1e03f812a91b336fc30b3b284d46f2..5a6509e0bfe0c00ce13a6a27f791684072983e77 100644
--- a/private/compat/27.0/27.0.ignore.cil
+++ b/private/compat/27.0/27.0.ignore.cil
@@ -85,6 +85,7 @@
     storaged_data_file
     system_boot_reason_prop
     system_update_service
+    test_boot_reason_prop
     tombstone_wifi_data_file
     trace_data_file
     traced
diff --git a/private/platform_app.te b/private/platform_app.te
index f60597a7ef59918bbe2d4405781b6777b8e0bd82..6d6ec9832dd654154abb1da2b2ef61e67a2c875a 100644
--- a/private/platform_app.te
+++ b/private/platform_app.te
@@ -74,6 +74,9 @@ read_runtime_log_tags(platform_app)
 allow platform_app system_server:udp_socket {
         connect getattr read recvfrom sendto write getopt setopt };
 
+# allow platform apps to connect to the property service
+set_prop(platform_app, test_boot_reason_prop)
+
 ###
 ### Neverallow rules
 ###
diff --git a/private/property_contexts b/private/property_contexts
index eeb2b6582e7716a99b07072ee7b0d77818f0b340..1b2743284669df8c5753ab3962a2dbec476269e3 100644
--- a/private/property_contexts
+++ b/private/property_contexts
@@ -71,6 +71,7 @@ ro.boot.bootreason      u:object_r:bootloader_boot_reason_prop:s0
 persist.sys.boot.reason u:object_r:last_boot_reason_prop:s0
 sys.boot.reason         u:object_r:system_boot_reason_prop:s0
 pm.                     u:object_r:pm_prop:s0
+test.sys.boot.reason    u:object_r:test_boot_reason_prop:s0
 
 # Boolean property set by system server upon boot indicating
 # if device owner is provisioned.
diff --git a/public/property.te b/public/property.te
index 5dd88dccbaafab4e0ae7790dbecba7eceade9ead..de8e4bec92d2f8480b5e305744dfbe4be8975fbe 100644
--- a/public/property.te
+++ b/public/property.te
@@ -51,6 +51,7 @@ type shell_prop, property_type, core_property_type;
 type system_boot_reason_prop, property_type;
 type system_prop, property_type, core_property_type;
 type system_radio_prop, property_type, core_property_type;
+type test_boot_reason_prop, property_type;
 type traced_enabled_prop, property_type;
 type vold_prop, property_type, core_property_type;
 type wifi_log_prop, property_type, log_property_type;