UpsideDownCake is now 34

Ignore-AOSP-First: UpsideDownCake Finalization
Bug: 275409981
Test: build
Change-Id: Idb77a7a6a2aec4c4a377c12a074ec7e255a1cedc
diff --git a/automotive/display/aidl/Android.bp b/automotive/display/aidl/Android.bp
index bbd7a3e..c24b5c2 100644
--- a/automotive/display/aidl/Android.bp
+++ b/automotive/display/aidl/Android.bp
@@ -47,6 +47,12 @@
             version: "1",
             imports: ["android.hardware.common-V2"],
         },
+        {
+            version: "2",
+            imports: ["android.hardware.common-V2"],
+        },
+
     ],
     system_ext_specific: true,
+    frozen: true,
 }
diff --git a/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/.hash b/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/.hash
new file mode 100644
index 0000000..7e91586
--- /dev/null
+++ b/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/.hash
@@ -0,0 +1 @@
+c9dbd700b8b71be6703e499f4ff798be245b088e
diff --git a/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/android/frameworks/automotive/display/DisplayDesc.aidl b/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/android/frameworks/automotive/display/DisplayDesc.aidl
new file mode 100644
index 0000000..476f79f
--- /dev/null
+++ b/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/android/frameworks/automotive/display/DisplayDesc.aidl
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.automotive.display;
+@VintfStability
+parcelable DisplayDesc {
+  int width;
+  int height;
+  long layer;
+  android.frameworks.automotive.display.Rotation orientation;
+}
diff --git a/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/android/frameworks/automotive/display/ICarDisplayProxy.aidl b/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/android/frameworks/automotive/display/ICarDisplayProxy.aidl
new file mode 100644
index 0000000..0a40d16
--- /dev/null
+++ b/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/android/frameworks/automotive/display/ICarDisplayProxy.aidl
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.automotive.display;
+@VintfStability
+interface ICarDisplayProxy {
+  long[] getDisplayIdList();
+  android.frameworks.automotive.display.DisplayDesc getDisplayInfo(in long id);
+  /**
+   * @deprecated As of android.frameworks.automotive.display-V2, this method is deprecated and replaced with getSurface().
+   */
+  android.hardware.common.NativeHandle getHGraphicBufferProducer(in long id);
+  void hideWindow(in long id);
+  void showWindow(in long id);
+  android.view.Surface getSurface(in long id);
+}
diff --git a/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/android/frameworks/automotive/display/Rotation.aidl b/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/android/frameworks/automotive/display/Rotation.aidl
new file mode 100644
index 0000000..8c4c374
--- /dev/null
+++ b/automotive/display/aidl/aidl_api/android.frameworks.automotive.display/2/android/frameworks/automotive/display/Rotation.aidl
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.automotive.display;
+@Backing(type="int") @VintfStability
+enum Rotation {
+  ROTATION_0 = 0,
+  ROTATION_90 = 1,
+  ROTATION_180 = 2,
+  ROTATION_270 = 3,
+}
diff --git a/automotive/telemetry/aidl/Android.bp b/automotive/telemetry/aidl/Android.bp
index cca800d..944a94c 100644
--- a/automotive/telemetry/aidl/Android.bp
+++ b/automotive/telemetry/aidl/Android.bp
@@ -49,7 +49,13 @@
             version: "1",
             imports: [],
         },
+        {
+            version: "2",
+            imports: [],
+        },
+
     ],
+    frozen: true,
 
     // Run "m android.frameworks.automotive.telemetry-freeze-api" to bump the version. Freeze the
     // version only during the release.
