diff --git a/arm/Android.bp b/arm/Android.bp
index 1f0f6d6d6096275e98acf2dfc1684f02035d7b6e..85c0835ecc924ea6875e947fda71e2ff77ea1031 100644
--- a/arm/Android.bp
+++ b/arm/Android.bp
@@ -3307,7 +3307,7 @@ vndk_prebuilt_shared {
         enabled: true,
         support_system_process: true,
     },
-    min_sdk_version: "29",
+    min_sdk_version: "30",
     licenses: ["vndk-v34-libutils-license"],
     arch: {
         arm: {
diff --git a/arm/arch-arm-armv7-a-neon/shared/vndk-core/libgui.so b/arm/arch-arm-armv7-a-neon/shared/vndk-core/libgui.so
index f93b0b321ee7512b598bd3c63f3fc8dca99ecbf0..597948913798ededb2db4f98995b7b3afc4cf421 100755
Binary files a/arm/arch-arm-armv7-a-neon/shared/vndk-core/libgui.so and b/arm/arch-arm-armv7-a-neon/shared/vndk-core/libgui.so differ
diff --git a/arm/arch-arm-armv7-a-neon/shared/vndk-core/libziparchive.so b/arm/arch-arm-armv7-a-neon/shared/vndk-core/libziparchive.so
index 013f3387e6479c7ab241ad9afd8eefaffda2fd97..b4365aab82954bffe628c444fa669527fa7664e0 100755
Binary files a/arm/arch-arm-armv7-a-neon/shared/vndk-core/libziparchive.so and b/arm/arch-arm-armv7-a-neon/shared/vndk-core/libziparchive.so differ
diff --git a/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libprocessgroup.so b/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libprocessgroup.so
index 95719cac1bc3c9a4066bebcb44d68a726f742f68..b485fe1a11cc970200f08d50ae261074d84e63db 100755
Binary files a/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libprocessgroup.so and b/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libprocessgroup.so differ
diff --git a/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libutils.so b/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libutils.so
index 18a22c938d00a5cba6090b582ec9c345020537ab..1f4b95166413fff333c4ae47e2e842c21dedd300 100755
Binary files a/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libutils.so and b/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libutils.so differ
diff --git a/arm/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h b/arm/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
index 52d7d3d36d74724f9f57a514256ecb32271ac060..163408db2bdc7ba373dc116b2f62f358c50d28a2 100644
--- a/arm/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
+++ b/arm/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
@@ -572,6 +572,7 @@ private:
     sp<ALooper> mCryptoLooper;
 
     bool mIsSurfaceToDisplay;
+    bool mAreRenderMetricsEnabled;
     PlaybackDurationAccumulator mPlaybackDurationAccumulator;
     VideoRenderQualityTracker mVideoRenderQualityTracker;
 
diff --git a/arm/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h b/arm/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
index 7c150d53d97a01c4e97e669aea7c82adedf866e9..3ff6735926a45746643424b6ae76fe5736018774 100644
--- a/arm/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
+++ b/arm/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
@@ -26,6 +26,7 @@
 #include <android/gui/IScreenCaptureListener.h>
 #include <android/gui/ITunnelModeEnabledListener.h>
 #include <android/gui/IWindowInfosListener.h>
+#include <android/gui/IWindowInfosPublisher.h>
 #include <binder/IBinder.h>
 #include <binder/IInterface.h>
 #include <gui/ITransactionCompletedListener.h>
diff --git a/arm/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h b/arm/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
index 38cb1089129d78d60a62ebeb681324766331b59b..684e21ad96db332caa87cea064485ec7963b84a8 100644
--- a/arm/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
+++ b/arm/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
@@ -18,7 +18,7 @@
 
 #include <android/gui/BnWindowInfosListener.h>
 #include <android/gui/ISurfaceComposer.h>
-#include <android/gui/IWindowInfosReportedListener.h>
+#include <android/gui/IWindowInfosPublisher.h>
 #include <binder/IBinder.h>
 #include <gui/SpHash.h>
 #include <gui/WindowInfosListener.h>
@@ -30,8 +30,7 @@ namespace android {
 class WindowInfosListenerReporter : public gui::BnWindowInfosListener {
 public:
     static sp<WindowInfosListenerReporter> getInstance();
-    binder::Status onWindowInfosChanged(const gui::WindowInfosUpdate& update,
-                                        const sp<gui::IWindowInfosReportedListener>&) override;
+    binder::Status onWindowInfosChanged(const gui::WindowInfosUpdate& update) override;
     status_t addWindowInfosListener(
             const sp<gui::WindowInfosListener>& windowInfosListener,
             const sp<gui::ISurfaceComposer>&,
@@ -47,5 +46,8 @@ private:
 
     std::vector<gui::WindowInfo> mLastWindowInfos GUARDED_BY(mListenersMutex);
     std::vector<gui::DisplayInfo> mLastDisplayInfos GUARDED_BY(mListenersMutex);
+
+    sp<gui::IWindowInfosPublisher> mWindowInfosPublisher;
+    int64_t mListenerId;
 };
 } // namespace android
diff --git a/arm/include/frameworks/native/opengl/include/EGL/eglext.h b/arm/include/frameworks/native/opengl/include/EGL/eglext.h
index 32c21f61b937d8359b4a261ff2b6caf3b84fe926..c787fc9717fb11475655c587b01630040af43eb9 100644
--- a/arm/include/frameworks/native/opengl/include/EGL/eglext.h
+++ b/arm/include/frameworks/native/opengl/include/EGL/eglext.h
@@ -699,7 +699,7 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
 
 #ifndef EGL_EXT_gl_colorspace_bt2020_hlg
 #define EGL_EXT_gl_colorspace_bt2020_hlg 1
-#define EGL_GL_COLORSPACE_BT2020_HLG_EXT  0x333E
+#define EGL_GL_COLORSPACE_BT2020_HLG_EXT  0x3540
 #endif /* EGL_EXT_gl_colorspace_bt2020_hlg */
 
 #ifndef EGL_EXT_gl_colorspace_bt2020_linear
diff --git a/arm/include/generated-headers/bionic/libc/libc/android_vendor.34_arm_armv7-a-neon_shared/gen/include/sys/_system_properties.h b/arm/include/generated-headers/bionic/libc/libc/android_vendor.34_arm_armv7-a-neon_shared/gen/include/sys/_system_properties.h
index c7a30ebbdc4521093168cedd66c08ec468ce9029..744a45b71f5ef9cca938687c9cfb511eb85820ad 100644
--- a/arm/include/generated-headers/bionic/libc/libc/android_vendor.34_arm_armv7-a-neon_shared/gen/include/sys/_system_properties.h
+++ b/arm/include/generated-headers/bionic/libc/libc/android_vendor.34_arm_armv7-a-neon_shared/gen/include/sys/_system_properties.h
@@ -41,7 +41,6 @@
 __BEGIN_DECLS
 
 #define PROP_SERVICE_NAME "property_service"
-#define PROP_SERVICE_FOR_SYSTEM_NAME "property_service_for_system"
 #define PROP_FILENAME "/dev/__properties__"
 
 #define PROP_MSG_SETPROP 1
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BnSurfaceComposer.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BpSurfaceComposer.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/ISurfaceComposer.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/WindowInfosListenerInfo.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
index 1f53b0d6495686e1c15adde33c5961e1979b04e9..97a98eec12857da708580970920671abf24881c4 100644
--- a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
@@ -3,7 +3,6 @@
 #include <binder/IInterface.h>
 #include <android/gui/IWindowInfosListener.h>
 #include <android/gui/BnWindowInfosListener.h>
-#include <android/gui/BnWindowInfosReportedListener.h>
 #include <binder/Delegate.h>
 
 
@@ -21,12 +20,8 @@ public:
   explicit IWindowInfosListenerDelegator(const ::android::sp<IWindowInfosListener> &impl) : _aidl_delegate(impl) {}
 
   ::android::sp<IWindowInfosListener> getImpl() { return _aidl_delegate; }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override {
-    ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator> _windowInfosReportedListener;
-    if (windowInfosReportedListener) {
-      _windowInfosReportedListener = ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator>::cast(delegate(windowInfosReportedListener));
-    }
-    return _aidl_delegate->onWindowInfosChanged(update, _windowInfosReportedListener);
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override {
+    return _aidl_delegate->onWindowInfosChanged(update);
   }
 private:
   ::android::sp<IWindowInfosListener> _aidl_delegate;
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..9ed08f2ac0e461165fadc37157bbec54945fcdba
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include <binder/IInterface.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <android/gui/BnWindowInfosPublisher.h>
+#include <binder/Delegate.h>
+
+
+namespace android {
+namespace gui {
+class BnWindowInfosPublisher : public ::android::BnInterface<IWindowInfosPublisher> {
+public:
+  static constexpr uint32_t TRANSACTION_ackWindowInfosReceived = ::android::IBinder::FIRST_CALL_TRANSACTION + 0;
+  explicit BnWindowInfosPublisher();
+  ::android::status_t onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) override;
+};  // class BnWindowInfosPublisher
+
+class IWindowInfosPublisherDelegator : public BnWindowInfosPublisher {
+public:
+  explicit IWindowInfosPublisherDelegator(const ::android::sp<IWindowInfosPublisher> &impl) : _aidl_delegate(impl) {}
+
+  ::android::sp<IWindowInfosPublisher> getImpl() { return _aidl_delegate; }
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override {
+    return _aidl_delegate->ackWindowInfosReceived(vsyncId, listenerId);
+  }
+private:
+  ::android::sp<IWindowInfosPublisher> _aidl_delegate;
+};  // class IWindowInfosPublisherDelegator
+}  // namespace gui
+}  // namespace android
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
index 8126f8bda38be00041db95e9fa64e4c6e3bb4565..67d24f53925e595b49d4f6dca9232a2df78487d7 100644
--- a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
@@ -11,7 +11,7 @@ class BpWindowInfosListener : public ::android::BpInterface<IWindowInfosListener
 public:
   explicit BpWindowInfosListener(const ::android::sp<::android::IBinder>& _aidl_impl);
   virtual ~BpWindowInfosListener() = default;
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override;
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override;
 };  // class BpWindowInfosListener
 }  // namespace gui
 }  // namespace android
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..a85dd289dff8c8e5adad202631d419d4da4c3d2b
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <utils/Errors.h>
+#include <android/gui/IWindowInfosPublisher.h>
+
+namespace android {
+namespace gui {
+class BpWindowInfosPublisher : public ::android::BpInterface<IWindowInfosPublisher> {
+public:
+  explicit BpWindowInfosPublisher(const ::android::sp<::android::IBinder>& _aidl_impl);
+  virtual ~BpWindowInfosPublisher() = default;
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override;
+};  // class BpWindowInfosPublisher
+}  // namespace gui
+}  // namespace android
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
index 5a163a88a2bd8f391bafb13a34cc6a70ab5c9559..e28ca6ed516518459c68f0545579e8dfb6510b34 100644
--- a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
@@ -1,17 +1,12 @@
 #pragma once
 
