Snap for 10453563 from a96f9a905896fc43a8eff643c60a608ee2797d92 to mainline-art-release

Change-Id: I8956ddfd2a0967eed819f0697e7a3f93260825f7
diff --git a/srcs/Android.bp b/srcs/Android.bp
index fc74882..114b944 100644
--- a/srcs/Android.bp
+++ b/srcs/Android.bp
@@ -27,11 +27,13 @@
         "//apex_available:platform",
         "com.android.art",
         "com.android.art.debug",
-        "com.android.bluetooth",
+        "com.android.btservices",
         "com.android.tethering",
+        "com.android.virt",
     ],
     cpp: {
         min_sdk_version: "S",
     },
     vendor_available: true,
+    host_supported: true,
 }
diff --git a/srcs/android/sysprop/BluetoothProperties.sysprop b/srcs/android/sysprop/BluetoothProperties.sysprop
index 8bc8bb8..42e8009 100644
--- a/srcs/android/sysprop/BluetoothProperties.sysprop
+++ b/srcs/android/sysprop/BluetoothProperties.sysprop
@@ -33,6 +33,62 @@
     prop_name: "persist.bluetooth.btsnooplogmode"
 }
 
+# When snoop_log_mode is set as filtered, this filter truncates ACL packets (non-fragment)
+# to fixed (MAX_HCI_ACL_LEN) number of bytes
+prop {
+    api_name: "snoop_log_filter_snoop_headers_enabled"
+    type: Boolean
+    scope: Public
+    access: ReadWrite
+    prop_name: "persist.bluetooth.snooplogfilter.headers.enabled"
+}
+
+# When snoop_log_mode is set as filtered, this filter discards A2DP media packets (non-split mode)
+prop {
+    api_name: "snoop_log_filter_profile_a2dp_enabled"
+    type: Boolean
+    scope: Public
+    access: ReadWrite
+    prop_name: "persist.bluetooth.snooplogfilter.profiles.a2dp.enabled"
+}
+
+# When snoop_log_mode is set as filtered, this filters MAP packets based on the filter mode:
+#  fullfilter - discard whole packet
+#  header     - truncate to fixed length
+#  magic      - fill with a magic string, such as: "PROHIBITED"
+prop {
+    api_name: "snoop_log_filter_profile_map"
+    type: Enum
+    scope: Public
+    access: ReadWrite
+    enum_values: "empty|disabled|fullfilter|header|magic"
+    prop_name: "persist.bluetooth.snooplogfilter.profiles.map"
+}
+
+# When snoop_log_mode is set as filtered, this filters PBAP and HFP packets (CPBR, CLCC)
+# based on the filter mode:
+#  fullfilter - discard whole packet
+#  header     - truncate to fixed length
+#  magic      - fill with a magic string, such as: "PROHIBITED"
+prop {
+    api_name: "snoop_log_filter_profile_pbap"
+    type: Enum
+    scope: Public
+    access: ReadWrite
+    enum_values: "empty|disabled|fullfilter|header|magic"
+    prop_name: "persist.bluetooth.snooplogfilter.profiles.pbap"
+}
+
+# When snoop_log_mode is set as filtered, this filter truncates RFCOMM UIH packet
+# to fixed (L2CAP_HEADER_SIZE) number of bytes
+prop {
+    api_name: "snoop_log_filter_profile_rfcomm_enabled"
+    type: Boolean
+    scope: Public
+    access: ReadWrite
+    prop_name: "persist.bluetooth.snooplogfilter.profiles.rfcomm.enabled"
+}
+
 prop {
     api_name: "factory_reset"
     type: Boolean
@@ -41,6 +97,14 @@
     prop_name: "persist.bluetooth.factoryreset"
 }
 
+prop {
+    api_name: "le_audio_allow_list"
+    type: StringList
+    scope: Public
+    access: ReadWrite
+    prop_name: "persist.bluetooth.leaudio.allow_list"
+}
+
 ######## Bluetooth configurations
 
 # Whether GAP BLE Privacy (RPA) is enabled on this device.
