Initialize compsvc with allowlisted system properties
Bug: 231579544
Test: composd_cmd test-compile, see properties in the VM
Change-Id: Ia8b37236bb7039434d464be924aca5ee4c6bd42f
(cherry picked from commit cb6d66bb18c1eb8aef424915b51a78b129405a09)
Merged-In: Ia8b37236bb7039434d464be924aca5ee4c6bd42f
diff --git a/compos/common/odrefresh.rs b/compos/common/odrefresh.rs
index 390e50c..2d7635b 100644
--- a/compos/common/odrefresh.rs
+++ b/compos/common/odrefresh.rs
@@ -35,6 +35,10 @@
/// The directory under ODREFRESH_OUTPUT_ROOT_DIR where the current (active) artifacts are stored
pub const CURRENT_ARTIFACTS_SUBDIR: &str = "dalvik-cache";
+/// Prefixes of system properties that are interested to odrefresh and dex2oat.
+const ALLOWLIST_SYSTEM_PROPERTY_PREFIXES: &[&str] =
+ &["dalvik.vm.", "ro.dalvik.vm.", "persist.device_config.runtime_native_boot."];
+
// The highest "standard" exit code defined in sysexits.h (as EX__MAX); odrefresh error codes
// start above here to avoid clashing.
// TODO: What if this changes?
@@ -63,3 +67,13 @@
.ok_or_else(|| anyhow!("Unexpected odrefresh exit code: {}", exit_code))
}
}
+
+/// Returns whether the system property name is interesting to odrefresh and dex2oat.
+pub fn is_system_property_interesting(name: &str) -> bool {
+ for prefix in ALLOWLIST_SYSTEM_PROPERTY_PREFIXES {
+ if name.starts_with(prefix) {
+ return true;
+ }
+ }
+ false
+}