-#include <android/gui/IWindowInfosReportedListener.h>
 #include <binder/IBinder.h>
 #include <binder/IInterface.h>
 #include <binder/Status.h>
 #include <binder/Trace.h>
 #include <gui/WindowInfosUpdate.h>
-#include <optional>
 #include <utils/StrongPointer.h>
 
-namespace android::gui {
-class IWindowInfosReportedListener;
-}  // namespace android::gui
 namespace android {
 namespace gui {
 class IWindowInfosListenerDelegator;
@@ -20,7 +15,7 @@ class IWindowInfosListener : public ::android::IInterface {
 public:
   typedef IWindowInfosListenerDelegator DefaultDelegator;
   DECLARE_META_INTERFACE(WindowInfosListener)
-  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) = 0;
+  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) = 0;
 };  // class IWindowInfosListener
 
 class IWindowInfosListenerDefault : public IWindowInfosListener {
@@ -28,7 +23,7 @@ public:
   ::android::IBinder* onAsBinder() override {
     return nullptr;
   }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/, const ::android::sp<::android::gui::IWindowInfosReportedListener>& /*windowInfosReportedListener*/) override {
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
 };  // class IWindowInfosListenerDefault
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..eabafa25063cdb58223ee1b3ea3aefb56db53257
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv7-a-neon_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <binder/Status.h>
+#include <binder/Trace.h>
+#include <cstdint>
+#include <utils/StrongPointer.h>
+
+namespace android {
+namespace gui {
+class IWindowInfosPublisherDelegator;
+
+class IWindowInfosPublisher : public ::android::IInterface {
+public:
+  typedef IWindowInfosPublisherDelegator DefaultDelegator;
+  DECLARE_META_INTERFACE(WindowInfosPublisher)
+  virtual ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) = 0;
+};  // class IWindowInfosPublisher
+
+class IWindowInfosPublisherDefault : public IWindowInfosPublisher {
+public:
+  ::android::IBinder* onAsBinder() override {
+    return nullptr;
+  }
+  ::android::binder::Status ackWindowInfosReceived(int64_t /*vsyncId*/, int64_t /*listenerId*/) override {
+    return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
+  }
+};  // class IWindowInfosPublisherDefault
+}  // namespace gui
+}  // namespace android
diff --git a/arm64/Android.bp b/arm64/Android.bp
index eb4035750116a5fdd49c3de0e37eaf1b8d1e6759..513796d358b6feae6b6eaf8ea6c1e3203dedcdd1 100644
--- a/arm64/Android.bp
+++ b/arm64/Android.bp
@@ -4916,7 +4916,7 @@ vndk_prebuilt_shared {
         enabled: true,
         support_system_process: true,
     },