@@ -53,6 +117,36 @@
     prop_name: "bluetooth.core.gap.le.privacy.enabled"
 }
 
+# Minimum limit for GAP LE connection update time.
+# Set by vendors overlay, read at Bluetooth initialization
+prop {
+    api_name: "getGapLeConnMinLimit"
+    type: Integer
+    scope: Public
+    access: Readonly
+    prop_name: "bluetooth.core.gap.le.conn.min.limit"
+}
+
+# Whether LE Connection with initiating with only LE 1M PHY.
+# Set by vendors overlay, read at Bluetooth initialization
+prop {
+    api_name: "isGapLeConnOnlyInit1mPhyEnabled"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.gap.le.conn.only_init_1m_phy.enabled"
+}
+
+# Whether Inband ringtone for LeAudio is supported.
+# Set by vendors overlay, read at Bluetooth initialization
+prop {
+    api_name: "isLeAudioInbandRingtoneSupported"
+    type: Boolean
+    scope: Public
+    access: Readonly
+    prop_name: "bluetooth.core.le_audio.inband_ringtone.supported"
+}
+
 # The default name of the device.
 # Set by vendors overlay, read at Bluetooth initialization
 prop {
@@ -73,6 +167,31 @@
     prop_name: "bluetooth.device.class_of_device"
 }
 
+# The default audio profile for dual mode audio devices for output only audio. The value should be
+# the integer value of BluetoothProfile#A2DP (2) or BluetoothProfile#LE_AUDIO (22). If the value is
+# set to anything else, LE Audio will be the default.
+# Set by vendors overlay, read at Bluetooth initialization
+prop {
+    api_name: "getDefaultOutputOnlyAudioProfile"
+    type: Integer
+    scope: Public
+    access: Readonly
+    prop_name: "bluetooth.device.default_output_only_audio_profile"
+}
+
+# The default audio profile for dual mode audio devices for duplex (output + input) audio. The
+# value should be the integer value of BluetoothProfile#HEADSET (1) or
+# BluetoothProfile#LE_AUDIO (22). If the value is set to anything else, LE Audio will be the
+# default.
+# Set by vendors overlay, read at Bluetooth initialization
+prop {
+    api_name: "getDefaultDuplexAudioProfile"
+    type: Integer
+    scope: Public
+    access: Readonly
+    prop_name: "bluetooth.device.default_duplex_audio_profile"
+}
+
 # Bluetooth operating voltage in millivolts available for vendors overlay.
 # Used to calculate Bluetooth power consumption for a specific hardware.
 prop {
@@ -412,3 +531,227 @@
     access: Readonly
     prop_name: "bluetooth.profile.vcp.controller.enabled"
 }
