Merge "Add hypervisor version SysProp support"
diff --git a/srcs/android/sysprop/CarProperties.sysprop b/srcs/android/sysprop/CarProperties.sysprop
index 8fe0d82..a1e298c 100644
--- a/srcs/android/sysprop/CarProperties.sysprop
+++ b/srcs/android/sysprop/CarProperties.sysprop
@@ -51,15 +51,6 @@
     prop_name: "android.car.number_pre_created_guests"
 }
 
-# Whether the Vehicle HAL should be used for user management tasks.
-prop {
-    api_name: "user_hal_enabled"
-    type: Boolean
-    scope: Internal
-    access: ReadWrite
-    prop_name: "android.car.user_hal_enabled"
-}
-
 # Timeout (in ms) waiting for Vehicle HAL responses for user management requests.
 prop {
     api_name: "user_hal_timeout"
@@ -68,3 +59,12 @@
     access: ReadWrite
     prop_name: "android.car.user_hal_timeout"
 }
+
+# Timeout (in ms) waiting for Device Policy Manager responses for user management requests.
+prop {
+    api_name: "device_policy_manager_timeout"
+    type: Integer
+    scope: Internal
+    access: ReadWrite
+    prop_name: "android.car.device_policy_manager_timeout"
+}
diff --git a/srcs/android/sysprop/DisplayProperties.sysprop b/srcs/android/sysprop/DisplayProperties.sysprop
index bc54bd4..67498e2 100644
--- a/srcs/android/sysprop/DisplayProperties.sysprop
+++ b/srcs/android/sysprop/DisplayProperties.sysprop
@@ -47,4 +47,13 @@
     scope: Internal
     access: ReadWrite
     prop_name: "debug.layout"
+}
+
+# When set to true, apps frame rate can be overridden with a non natively-supported refresh rate
+prop {
+    api_name: "debug_allow_non_native_refresh_rate_override"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "debug.display.allow_non_native_refresh_rate_override"
 }
\ No newline at end of file
diff --git a/srcs/android/sysprop/HdmiProperties.sysprop b/srcs/android/sysprop/HdmiProperties.sysprop
index 1b83e65..1d57d06 100644
--- a/srcs/android/sysprop/HdmiProperties.sysprop
+++ b/srcs/android/sysprop/HdmiProperties.sysprop
@@ -39,9 +39,53 @@
 
 # Set this to true to enable 'Set Menu Language' CEC feature.
 prop {
-    api_name: "set_menu_language"
+    api_name: "set_menu_language_enabled"
     type: Boolean
     scope: Internal
     access: Readonly
     prop_name: "ro.hdmi.set_menu_language"
-}
\ No newline at end of file
+}
+
+# When ARC is initiated, this port will be used to turn on ARC.
+prop {
+    api_name: "arc_port"
+    type: String
+    scope: Internal
+    access: Readonly
+    prop_name: "ro.hdmi.property_sytem_audio_device_arc_port"
+}
+
+# True means CEC audio device should forward volume keys when system audio mode is off.
+# Default is false.
+prop {
+    api_name: "forward_volume_keys_when_system_audio_mode_off"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "ro.hdmi.cec_audio_device_forward_volume_keys_system_audio_mode_off"
+}
+
+# True means the current device is a cec switch device.
+# Default is false.
+prop {
+    api_name: "is_switch"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "ro.hdmi.property_is_device_hdmi_cec_switch"
+}
+
+# Determines playback device action upon receiving routing control messages.
+# <ul>
+# <li><b>none</b> No action taken.
+# <li><b>wake_up_only</b> PowerManager.wakeUp() is called.
+# <li><b>wake_up_and_send_active_source</b> Same as above and additionally <Active Source> is sent.
+# </ul>
+prop {
+    api_name: "playback_device_action_on_routing_control"
+    type: Enum
+    scope: Internal
+    access: Readonly
+    enum_values: "none|wake_up_only|wake_up_and_send_active_source"
+    prop_name: "ro.hdmi.cec.source.playback_device_action_on_routing_control"
+}
diff --git a/srcs/android/sysprop/MediaProperties.sysprop b/srcs/android/sysprop/MediaProperties.sysprop
index 5f72e0c..45cbf86 100644
--- a/srcs/android/sysprop/MediaProperties.sysprop
+++ b/srcs/android/sysprop/MediaProperties.sysprop
@@ -42,3 +42,10 @@
     scope: Public
     prop_name: "media.c2.dmabuf.padding"
 }