-    min_sdk_version: "29",
+    min_sdk_version: "30",
     licenses: ["vndk-v34-libutils-license"],
     arch: {
         arm: {
diff --git a/arm64/arch-arm-armv8-a/shared/vndk-core/libgui.so b/arm64/arch-arm-armv8-a/shared/vndk-core/libgui.so
index fd39f90fb0994c4fdc4e127ecf673801711161d2..e132e1ff5597bded2579b113a1ea85b6fa4abcd5 100755
Binary files a/arm64/arch-arm-armv8-a/shared/vndk-core/libgui.so and b/arm64/arch-arm-armv8-a/shared/vndk-core/libgui.so differ
diff --git a/arm64/arch-arm-armv8-a/shared/vndk-core/libziparchive.so b/arm64/arch-arm-armv8-a/shared/vndk-core/libziparchive.so
index 255a5c6ec1f6f440fa65e70f26d5fce1a4733ad2..92d9394437405b7f7dfe6cba9d1c8b8e44444164 100755
Binary files a/arm64/arch-arm-armv8-a/shared/vndk-core/libziparchive.so and b/arm64/arch-arm-armv8-a/shared/vndk-core/libziparchive.so differ
diff --git a/arm64/arch-arm-armv8-a/shared/vndk-sp/libprocessgroup.so b/arm64/arch-arm-armv8-a/shared/vndk-sp/libprocessgroup.so
index e90c576da325ec1458b359cddab4a105fc319ac3..9470ba945edad57328b42d6812b65360560fdab1 100755
Binary files a/arm64/arch-arm-armv8-a/shared/vndk-sp/libprocessgroup.so and b/arm64/arch-arm-armv8-a/shared/vndk-sp/libprocessgroup.so differ
diff --git a/arm64/arch-arm-armv8-a/shared/vndk-sp/libutils.so b/arm64/arch-arm-armv8-a/shared/vndk-sp/libutils.so
index acef38160f000fb7c818db32df849ef9761956f6..1cbd002b33f46a9f3ab13a8c77429021aecf6309 100755
Binary files a/arm64/arch-arm-armv8-a/shared/vndk-sp/libutils.so and b/arm64/arch-arm-armv8-a/shared/vndk-sp/libutils.so differ
diff --git a/arm64/arch-arm64-armv8-a/shared/vndk-core/libbinder.so b/arm64/arch-arm64-armv8-a/shared/vndk-core/libbinder.so
index 964cfa71fa68ba617708c13804ea472da4a9a94d..a63ae8bc72e08a63e69fc49341c5faeb14967b81 100755
Binary files a/arm64/arch-arm64-armv8-a/shared/vndk-core/libbinder.so and b/arm64/arch-arm64-armv8-a/shared/vndk-core/libbinder.so differ
diff --git a/arm64/arch-arm64-armv8-a/shared/vndk-core/libgui.so b/arm64/arch-arm64-armv8-a/shared/vndk-core/libgui.so
index 0c2fe59641cdf2306cc0568e161fe998d7ce5c77..5656dded325f35938d30c4d2bfab22dfc3035e58 100755
Binary files a/arm64/arch-arm64-armv8-a/shared/vndk-core/libgui.so and b/arm64/arch-arm64-armv8-a/shared/vndk-core/libgui.so differ
diff --git a/arm64/arch-arm64-armv8-a/shared/vndk-core/libziparchive.so b/arm64/arch-arm64-armv8-a/shared/vndk-core/libziparchive.so
index 981be904a8b000fe488ea462f42fee8a46d20fd2..f05b93b3a7768eaa543c104eed0a326295d4b2d0 100755
Binary files a/arm64/arch-arm64-armv8-a/shared/vndk-core/libziparchive.so and b/arm64/arch-arm64-armv8-a/shared/vndk-core/libziparchive.so differ
diff --git a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libbase.so b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libbase.so
index 971b829c0628f1d256ac66a4307596cd40a044a6..b98b9cb28898d357834cbd03588526a1c83ebacc 100755
Binary files a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libbase.so and b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libbase.so differ
diff --git a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libcutils.so b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libcutils.so
index 2f9489f10ee0415c0eb639fd4d783da6f2e48548..aa585f3c03219d8a756cbfb02eb55396a5d6173b 100755
Binary files a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libcutils.so and b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libcutils.so differ
diff --git a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libprocessgroup.so b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libprocessgroup.so
index cca680bcf65067876bc0b6971a2d6bae85b27c7f..413fb385a886130d582e5e664fcef3c3586109ea 100755
Binary files a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libprocessgroup.so and b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libprocessgroup.so differ
diff --git a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libutils.so b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libutils.so
index 83e5700273a904e2c051cf54926012091a64f4d9..f782257f1c4fd591fb5f371cabc3bbf17f85b9a3 100755
Binary files a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libutils.so and b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libutils.so differ
diff --git a/arm64/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h b/arm64/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
index 52d7d3d36d74724f9f57a514256ecb32271ac060..163408db2bdc7ba373dc116b2f62f358c50d28a2 100644
--- a/arm64/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
+++ b/arm64/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
@@ -572,6 +572,7 @@ private:
     sp<ALooper> mCryptoLooper;
 
     bool mIsSurfaceToDisplay;
+    bool mAreRenderMetricsEnabled;
     PlaybackDurationAccumulator mPlaybackDurationAccumulator;
     VideoRenderQualityTracker mVideoRenderQualityTracker;
 
diff --git a/arm64/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h b/arm64/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
index 7c150d53d97a01c4e97e669aea7c82adedf866e9..3ff6735926a45746643424b6ae76fe5736018774 100644
--- a/arm64/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
+++ b/arm64/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
@@ -26,6 +26,7 @@
 #include <android/gui/IScreenCaptureListener.h>
 #include <android/gui/ITunnelModeEnabledListener.h>
 #include <android/gui/IWindowInfosListener.h>
+#include <android/gui/IWindowInfosPublisher.h>
 #include <binder/IBinder.h>
 #include <binder/IInterface.h>
 #include <gui/ITransactionCompletedListener.h>
diff --git a/arm64/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h b/arm64/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
index 38cb1089129d78d60a62ebeb681324766331b59b..684e21ad96db332caa87cea064485ec7963b84a8 100644
--- a/arm64/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
+++ b/arm64/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
@@ -18,7 +18,7 @@
 
 #include <android/gui/BnWindowInfosListener.h>
 #include <android/gui/ISurfaceComposer.h>
-#include <android/gui/IWindowInfosReportedListener.h>
+#include <android/gui/IWindowInfosPublisher.h>
 #include <binder/IBinder.h>
 #include <gui/SpHash.h>
 #include <gui/WindowInfosListener.h>
@@ -30,8 +30,7 @@ namespace android {
 class WindowInfosListenerReporter : public gui::BnWindowInfosListener {
 public:
     static sp<WindowInfosListenerReporter> getInstance();
-    binder::Status onWindowInfosChanged(const gui::WindowInfosUpdate& update,
-                                        const sp<gui::IWindowInfosReportedListener>&) override;
+    binder::Status onWindowInfosChanged(const gui::WindowInfosUpdate& update) override;
     status_t addWindowInfosListener(
             const sp<gui::WindowInfosListener>& windowInfosListener,
             const sp<gui::ISurfaceComposer>&,
@@ -47,5 +46,8 @@ private:
 
     std::vector<gui::WindowInfo> mLastWindowInfos GUARDED_BY(mListenersMutex);
     std::vector<gui::DisplayInfo> mLastDisplayInfos GUARDED_BY(mListenersMutex);
+
+    sp<gui::IWindowInfosPublisher> mWindowInfosPublisher;
+    int64_t mListenerId;
 };
 } // namespace android
diff --git a/arm64/include/frameworks/native/opengl/include/EGL/eglext.h b/arm64/include/frameworks/native/opengl/include/EGL/eglext.h
index 32c21f61b937d8359b4a261ff2b6caf3b84fe926..c787fc9717fb11475655c587b01630040af43eb9 100644
--- a/arm64/include/frameworks/native/opengl/include/EGL/eglext.h
+++ b/arm64/include/frameworks/native/opengl/include/EGL/eglext.h
@@ -699,7 +699,7 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
 
 #ifndef EGL_EXT_gl_colorspace_bt2020_hlg
 #define EGL_EXT_gl_colorspace_bt2020_hlg 1
-#define EGL_GL_COLORSPACE_BT2020_HLG_EXT  0x333E
+#define EGL_GL_COLORSPACE_BT2020_HLG_EXT  0x3540
 #endif /* EGL_EXT_gl_colorspace_bt2020_hlg */
 
 #ifndef EGL_EXT_gl_colorspace_bt2020_linear
diff --git a/arm64/include/generated-headers/bionic/libc/libc/android_vendor.34_arm64_armv8-a_shared/gen/include/sys/_system_properties.h b/arm64/include/generated-headers/bionic/libc/libc/android_vendor.34_arm64_armv8-a_shared/gen/include/sys/_system_properties.h
index c7a30ebbdc4521093168cedd66c08ec468ce9029..744a45b71f5ef9cca938687c9cfb511eb85820ad 100644
--- a/arm64/include/generated-headers/bionic/libc/libc/android_vendor.34_arm64_armv8-a_shared/gen/include/sys/_system_properties.h
+++ b/arm64/include/generated-headers/bionic/libc/libc/android_vendor.34_arm64_armv8-a_shared/gen/include/sys/_system_properties.h
@@ -41,7 +41,6 @@
 __BEGIN_DECLS
 
 #define PROP_SERVICE_NAME "property_service"
-#define PROP_SERVICE_FOR_SYSTEM_NAME "property_service_for_system"
 #define PROP_FILENAME "/dev/__properties__"
 
 #define PROP_MSG_SETPROP 1
diff --git a/arm64/include/generated-headers/bionic/libc/libc/android_vendor.34_arm_armv8-a_shared/gen/include/sys/_system_properties.h b/arm64/include/generated-headers/bionic/libc/libc/android_vendor.34_arm_armv8-a_shared/gen/include/sys/_system_properties.h
index c7a30ebbdc4521093168cedd66c08ec468ce9029..744a45b71f5ef9cca938687c9cfb511eb85820ad 100644
--- a/arm64/include/generated-headers/bionic/libc/libc/android_vendor.34_arm_armv8-a_shared/gen/include/sys/_system_properties.h
+++ b/arm64/include/generated-headers/bionic/libc/libc/android_vendor.34_arm_armv8-a_shared/gen/include/sys/_system_properties.h
@@ -41,7 +41,6 @@
 __BEGIN_DECLS
 
 #define PROP_SERVICE_NAME "property_service"
-#define PROP_SERVICE_FOR_SYSTEM_NAME "property_service_for_system"
 #define PROP_FILENAME "/dev/__properties__"
 
 #define PROP_MSG_SETPROP 1
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BnSurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BpSurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/ISurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/WindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BnSurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BpSurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/ISurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/WindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
index 1f53b0d6495686e1c15adde33c5961e1979b04e9..97a98eec12857da708580970920671abf24881c4 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
@@ -3,7 +3,6 @@
 #include <binder/IInterface.h>
 #include <android/gui/IWindowInfosListener.h>
 #include <android/gui/BnWindowInfosListener.h>
-#include <android/gui/BnWindowInfosReportedListener.h>
 #include <binder/Delegate.h>
 
 
@@ -21,12 +20,8 @@ public:
   explicit IWindowInfosListenerDelegator(const ::android::sp<IWindowInfosListener> &impl) : _aidl_delegate(impl) {}
 
   ::android::sp<IWindowInfosListener> getImpl() { return _aidl_delegate; }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override {
-    ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator> _windowInfosReportedListener;
-    if (windowInfosReportedListener) {
-      _windowInfosReportedListener = ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator>::cast(delegate(windowInfosReportedListener));
-    }
-    return _aidl_delegate->onWindowInfosChanged(update, _windowInfosReportedListener);
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override {
+    return _aidl_delegate->onWindowInfosChanged(update);
   }
 private:
   ::android::sp<IWindowInfosListener> _aidl_delegate;
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..9ed08f2ac0e461165fadc37157bbec54945fcdba
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include <binder/IInterface.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <android/gui/BnWindowInfosPublisher.h>
+#include <binder/Delegate.h>
+
+
+namespace android {
+namespace gui {
+class BnWindowInfosPublisher : public ::android::BnInterface<IWindowInfosPublisher> {
+public:
+  static constexpr uint32_t TRANSACTION_ackWindowInfosReceived = ::android::IBinder::FIRST_CALL_TRANSACTION + 0;
+  explicit BnWindowInfosPublisher();
+  ::android::status_t onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) override;
+};  // class BnWindowInfosPublisher
+
+class IWindowInfosPublisherDelegator : public BnWindowInfosPublisher {
+public:
+  explicit IWindowInfosPublisherDelegator(const ::android::sp<IWindowInfosPublisher> &impl) : _aidl_delegate(impl) {}
+
+  ::android::sp<IWindowInfosPublisher> getImpl() { return _aidl_delegate; }
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override {
+    return _aidl_delegate->ackWindowInfosReceived(vsyncId, listenerId);
+  }
+private:
+  ::android::sp<IWindowInfosPublisher> _aidl_delegate;
+};  // class IWindowInfosPublisherDelegator
+}  // namespace gui
+}  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
index 8126f8bda38be00041db95e9fa64e4c6e3bb4565..67d24f53925e595b49d4f6dca9232a2df78487d7 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
@@ -11,7 +11,7 @@ class BpWindowInfosListener : public ::android::BpInterface<IWindowInfosListener
 public:
   explicit BpWindowInfosListener(const ::android::sp<::android::IBinder>& _aidl_impl);
   virtual ~BpWindowInfosListener() = default;
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override;
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override;
 };  // class BpWindowInfosListener
 }  // namespace gui
 }  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..a85dd289dff8c8e5adad202631d419d4da4c3d2b
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <utils/Errors.h>
+#include <android/gui/IWindowInfosPublisher.h>
+
+namespace android {
+namespace gui {
+class BpWindowInfosPublisher : public ::android::BpInterface<IWindowInfosPublisher> {
+public:
+  explicit BpWindowInfosPublisher(const ::android::sp<::android::IBinder>& _aidl_impl);
+  virtual ~BpWindowInfosPublisher() = default;
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override;
+};  // class BpWindowInfosPublisher
+}  // namespace gui
+}  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
index 5a163a88a2bd8f391bafb13a34cc6a70ab5c9559..e28ca6ed516518459c68f0545579e8dfb6510b34 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
@@ -1,17 +1,12 @@
 #pragma once
 
-#include <android/gui/IWindowInfosReportedListener.h>
 #include <binder/IBinder.h>
 #include <binder/IInterface.h>
 #include <binder/Status.h>
 #include <binder/Trace.h>
 #include <gui/WindowInfosUpdate.h>
-#include <optional>
 #include <utils/StrongPointer.h>
 
-namespace android::gui {
-class IWindowInfosReportedListener;
-}  // namespace android::gui
 namespace android {
 namespace gui {
 class IWindowInfosListenerDelegator;
@@ -20,7 +15,7 @@ class IWindowInfosListener : public ::android::IInterface {
 public:
   typedef IWindowInfosListenerDelegator DefaultDelegator;
   DECLARE_META_INTERFACE(WindowInfosListener)
-  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) = 0;
+  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) = 0;
 };  // class IWindowInfosListener
 
 class IWindowInfosListenerDefault : public IWindowInfosListener {
@@ -28,7 +23,7 @@ public:
   ::android::IBinder* onAsBinder() override {
     return nullptr;
   }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/, const ::android::sp<::android::gui::IWindowInfosReportedListener>& /*windowInfosReportedListener*/) override {
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
 };  // class IWindowInfosListenerDefault
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..eabafa25063cdb58223ee1b3ea3aefb56db53257
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm64_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <binder/Status.h>
+#include <binder/Trace.h>
+#include <cstdint>
+#include <utils/StrongPointer.h>
+
+namespace android {
+namespace gui {
+class IWindowInfosPublisherDelegator;
+
+class IWindowInfosPublisher : public ::android::IInterface {
+public:
+  typedef IWindowInfosPublisherDelegator DefaultDelegator;
+  DECLARE_META_INTERFACE(WindowInfosPublisher)
+  virtual ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) = 0;
+};  // class IWindowInfosPublisher
+
+class IWindowInfosPublisherDefault : public IWindowInfosPublisher {
+public:
+  ::android::IBinder* onAsBinder() override {
+    return nullptr;
+  }
+  ::android::binder::Status ackWindowInfosReceived(int64_t /*vsyncId*/, int64_t /*listenerId*/) override {
+    return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
+  }
+};  // class IWindowInfosPublisherDefault
+}  // namespace gui
+}  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
index 1f53b0d6495686e1c15adde33c5961e1979b04e9..97a98eec12857da708580970920671abf24881c4 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
@@ -3,7 +3,6 @@
 #include <binder/IInterface.h>
 #include <android/gui/IWindowInfosListener.h>
 #include <android/gui/BnWindowInfosListener.h>
