Let system_server writes to dumpstate.options property.

Currently, we define 4 hardcoded init services to launch dumpstate with
different command-line options (since dumpstate must be launched by
root):

- bugreport
- bugreportplus
- bugreportwear
- bugreportremote

This approach does not scale well; a better option is to have just one
service, and let the framework pass the extra arguments through a system
property.

BUG: 31649719
Test: manual

Change-Id: I7ebbb7ce6a0fd3588baca6fd76653f87367ed0e5
diff --git a/dumpstate.te b/dumpstate.te
index 2ed725d..dd132a9 100644
--- a/dumpstate.te
+++ b/dumpstate.te
@@ -170,6 +170,8 @@
 # Set properties.
 # dumpstate_prop is used to share state with the Shell app.
 set_prop(dumpstate, dumpstate_prop)
+# dumpstate_options_prop is used to pass extra command-line args.
+set_prop(dumpstate, dumpstate_options_prop)
 
 # systrace support - allow atrace to run
 allow dumpstate debugfs_tracing:dir r_dir_perms;
diff --git a/property.te b/property.te
index 2802c0d..2c2ddcc 100644
--- a/property.te
+++ b/property.te
@@ -2,6 +2,7 @@
 type shell_prop, property_type, core_property_type;
 type debug_prop, property_type, core_property_type;
 type dumpstate_prop, property_type, core_property_type;
+type dumpstate_options_prop, property_type;
 type persist_debug_prop, property_type, core_property_type;
 type debuggerd_prop, property_type, core_property_type;
 type dhcp_prop, property_type, core_property_type;
diff --git a/property_contexts b/property_contexts
index 2ae1bb0..34191db 100644
--- a/property_contexts
+++ b/property_contexts
@@ -32,6 +32,7 @@
 debug.                  u:object_r:debug_prop:s0
 debug.db.               u:object_r:debuggerd_prop:s0
 dumpstate.              u:object_r:dumpstate_prop:s0
+dumpstate.options       u:object_r:dumpstate_options_prop:s0
 log.                    u:object_r:log_prop:s0
 log.tag                 u:object_r:log_tag_prop:s0
 log.tag.WifiHAL         u:object_r:wifi_log_prop:s0
diff --git a/system_server.te b/system_server.te
index 5ccc05f..b9fe97b 100644
--- a/system_server.te
+++ b/system_server.te
@@ -349,6 +349,7 @@
 set_prop(system_server, fingerprint_prop)
 set_prop(system_server, device_logging_prop)
 set_prop(system_server, wifi_prop)
+set_prop(system_server, dumpstate_options_prop)
 userdebug_or_eng(`set_prop(system_server, wifi_log_prop)')
 
 # ctl interface