+
+# ACL Link supervision timeout
+prop {
+    api_name: "getLinkSupervisionTimeout"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.acl.link_supervision_timeout"
+}
+
+# The following values are used to load default adapter parameters for BR/EDR.
+# The Bluetooth Core Specification should be consulted for the meaning and valid
+# domain of each of these values.
+
+# BR/EDR Page scan activity configuration
+prop {
+    api_name: "getClassicPageScanType"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.page_scan_type"
+}
+prop {
+    api_name: "getClassicPageScanInterval"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.page_scan_interval"
+}
+prop {
+    api_name: "getClassicPageScanWindow"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.page_scan_window"
+}
+
+# BR/EDR Inquiry scan activity configuration
+prop {
+    api_name: "getClassicInquiryScanType"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.inq_scan_type"
+}
+prop {
+    api_name: "getClassicInquiryScanInterval"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.inq_scan_interval"
+}
+prop {
+    api_name: "getClassicInquiryScanWindow"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.inq_scan_window"
+}
+
+# BR/EDR Page Timeout
+prop {
+    api_name: "getClassicPageTimeout"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.page_timeout"
+}
+
+# BR/EDR Sniff Parameters
+# Please refer to BTA_DM_PM_PARK_IDX in bta_api.h to determine how many
+# entries are currently being supported.
+# The SNIFF table entries must be in the order from highest latency (biggest
+# interval) to lowest latency. If there's a conflict among the connected
+# services, the setting with lowest latency wins.
+prop {
+    api_name: "getClassicSniffMaxIntervals"
+    type: UIntList
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.sniff_max_intervals"
+}
+prop {
+    api_name: "getClassicSniffMinIntervals"
+    type: UIntList
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.sniff_min_intervals"
+}
+prop {
+    api_name: "getClassicSniffAttempts"
+    type: UIntList
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.sniff_attempts"
+}
+prop {
+    api_name: "getClassicSniffTimeouts"
+    type: UIntList
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.classic.sniff_timeouts"
+}
+
+# The following values are used to load default adapter parameters for LE.
+# The Bluetooth Core Specification should be consulted for the meaning and valid
+# domain of each of these values.
+
+# LE connection parameters.
+prop {
+    api_name: "getLeMinConnectionInterval"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.min_connection_interval"
+}
+prop {
+    api_name: "getLeMaxConnectionInterval"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.max_connection_interval"
+}
+prop {
+    api_name: "getLeConnectionLatency"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.connection_latency"
+}
+prop {
+    api_name: "getLeConnectionSupervisionTimeout"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.connection_supervision_timeout"
+}
+
+# Direct connection timeout in ms
+prop {
+    api_name: "getLeDirectConnectionTimeout"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.direct_connection_timeout"
+}
+
+# LE connection scan interval/window
+prop {
+    api_name: "getLeConnectionScanIntervalFast"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.connection_scan_interval_fast"
+}
+prop {
+    api_name: "getLeConnectionScanWindowFast"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.connection_scan_window_fast"
+}
+prop {
+    api_name: "getLeConnectionScanWindow2mFast"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.connection_scan_window_2m_fast"
+}
+prop {
+    api_name: "getLeConnectionScanWindowCodedFast"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.connection_scan_window_coded_fast"
+}
+prop {
+    api_name: "getLeConnectionScanIntervalSlow"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.connection_scan_interval_slow"
+}
+prop {
+    api_name: "getLeConnectionScanWindowSlow"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.connection_scan_window_slow"
+}
+
+# LE scanning parameters used during BTM inquiry
+prop {
+    api_name: "getLeInquiryScanInterval"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.inquiry_scan_interval"
+}
+prop {
+    api_name: "getLeInquiryScanWindow"
+    type: UInt
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.inquiry_scan_window"
+}
+
+# Used to disable LeGetVendorCapabilities.
+prop {
+    api_name: "getLeVendorCapabilitiesEnabled"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.core.le.vendor_capabilities.enabled"
+}
+
+# Used to disable enhanced SCO connection
+prop {
+    api_name: "getDisableEnchancedConnection"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "bluetooth.sco.disable_enhanced_connection"
+}
diff --git a/srcs/android/sysprop/DisplayProperties.sysprop b/srcs/android/sysprop/DisplayProperties.sysprop
index 67498e2..1d04723 100644
--- a/srcs/android/sysprop/DisplayProperties.sysprop
+++ b/srcs/android/sysprop/DisplayProperties.sysprop
@@ -49,11 +49,3 @@
     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/InputProperties.sysprop b/srcs/android/sysprop/InputProperties.sysprop
index 7de5061..926278c 100644
--- a/srcs/android/sysprop/InputProperties.sysprop
+++ b/srcs/android/sysprop/InputProperties.sysprop
@@ -15,15 +15,6 @@
 module: "android.sysprop.InputProperties"
 owner: Platform
 
-# The default VelocityTracker strategy.
-prop {
-    api_name: "velocitytracker_strategy"
-    type: String
-    scope: Internal
-    access: ReadWrite
-    prop_name: "persist.input.velocitytracker.strategy"
-}
-
 # A debug flag that converts all touch pointers to stylus pointers.
 # Requires a reboot to take effect.
 prop {
@@ -33,3 +24,43 @@
     access: Readonly
     prop_name: "persist.debug.input.simulate_stylus_with_touch"
 }