-#include <android/gui/BnWindowInfosReportedListener.h>
 #include <binder/Delegate.h>
 
 
@@ -21,12 +20,8 @@ public:
   explicit IWindowInfosListenerDelegator(const ::android::sp<IWindowInfosListener> &impl) : _aidl_delegate(impl) {}
 
   ::android::sp<IWindowInfosListener> getImpl() { return _aidl_delegate; }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override {
-    ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator> _windowInfosReportedListener;
-    if (windowInfosReportedListener) {
-      _windowInfosReportedListener = ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator>::cast(delegate(windowInfosReportedListener));
-    }
-    return _aidl_delegate->onWindowInfosChanged(update, _windowInfosReportedListener);
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override {
+    return _aidl_delegate->onWindowInfosChanged(update);
   }
 private:
   ::android::sp<IWindowInfosListener> _aidl_delegate;
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..9ed08f2ac0e461165fadc37157bbec54945fcdba
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include <binder/IInterface.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <android/gui/BnWindowInfosPublisher.h>
+#include <binder/Delegate.h>
+
+
+namespace android {
+namespace gui {
+class BnWindowInfosPublisher : public ::android::BnInterface<IWindowInfosPublisher> {
+public:
+  static constexpr uint32_t TRANSACTION_ackWindowInfosReceived = ::android::IBinder::FIRST_CALL_TRANSACTION + 0;
+  explicit BnWindowInfosPublisher();
+  ::android::status_t onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) override;
+};  // class BnWindowInfosPublisher
+
+class IWindowInfosPublisherDelegator : public BnWindowInfosPublisher {
+public:
+  explicit IWindowInfosPublisherDelegator(const ::android::sp<IWindowInfosPublisher> &impl) : _aidl_delegate(impl) {}
+
+  ::android::sp<IWindowInfosPublisher> getImpl() { return _aidl_delegate; }
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override {
+    return _aidl_delegate->ackWindowInfosReceived(vsyncId, listenerId);
+  }
+private:
+  ::android::sp<IWindowInfosPublisher> _aidl_delegate;
+};  // class IWindowInfosPublisherDelegator
+}  // namespace gui
+}  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
index 8126f8bda38be00041db95e9fa64e4c6e3bb4565..67d24f53925e595b49d4f6dca9232a2df78487d7 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
@@ -11,7 +11,7 @@ class BpWindowInfosListener : public ::android::BpInterface<IWindowInfosListener
 public:
   explicit BpWindowInfosListener(const ::android::sp<::android::IBinder>& _aidl_impl);
   virtual ~BpWindowInfosListener() = default;
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override;
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override;
 };  // class BpWindowInfosListener
 }  // namespace gui
 }  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..a85dd289dff8c8e5adad202631d419d4da4c3d2b
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <utils/Errors.h>
+#include <android/gui/IWindowInfosPublisher.h>
+
+namespace android {
+namespace gui {
+class BpWindowInfosPublisher : public ::android::BpInterface<IWindowInfosPublisher> {
+public:
+  explicit BpWindowInfosPublisher(const ::android::sp<::android::IBinder>& _aidl_impl);
+  virtual ~BpWindowInfosPublisher() = default;
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override;
+};  // class BpWindowInfosPublisher
+}  // namespace gui
+}  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
index 5a163a88a2bd8f391bafb13a34cc6a70ab5c9559..e28ca6ed516518459c68f0545579e8dfb6510b34 100644
--- a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
@@ -1,17 +1,12 @@
 #pragma once
 
-#include <android/gui/IWindowInfosReportedListener.h>
 #include <binder/IBinder.h>
 #include <binder/IInterface.h>
 #include <binder/Status.h>
 #include <binder/Trace.h>
 #include <gui/WindowInfosUpdate.h>
-#include <optional>
 #include <utils/StrongPointer.h>
 
-namespace android::gui {
-class IWindowInfosReportedListener;
-}  // namespace android::gui
 namespace android {
 namespace gui {
 class IWindowInfosListenerDelegator;
@@ -20,7 +15,7 @@ class IWindowInfosListener : public ::android::IInterface {
 public:
   typedef IWindowInfosListenerDelegator DefaultDelegator;
   DECLARE_META_INTERFACE(WindowInfosListener)
-  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) = 0;
+  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) = 0;
 };  // class IWindowInfosListener
 
 class IWindowInfosListenerDefault : public IWindowInfosListener {
@@ -28,7 +23,7 @@ public:
   ::android::IBinder* onAsBinder() override {
     return nullptr;
   }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/, const ::android::sp<::android::gui::IWindowInfosReportedListener>& /*windowInfosReportedListener*/) override {
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
 };  // class IWindowInfosListenerDefault
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..eabafa25063cdb58223ee1b3ea3aefb56db53257
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_arm_armv8-a_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <binder/Status.h>
+#include <binder/Trace.h>
+#include <cstdint>
+#include <utils/StrongPointer.h>
+
+namespace android {
+namespace gui {
+class IWindowInfosPublisherDelegator;
+
+class IWindowInfosPublisher : public ::android::IInterface {
+public:
+  typedef IWindowInfosPublisherDelegator DefaultDelegator;
+  DECLARE_META_INTERFACE(WindowInfosPublisher)
+  virtual ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) = 0;
+};  // class IWindowInfosPublisher
+
+class IWindowInfosPublisherDefault : public IWindowInfosPublisher {
+public:
+  ::android::IBinder* onAsBinder() override {
+    return nullptr;
+  }
+  ::android::binder::Status ackWindowInfosReceived(int64_t /*vsyncId*/, int64_t /*listenerId*/) override {
+    return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
+  }
+};  // class IWindowInfosPublisherDefault
+}  // namespace gui
+}  // namespace android
diff --git a/x86/Android.bp b/x86/Android.bp
index f5b69535626f4bf86c368b0584010c1af9b0b5d9..8be3f2a429cf667948ba94ef304deccdc9d3ea28 100644
--- a/x86/Android.bp
+++ b/x86/Android.bp
@@ -3307,7 +3307,7 @@ vndk_prebuilt_shared {
         enabled: true,
         support_system_process: true,
     },
