Add /dev/__properties__/property_info

Allow init to create a serialized property_info file and allow all
processes to read it.

Bug: 36001741
Test: boot bullhead, walleye using property_info

Change-Id: Ie51d4c0f0221b128dd087029c811fda15b4d7093
diff --git a/private/compat/26.0/26.0.ignore.cil b/private/compat/26.0/26.0.ignore.cil
index fea7387..927296d 100644
--- a/private/compat/26.0/26.0.ignore.cil
+++ b/private/compat/26.0/26.0.ignore.cil
@@ -26,6 +26,7 @@
     netd_stable_secret_prop
     network_watchlist_service
     package_native_service
+    property_info
     slice_service
     statscompanion_service
     storaged_data_file
diff --git a/private/file_contexts b/private/file_contexts
index ec7d246..3c6642a 100644
--- a/private/file_contexts
+++ b/private/file_contexts
@@ -171,6 +171,7 @@
 /dev/xt_qtaguid	u:object_r:qtaguid_device:s0
 /dev/zero		u:object_r:zero_device:s0
 /dev/__properties__ u:object_r:properties_device:s0
+/dev/__properties__/property_info   u:object_r:property_info:s0
 #############################
 # System files
 #
diff --git a/public/device.te b/public/device.te
index 1d01045..43c89ab 100644
--- a/public/device.te
+++ b/public/device.te
@@ -59,6 +59,7 @@
 type usb_device, dev_type, mlstrustedobject;
 type properties_device, dev_type;
 type properties_serial, dev_type;
+type property_info, dev_type;
 type i2c_device, dev_type;
 
 # All devices have a uart for the hci
diff --git a/public/domain.te b/public/domain.te
index eb02021..ec0532d 100644
--- a/public/domain.te
+++ b/public/domain.te
@@ -81,6 +81,7 @@
 allow domain proc_random:file r_file_perms;
 allow domain properties_device:dir { search getattr };
 allow domain properties_serial:file r_file_perms;
+allow domain property_info:file r_file_perms;
 
 # For now, everyone can access core property files
 # Device specific properties are not granted by default
diff --git a/public/init.te b/public/init.te
index 62a6e04..3a2d667 100644
--- a/public/init.te
+++ b/public/init.te
@@ -21,6 +21,9 @@
 allow init properties_device:dir relabelto;
 allow init properties_serial:file { write relabelto };
 allow init property_type:file { create_file_perms relabelto };
+# /dev/__properties__/property_info
+allow init properties_device:file create_file_perms;
+allow init property_info:file relabelto;
 # /dev/event-log-tags
 allow init device:file relabelfrom;
 allow init runtime_event_log_tags_file:file { open write setattr relabelto create };