+prop {
+    api_name: "resolution_limit_32bit"
+    type: Integer
+    access: Readonly
+    scope: Public
+    prop_name: "media.resolution.limit.32bit"
+}
diff --git a/srcs/android/sysprop/PowerProperties.sysprop b/srcs/android/sysprop/PowerProperties.sysprop
index 58d99f6..a1d5636 100644
--- a/srcs/android/sysprop/PowerProperties.sysprop
+++ b/srcs/android/sysprop/PowerProperties.sysprop
@@ -24,3 +24,13 @@
     access: Readonly
     prop_name: "ro.power.fixed_performance_scale_factor"
 }
+
+# Suspends charge input into the battery. When this property is set,
+# the device will drain battery even when connected to a power source.
+prop {
+    api_name: "battery_input_suspended"
+    type: Boolean
+    scope: Internal
+    access: ReadWrite
+    prop_name: "power.battery_input.suspended"
+}
diff --git a/srcs/api/PlatformProperties-current.txt b/srcs/api/PlatformProperties-current.txt
index ee6248a..8a82387 100644
--- a/srcs/api/PlatformProperties-current.txt
+++ b/srcs/api/PlatformProperties-current.txt
@@ -32,6 +32,11 @@
     prop_name: "media.c2.dmabuf.padding"
   }
   prop {
+    api_name: "resolution_limit_32bit"
+    type: Integer
+    prop_name: "media.resolution.limit.32bit"
+  }
+  prop {
     api_name: "swcodec_ion_align"
     type: Integer
     prop_name: "ro.com.android.media.swcodec.ion.align"
diff --git a/srcs/api/PlatformProperties-latest.txt b/srcs/api/PlatformProperties-latest.txt
index 7ef6754..e33fc1b 100644
--- a/srcs/api/PlatformProperties-latest.txt
+++ b/srcs/api/PlatformProperties-latest.txt
@@ -46,12 +46,6 @@
     prop_name: "ro.android.car.trusteddevice.device_name_prefix"
   }
   prop {
-    api_name: "user_hal_enabled"
-    access: ReadWrite
-    scope: Internal
-    prop_name: "android.car.user_hal_enabled"
-  }
-  prop {
     api_name: "user_hal_timeout"
     type: Integer
     access: ReadWrite
@@ -138,6 +132,12 @@
 props {
   module: "android.sysprop.HdmiProperties"
   prop {
+    api_name: "arc_port"
+    type: String
+    scope: Internal
+    prop_name: "ro.hdmi.cec.audio.arc_port.config"
+  }
+  prop {
     api_name: "cec_device_types"
     type: EnumList
     scope: Internal
@@ -152,9 +152,45 @@
     deprecated: true
   }
   prop {
-    api_name: "set_menu_language"
+    api_name: "forward_volume_keys_when_system_audio_mode_off"
     scope: Internal
-    prop_name: "ro.hdmi.set_menu_language"
+    prop_name: "ro.hdmi.cec.audio.forward_volume_keys_when_system_audio_mode_off.enabled"
+  }
+  prop {
+    api_name: "is_switch"
+    scope: Internal
+    prop_name: "ro.hdmi.cec.source.is_switch.enabled."
+  }
+  prop {
+    api_name: "playback_device_action_on_routing_control"
+    type: Enum
+    scope: Internal
+    prop_name: "ro.hdmi.cec.source.playback_device_action_on_routing_control"
+    enum_values: "none|wake_up_only|wake_up_and_send_active_source"
+  }
+  prop {
+    api_name: "power_state_change_on_active_source_lost"
+    type: Enum
+    scope: Internal
+    prop_name: "ro.hdmi.cec.source.power_state_change_on_active_source_lost"
+    enum_values: "none|standby_now"
+  }
+  prop {
+    api_name: "send_standby_on_sleep"
+    type: Enum
+    scope: Internal
+    prop_name: "ro.hdmi.cec.source.send_standby_on_sleep"
+    enum_values: "to_tv|broadcast|none"
+  }
+  prop {
+    api_name: "set_menu_language_enabled"
+    scope: Internal
+    prop_name: "ro.hdmi.cec.source.set_menu_language.enabled"
+  }
+  prop {
+    api_name: "system_audio_mode_muting"
+    scope: Internal
+    prop_name: "ro.hdmi.cec.audio.system_audio_mode_muting.enabled"
   }
 }
 props {
@@ -192,6 +228,12 @@
 props {
   module: "android.sysprop.PowerProperties"
   prop {
+    api_name: "battery_input_suspended"
+    access: ReadWrite
+    scope: Internal
+    prop_name: "power.battery_input.suspended"
+  }
+  prop {
     api_name: "fixed_performance_scale_factor"
     type: Integer
     prop_name: "ro.power.fixed_performance_scale_factor"