Merge "Cleaned up the flag enforce_telephony_feature_mapping" into main
diff --git a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
index 0d4c74e..95bcaf0 100644
--- a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
+++ b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
@@ -1083,7 +1083,12 @@
                 {2, 6000},
                 {3, 10000},
                 {4, 16000},
-        },  // 5 bands
+                {5, 20000},
+                {6, 26000},
+                {7, 30000},
+                {8, 36000},
+                {9, 40000},
+        },  // 10 bands
         {
                 {0, 800},
                 {3, 15000},
diff --git a/automotive/TEST_MAPPING b/automotive/TEST_MAPPING
index 2b2f6b0..f041ca6 100644
--- a/automotive/TEST_MAPPING
+++ b/automotive/TEST_MAPPING
@@ -4,6 +4,12 @@
       "name": "AndroidCarApiTest"
     },
     {
+      "name": "CarHiddenApiTest"
+    },
+    {
+      "name": "CarExtendedApiTest"
+    },
+    {
       "name": "CarSecurityPermissionTest"
     },
     {
diff --git a/automotive/vehicle/TEST_MAPPING b/automotive/vehicle/TEST_MAPPING
index 56bc047..de59fdc 100644
--- a/automotive/vehicle/TEST_MAPPING
+++ b/automotive/vehicle/TEST_MAPPING
@@ -52,6 +52,9 @@
     },
     {
       "name": "VehicleHalProtoMessageConverterTest"
+    },
+    {
+      "name": "CtsCarTestCases"
     }
   ],
   "postsubmit": [
diff --git a/automotive/vehicle/aidl/impl/current/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/current/default_config/config/DefaultProperties.json
index f71dead..90c53bd 100644
--- a/automotive/vehicle/aidl/impl/current/default_config/config/DefaultProperties.json
+++ b/automotive/vehicle/aidl/impl/current/default_config/config/DefaultProperties.json
@@ -162,11 +162,6 @@
         },
         {
             "property": "VehicleProperty::SEAT_MEMORY_SELECT",
-            "defaultValue": {
-                "int32Values": [
-                    1
-                ]
-            },
             "areas": [
                 {
                     "areaId": "Constants::SEAT_1_LEFT",
@@ -192,11 +187,6 @@
         },
         {
             "property": "VehicleProperty::SEAT_MEMORY_SET",
-            "defaultValue": {
-                "int32Values": [
-                    1
-                ]
-            },
             "areas": [
                 {
                     "areaId": "Constants::SEAT_1_LEFT",
@@ -5234,19 +5224,7 @@
             ]
         },
         {
-            "property": "VehicleProperty::CAMERA_SERVICE_CURRENT_STATE",
-            "defaultValue": {
-                "int32Values": [
-                    "CameraServiceState::UNAVAILABLE",
-                    "CameraServiceState::UNAVAILABLE",
-                    "CameraServiceState::UNAVAILABLE",
-                    "CameraServiceState::UNAVAILABLE",
-                    "CameraServiceState::UNAVAILABLE",
-                    "CameraServiceState::UNAVAILABLE",
-                    "CameraServiceState::UNAVAILABLE",
-                    "CameraServiceState::UNAVAILABLE"
-                ]
-            }
+            "property": "VehicleProperty::CAMERA_SERVICE_CURRENT_STATE"
         }
     ]
 }
diff --git a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp
index d0edfad..ff4ce3d 100644
--- a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp
+++ b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp
@@ -534,6 +534,8 @@
     // Check the loopback of the ACL packet
     ASSERT_TRUE(bluetooth_cb->WaitForCallback(kCallbackNameAclEventReceived)
                     .no_timeout);
+    ASSERT_FALSE(acl_queue.empty());
+
     hidl_vec<uint8_t> acl_loopback = acl_queue.front();
     acl_queue.pop();
 
diff --git a/broadcastradio/aidl/OWNERS b/broadcastradio/aidl/OWNERS
index 302fdd7..51a85e4 100644
--- a/broadcastradio/aidl/OWNERS
+++ b/broadcastradio/aidl/OWNERS
@@ -1,4 +1,3 @@
 xuweilin@google.com
 oscarazu@google.com
 ericjeong@google.com
-keunyoung@google.com
diff --git a/broadcastradio/aidl/vts/OWNERS b/broadcastradio/aidl/vts/OWNERS
index 302fdd7..51a85e4 100644
--- a/broadcastradio/aidl/vts/OWNERS
+++ b/broadcastradio/aidl/vts/OWNERS
@@ -1,4 +1,3 @@
 xuweilin@google.com
 oscarazu@google.com
 ericjeong@google.com
-keunyoung@google.com
diff --git a/graphics/OWNERS b/graphics/OWNERS
index 1cb6015..4317831 100644
--- a/graphics/OWNERS
+++ b/graphics/OWNERS
@@ -6,5 +6,4 @@
 chrisforbes@google.com
 jreck@google.com
 lpy@google.com
-scroggo@google.com
-sumir@google.com
\ No newline at end of file
+sumir@google.com
diff --git a/graphics/composer/aidl/include/android/hardware/graphics/composer3/ComposerClientReader.h b/graphics/composer/aidl/include/android/hardware/graphics/composer3/ComposerClientReader.h
index da6001a..2196530 100644
--- a/graphics/composer/aidl/include/android/hardware/graphics/composer3/ComposerClientReader.h
+++ b/graphics/composer/aidl/include/android/hardware/graphics/composer3/ComposerClientReader.h
@@ -270,7 +270,7 @@
         for (auto& [layerId, luts] : displayLuts.layerLuts) {
             if (luts.pfd.get() >= 0) {
                 data.layerLuts.push_back(
-                        {layerId, Luts{ndk::ScopedFileDescriptor(dup(luts.pfd.get())), luts.offsets,
+                        {layerId, Luts{ndk::ScopedFileDescriptor(luts.pfd.release()), luts.offsets,
                                        luts.lutProperties}});
             }
         }
diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp
index 2ff3b2b..6c58b4c 100644
--- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp
+++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp
@@ -3276,7 +3276,7 @@
         invalid_writer.setLayerLifecycleBatchCommandType(getInvalidDisplayId(), layer,
                                                          LayerLifecycleBatchCommandType::DESTROY);
         execute();
-        const auto errors = getReader(display.getDisplayId()).takeErrors();
+        const auto errors = getReader(getInvalidDisplayId()).takeErrors();
         ASSERT_TRUE(errors.size() == 1 && errors[0].errorCode == IComposerClient::EX_BAD_DISPLAY);
     }
 }
diff --git a/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl b/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl
index fc703e9..1908d05 100644
--- a/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl
+++ b/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl
@@ -479,8 +479,8 @@
      *        structure.
      *
      * @param unwrappingParams must contain any parameters needed to perform the unwrapping
-     *        operation.  For example, if the wrapping key is an AES key the block and padding modes
-     *        must be specified in this argument.
+     *        operation.  For example, the padding mode for the RSA wrapping key must be specified
+     *        in this argument.
      *
      * @param passwordSid specifies the password secure ID (SID) of the user that owns the key being
      *        installed.  If the authorization list in wrappedKeyData contains a
diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
index 06e0f58..0c86a27 100644
--- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
+++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
@@ -328,7 +328,16 @@
  * which is mandatory for KeyMint version 2 and first_api_level 33 or greater.
  */
 bool KeyMintAidlTestBase::isDeviceIdAttestationRequired() {
-    return AidlVersion() >= 2 && property_get_int32("ro.vendor.api_level", 0) >= __ANDROID_API_T__;
+    if (!is_gsi_image()) {
+        return AidlVersion() >= 2 &&
+            get_vendor_api_level() >= AVendorSupport_getVendorApiLevelOf(__ANDROID_API_T__);
+    } else {
+        // The device ID properties may not be set properly when testing earlier implementations
+        // under GSI, e.g. `ro.product.<id>` is overridden by the GSI image, but the
+        // `ro.product.vendor.<id>` value (which does survive GSI installation) was not set.
+        return AidlVersion() >= 2 &&
+            get_vendor_api_level() >= AVendorSupport_getVendorApiLevelOf(__ANDROID_API_U__);
+    }
 }
 
 /**
diff --git a/security/keymint/support/authorization_set.cpp b/security/keymint/support/authorization_set.cpp
index c1b5d48..5944908 100644
--- a/security/keymint/support/authorization_set.cpp
+++ b/security/keymint/support/authorization_set.cpp
@@ -22,6 +22,8 @@
 #include <aidl/android/hardware/security/keymint/KeyParameter.h>
 #include <aidl/android/hardware/security/keymint/KeyPurpose.h>
 
+#include <algorithm>
+
 namespace aidl::android::hardware::security::keymint {
 
 void AuthorizationSet::Sort() {
diff --git a/wifi/legacy_headers/include/hardware_legacy/wifi_hal.h b/wifi/legacy_headers/include/hardware_legacy/wifi_hal.h
index a757954..dbcc152 100644
--- a/wifi/legacy_headers/include/hardware_legacy/wifi_hal.h
+++ b/wifi/legacy_headers/include/hardware_legacy/wifi_hal.h
@@ -75,15 +75,15 @@
 
 /* Pre selected Power scenarios to be applied from BDF file */
 typedef enum {
-    WIFI_POWER_SCENARIO_INVALID          = -2,
-    WIFI_POWER_SCENARIO_DEFAULT          = -1,
-    WIFI_POWER_SCENARIO_VOICE_CALL       = 0,
+    WIFI_POWER_SCENARIO_INVALID = -2,
+    WIFI_POWER_SCENARIO_DEFAULT = -1,
+    WIFI_POWER_SCENARIO_VOICE_CALL = 0,
     WIFI_POWER_SCENARIO_ON_HEAD_CELL_OFF = 1,
-    WIFI_POWER_SCENARIO_ON_HEAD_CELL_ON  = 2,
+    WIFI_POWER_SCENARIO_ON_HEAD_CELL_ON = 2,
     WIFI_POWER_SCENARIO_ON_BODY_CELL_OFF = 3,
-    WIFI_POWER_SCENARIO_ON_BODY_CELL_ON  = 4,
-    WIFI_POWER_SCENARIO_ON_BODY_BT       = 5,
-    WIFI_POWER_SCENARIO_ON_HEAD_HOTSPOT  = 6,
+    WIFI_POWER_SCENARIO_ON_BODY_CELL_ON = 4,
+    WIFI_POWER_SCENARIO_ON_BODY_BT = 5,
+    WIFI_POWER_SCENARIO_ON_HEAD_HOTSPOT = 6,
     WIFI_POWER_SCENARIO_ON_HEAD_HOTSPOT_MMW = 7,
     WIFI_POWER_SCENARIO_ON_BODY_CELL_ON_BT = 8,
     WIFI_POWER_SCENARIO_ON_BODY_HOTSPOT = 9,
@@ -107,6 +107,10 @@
     WIFI_POWER_SCENARIO_ON_BODY_BT_UNFOLDED_CAP = 27,
     WIFI_POWER_SCENARIO_ON_BODY_CELL_ON_UNFOLDED_CAP = 28,
     WIFI_POWER_SCENARIO_ON_BODY_CELL_ON_BT_UNFOLDED_CAP = 29,
+    WIFI_POWER_SCENARIO_ON_BODY_CELL_OFF_CAP = 30,
+    WIFI_POWER_SCENARIO_ON_BODY_BT_CAP = 31,
+    WIFI_POWER_SCENARIO_ON_BODY_CELL_ON_CAP = 32,
+    WIFI_POWER_SCENARIO_ON_BODY_CELL_ON_BT_CAP = 33,
 } wifi_power_scenario;
 
 typedef enum {