diff --git a/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/.hash b/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/.hash
new file mode 100644
index 0000000..a556cca
--- /dev/null
+++ b/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/.hash
@@ -0,0 +1 @@
+0067842a41ff513323a7f23d835aace691d1509d
diff --git a/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/CallbackConfig.aidl b/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/CallbackConfig.aidl
new file mode 100644
index 0000000..7351883
--- /dev/null
+++ b/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/CallbackConfig.aidl
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.automotive.telemetry;
+@VintfStability
+parcelable CallbackConfig {
+  int[] carDataIds;
+}
diff --git a/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/CarData.aidl b/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/CarData.aidl
new file mode 100644
index 0000000..4e400b1
--- /dev/null
+++ b/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/CarData.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.automotive.telemetry;
+@VintfStability
+parcelable CarData {
+  int id;
+  byte[] content;
+}
diff --git a/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/ICarTelemetry.aidl b/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/ICarTelemetry.aidl
new file mode 100644
index 0000000..531c955
--- /dev/null
+++ b/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/ICarTelemetry.aidl
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.automotive.telemetry;
+@VintfStability
+interface ICarTelemetry {
+  void write(in android.frameworks.automotive.telemetry.CarData[] dataList);
+  void addCallback(in android.frameworks.automotive.telemetry.CallbackConfig config, in android.frameworks.automotive.telemetry.ICarTelemetryCallback callback);
+  void removeCallback(in android.frameworks.automotive.telemetry.ICarTelemetryCallback callback);
+}
diff --git a/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/ICarTelemetryCallback.aidl b/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/ICarTelemetryCallback.aidl
new file mode 100644
index 0000000..2241e29
--- /dev/null
+++ b/automotive/telemetry/aidl/aidl_api/android.frameworks.automotive.telemetry/2/android/frameworks/automotive/telemetry/ICarTelemetryCallback.aidl
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.automotive.telemetry;
+@VintfStability
+interface ICarTelemetryCallback {
+  void onChange(in int[] ids);
+}
diff --git a/cameraservice/common/aidl/Android.bp b/cameraservice/common/aidl/Android.bp
index 156e446..9916d3c 100644
--- a/cameraservice/common/aidl/Android.bp
+++ b/cameraservice/common/aidl/Android.bp
@@ -7,7 +7,7 @@
     vendor_available: true,
     srcs: ["android/frameworks/cameraservice/common/*.aidl"],
     stability: "vintf",
-    frozen: false,
+    frozen: true,
     backend: {
         cpp: {
             enabled: false,
@@ -22,4 +22,11 @@
         },
     },
     vndk_use_version: "1",
+    versions_with_info: [
+        {
+            version: "1",
+            imports: [],
+        },
+    ],
+
 }
diff --git a/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/.hash b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/.hash
new file mode 100644
index 0000000..b6195c4
--- /dev/null
+++ b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/.hash
@@ -0,0 +1 @@
+4866f510363316b02a311bd8fa256f1fd073bc1d
diff --git a/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/CameraMetadataType.aidl b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/CameraMetadataType.aidl
new file mode 100644
index 0000000..bce3c87
--- /dev/null
+++ b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/CameraMetadataType.aidl
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.common;
+@Backing(type="int") @VintfStability
+enum CameraMetadataType {
+  BYTE = 0,
+  INT32 = 1,
+  FLOAT = 2,
+  INT64 = 3,
+  DOUBLE = 4,
+  RATIONAL = 5,
+}
diff --git a/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/ProviderIdAndVendorTagSections.aidl b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/ProviderIdAndVendorTagSections.aidl
new file mode 100644
index 0000000..0c5d73c
--- /dev/null
+++ b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/ProviderIdAndVendorTagSections.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.common;
+@VintfStability
+parcelable ProviderIdAndVendorTagSections {
+  long providerId;
+  android.frameworks.cameraservice.common.VendorTagSection[] vendorTagSections;
+}
diff --git a/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/Status.aidl b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/Status.aidl
new file mode 100644
index 0000000..4bef589
--- /dev/null
+++ b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/Status.aidl
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.common;
+@Backing(type="int") @VintfStability
+enum Status {
+  NO_ERROR = 0,
+  PERMISSION_DENIED = 1,
+  ALREADY_EXISTS = 2,
+  ILLEGAL_ARGUMENT = 3,
+  DISCONNECTED = 4,
+  TIMED_OUT = 5,
+  DISABLED = 6,
+  CAMERA_IN_USE = 7,
+  MAX_CAMERAS_IN_USE = 8,
+  DEPRECATED_HAL = 9,
+  INVALID_OPERATION = 10,
+  UNKNOWN_ERROR = 11,
+}
diff --git a/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/TagBoundaryId.aidl b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/TagBoundaryId.aidl
new file mode 100644
index 0000000..ee6ffa0
--- /dev/null
+++ b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/TagBoundaryId.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.common;
+@Backing(type="long") @VintfStability
+enum TagBoundaryId {
+  AOSP = 0x0,
+  VENDOR = 0x80000000L,
+}
diff --git a/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/VendorTag.aidl b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/VendorTag.aidl
new file mode 100644
index 0000000..22b9d5e
--- /dev/null
+++ b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/VendorTag.aidl
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.common;
+@VintfStability
+parcelable VendorTag {
+  long tagId;
+  String tagName;
+  android.frameworks.cameraservice.common.CameraMetadataType tagType;
+}
diff --git a/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/VendorTagSection.aidl b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/VendorTagSection.aidl
new file mode 100644
index 0000000..8b741f9
--- /dev/null
+++ b/cameraservice/common/aidl/aidl_api/android.frameworks.cameraservice.common/1/android/frameworks/cameraservice/common/VendorTagSection.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.common;
+@VintfStability
+parcelable VendorTagSection {
+  String sectionName;
+  android.frameworks.cameraservice.common.VendorTag[] tags;
+}
diff --git a/cameraservice/device/aidl/Android.bp b/cameraservice/device/aidl/Android.bp
index 59dbf65..f22ad83 100644
--- a/cameraservice/device/aidl/Android.bp
+++ b/cameraservice/device/aidl/Android.bp
@@ -12,7 +12,7 @@
         "android.hardware.common.fmq-V1",
         "android.hardware.common-V2",
     ],