-    min_sdk_version: "29",
+    min_sdk_version: "30",
     licenses: ["vndk-v34-libutils-license"],
     arch: {
         x86: {
diff --git a/x86/arch-x86/shared/vndk-core/libbinder.so b/x86/arch-x86/shared/vndk-core/libbinder.so
index 14b9cdd0dceda68f579c2cc6ba2b420bc7b65183..bba3317482fa2420fc3b8830493d5346bc175fdd 100755
Binary files a/x86/arch-x86/shared/vndk-core/libbinder.so and b/x86/arch-x86/shared/vndk-core/libbinder.so differ
diff --git a/x86/arch-x86/shared/vndk-core/libgui.so b/x86/arch-x86/shared/vndk-core/libgui.so
index f24e135cbc9e34bd48001b5a85ba2185dfc73c7a..b7f16ff111452b5523c358aa6a0b7fe230e3a705 100755
Binary files a/x86/arch-x86/shared/vndk-core/libgui.so and b/x86/arch-x86/shared/vndk-core/libgui.so differ
diff --git a/x86/arch-x86/shared/vndk-core/libziparchive.so b/x86/arch-x86/shared/vndk-core/libziparchive.so
index 83d11226a195fd32626816eccb15f831abe6c72f..b3e2e1c2f63bae83b74a7405e29d3833ee09e53a 100755
Binary files a/x86/arch-x86/shared/vndk-core/libziparchive.so and b/x86/arch-x86/shared/vndk-core/libziparchive.so differ
diff --git a/x86/arch-x86/shared/vndk-sp/libbase.so b/x86/arch-x86/shared/vndk-sp/libbase.so
index baf76edd52dca23a37c50345f10d853a020f7284..cc23b32d17b1fd385ca76521938c2e41ad56d8ba 100755
Binary files a/x86/arch-x86/shared/vndk-sp/libbase.so and b/x86/arch-x86/shared/vndk-sp/libbase.so differ
diff --git a/x86/arch-x86/shared/vndk-sp/libcutils.so b/x86/arch-x86/shared/vndk-sp/libcutils.so
index 807b3aeba2dc79800bdcdfc776c49a1685c28606..1b5117d2faf75c9d9315e8b3ea068bcaea40ee82 100755
Binary files a/x86/arch-x86/shared/vndk-sp/libcutils.so and b/x86/arch-x86/shared/vndk-sp/libcutils.so differ
diff --git a/x86/arch-x86/shared/vndk-sp/libprocessgroup.so b/x86/arch-x86/shared/vndk-sp/libprocessgroup.so
index b3a562c6b04abfc53314a1aec46b734b310e5e4f..2df78defb97a0ca49f5a3275e0888d1036fd1c65 100755
Binary files a/x86/arch-x86/shared/vndk-sp/libprocessgroup.so and b/x86/arch-x86/shared/vndk-sp/libprocessgroup.so differ
diff --git a/x86/arch-x86/shared/vndk-sp/libutils.so b/x86/arch-x86/shared/vndk-sp/libutils.so
index b9ec4153c6a0c6449fc8e2da7399449c8cd6be71..c473152da32edad6b0dbcb619f1d6eb58b010258 100755
Binary files a/x86/arch-x86/shared/vndk-sp/libutils.so and b/x86/arch-x86/shared/vndk-sp/libutils.so differ
diff --git a/x86/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h b/x86/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
index 52d7d3d36d74724f9f57a514256ecb32271ac060..163408db2bdc7ba373dc116b2f62f358c50d28a2 100644
--- a/x86/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
+++ b/x86/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
@@ -572,6 +572,7 @@ private:
     sp<ALooper> mCryptoLooper;
 
     bool mIsSurfaceToDisplay;
+    bool mAreRenderMetricsEnabled;
     PlaybackDurationAccumulator mPlaybackDurationAccumulator;
     VideoRenderQualityTracker mVideoRenderQualityTracker;
 
diff --git a/x86/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h b/x86/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
index 7c150d53d97a01c4e97e669aea7c82adedf866e9..3ff6735926a45746643424b6ae76fe5736018774 100644
--- a/x86/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
+++ b/x86/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
@@ -26,6 +26,7 @@
 #include <android/gui/IScreenCaptureListener.h>
 #include <android/gui/ITunnelModeEnabledListener.h>
 #include <android/gui/IWindowInfosListener.h>
+#include <android/gui/IWindowInfosPublisher.h>
 #include <binder/IBinder.h>
 #include <binder/IInterface.h>
 #include <gui/ITransactionCompletedListener.h>
diff --git a/x86/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h b/x86/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
index 38cb1089129d78d60a62ebeb681324766331b59b..684e21ad96db332caa87cea064485ec7963b84a8 100644
--- a/x86/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
+++ b/x86/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
@@ -18,7 +18,7 @@
 
 #include <android/gui/BnWindowInfosListener.h>
 #include <android/gui/ISurfaceComposer.h>
-#include <android/gui/IWindowInfosReportedListener.h>
+#include <android/gui/IWindowInfosPublisher.h>
 #include <binder/IBinder.h>
 #include <gui/SpHash.h>
 #include <gui/WindowInfosListener.h>
@@ -30,8 +30,7 @@ namespace android {
 class WindowInfosListenerReporter : public gui::BnWindowInfosListener {
 public:
     static sp<WindowInfosListenerReporter> getInstance();
-    binder::Status onWindowInfosChanged(const gui::WindowInfosUpdate& update,
-                                        const sp<gui::IWindowInfosReportedListener>&) override;
+    binder::Status onWindowInfosChanged(const gui::WindowInfosUpdate& update) override;
     status_t addWindowInfosListener(
             const sp<gui::WindowInfosListener>& windowInfosListener,
             const sp<gui::ISurfaceComposer>&,
@@ -47,5 +46,8 @@ private:
 
     std::vector<gui::WindowInfo> mLastWindowInfos GUARDED_BY(mListenersMutex);
     std::vector<gui::DisplayInfo> mLastDisplayInfos GUARDED_BY(mListenersMutex);
+
+    sp<gui::IWindowInfosPublisher> mWindowInfosPublisher;
+    int64_t mListenerId;
 };
 } // namespace android
diff --git a/x86/include/frameworks/native/opengl/include/EGL/eglext.h b/x86/include/frameworks/native/opengl/include/EGL/eglext.h
index 32c21f61b937d8359b4a261ff2b6caf3b84fe926..c787fc9717fb11475655c587b01630040af43eb9 100644
--- a/x86/include/frameworks/native/opengl/include/EGL/eglext.h
+++ b/x86/include/frameworks/native/opengl/include/EGL/eglext.h
@@ -699,7 +699,7 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
 
 #ifndef EGL_EXT_gl_colorspace_bt2020_hlg
 #define EGL_EXT_gl_colorspace_bt2020_hlg 1
-#define EGL_GL_COLORSPACE_BT2020_HLG_EXT  0x333E
+#define EGL_GL_COLORSPACE_BT2020_HLG_EXT  0x3540
 #endif /* EGL_EXT_gl_colorspace_bt2020_hlg */
 
 #ifndef EGL_EXT_gl_colorspace_bt2020_linear
diff --git a/x86/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_shared/gen/include/sys/_system_properties.h b/x86/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_shared/gen/include/sys/_system_properties.h
index c7a30ebbdc4521093168cedd66c08ec468ce9029..744a45b71f5ef9cca938687c9cfb511eb85820ad 100644
--- a/x86/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_shared/gen/include/sys/_system_properties.h
+++ b/x86/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_shared/gen/include/sys/_system_properties.h
@@ -41,7 +41,6 @@
 __BEGIN_DECLS
 
 #define PROP_SERVICE_NAME "property_service"
-#define PROP_SERVICE_FOR_SYSTEM_NAME "property_service_for_system"
 #define PROP_FILENAME "/dev/__properties__"
 
 #define PROP_MSG_SETPROP 1
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BnSurfaceComposer.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BpSurfaceComposer.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/ISurfaceComposer.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/WindowInfosListenerInfo.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
index 1f53b0d6495686e1c15adde33c5961e1979b04e9..97a98eec12857da708580970920671abf24881c4 100644
--- a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
@@ -3,7 +3,6 @@
 #include <binder/IInterface.h>
 #include <android/gui/IWindowInfosListener.h>
 #include <android/gui/BnWindowInfosListener.h>
-#include <android/gui/BnWindowInfosReportedListener.h>
 #include <binder/Delegate.h>
 
 
@@ -21,12 +20,8 @@ public:
   explicit IWindowInfosListenerDelegator(const ::android::sp<IWindowInfosListener> &impl) : _aidl_delegate(impl) {}
 
   ::android::sp<IWindowInfosListener> getImpl() { return _aidl_delegate; }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override {
-    ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator> _windowInfosReportedListener;
-    if (windowInfosReportedListener) {
-      _windowInfosReportedListener = ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator>::cast(delegate(windowInfosReportedListener));
-    }
-    return _aidl_delegate->onWindowInfosChanged(update, _windowInfosReportedListener);
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override {
+    return _aidl_delegate->onWindowInfosChanged(update);
   }
 private:
   ::android::sp<IWindowInfosListener> _aidl_delegate;
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..9ed08f2ac0e461165fadc37157bbec54945fcdba
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include <binder/IInterface.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <android/gui/BnWindowInfosPublisher.h>
+#include <binder/Delegate.h>
+
+
+namespace android {
+namespace gui {
+class BnWindowInfosPublisher : public ::android::BnInterface<IWindowInfosPublisher> {
+public:
+  static constexpr uint32_t TRANSACTION_ackWindowInfosReceived = ::android::IBinder::FIRST_CALL_TRANSACTION + 0;
+  explicit BnWindowInfosPublisher();
+  ::android::status_t onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) override;
+};  // class BnWindowInfosPublisher
+
+class IWindowInfosPublisherDelegator : public BnWindowInfosPublisher {
+public:
+  explicit IWindowInfosPublisherDelegator(const ::android::sp<IWindowInfosPublisher> &impl) : _aidl_delegate(impl) {}
+
+  ::android::sp<IWindowInfosPublisher> getImpl() { return _aidl_delegate; }
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override {
+    return _aidl_delegate->ackWindowInfosReceived(vsyncId, listenerId);
+  }
+private:
+  ::android::sp<IWindowInfosPublisher> _aidl_delegate;
+};  // class IWindowInfosPublisherDelegator
+}  // namespace gui
+}  // namespace android
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
index 8126f8bda38be00041db95e9fa64e4c6e3bb4565..67d24f53925e595b49d4f6dca9232a2df78487d7 100644
--- a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
@@ -11,7 +11,7 @@ class BpWindowInfosListener : public ::android::BpInterface<IWindowInfosListener
 public:
   explicit BpWindowInfosListener(const ::android::sp<::android::IBinder>& _aidl_impl);
   virtual ~BpWindowInfosListener() = default;
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override;
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override;
 };  // class BpWindowInfosListener
 }  // namespace gui
 }  // namespace android
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..a85dd289dff8c8e5adad202631d419d4da4c3d2b
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <utils/Errors.h>
+#include <android/gui/IWindowInfosPublisher.h>
+
+namespace android {
+namespace gui {
+class BpWindowInfosPublisher : public ::android::BpInterface<IWindowInfosPublisher> {
+public:
+  explicit BpWindowInfosPublisher(const ::android::sp<::android::IBinder>& _aidl_impl);
+  virtual ~BpWindowInfosPublisher() = default;
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override;
+};  // class BpWindowInfosPublisher
+}  // namespace gui
+}  // namespace android
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
index 5a163a88a2bd8f391bafb13a34cc6a70ab5c9559..e28ca6ed516518459c68f0545579e8dfb6510b34 100644
--- a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
@@ -1,17 +1,12 @@
 #pragma once
 
-#include <android/gui/IWindowInfosReportedListener.h>
 #include <binder/IBinder.h>
 #include <binder/IInterface.h>
 #include <binder/Status.h>
 #include <binder/Trace.h>
 #include <gui/WindowInfosUpdate.h>
-#include <optional>
 #include <utils/StrongPointer.h>
 
-namespace android::gui {
-class IWindowInfosReportedListener;
-}  // namespace android::gui
 namespace android {
 namespace gui {
 class IWindowInfosListenerDelegator;
@@ -20,7 +15,7 @@ class IWindowInfosListener : public ::android::IInterface {
 public:
   typedef IWindowInfosListenerDelegator DefaultDelegator;
   DECLARE_META_INTERFACE(WindowInfosListener)
-  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) = 0;
+  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) = 0;
 };  // class IWindowInfosListener
 
 class IWindowInfosListenerDefault : public IWindowInfosListener {
@@ -28,7 +23,7 @@ public:
   ::android::IBinder* onAsBinder() override {
     return nullptr;
   }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/, const ::android::sp<::android::gui::IWindowInfosReportedListener>& /*windowInfosReportedListener*/) override {
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
 };  // class IWindowInfosListenerDefault
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..eabafa25063cdb58223ee1b3ea3aefb56db53257
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <binder/Status.h>
+#include <binder/Trace.h>
+#include <cstdint>
+#include <utils/StrongPointer.h>
+
+namespace android {
+namespace gui {
+class IWindowInfosPublisherDelegator;
+
+class IWindowInfosPublisher : public ::android::IInterface {
+public:
+  typedef IWindowInfosPublisherDelegator DefaultDelegator;
+  DECLARE_META_INTERFACE(WindowInfosPublisher)
+  virtual ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) = 0;
+};  // class IWindowInfosPublisher
+
+class IWindowInfosPublisherDefault : public IWindowInfosPublisher {
+public:
+  ::android::IBinder* onAsBinder() override {
+    return nullptr;
+  }
+  ::android::binder::Status ackWindowInfosReceived(int64_t /*vsyncId*/, int64_t /*listenerId*/) override {
+    return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
+  }
+};  // class IWindowInfosPublisherDefault
+}  // namespace gui
+}  // namespace android
diff --git a/x86_64/Android.bp b/x86_64/Android.bp
index c77d4c1889066ec41d678ee7e47da0f82b2b82b9..edadf1908ac399385753879576e76fb37d1efd8e 100644
--- a/x86_64/Android.bp
+++ b/x86_64/Android.bp
@@ -4916,7 +4916,7 @@ vndk_prebuilt_shared {
         enabled: true,
         support_system_process: true,
     },