+
+# A flag to enable the new touchpad input mapper introduced in Android U, based around the ChromeOS
+# gestures library.
+prop {
+    api_name: "enable_touchpad_gestures_library"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "persist.input.touchpad.gestures_library.enabled"
+}
+
+# A flag to enable or disable system motion prediction.
+prop {
+    api_name: "enable_motion_prediction"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "persist.input.enable_motion_prediction"
+}
+
+# A flag to enable the new Keyboard backlight controller introduced in Android U, that allows
+# Framework to control keyboard backlight on supported devices.
+prop {
+    api_name: "enable_keyboard_backlight_control"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "persist.input.keyboard.backlight_control.enabled"
+}
+
+# A flag to force showing a pointer icon for stylus pointers, even when the device is not
+# configured for it. Used for debugging stylus pointer icons. Requires restart.
+prop {
+    api_name: "force_enable_stylus_pointer_icon"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "persist.debug.input.force_enable_stylus_pointer_icon"
+}
+
diff --git a/srcs/android/sysprop/MemoryProperties.sysprop b/srcs/android/sysprop/MemoryProperties.sysprop
new file mode 100644
index 0000000..d252f3c
--- /dev/null
+++ b/srcs/android/sysprop/MemoryProperties.sysprop
@@ -0,0 +1,29 @@
+# Copyright (C) 2022 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+owner: Platform
+module: "android.sysprop.MemoryProperties"
+
+# Provides the hardware memory ddr size. This property is populated by
+# the property service from the kernel command line parameter
+# androidboot.ddr_size=XXXX. Vendors can set this command line option
+# from the bootloader.
+# This value is usually different from MemTotal in /proc/meminfo.
+prop {
+    api_name: "memory_ddr_size"
+    type: String
+    scope: Public
+    access: Readonly
+    prop_name: "ro.boot.ddr_size"
+}
diff --git a/srcs/android/sysprop/NfcProperties.sysprop b/srcs/android/sysprop/NfcProperties.sysprop
new file mode 100644
index 0000000..910cb99
--- /dev/null
+++ b/srcs/android/sysprop/NfcProperties.sysprop
@@ -0,0 +1,50 @@
+# Copyright (C) 2021 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+module: "android.sysprop.NfcProperties"
+owner: Platform
+
+prop {
+    api_name: "debug_enabled"
+    type: Boolean
+    scope: Public
+    access: ReadWrite
+    prop_name: "persist.nfc.debug_enabled"
+}
+
+prop {
+    api_name: "snoop_log_mode"
+    type: Enum
+    enum_values: "full|filtered"
+    scope: Public
+    access: ReadWrite
+    prop_name: "persist.nfc.snoop_log_mode"
+}
+
+prop {
+    api_name: "vendor_debug_enabled"
+    type: Boolean
+    scope: Public
+    access: ReadWrite
+    prop_name: "persist.nfc.vendor_debug_enabled"
+}
+
+prop {
+    api_name: "skipNdefRead"
+    type: Boolean
+    scope: Public
+    access: Readonly
+    prop_name: "nfc.dta.skip_ndef_read"
+    legacy_prop_name: "nfc.dta.skipNdefRead"
+}
diff --git a/srcs/android/sysprop/PowerProperties.sysprop b/srcs/android/sysprop/PowerProperties.sysprop
index a1d5636..c53d6ae 100644
--- a/srcs/android/sysprop/PowerProperties.sysprop
+++ b/srcs/android/sysprop/PowerProperties.sysprop
@@ -34,3 +34,23 @@
     access: ReadWrite
     prop_name: "power.battery_input.suspended"
 }
