kcmdlinectrl: define system property for kcmdlinectrl

This defines the kcmdline_prop context for properties controlled by
kcmdlinectrl, and defines a property called kcmdline.binder for
switching between the Rust and C implementations of the Binder driver.

It is intended that additional kcmdline properties introduced in the
future would share the same kcmdline_prop context.

Test: Verified that setprop/getprop work and that the value is loaded properly at boot
Bug: 326222756
Change-Id: Iea362df98d729ee110b6058c6e5fa6b6ace03d8e
diff --git a/private/property.te b/private/property.te
index 2d030ab..e06c7e7 100644
--- a/private/property.te
+++ b/private/property.te
@@ -24,6 +24,7 @@
 system_internal_prop(init_service_status_private_prop)
 system_internal_prop(init_storage_prop)
 system_internal_prop(init_svc_debug_prop)
+system_internal_prop(kcmdline_prop)
 system_internal_prop(keystore_crash_prop)
 system_internal_prop(keystore_listen_prop)
 system_internal_prop(last_boot_reason_prop)
@@ -492,6 +493,15 @@
 neverallow {
   domain
   -init
+  -shell
+  -kcmdlinectrl
+} {
+  kcmdline_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -init
   -system_server
   -vendor_init
 } zram_control_prop:property_service set;