-    min_sdk_version: "29",
+    min_sdk_version: "30",
     licenses: ["vndk-v34-libutils-license"],
     arch: {
         x86: {
diff --git a/x86_64/arch-x86-x86_64/shared/vndk-core/libbinder.so b/x86_64/arch-x86-x86_64/shared/vndk-core/libbinder.so
index 43a727562a2eb90634e42c6706cc290b0e020299..64f29437dfe183d9659f5b3dbb40a60f770f178b 100755
Binary files a/x86_64/arch-x86-x86_64/shared/vndk-core/libbinder.so and b/x86_64/arch-x86-x86_64/shared/vndk-core/libbinder.so differ
diff --git a/x86_64/arch-x86-x86_64/shared/vndk-core/libgui.so b/x86_64/arch-x86-x86_64/shared/vndk-core/libgui.so
index 58d0508a756c4b412d5562cc8cb5f1296dcb1eb4..3b273681c2832f404fbf8e4d8f126231b058a0c2 100755
Binary files a/x86_64/arch-x86-x86_64/shared/vndk-core/libgui.so and b/x86_64/arch-x86-x86_64/shared/vndk-core/libgui.so differ
diff --git a/x86_64/arch-x86-x86_64/shared/vndk-core/libziparchive.so b/x86_64/arch-x86-x86_64/shared/vndk-core/libziparchive.so
index 62258bd611a0b6e5658928a7523d87a92dd220d7..c5736ecc000839959688fff4742c3c36ea8a9714 100755
Binary files a/x86_64/arch-x86-x86_64/shared/vndk-core/libziparchive.so and b/x86_64/arch-x86-x86_64/shared/vndk-core/libziparchive.so differ
diff --git a/x86_64/arch-x86-x86_64/shared/vndk-sp/libbase.so b/x86_64/arch-x86-x86_64/shared/vndk-sp/libbase.so
index e779403a550158cd84741472d7094ef1fb49104b..b6ff334a1f5e03d8cdd28b4fe8c6b924408aa1cc 100755
Binary files a/x86_64/arch-x86-x86_64/shared/vndk-sp/libbase.so and b/x86_64/arch-x86-x86_64/shared/vndk-sp/libbase.so differ
diff --git a/x86_64/arch-x86-x86_64/shared/vndk-sp/libcutils.so b/x86_64/arch-x86-x86_64/shared/vndk-sp/libcutils.so
index 194ca2e38b19414695b13914c0c76ae6e2225cc7..bb10267a3495aa4bf67c9a4f31495bbe2c41e64c 100755
Binary files a/x86_64/arch-x86-x86_64/shared/vndk-sp/libcutils.so and b/x86_64/arch-x86-x86_64/shared/vndk-sp/libcutils.so differ
diff --git a/x86_64/arch-x86-x86_64/shared/vndk-sp/libprocessgroup.so b/x86_64/arch-x86-x86_64/shared/vndk-sp/libprocessgroup.so
index 698777e82eafa67902f7fa571a7747c2bc76f899..8c7cb5a7fadd64b48726f7c3d205be08a7b74c23 100755
Binary files a/x86_64/arch-x86-x86_64/shared/vndk-sp/libprocessgroup.so and b/x86_64/arch-x86-x86_64/shared/vndk-sp/libprocessgroup.so differ
diff --git a/x86_64/arch-x86-x86_64/shared/vndk-sp/libutils.so b/x86_64/arch-x86-x86_64/shared/vndk-sp/libutils.so
index ad67b1a9d524aaaec056838eb5aec4c4c57e5075..88106a74a8ca6cfcd27ae6bd727bc8d6882bb3e6 100755
Binary files a/x86_64/arch-x86-x86_64/shared/vndk-sp/libutils.so and b/x86_64/arch-x86-x86_64/shared/vndk-sp/libutils.so differ
diff --git a/x86_64/arch-x86_64/shared/vndk-core/libbinder.so b/x86_64/arch-x86_64/shared/vndk-core/libbinder.so
index 6793984dd4a472c15bbe33b19acd84cfa4b914b6..37ef91fd3191ae97563c50a7e4cf1f7459154b64 100755
Binary files a/x86_64/arch-x86_64/shared/vndk-core/libbinder.so and b/x86_64/arch-x86_64/shared/vndk-core/libbinder.so differ
diff --git a/x86_64/arch-x86_64/shared/vndk-core/libgui.so b/x86_64/arch-x86_64/shared/vndk-core/libgui.so
index 8c162a6ac0681798dc248db565998cfab8015949..fe8a0a5d3eff770ece6e73d7da93f305c6e64605 100755
Binary files a/x86_64/arch-x86_64/shared/vndk-core/libgui.so and b/x86_64/arch-x86_64/shared/vndk-core/libgui.so differ
diff --git a/x86_64/arch-x86_64/shared/vndk-core/libziparchive.so b/x86_64/arch-x86_64/shared/vndk-core/libziparchive.so
index 603d19018a71d4663d8499516eec43ac25eb4f30..3113bcfe90cdac4b4eb405052782adb093e4e249 100755
Binary files a/x86_64/arch-x86_64/shared/vndk-core/libziparchive.so and b/x86_64/arch-x86_64/shared/vndk-core/libziparchive.so differ
diff --git a/x86_64/arch-x86_64/shared/vndk-sp/libbase.so b/x86_64/arch-x86_64/shared/vndk-sp/libbase.so
index bcbf954a4c8de5c71e79ef5696e757beadeaea9a..b571ac447249ad6c7ebb77cb6e2f433f2237a380 100755
Binary files a/x86_64/arch-x86_64/shared/vndk-sp/libbase.so and b/x86_64/arch-x86_64/shared/vndk-sp/libbase.so differ
diff --git a/x86_64/arch-x86_64/shared/vndk-sp/libcutils.so b/x86_64/arch-x86_64/shared/vndk-sp/libcutils.so
index debe1d67e7e35da378f164dcb31fe446dc78902d..1fca350c6259d9bbcb23737b7c10235caeefd08f 100755
Binary files a/x86_64/arch-x86_64/shared/vndk-sp/libcutils.so and b/x86_64/arch-x86_64/shared/vndk-sp/libcutils.so differ
diff --git a/x86_64/arch-x86_64/shared/vndk-sp/libprocessgroup.so b/x86_64/arch-x86_64/shared/vndk-sp/libprocessgroup.so
index 0e2302b59565883224eeb8cd6f41115ee67ba988..b16781e688a0fc11c179f7f4f6d66fe8387f8620 100755
Binary files a/x86_64/arch-x86_64/shared/vndk-sp/libprocessgroup.so and b/x86_64/arch-x86_64/shared/vndk-sp/libprocessgroup.so differ
diff --git a/x86_64/arch-x86_64/shared/vndk-sp/libutils.so b/x86_64/arch-x86_64/shared/vndk-sp/libutils.so
index ecf47cc60f93b4fa4c6d4fb4decec482c010ccb8..b1daa64df7ab63250535ef8f301911e7a245aac9 100755
Binary files a/x86_64/arch-x86_64/shared/vndk-sp/libutils.so and b/x86_64/arch-x86_64/shared/vndk-sp/libutils.so differ
diff --git a/x86_64/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h b/x86_64/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
index 52d7d3d36d74724f9f57a514256ecb32271ac060..163408db2bdc7ba373dc116b2f62f358c50d28a2 100644
--- a/x86_64/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
+++ b/x86_64/include/frameworks/av/media/libstagefright/include/media/stagefright/MediaCodec.h
@@ -572,6 +572,7 @@ private:
     sp<ALooper> mCryptoLooper;
 
     bool mIsSurfaceToDisplay;
+    bool mAreRenderMetricsEnabled;
     PlaybackDurationAccumulator mPlaybackDurationAccumulator;
     VideoRenderQualityTracker mVideoRenderQualityTracker;
 
diff --git a/x86_64/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h b/x86_64/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
index 7c150d53d97a01c4e97e669aea7c82adedf866e9..3ff6735926a45746643424b6ae76fe5736018774 100644
--- a/x86_64/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
+++ b/x86_64/include/frameworks/native/libs/gui/include/gui/ISurfaceComposer.h
@@ -26,6 +26,7 @@
 #include <android/gui/IScreenCaptureListener.h>
 #include <android/gui/ITunnelModeEnabledListener.h>
 #include <android/gui/IWindowInfosListener.h>
+#include <android/gui/IWindowInfosPublisher.h>
 #include <binder/IBinder.h>
 #include <binder/IInterface.h>
 #include <gui/ITransactionCompletedListener.h>
diff --git a/x86_64/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h b/x86_64/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
index 38cb1089129d78d60a62ebeb681324766331b59b..684e21ad96db332caa87cea064485ec7963b84a8 100644
--- a/x86_64/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
+++ b/x86_64/include/frameworks/native/libs/gui/include/gui/WindowInfosListenerReporter.h
@@ -18,7 +18,7 @@
 
 #include <android/gui/BnWindowInfosListener.h>
 #include <android/gui/ISurfaceComposer.h>
-#include <android/gui/IWindowInfosReportedListener.h>
+#include <android/gui/IWindowInfosPublisher.h>
 #include <binder/IBinder.h>
 #include <gui/SpHash.h>
 #include <gui/WindowInfosListener.h>
@@ -30,8 +30,7 @@ namespace android {
 class WindowInfosListenerReporter : public gui::BnWindowInfosListener {
 public:
     static sp<WindowInfosListenerReporter> getInstance();
-    binder::Status onWindowInfosChanged(const gui::WindowInfosUpdate& update,
-                                        const sp<gui::IWindowInfosReportedListener>&) override;
+    binder::Status onWindowInfosChanged(const gui::WindowInfosUpdate& update) override;
     status_t addWindowInfosListener(
             const sp<gui::WindowInfosListener>& windowInfosListener,
             const sp<gui::ISurfaceComposer>&,
@@ -47,5 +46,8 @@ private:
 
     std::vector<gui::WindowInfo> mLastWindowInfos GUARDED_BY(mListenersMutex);
     std::vector<gui::DisplayInfo> mLastDisplayInfos GUARDED_BY(mListenersMutex);
+
+    sp<gui::IWindowInfosPublisher> mWindowInfosPublisher;
+    int64_t mListenerId;
 };
 } // namespace android
diff --git a/x86_64/include/frameworks/native/opengl/include/EGL/eglext.h b/x86_64/include/frameworks/native/opengl/include/EGL/eglext.h
index 32c21f61b937d8359b4a261ff2b6caf3b84fe926..c787fc9717fb11475655c587b01630040af43eb9 100644
--- a/x86_64/include/frameworks/native/opengl/include/EGL/eglext.h
+++ b/x86_64/include/frameworks/native/opengl/include/EGL/eglext.h
@@ -699,7 +699,7 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
 
 #ifndef EGL_EXT_gl_colorspace_bt2020_hlg
 #define EGL_EXT_gl_colorspace_bt2020_hlg 1
-#define EGL_GL_COLORSPACE_BT2020_HLG_EXT  0x333E
+#define EGL_GL_COLORSPACE_BT2020_HLG_EXT  0x3540
 #endif /* EGL_EXT_gl_colorspace_bt2020_hlg */
 
 #ifndef EGL_EXT_gl_colorspace_bt2020_linear
diff --git a/x86_64/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_64_shared/gen/include/sys/_system_properties.h b/x86_64/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_64_shared/gen/include/sys/_system_properties.h
index c7a30ebbdc4521093168cedd66c08ec468ce9029..744a45b71f5ef9cca938687c9cfb511eb85820ad 100644
--- a/x86_64/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_64_shared/gen/include/sys/_system_properties.h
+++ b/x86_64/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_64_shared/gen/include/sys/_system_properties.h
@@ -41,7 +41,6 @@
 __BEGIN_DECLS
 
 #define PROP_SERVICE_NAME "property_service"
-#define PROP_SERVICE_FOR_SYSTEM_NAME "property_service_for_system"
 #define PROP_FILENAME "/dev/__properties__"
 
 #define PROP_MSG_SETPROP 1
diff --git a/x86_64/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_x86_64_shared/gen/include/sys/_system_properties.h b/x86_64/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_x86_64_shared/gen/include/sys/_system_properties.h
index c7a30ebbdc4521093168cedd66c08ec468ce9029..744a45b71f5ef9cca938687c9cfb511eb85820ad 100644
--- a/x86_64/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_x86_64_shared/gen/include/sys/_system_properties.h
+++ b/x86_64/include/generated-headers/bionic/libc/libc/android_vendor.34_x86_x86_64_shared/gen/include/sys/_system_properties.h
@@ -41,7 +41,6 @@
 __BEGIN_DECLS
 
 #define PROP_SERVICE_NAME "property_service"
-#define PROP_SERVICE_FOR_SYSTEM_NAME "property_service_for_system"
 #define PROP_FILENAME "/dev/__properties__"
 
 #define PROP_MSG_SETPROP 1
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BnSurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BpSurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/ISurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/WindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BnSurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BpSurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/ISurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/WindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
index f7f586a747226392528079cba94c8bccd74d1586..46d20ac3c3d8635ab6fd1bea1d107a62a394ffbb 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnSurfaceComposer.h
@@ -310,12 +310,12 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override {
     return _aidl_delegate->getMaxAcquiredBufferCount(_aidl_return);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
     if (windowInfosListener) {
       _windowInfosListener = ::android::sp<::android::gui::IWindowInfosListenerDelegator>::cast(delegate(windowInfosListener));
     }
-    return _aidl_delegate->addWindowInfosListener(_windowInfosListener);
+    return _aidl_delegate->addWindowInfosListener(_windowInfosListener, _aidl_return);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override {
     ::android::sp<::android::gui::IWindowInfosListenerDelegator> _windowInfosListener;
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..ce72aa31eb9fec03cb1696a030242a0e175567d1
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bn classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
index 7754ce808fa44db3a9017a2174f4a3fee2616c9b..de074483c1172f0526a752be4476d633cd3eac6d 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpSurfaceComposer.h
@@ -68,7 +68,7 @@ public:
   ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) override;
   ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) override;
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) override;
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) override;
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) override;
   ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) override;
 };  // class BpSurfaceComposer
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..27af6b1ce27822cb6ce0bef1585949aeff6f1d3c
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListenerInfo.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) parcelables do not have bp classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
index fde97b8da422310833ab801024f9e7cdbef26cb9..8cc0df5eafc943707a0f8abdc6cb99d73bd09d53 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/ISurfaceComposer.h
@@ -28,6 +28,7 @@
 #include <android/gui/OverlayProperties.h>
 #include <android/gui/PullAtomData.h>
 #include <android/gui/StaticDisplayInfo.h>