+
+# Allows apps to turn the screen on with android.os.PowerManager#ACQUIRE_CAUSES_WAKEUP
+# without being granted android.app.AppOpsManager#OP_TURN_SCREEN_ON.
+prop {
+    api_name: "permissionless_turn_screen_on"
+    type: Boolean
+    scope: Internal
+    access: ReadWrite
+    prop_name: "debug.power.permissionless_turn_screen_on"
+}
+
+# Waives the minimum target-sdk check for android.os.PowerManager#ACQUIRE_CAUSES_WAKEUP
+# and only allows the flag for apps holding android.permission.TURN_SCREEN_ON
+prop {
+    api_name: "waive_target_sdk_check_for_turn_screen_on"
+    type: Boolean
+    scope: Internal
+    access: Readonly
+    prop_name: "ro.power.waive_target_sdk_check_for_turn_screen_on"
+}
\ No newline at end of file
diff --git a/srcs/android/sysprop/VoldProperties.sysprop b/srcs/android/sysprop/VoldProperties.sysprop
deleted file mode 100644
index a2b7fda..0000000
--- a/srcs/android/sysprop/VoldProperties.sysprop
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (C) 2018 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-module: "android.sysprop.VoldProperties"
-owner: Platform
-prop {
-    api_name: "decrypt"
-    type: String
-    scope: Internal
-    access: ReadWrite
-    prop_name: "vold.decrypt"
-}
-prop {
-    api_name: "encrypt_progress"
-    type: String
-    scope: Internal
-    access: ReadWrite
-    prop_name: "vold.encrypt_progress"
-}
-prop {
-    api_name: "encrypt_time_remaining"
-    type: Integer
-    scope: Internal
-    access: ReadWrite
-    prop_name: "vold.encrypt_time_remaining"
-}
diff --git a/srcs/api/PlatformProperties-current.txt b/srcs/api/PlatformProperties-current.txt
index 0bb7d72..4ad20f1 100644
--- a/srcs/api/PlatformProperties-current.txt
+++ b/srcs/api/PlatformProperties-current.txt
@@ -25,6 +25,21 @@
     prop_name: "bluetooth.device.default_name"
   }
   prop {
+    api_name: "getDefaultDuplexAudioProfile"
+    type: Integer
+    prop_name: "bluetooth.device.default_duplex_audio_profile"
+  }
+  prop {
+    api_name: "getDefaultOutputOnlyAudioProfile"
+    type: Integer
+    prop_name: "bluetooth.device.default_output_only_audio_profile"
+  }
+  prop {
+    api_name: "getGapLeConnMinLimit"
+    type: Integer
+    prop_name: "bluetooth.core.gap.le.conn.min.limit"
+  }
+  prop {
     api_name: "getHardwareIdleCurrentMa"
     type: Integer
     prop_name: "bluetooth.hardware.power.idle_cur_ma"
@@ -53,6 +68,10 @@
     prop_name: "bluetooth.core.gap.le.privacy.enabled"
   }
   prop {
+    api_name: "isLeAudioInbandRingtoneSupported"
+    prop_name: "bluetooth.core.le_audio.inband_ringtone.supported"
+  }
+  prop {
     api_name: "isProfileA2dpSinkEnabled"
     prop_name: "bluetooth.profile.a2dp.sink.enabled"
   }
