Make system property audio.camerasound.force a vendor-writable property,
This property is read by the audio service in system server to toggle
camera shutter sound enforcement on a device-specific basis.
Test: Camera shutter sound enforcement works when audio.camerasound.force is set
Bug: 110126976
Change-Id: I2720d3c699c4712d1a328f59dde0b16bbf1016f3
diff --git a/private/compat/26.0/26.0.ignore.cil b/private/compat/26.0/26.0.ignore.cil
index 79cadf8..d99c58f 100644
--- a/private/compat/26.0/26.0.ignore.cil
+++ b/private/compat/26.0/26.0.ignore.cil
@@ -25,6 +25,7 @@
e2fs
e2fs_exec
exfat
+ exported_audio_prop
exported_bluetooth_prop
exported_config_prop
exported_dalvik_prop
diff --git a/private/compat/27.0/27.0.ignore.cil b/private/compat/27.0/27.0.ignore.cil
index 3b3f6f8..9b82f35 100644
--- a/private/compat/27.0/27.0.ignore.cil
+++ b/private/compat/27.0/27.0.ignore.cil
@@ -29,6 +29,7 @@
exported3_default_prop
exported3_radio_prop
exported3_system_prop
+ exported_audio_prop
exported_bluetooth_prop
exported_config_prop
exported_dalvik_prop
diff --git a/private/system_server.te b/private/system_server.te
index d7bf54a..182b004 100644
--- a/private/system_server.te
+++ b/private/system_server.te
@@ -536,6 +536,10 @@
# Read/write the property which keeps track of whether this is the first start of system_server
set_prop(system_server, firstboot_prop)
+# Audio service in system server can read exported audio properties,
+# such as camera shutter enforcement
+get_prop(system_server, exported_audio_prop)
+
# Create a socket for connections from debuggerd.
allow system_server system_ndebug_socket:sock_file create_file_perms;
diff --git a/public/property.te b/public/property.te
index e399a5f..508eed5 100644
--- a/public/property.te
+++ b/public/property.te
@@ -67,6 +67,7 @@
type vendor_security_patch_level_prop, property_type;
# Properties for whitelisting
+type exported_audio_prop, property_type;
type exported_bluetooth_prop, property_type;
type exported_config_prop, property_type;
type exported_dalvik_prop, property_type;
diff --git a/public/property_contexts b/public/property_contexts
index fdc2da9..1ffcc1b 100644
--- a/public/property_contexts
+++ b/public/property_contexts
@@ -3,6 +3,7 @@
# vendor-init-settable
af.fast_track_multiplier u:object_r:exported3_default_prop:s0 exact int
+audio.camerasound.force u:object_r:exported_audio_prop:s0 exact bool
camera.disable_zsl_mode u:object_r:exported3_default_prop:s0 exact bool
camera.fifo.disable u:object_r:exported3_default_prop:s0 exact int
dalvik.vm.appimageformat u:object_r:exported_dalvik_prop:s0 exact string
diff --git a/public/vendor_init.te b/public/vendor_init.te
index 6307f2c..fda80f4 100644
--- a/public/vendor_init.te
+++ b/public/vendor_init.te
@@ -176,6 +176,7 @@
set_prop(vendor_init, bluetooth_a2dp_offload_prop)
set_prop(vendor_init, debug_prop)
+set_prop(vendor_init, exported_audio_prop)
set_prop(vendor_init, exported_bluetooth_prop)
set_prop(vendor_init, exported_config_prop)
set_prop(vendor_init, exported_dalvik_prop)