+#include <android/gui/WindowInfosListenerInfo.h>
 #include <array>
 #include <binder/Enums.h>
 #include <binder/IBinder.h>
@@ -69,6 +70,7 @@ class IWindowInfosListener;
 class OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@ public:
   virtual ::android::binder::Status setOverrideFrameRate(int32_t uid, float frameRate) = 0;
   virtual ::android::binder::Status getGpuContextPriority(int32_t* _aidl_return) = 0;
   virtual ::android::binder::Status getMaxAcquiredBufferCount(int32_t* _aidl_return) = 0;
-  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
+  virtual ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener, ::android::gui::WindowInfosListenerInfo* _aidl_return) = 0;
   virtual ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& windowInfosListener) = 0;
   virtual ::android::binder::Status getOverlaySupport(::android::gui::OverlayProperties* _aidl_return) = 0;
 };  // class ISurfaceComposer
@@ -324,7 +326,7 @@ public:
   ::android::binder::Status getMaxAcquiredBufferCount(int32_t* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
-  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
+  ::android::binder::Status addWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/, ::android::gui::WindowInfosListenerInfo* /*_aidl_return*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
   ::android::binder::Status removeWindowInfosListener(const ::android::sp<::android::gui::IWindowInfosListener>& /*windowInfosListener*/) override {
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b0a304cb5823ff98e66c9d916aab0d412aa4c59
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_aidl_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/WindowInfosListenerInfo.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <android/binder_to_string.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <binder/Parcel.h>
+#include <binder/Status.h>
+#include <cstdint>
+#include <tuple>
+#include <utils/String16.h>
+
+namespace android::gui {
+class IWindowInfosPublisher;
+}  // namespace android::gui
+namespace android {
+namespace gui {
+class WindowInfosListenerInfo : public ::android::Parcelable {
+public:
+  int64_t listenerId = 0L;
+  ::android::sp<::android::gui::IWindowInfosPublisher> windowInfosPublisher;
+  inline bool operator!=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) != std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) < std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator<=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) <= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator==(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) == std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) > std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+  inline bool operator>=(const WindowInfosListenerInfo& rhs) const {
+    return std::tie(listenerId, windowInfosPublisher) >= std::tie(rhs.listenerId, rhs.windowInfosPublisher);
+  }
+
+  ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
+  ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
+  static const ::android::String16& getParcelableDescriptor() {
+    static const ::android::StaticString16 DESCRIPTOR (u"android.gui.WindowInfosListenerInfo");
+    return DESCRIPTOR;
+  }
+  inline std::string toString() const {
+    std::ostringstream os;
+    os << "WindowInfosListenerInfo{";
+    os << "listenerId: " << ::android::internal::ToString(listenerId);
+    os << ", windowInfosPublisher: " << ::android::internal::ToString(windowInfosPublisher);
+    os << "}";
+    return os.str();
+  }
+};  // class WindowInfosListenerInfo
+}  // namespace gui
+}  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
index 1f53b0d6495686e1c15adde33c5961e1979b04e9..97a98eec12857da708580970920671abf24881c4 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
@@ -3,7 +3,6 @@
 #include <binder/IInterface.h>
 #include <android/gui/IWindowInfosListener.h>
 #include <android/gui/BnWindowInfosListener.h>
-#include <android/gui/BnWindowInfosReportedListener.h>
 #include <binder/Delegate.h>
 
 
@@ -21,12 +20,8 @@ public:
   explicit IWindowInfosListenerDelegator(const ::android::sp<IWindowInfosListener> &impl) : _aidl_delegate(impl) {}
 
   ::android::sp<IWindowInfosListener> getImpl() { return _aidl_delegate; }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override {
-    ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator> _windowInfosReportedListener;
-    if (windowInfosReportedListener) {
-      _windowInfosReportedListener = ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator>::cast(delegate(windowInfosReportedListener));
-    }
-    return _aidl_delegate->onWindowInfosChanged(update, _windowInfosReportedListener);
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override {
+    return _aidl_delegate->onWindowInfosChanged(update);
   }
 private:
   ::android::sp<IWindowInfosListener> _aidl_delegate;
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..9ed08f2ac0e461165fadc37157bbec54945fcdba
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include <binder/IInterface.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <android/gui/BnWindowInfosPublisher.h>
+#include <binder/Delegate.h>
+
+
+namespace android {
+namespace gui {
+class BnWindowInfosPublisher : public ::android::BnInterface<IWindowInfosPublisher> {
+public:
+  static constexpr uint32_t TRANSACTION_ackWindowInfosReceived = ::android::IBinder::FIRST_CALL_TRANSACTION + 0;
+  explicit BnWindowInfosPublisher();
+  ::android::status_t onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) override;
+};  // class BnWindowInfosPublisher
+
+class IWindowInfosPublisherDelegator : public BnWindowInfosPublisher {
+public:
+  explicit IWindowInfosPublisherDelegator(const ::android::sp<IWindowInfosPublisher> &impl) : _aidl_delegate(impl) {}
+
+  ::android::sp<IWindowInfosPublisher> getImpl() { return _aidl_delegate; }
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override {
+    return _aidl_delegate->ackWindowInfosReceived(vsyncId, listenerId);
+  }
+private:
+  ::android::sp<IWindowInfosPublisher> _aidl_delegate;
+};  // class IWindowInfosPublisherDelegator
+}  // namespace gui
+}  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
index 8126f8bda38be00041db95e9fa64e4c6e3bb4565..67d24f53925e595b49d4f6dca9232a2df78487d7 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
@@ -11,7 +11,7 @@ class BpWindowInfosListener : public ::android::BpInterface<IWindowInfosListener
 public:
   explicit BpWindowInfosListener(const ::android::sp<::android::IBinder>& _aidl_impl);
   virtual ~BpWindowInfosListener() = default;
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override;
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override;
 };  // class BpWindowInfosListener
 }  // namespace gui
 }  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..a85dd289dff8c8e5adad202631d419d4da4c3d2b
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <utils/Errors.h>
+#include <android/gui/IWindowInfosPublisher.h>
+
+namespace android {
+namespace gui {
+class BpWindowInfosPublisher : public ::android::BpInterface<IWindowInfosPublisher> {
+public:
+  explicit BpWindowInfosPublisher(const ::android::sp<::android::IBinder>& _aidl_impl);
+  virtual ~BpWindowInfosPublisher() = default;
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override;
+};  // class BpWindowInfosPublisher
+}  // namespace gui
+}  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
index 5a163a88a2bd8f391bafb13a34cc6a70ab5c9559..e28ca6ed516518459c68f0545579e8dfb6510b34 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
@@ -1,17 +1,12 @@
 #pragma once
 