@@ -169,6 +188,12 @@
     prop_name: "bluetooth.framework.support_persisted_state"
   }
   prop {
+    api_name: "le_audio_allow_list"
+    type: StringList
+    access: ReadWrite
+    prop_name: "persist.bluetooth.leaudio.allow_list"
+  }
+  prop {
     api_name: "snoop_default_mode"
     type: Enum
     access: ReadWrite
@@ -176,6 +201,35 @@
     enum_values: "empty|disabled|filtered|full"
   }
   prop {
+    api_name: "snoop_log_filter_profile_a2dp_enabled"
+    access: ReadWrite
+    prop_name: "persist.bluetooth.snooplogfilter.profiles.a2dp.enabled"
+  }
+  prop {
+    api_name: "snoop_log_filter_profile_map"
+    type: Enum
+    access: ReadWrite
+    prop_name: "persist.bluetooth.snooplogfilter.profiles.map"
+    enum_values: "empty|disabled|fullfilter|header|magic"
+  }
+  prop {
+    api_name: "snoop_log_filter_profile_pbap"
+    type: Enum
+    access: ReadWrite
+    prop_name: "persist.bluetooth.snooplogfilter.profiles.pbap"
+    enum_values: "empty|disabled|fullfilter|header|magic"
+  }
+  prop {
+    api_name: "snoop_log_filter_profile_rfcomm_enabled"
+    access: ReadWrite
+    prop_name: "persist.bluetooth.snooplogfilter.profiles.rfcomm.enabled"
+  }
+  prop {
+    api_name: "snoop_log_filter_snoop_headers_enabled"
+    access: ReadWrite
+    prop_name: "persist.bluetooth.snooplogfilter.headers.enabled"
+  }
+  prop {
     api_name: "snoop_log_mode"
     type: Enum
     access: ReadWrite
@@ -237,6 +291,14 @@
   }
 }
 props {
+  module: "android.sysprop.MemoryProperties"
+  prop {
+    api_name: "memory_ddr_size"
+    type: String
+    prop_name: "ro.boot.ddr_size"
+  }
+}
+props {
   module: "android.sysprop.NetworkProperties"
   prop {
     api_name: "isCellular464XlatEnabled"
@@ -250,6 +312,31 @@
   }
 }
 props {
+  module: "android.sysprop.NfcProperties"
+  prop {
+    api_name: "debug_enabled"
+    access: ReadWrite
+    prop_name: "persist.nfc.debug_enabled"
+  }
+  prop {
+    api_name: "skipNdefRead"
+    prop_name: "nfc.dta.skip_ndef_read"
+    legacy_prop_name: "nfc.dta.skipNdefRead"
+  }
+  prop {
+    api_name: "snoop_log_mode"
+    type: Enum
+    access: ReadWrite
+    prop_name: "persist.nfc.snoop_log_mode"
+    enum_values: "full|filtered"
+  }
+  prop {
+    api_name: "vendor_debug_enabled"
+    access: ReadWrite
+    prop_name: "persist.nfc.vendor_debug_enabled"
+  }
+}
+props {
   module: "android.sysprop.OtaProperties"
   prop {
     api_name: "ab_ota_partitions"
diff --git a/srcs/api/PlatformProperties-latest.txt b/srcs/api/PlatformProperties-latest.txt
index 2e4b0ca..7ecf960 100644
--- a/srcs/api/PlatformProperties-latest.txt
+++ b/srcs/api/PlatformProperties-latest.txt
@@ -26,20 +26,6 @@
     prop_name: "android.car.systemuser.bootuseroverrideid"
   }
   prop {
-    api_name: "number_pre_created_guests"
-    type: Integer
-    access: ReadWrite
-    scope: Internal
-    prop_name: "android.car.number_pre_created_guests"
-  }
-  prop {
-    api_name: "number_pre_created_users"
-    type: Integer
-    access: ReadWrite
-    scope: Internal
-    prop_name: "android.car.number_pre_created_users"
-  }
-  prop {
     api_name: "trusted_device_device_name_prefix"
     type: String
     scope: Internal
@@ -514,30 +500,6 @@
   }
 }
 props {
-  module: "android.sysprop.VoldProperties"
-  prop {
-    api_name: "decrypt"
-    type: String
-    access: ReadWrite
-    scope: Internal
-    prop_name: "vold.decrypt"
-  }
-  prop {
-    api_name: "encrypt_progress"
-    type: String
-    access: ReadWrite
-    scope: Internal
-    prop_name: "vold.encrypt_progress"
-  }
-  prop {
-    api_name: "encrypt_time_remaining"
-    type: Integer
-    access: ReadWrite
-    scope: Internal
-    prop_name: "vold.encrypt_time_remaining"
-  }
-}
-props {
   module: "android.sysprop.WifiProperties"
   prop {
     api_name: "start_supplicant"