-    frozen: false,
+    frozen: true,
     backend: {
         cpp: {
             enabled: false,
@@ -27,4 +27,15 @@
         },
     },
     vndk_use_version: "1",
+    versions_with_info: [
+        {
+            version: "1",
+            imports: [
+                "android.frameworks.cameraservice.common-V1",
+                "android.hardware.common.fmq-V1",
+                "android.hardware.common-V2",
+            ],
+        },
+    ],
+
 }
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/.hash b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/.hash
new file mode 100644
index 0000000..7bbd225
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/.hash
@@ -0,0 +1 @@
+acf6819da94dc452c4fa1e831c96f324a2be805a
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CameraMetadata.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CameraMetadata.aidl
new file mode 100644
index 0000000..08a1310
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CameraMetadata.aidl
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+parcelable CameraMetadata {
+  byte[] metadata;
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CaptureMetadataInfo.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CaptureMetadataInfo.aidl
new file mode 100644
index 0000000..c1d1761
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CaptureMetadataInfo.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+union CaptureMetadataInfo {
+  long fmqMetadataSize;
+  android.frameworks.cameraservice.device.CameraMetadata metadata;
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CaptureRequest.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CaptureRequest.aidl
new file mode 100644
index 0000000..a19dd10
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CaptureRequest.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+parcelable CaptureRequest {
+  android.frameworks.cameraservice.device.PhysicalCameraSettings[] physicalCameraSettings;
+  android.frameworks.cameraservice.device.StreamAndWindowId[] streamAndWindowIds;
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CaptureResultExtras.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CaptureResultExtras.aidl
new file mode 100644
index 0000000..2bd2253
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/CaptureResultExtras.aidl
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+parcelable CaptureResultExtras {
+  int requestId;
+  int burstId;
+  long frameNumber;
+  int partialResultCount;
+  int errorStreamId;
+  String errorPhysicalCameraId;
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/ErrorCode.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/ErrorCode.aidl
new file mode 100644
index 0000000..9c361f0
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/ErrorCode.aidl
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@Backing(type="int") @VintfStability
+enum ErrorCode {
+  CAMERA_INVALID_ERROR = (-1) /* -1 */,
+  CAMERA_DISCONNECTED = 0,
+  CAMERA_DEVICE = 1,
+  CAMERA_SERVICE = 2,
+  CAMERA_REQUEST = 3,
+  CAMERA_RESULT = 4,
+  CAMERA_BUFFER = 5,
+  CAMERA_DISABLED = 6,
+  CAMERA_UNKNOWN_ERROR = 7,
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/ICameraDeviceCallback.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/ICameraDeviceCallback.aidl
new file mode 100644
index 0000000..093ff80
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/ICameraDeviceCallback.aidl
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+interface ICameraDeviceCallback {
+  oneway void onCaptureStarted(in android.frameworks.cameraservice.device.CaptureResultExtras resultExtras, in long timestamp);
+  oneway void onDeviceError(in android.frameworks.cameraservice.device.ErrorCode errorCode, in android.frameworks.cameraservice.device.CaptureResultExtras resultExtras);
+  oneway void onDeviceIdle();
+  oneway void onPrepared(in int streamId);
+  oneway void onRepeatingRequestError(in long lastFrameNumber, in int repeatingRequestId);
+  oneway void onResultReceived(in android.frameworks.cameraservice.device.CaptureMetadataInfo result, in android.frameworks.cameraservice.device.CaptureResultExtras resultExtras, in android.frameworks.cameraservice.device.PhysicalCaptureResultInfo[] physicalCaptureResultInfos);
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/ICameraDeviceUser.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/ICameraDeviceUser.aidl
new file mode 100644
index 0000000..1b9b2c2
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/ICameraDeviceUser.aidl
@@ -0,0 +1,52 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+interface ICameraDeviceUser {
+  void beginConfigure();
+  long cancelRepeatingRequest();
+  android.frameworks.cameraservice.device.CameraMetadata createDefaultRequest(in android.frameworks.cameraservice.device.TemplateId templateId);
+  int createStream(in android.frameworks.cameraservice.device.OutputConfiguration outputConfiguration);
+  void deleteStream(in int streamId);
+  void disconnect();
+  void endConfigure(in android.frameworks.cameraservice.device.StreamConfigurationMode operatingMode, in android.frameworks.cameraservice.device.CameraMetadata sessionParams, in long startTimeNs);
+  long flush();
+  android.hardware.common.fmq.MQDescriptor<byte,android.hardware.common.fmq.SynchronizedReadWrite> getCaptureRequestMetadataQueue();
+  android.hardware.common.fmq.MQDescriptor<byte,android.hardware.common.fmq.SynchronizedReadWrite> getCaptureResultMetadataQueue();
+  boolean isSessionConfigurationSupported(in android.frameworks.cameraservice.device.SessionConfiguration sessionConfiguration);
+  void prepare(in int streamId);
+  android.frameworks.cameraservice.device.SubmitInfo submitRequestList(in android.frameworks.cameraservice.device.CaptureRequest[] requestList, in boolean isRepeating);
+  void updateOutputConfiguration(in int streamId, in android.frameworks.cameraservice.device.OutputConfiguration outputConfiguration);
+  void waitUntilIdle();
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/OutputConfiguration.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/OutputConfiguration.aidl
new file mode 100644
index 0000000..8943815
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/OutputConfiguration.aidl
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+parcelable OutputConfiguration {
+  android.hardware.common.NativeHandle[] windowHandles;
+  android.frameworks.cameraservice.device.OutputConfiguration.Rotation rotation;
+  int windowGroupId;
+  String physicalCameraId;
+  int width;
+  int height;
+  boolean isDeferred;
+  @Backing(type="int") @VintfStability
+  enum Rotation {
+    R0 = 0,
+    R90 = 1,
+    R180 = 2,
+    R270 = 3,
+  }
+  @Backing(type="int") @VintfStability
+  enum WindowGroupId {
+    NONE = (-1) /* -1 */,
+  }
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/PhysicalCameraSettings.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/PhysicalCameraSettings.aidl
new file mode 100644
index 0000000..622b3a1
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/PhysicalCameraSettings.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+parcelable PhysicalCameraSettings {
+  String id;
+  android.frameworks.cameraservice.device.CaptureMetadataInfo settings;
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/PhysicalCaptureResultInfo.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/PhysicalCaptureResultInfo.aidl
new file mode 100644
index 0000000..7d1b1a9
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/PhysicalCaptureResultInfo.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+parcelable PhysicalCaptureResultInfo {
+  String physicalCameraId;
+  android.frameworks.cameraservice.device.CaptureMetadataInfo physicalCameraMetadata;
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/SessionConfiguration.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/SessionConfiguration.aidl
new file mode 100644
index 0000000..f6f3773
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/SessionConfiguration.aidl
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+parcelable SessionConfiguration {
+  android.frameworks.cameraservice.device.OutputConfiguration[] outputStreams;
+  int inputWidth;
+  int inputHeight;
+  int inputFormat;
+  android.frameworks.cameraservice.device.StreamConfigurationMode operationMode;
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/StreamAndWindowId.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/StreamAndWindowId.aidl
new file mode 100644
index 0000000..23da63a
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/StreamAndWindowId.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+parcelable StreamAndWindowId {
+  int streamId;
+  int windowId;
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/StreamConfigurationMode.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/StreamConfigurationMode.aidl
new file mode 100644
index 0000000..ff888f5
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/StreamConfigurationMode.aidl
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@Backing(type="int") @VintfStability
+enum StreamConfigurationMode {
+  NORMAL_MODE = 0,
+  CONSTRAINED_HIGH_SPEED_MODE = 1,
+  VENDOR_MODE_0 = 0x8000,
+  VENDOR_MODE_1,
+  VENDOR_MODE_2,
+  VENDOR_MODE_3,
+  VENDOR_MODE_4,
+  VENDOR_MODE_5,
+  VENDOR_MODE_6,
+  VENDOR_MODE_7,
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/SubmitInfo.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/SubmitInfo.aidl
new file mode 100644
index 0000000..5154ed3
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/SubmitInfo.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@VintfStability
+parcelable SubmitInfo {
+  int requestId;
+  long lastFrameNumber;
+}
diff --git a/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/TemplateId.aidl b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/TemplateId.aidl
new file mode 100644
index 0000000..89c5d68
--- /dev/null
+++ b/cameraservice/device/aidl/aidl_api/android.frameworks.cameraservice.device/1/android/frameworks/cameraservice/device/TemplateId.aidl
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.device;
+@Backing(type="int") @VintfStability
+enum TemplateId {
+  PREVIEW = 1,
+  STILL_CAPTURE = 2,
+  RECORD = 3,
+  VIDEO_SNAPSHOT = 4,
+  ZERO_SHUTTER_LAG = 5,
+  MANUAL = 6,
+}
diff --git a/cameraservice/service/aidl/Android.bp b/cameraservice/service/aidl/Android.bp
index 21cb056..7b9cb3c 100644
--- a/cameraservice/service/aidl/Android.bp
+++ b/cameraservice/service/aidl/Android.bp
@@ -11,7 +11,7 @@
         "android.frameworks.cameraservice.common-V1",
         "android.frameworks.cameraservice.device-V1",
     ],
-    frozen: false,
+    frozen: true,
     backend: {
         cpp: {
             enabled: false,
@@ -26,4 +26,14 @@
         },
     },
     vndk_use_version: "1",
+    versions_with_info: [
+        {
+            version: "1",
+            imports: [
+                "android.frameworks.cameraservice.common-V1",
+                "android.frameworks.cameraservice.device-V1",
+            ],
+        },
+    ],
+
 }
diff --git a/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/.hash b/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/.hash
new file mode 100644
index 0000000..9053457
--- /dev/null
+++ b/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/.hash
@@ -0,0 +1 @@
+9af5caea9ed28139c7005ead2e2c851351a4caa1
diff --git a/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/CameraDeviceStatus.aidl b/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/CameraDeviceStatus.aidl
new file mode 100644
index 0000000..a809751
--- /dev/null
+++ b/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/CameraDeviceStatus.aidl
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.service;
+@Backing(type="int") @VintfStability
+enum CameraDeviceStatus {
+  STATUS_NOT_AVAILABLE = (-2) /* -2 */,
+  STATUS_UNKNOWN = (-1) /* -1 */,
+  STATUS_NOT_PRESENT = 0,
+  STATUS_PRESENT = 1,
+  STATUS_ENUMERATING = 2,
+}
diff --git a/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/CameraStatusAndId.aidl b/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/CameraStatusAndId.aidl
new file mode 100644
index 0000000..4a92a45
--- /dev/null
+++ b/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/CameraStatusAndId.aidl
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.service;
+@VintfStability
+parcelable CameraStatusAndId {
+  android.frameworks.cameraservice.service.CameraDeviceStatus deviceStatus;
+  String cameraId;
+  String[] unavailPhysicalCameraIds;
+}
diff --git a/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/ICameraService.aidl b/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/ICameraService.aidl
new file mode 100644
index 0000000..9bca528
--- /dev/null
+++ b/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/ICameraService.aidl
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.service;
+@VintfStability
+interface ICameraService {
+  android.frameworks.cameraservice.service.CameraStatusAndId[] addListener(in android.frameworks.cameraservice.service.ICameraServiceListener listener);
+  android.frameworks.cameraservice.device.ICameraDeviceUser connectDevice(in android.frameworks.cameraservice.device.ICameraDeviceCallback callback, in String cameraId);
+  android.frameworks.cameraservice.device.CameraMetadata getCameraCharacteristics(in String cameraId);
+  android.frameworks.cameraservice.common.ProviderIdAndVendorTagSections[] getCameraVendorTagSections();
+  void removeListener(in android.frameworks.cameraservice.service.ICameraServiceListener listener);
+}
diff --git a/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/ICameraServiceListener.aidl b/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/ICameraServiceListener.aidl
new file mode 100644
index 0000000..fcce780
--- /dev/null
+++ b/cameraservice/service/aidl/aidl_api/android.frameworks.cameraservice.service/1/android/frameworks/cameraservice/service/ICameraServiceListener.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.cameraservice.service;
+@VintfStability
+interface ICameraServiceListener {
+  oneway void onPhysicalCameraStatusChanged(in android.frameworks.cameraservice.service.CameraDeviceStatus status, in String cameraId, in String physicalCameraId);
+  oneway void onStatusChanged(in android.frameworks.cameraservice.service.CameraDeviceStatus status, in String cameraId);
+}
diff --git a/sensorservice/aidl/Android.bp b/sensorservice/aidl/Android.bp
index 32153b0..35eea3e 100644
--- a/sensorservice/aidl/Android.bp
+++ b/sensorservice/aidl/Android.bp
@@ -20,4 +20,15 @@
             enabled: false,
         },
     },
+    versions_with_info: [
+        {
+            version: "1",
+            imports: [
+                "android.hardware.sensors-V2",
+                "android.hardware.common-V2",
+            ],
+        },
+    ],
+    frozen: true,
+
 }
diff --git a/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/.hash b/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/.hash
new file mode 100644
index 0000000..1b15961
--- /dev/null
+++ b/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/.hash
@@ -0,0 +1 @@
+514f08f7a595501066b94e5de878d240b4d49456
diff --git a/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/IDirectReportChannel.aidl b/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/IDirectReportChannel.aidl
new file mode 100644
index 0000000..09c491a
--- /dev/null
+++ b/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/IDirectReportChannel.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.sensorservice;
+@VintfStability
+interface IDirectReportChannel {
+  int configure(in int sensorHandle, in android.hardware.sensors.ISensors.RateLevel rate);
+}
diff --git a/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/IEventQueue.aidl b/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/IEventQueue.aidl
new file mode 100644
index 0000000..118a1c7
--- /dev/null
+++ b/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/IEventQueue.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.sensorservice;
+@VintfStability
+interface IEventQueue {
+  void disableSensor(in int sensorHandle);
+  void enableSensor(in int sensorHandle, in int samplingPeriodUs, in long maxBatchReportLatencyUs);
+}
diff --git a/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/IEventQueueCallback.aidl b/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/IEventQueueCallback.aidl
new file mode 100644
index 0000000..2aaf91a
--- /dev/null
+++ b/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/IEventQueueCallback.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.sensorservice;
+@VintfStability
+interface IEventQueueCallback {
+  oneway void onEvent(in android.hardware.sensors.Event event);
+}
diff --git a/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/ISensorManager.aidl b/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/ISensorManager.aidl
new file mode 100644
index 0000000..85cae01
--- /dev/null
+++ b/sensorservice/aidl/aidl_api/android.frameworks.sensorservice/1/android/frameworks/sensorservice/ISensorManager.aidl
@@ -0,0 +1,34 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.sensorservice;
+@VintfStability
+interface ISensorManager {
+  android.frameworks.sensorservice.IDirectReportChannel createAshmemDirectChannel(in android.hardware.common.Ashmem mem, in long size);
+  android.frameworks.sensorservice.IEventQueue createEventQueue(in android.frameworks.sensorservice.IEventQueueCallback callback);
+  android.frameworks.sensorservice.IDirectReportChannel createGrallocDirectChannel(in ParcelFileDescriptor buffer, in long size);
+  android.hardware.sensors.SensorInfo getDefaultSensor(in android.hardware.sensors.SensorType type);
+  android.hardware.sensors.SensorInfo[] getSensorList();
+  const int RESULT_NOT_EXIST = 1;
+  const int RESULT_NO_MEMORY = 2;
+  const int RESULT_NO_INIT = 3;
+  const int RESULT_PERMISSION_DENIED = 4;
+  const int RESULT_BAD_VALUE = 5;
+  const int RESULT_INVALID_OPERATION = 6;
+  const int RESULT_UNKNOWN_ERROR = 7;
+}
diff --git a/stats/aidl/Android.bp b/stats/aidl/Android.bp
index fceab9e..26302b7 100644
--- a/stats/aidl/Android.bp
+++ b/stats/aidl/Android.bp
@@ -39,6 +39,12 @@
             version: "1",
             imports: [],
         },
+        {
+            version: "2",
+            imports: [],
+        },
+
     ],
     host_supported: true,
+    frozen: true,
 }
diff --git a/stats/aidl/aidl_api/android.frameworks.stats/2/.hash b/stats/aidl/aidl_api/android.frameworks.stats/2/.hash
new file mode 100644
index 0000000..55fa1ff
--- /dev/null
+++ b/stats/aidl/aidl_api/android.frameworks.stats/2/.hash
@@ -0,0 +1 @@
+7afdd459ab55ba70fdae6987d3296514822c03a4
diff --git a/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/Annotation.aidl b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/Annotation.aidl
new file mode 100644
index 0000000..825db0d
--- /dev/null
+++ b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/Annotation.aidl
@@ -0,0 +1,39 @@
+//
+// Copyright (C) 2023 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.
+//
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.stats;
+@VintfStability
+parcelable Annotation {
+  android.frameworks.stats.AnnotationId annotationId = android.frameworks.stats.AnnotationId.UNKNOWN;
+  android.frameworks.stats.AnnotationValue value;
+}
diff --git a/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/AnnotationId.aidl b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/AnnotationId.aidl
new file mode 100644
index 0000000..63e6efa
--- /dev/null
+++ b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/AnnotationId.aidl
@@ -0,0 +1,56 @@
+//
+// Copyright (C) 2023 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.
+//
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.stats;
+@Backing(type="int") @VintfStability
+enum AnnotationId {
+  UNKNOWN = 0,
+  IS_UID = 1,
+  TRUNCATE_TIMESTAMP = 2,
+  PRIMARY_FIELD = 3,
+  EXCLUSIVE_STATE = 4,
+  PRIMARY_FIELD_FIRST_UID = 5,
+  DEFAULT_STATE = 6,
+  TRIGGER_STATE_RESET = 7,
+  STATE_NESTED = 8,
+  RESTRICTION_CATEGORY = 9,
+  FIELD_RESTRICTION_PERIPHERAL_DEVICE_INFO = 10,
+  FIELD_RESTRICTION_APP_USAGE = 11,
+  FIELD_RESTRICTION_APP_ACTIVITY = 12,
+  FIELD_RESTRICTION_HEALTH_CONNECT = 13,
+  FIELD_RESTRICTION_ACCESSIBILITY = 14,
+  FIELD_RESTRICTION_SYSTEM_SEARCH = 15,
+  FIELD_RESTRICTION_USER_ENGAGEMENT = 16,
+  FIELD_RESTRICTION_AMBIENT_SENSING = 17,
+  FIELD_RESTRICTION_DEMOGRAPHIC_CLASSIFICATION = 18,
+}
diff --git a/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/AnnotationSet.aidl b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/AnnotationSet.aidl
new file mode 100644
index 0000000..4d78469
--- /dev/null
+++ b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/AnnotationSet.aidl
@@ -0,0 +1,39 @@
+//
+// Copyright (C) 2023 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.
+//
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.stats;
+@VintfStability
+parcelable AnnotationSet {
+  int valueIndex;
+  android.frameworks.stats.Annotation[] annotations;
+}
diff --git a/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/AnnotationValue.aidl b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/AnnotationValue.aidl
new file mode 100644
index 0000000..316ee19
--- /dev/null
+++ b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/AnnotationValue.aidl
@@ -0,0 +1,39 @@
+//
+// Copyright (C) 2023 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.
+//
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.stats;
+@VintfStability
+union AnnotationValue {
+  int intValue;
+  boolean boolValue;
+}
diff --git a/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/IStats.aidl b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/IStats.aidl
new file mode 100644
index 0000000..5be1d2f
--- /dev/null
+++ b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/IStats.aidl
@@ -0,0 +1,38 @@
+//
+// 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.
+//
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.stats;
+@VintfStability
+interface IStats {
+  oneway void reportVendorAtom(in android.frameworks.stats.VendorAtom vendorAtom);
+}
diff --git a/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/RestrictionCategory.aidl b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/RestrictionCategory.aidl
new file mode 100644
index 0000000..e94e59c
--- /dev/null
+++ b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/RestrictionCategory.aidl
@@ -0,0 +1,42 @@
+//
+// Copyright (C) 2023 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.
+//
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.stats;
+@Backing(type="int") @VintfStability
+enum RestrictionCategory {
+  UNKNOWN = 0,
+  DIAGNOSTIC = 1,
+  SYSTEM_INTELLIGENCE = 2,
+  AUTHENTICATION = 3,
+  FRAUD_AND_ABUSE = 4,
+}
diff --git a/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/VendorAtom.aidl b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/VendorAtom.aidl
new file mode 100644
index 0000000..3174d5f
--- /dev/null
+++ b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/VendorAtom.aidl
@@ -0,0 +1,42 @@
+//
+// 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.
+//
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.stats;
+@VintfStability
+parcelable VendorAtom {
+  String reverseDomainName;
+  int atomId;
+  android.frameworks.stats.VendorAtomValue[] values;
+  @nullable android.frameworks.stats.AnnotationSet[] valuesAnnotations;
+  @nullable android.frameworks.stats.Annotation[] atomAnnotations;
+}
diff --git a/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/VendorAtomValue.aidl b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/VendorAtomValue.aidl
new file mode 100644
index 0000000..0c9c39c
--- /dev/null
+++ b/stats/aidl/aidl_api/android.frameworks.stats/2/android/frameworks/stats/VendorAtomValue.aidl
@@ -0,0 +1,48 @@
+//
+// 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.
+//
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.frameworks.stats;
+@VintfStability
+union VendorAtomValue {
+  int intValue;
+  long longValue;
+  float floatValue;
+  String stringValue;
+  boolean boolValue;
+  @nullable int[] repeatedIntValue;
+  @nullable long[] repeatedLongValue;
+  @nullable float[] repeatedFloatValue;
+  @nullable String[] repeatedStringValue;
+  @nullable boolean[] repeatedBoolValue;
+  @nullable byte[] byteArrayValue;
+}