-#include <android/gui/IWindowInfosReportedListener.h>
 #include <binder/IBinder.h>
 #include <binder/IInterface.h>
 #include <binder/Status.h>
 #include <binder/Trace.h>
 #include <gui/WindowInfosUpdate.h>
-#include <optional>
 #include <utils/StrongPointer.h>
 
-namespace android::gui {
-class IWindowInfosReportedListener;
-}  // namespace android::gui
 namespace android {
 namespace gui {
 class IWindowInfosListenerDelegator;
@@ -20,7 +15,7 @@ class IWindowInfosListener : public ::android::IInterface {
 public:
   typedef IWindowInfosListenerDelegator DefaultDelegator;
   DECLARE_META_INTERFACE(WindowInfosListener)
-  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) = 0;
+  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) = 0;
 };  // class IWindowInfosListener
 
 class IWindowInfosListenerDefault : public IWindowInfosListener {
@@ -28,7 +23,7 @@ public:
   ::android::IBinder* onAsBinder() override {
     return nullptr;
   }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/, const ::android::sp<::android::gui::IWindowInfosReportedListener>& /*windowInfosReportedListener*/) override {
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
 };  // class IWindowInfosListenerDefault
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..eabafa25063cdb58223ee1b3ea3aefb56db53257
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <binder/Status.h>
+#include <binder/Trace.h>
+#include <cstdint>
+#include <utils/StrongPointer.h>
+
+namespace android {
+namespace gui {
+class IWindowInfosPublisherDelegator;
+
+class IWindowInfosPublisher : public ::android::IInterface {
+public:
+  typedef IWindowInfosPublisherDelegator DefaultDelegator;
+  DECLARE_META_INTERFACE(WindowInfosPublisher)
+  virtual ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) = 0;
+};  // class IWindowInfosPublisher
+
+class IWindowInfosPublisherDefault : public IWindowInfosPublisher {
+public:
+  ::android::IBinder* onAsBinder() override {
+    return nullptr;
+  }
+  ::android::binder::Status ackWindowInfosReceived(int64_t /*vsyncId*/, int64_t /*listenerId*/) override {
+    return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
+  }
+};  // class IWindowInfosPublisherDefault
+}  // namespace gui
+}  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
index 1f53b0d6495686e1c15adde33c5961e1979b04e9..97a98eec12857da708580970920671abf24881c4 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosListener.h
@@ -3,7 +3,6 @@
 #include <binder/IInterface.h>
 #include <android/gui/IWindowInfosListener.h>
 #include <android/gui/BnWindowInfosListener.h>
-#include <android/gui/BnWindowInfosReportedListener.h>
 #include <binder/Delegate.h>
 
 
@@ -21,12 +20,8 @@ public:
   explicit IWindowInfosListenerDelegator(const ::android::sp<IWindowInfosListener> &impl) : _aidl_delegate(impl) {}
 
   ::android::sp<IWindowInfosListener> getImpl() { return _aidl_delegate; }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override {
-    ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator> _windowInfosReportedListener;
-    if (windowInfosReportedListener) {
-      _windowInfosReportedListener = ::android::sp<::android::gui::IWindowInfosReportedListenerDelegator>::cast(delegate(windowInfosReportedListener));
-    }
-    return _aidl_delegate->onWindowInfosChanged(update, _windowInfosReportedListener);
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override {
+    return _aidl_delegate->onWindowInfosChanged(update);
   }
 private:
   ::android::sp<IWindowInfosListener> _aidl_delegate;
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..9ed08f2ac0e461165fadc37157bbec54945fcdba
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BnWindowInfosPublisher.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include <binder/IInterface.h>
+#include <android/gui/IWindowInfosPublisher.h>
+#include <android/gui/BnWindowInfosPublisher.h>
+#include <binder/Delegate.h>
+
+
+namespace android {
+namespace gui {
+class BnWindowInfosPublisher : public ::android::BnInterface<IWindowInfosPublisher> {
+public:
+  static constexpr uint32_t TRANSACTION_ackWindowInfosReceived = ::android::IBinder::FIRST_CALL_TRANSACTION + 0;
+  explicit BnWindowInfosPublisher();
+  ::android::status_t onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) override;
+};  // class BnWindowInfosPublisher
+
+class IWindowInfosPublisherDelegator : public BnWindowInfosPublisher {
+public:
+  explicit IWindowInfosPublisherDelegator(const ::android::sp<IWindowInfosPublisher> &impl) : _aidl_delegate(impl) {}
+
+  ::android::sp<IWindowInfosPublisher> getImpl() { return _aidl_delegate; }
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override {
+    return _aidl_delegate->ackWindowInfosReceived(vsyncId, listenerId);
+  }
+private:
+  ::android::sp<IWindowInfosPublisher> _aidl_delegate;
+};  // class IWindowInfosPublisherDelegator
+}  // namespace gui
+}  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
index 8126f8bda38be00041db95e9fa64e4c6e3bb4565..67d24f53925e595b49d4f6dca9232a2df78487d7 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosListener.h
@@ -11,7 +11,7 @@ class BpWindowInfosListener : public ::android::BpInterface<IWindowInfosListener
 public:
   explicit BpWindowInfosListener(const ::android::sp<::android::IBinder>& _aidl_impl);
   virtual ~BpWindowInfosListener() = default;
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) override;
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) override;
 };  // class BpWindowInfosListener
 }  // namespace gui
 }  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..a85dd289dff8c8e5adad202631d419d4da4c3d2b
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/BpWindowInfosPublisher.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <utils/Errors.h>
+#include <android/gui/IWindowInfosPublisher.h>
+
+namespace android {
+namespace gui {
+class BpWindowInfosPublisher : public ::android::BpInterface<IWindowInfosPublisher> {
+public:
+  explicit BpWindowInfosPublisher(const ::android::sp<::android::IBinder>& _aidl_impl);
+  virtual ~BpWindowInfosPublisher() = default;
+  ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) override;
+};  // class BpWindowInfosPublisher
+}  // namespace gui
+}  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
index 5a163a88a2bd8f391bafb13a34cc6a70ab5c9559..e28ca6ed516518459c68f0545579e8dfb6510b34 100644
--- a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosListener.h
@@ -1,17 +1,12 @@
 #pragma once
 
-#include <android/gui/IWindowInfosReportedListener.h>
 #include <binder/IBinder.h>
 #include <binder/IInterface.h>
 #include <binder/Status.h>
 #include <binder/Trace.h>
 #include <gui/WindowInfosUpdate.h>
-#include <optional>
 #include <utils/StrongPointer.h>
 
-namespace android::gui {
-class IWindowInfosReportedListener;
-}  // namespace android::gui
 namespace android {
 namespace gui {
 class IWindowInfosListenerDelegator;
@@ -20,7 +15,7 @@ class IWindowInfosListener : public ::android::IInterface {
 public:
   typedef IWindowInfosListenerDelegator DefaultDelegator;
   DECLARE_META_INTERFACE(WindowInfosListener)
-  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update, const ::android::sp<::android::gui::IWindowInfosReportedListener>& windowInfosReportedListener) = 0;
+  virtual ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& update) = 0;
 };  // class IWindowInfosListener
 
 class IWindowInfosListenerDefault : public IWindowInfosListener {
@@ -28,7 +23,7 @@ public:
   ::android::IBinder* onAsBinder() override {
     return nullptr;
   }
-  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/, const ::android::sp<::android::gui::IWindowInfosReportedListener>& /*windowInfosReportedListener*/) override {
+  ::android::binder::Status onWindowInfosChanged(const ::android::gui::WindowInfosUpdate& /*update*/) override {
     return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
   }
 };  // class IWindowInfosListenerDefault
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
new file mode 100644
index 0000000000000000000000000000000000000000..eabafa25063cdb58223ee1b3ea3aefb56db53257
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui_window_info_static/android_vendor.34_x86_x86_64_static_afdo-libgui_lto-thin/gen/aidl/android/gui/IWindowInfosPublisher.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include <binder/IBinder.h>
+#include <binder/IInterface.h>
+#include <binder/Status.h>
+#include <binder/Trace.h>
+#include <cstdint>
+#include <utils/StrongPointer.h>
+
+namespace android {
+namespace gui {
+class IWindowInfosPublisherDelegator;
+
+class IWindowInfosPublisher : public ::android::IInterface {
+public:
+  typedef IWindowInfosPublisherDelegator DefaultDelegator;
+  DECLARE_META_INTERFACE(WindowInfosPublisher)
+  virtual ::android::binder::Status ackWindowInfosReceived(int64_t vsyncId, int64_t listenerId) = 0;
+};  // class IWindowInfosPublisher
+
+class IWindowInfosPublisherDefault : public IWindowInfosPublisher {
+public:
+  ::android::IBinder* onAsBinder() override {
+    return nullptr;
+  }
+  ::android::binder::Status ackWindowInfosReceived(int64_t /*vsyncId*/, int64_t /*listenerId*/) override {
+    return ::android::binder::Status::fromStatusT(::android::UNKNOWN_TRANSACTION);
+  }
+};  // class IWindowInfosPublisherDefault
+}  // namespace gui
+}  // namespace android