Update VNDK snapshot v34 to build 10781007. am: c06b3d9902 am: 5d91308027 am: 7334b91f88

Original change: https://googleplex-android-review.googlesource.com/c/platform/prebuilts/vndk/v34/+/24719895

Change-Id: I08c911a5a021918c8639642f14c5233ca4ea6328
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/arm/Android.bp b/arm/Android.bp
index 1f0f6d6..85c0835 100644
--- a/arm/Android.bp
+++ b/arm/Android.bp
@@ -3307,7 +3307,7 @@
         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 f93b0b3..5979489 100755
--- a/arm/arch-arm-armv7-a-neon/shared/vndk-core/libgui.so
+++ b/arm/arch-arm-armv7-a-neon/shared/vndk-core/libgui.so
Binary files 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 013f338..b4365aa 100755
--- a/arm/arch-arm-armv7-a-neon/shared/vndk-core/libziparchive.so
+++ b/arm/arch-arm-armv7-a-neon/shared/vndk-core/libziparchive.so
Binary files 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 95719ca..b485fe1 100755
--- a/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libprocessgroup.so
+++ b/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libprocessgroup.so
Binary files 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 18a22c9..1f4b951 100755
--- a/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libutils.so
+++ b/arm/arch-arm-armv7-a-neon/shared/vndk-sp/libutils.so
Binary files 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 52d7d3d..163408d 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 @@
     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 7c150d5..3ff6735 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 38cb108..684e21a 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 @@
 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 @@
 
     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 32c21f6..c787fc9 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 @@
 
 #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 c7a30eb..744a45b 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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 1f53b0d..97a98ee 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 @@
   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 0000000..9ed08f2
--- /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 8126f8b..67d24f5 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 @@
 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 0000000..a85dd28
--- /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 5a163a8..e28ca6e 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 @@
 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 @@
   ::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 0000000..eabafa2
--- /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 eb40357..513796d 100644
--- a/arm64/Android.bp
+++ b/arm64/Android.bp
@@ -4916,7 +4916,7 @@
         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 fd39f90..e132e1f 100755
--- a/arm64/arch-arm-armv8-a/shared/vndk-core/libgui.so
+++ b/arm64/arch-arm-armv8-a/shared/vndk-core/libgui.so
Binary files 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 255a5c6..92d9394 100755
--- a/arm64/arch-arm-armv8-a/shared/vndk-core/libziparchive.so
+++ b/arm64/arch-arm-armv8-a/shared/vndk-core/libziparchive.so
Binary files 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 e90c576..9470ba9 100755
--- a/arm64/arch-arm-armv8-a/shared/vndk-sp/libprocessgroup.so
+++ b/arm64/arch-arm-armv8-a/shared/vndk-sp/libprocessgroup.so
Binary files 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 acef381..1cbd002 100755
--- a/arm64/arch-arm-armv8-a/shared/vndk-sp/libutils.so
+++ b/arm64/arch-arm-armv8-a/shared/vndk-sp/libutils.so
Binary files 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 964cfa7..a63ae8b 100755
--- a/arm64/arch-arm64-armv8-a/shared/vndk-core/libbinder.so
+++ b/arm64/arch-arm64-armv8-a/shared/vndk-core/libbinder.so
Binary files 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 0c2fe59..5656dde 100755
--- a/arm64/arch-arm64-armv8-a/shared/vndk-core/libgui.so
+++ b/arm64/arch-arm64-armv8-a/shared/vndk-core/libgui.so
Binary files 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 981be90..f05b93b 100755
--- a/arm64/arch-arm64-armv8-a/shared/vndk-core/libziparchive.so
+++ b/arm64/arch-arm64-armv8-a/shared/vndk-core/libziparchive.so
Binary files 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 971b829..b98b9cb 100755
--- a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libbase.so
+++ b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libbase.so
Binary files 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 2f9489f..aa585f3 100755
--- a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libcutils.so
+++ b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libcutils.so
Binary files 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 cca680b..413fb38 100755
--- a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libprocessgroup.so
+++ b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libprocessgroup.so
Binary files 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 83e5700..f782257 100755
--- a/arm64/arch-arm64-armv8-a/shared/vndk-sp/libutils.so
+++ b/arm64/arch-arm64-armv8-a/shared/vndk-sp/libutils.so
Binary files 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 52d7d3d..163408d 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 @@
     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 7c150d5..3ff6735 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 38cb108..684e21a 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 @@
 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 @@
 
     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 32c21f6..c787fc9 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 @@
 
 #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 c7a30eb..744a45b 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 c7a30eb..744a45b 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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 1f53b0d..97a98ee 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 @@
   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 0000000..9ed08f2
--- /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 8126f8b..67d24f5 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 @@
 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 0000000..a85dd28
--- /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 5a163a8..e28ca6e 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 @@
 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 @@
   ::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 0000000..eabafa2
--- /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 1f53b0d..97a98ee 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 @@
   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 0000000..9ed08f2
--- /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 8126f8b..67d24f5 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 @@
 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 0000000..a85dd28
--- /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 5a163a8..e28ca6e 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 @@
 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 @@
   ::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 0000000..eabafa2
--- /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 f5b6953..8be3f2a 100644
--- a/x86/Android.bp
+++ b/x86/Android.bp
@@ -3307,7 +3307,7 @@
         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 14b9cdd..bba3317 100755
--- a/x86/arch-x86/shared/vndk-core/libbinder.so
+++ b/x86/arch-x86/shared/vndk-core/libbinder.so
Binary files differ
diff --git a/x86/arch-x86/shared/vndk-core/libgui.so b/x86/arch-x86/shared/vndk-core/libgui.so
index f24e135..b7f16ff 100755
--- a/x86/arch-x86/shared/vndk-core/libgui.so
+++ b/x86/arch-x86/shared/vndk-core/libgui.so
Binary files differ
diff --git a/x86/arch-x86/shared/vndk-core/libziparchive.so b/x86/arch-x86/shared/vndk-core/libziparchive.so
index 83d1122..b3e2e1c 100755
--- a/x86/arch-x86/shared/vndk-core/libziparchive.so
+++ b/x86/arch-x86/shared/vndk-core/libziparchive.so
Binary files differ
diff --git a/x86/arch-x86/shared/vndk-sp/libbase.so b/x86/arch-x86/shared/vndk-sp/libbase.so
index baf76ed..cc23b32 100755
--- a/x86/arch-x86/shared/vndk-sp/libbase.so
+++ b/x86/arch-x86/shared/vndk-sp/libbase.so
Binary files differ
diff --git a/x86/arch-x86/shared/vndk-sp/libcutils.so b/x86/arch-x86/shared/vndk-sp/libcutils.so
index 807b3ae..1b5117d 100755
--- a/x86/arch-x86/shared/vndk-sp/libcutils.so
+++ b/x86/arch-x86/shared/vndk-sp/libcutils.so
Binary files differ
diff --git a/x86/arch-x86/shared/vndk-sp/libprocessgroup.so b/x86/arch-x86/shared/vndk-sp/libprocessgroup.so
index b3a562c..2df78de 100755
--- a/x86/arch-x86/shared/vndk-sp/libprocessgroup.so
+++ b/x86/arch-x86/shared/vndk-sp/libprocessgroup.so
Binary files differ
diff --git a/x86/arch-x86/shared/vndk-sp/libutils.so b/x86/arch-x86/shared/vndk-sp/libutils.so
index b9ec415..c473152 100755
--- a/x86/arch-x86/shared/vndk-sp/libutils.so
+++ b/x86/arch-x86/shared/vndk-sp/libutils.so
Binary files 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 52d7d3d..163408d 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 @@
     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 7c150d5..3ff6735 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 38cb108..684e21a 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 @@
 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 @@
 
     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 32c21f6..c787fc9 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 @@
 
 #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 c7a30eb..744a45b 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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 1f53b0d..97a98ee 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 @@
   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 0000000..9ed08f2
--- /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 8126f8b..67d24f5 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 @@
 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 0000000..a85dd28
--- /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 5a163a8..e28ca6e 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 @@
 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 @@
   ::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 0000000..eabafa2
--- /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 c77d4c1..edadf19 100644
--- a/x86_64/Android.bp
+++ b/x86_64/Android.bp
@@ -4916,7 +4916,7 @@
         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 43a7275..64f2943 100755
--- a/x86_64/arch-x86-x86_64/shared/vndk-core/libbinder.so
+++ b/x86_64/arch-x86-x86_64/shared/vndk-core/libbinder.so
Binary files 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 58d0508..3b27368 100755
--- a/x86_64/arch-x86-x86_64/shared/vndk-core/libgui.so
+++ b/x86_64/arch-x86-x86_64/shared/vndk-core/libgui.so
Binary files 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 62258bd..c5736ec 100755
--- a/x86_64/arch-x86-x86_64/shared/vndk-core/libziparchive.so
+++ b/x86_64/arch-x86-x86_64/shared/vndk-core/libziparchive.so
Binary files 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 e779403..b6ff334 100755
--- a/x86_64/arch-x86-x86_64/shared/vndk-sp/libbase.so
+++ b/x86_64/arch-x86-x86_64/shared/vndk-sp/libbase.so
Binary files 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 194ca2e..bb10267 100755
--- a/x86_64/arch-x86-x86_64/shared/vndk-sp/libcutils.so
+++ b/x86_64/arch-x86-x86_64/shared/vndk-sp/libcutils.so
Binary files 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 698777e..8c7cb5a 100755
--- a/x86_64/arch-x86-x86_64/shared/vndk-sp/libprocessgroup.so
+++ b/x86_64/arch-x86-x86_64/shared/vndk-sp/libprocessgroup.so
Binary files 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 ad67b1a..88106a7 100755
--- a/x86_64/arch-x86-x86_64/shared/vndk-sp/libutils.so
+++ b/x86_64/arch-x86-x86_64/shared/vndk-sp/libutils.so
Binary files 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 6793984..37ef91f 100755
--- a/x86_64/arch-x86_64/shared/vndk-core/libbinder.so
+++ b/x86_64/arch-x86_64/shared/vndk-core/libbinder.so
Binary files 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 8c162a6..fe8a0a5 100755
--- a/x86_64/arch-x86_64/shared/vndk-core/libgui.so
+++ b/x86_64/arch-x86_64/shared/vndk-core/libgui.so
Binary files 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 603d190..3113bcf 100755
--- a/x86_64/arch-x86_64/shared/vndk-core/libziparchive.so
+++ b/x86_64/arch-x86_64/shared/vndk-core/libziparchive.so
Binary files 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 bcbf954..b571ac4 100755
--- a/x86_64/arch-x86_64/shared/vndk-sp/libbase.so
+++ b/x86_64/arch-x86_64/shared/vndk-sp/libbase.so
Binary files 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 debe1d6..1fca350 100755
--- a/x86_64/arch-x86_64/shared/vndk-sp/libcutils.so
+++ b/x86_64/arch-x86_64/shared/vndk-sp/libcutils.so
Binary files 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 0e2302b..b16781e 100755
--- a/x86_64/arch-x86_64/shared/vndk-sp/libprocessgroup.so
+++ b/x86_64/arch-x86_64/shared/vndk-sp/libprocessgroup.so
Binary files 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 ecf47cc..b1daa64 100755
--- a/x86_64/arch-x86_64/shared/vndk-sp/libutils.so
+++ b/x86_64/arch-x86_64/shared/vndk-sp/libutils.so
Binary files 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 52d7d3d..163408d 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 @@
     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 7c150d5..3ff6735 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 38cb108..684e21a 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 @@
 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 @@
 
     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 32c21f6..c787fc9 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 @@
 
 #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 c7a30eb..744a45b 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 c7a30eb..744a45b 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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 f7f586a..46d20ac 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 @@
   ::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 0000000..ce72aa3
--- /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 7754ce8..de07448 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 @@
   ::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 0000000..27af6b1
--- /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 fde97b8..8cc0df5 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 OverlayProperties;
 class PullAtomData;
 class StaticDisplayInfo;
+class WindowInfosListenerInfo;
 }  // namespace android::gui
 namespace android {
 namespace gui {
@@ -143,7 +145,7 @@
   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 @@
   ::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 0000000..0b0a304
--- /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 1f53b0d..97a98ee 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 @@
   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 0000000..9ed08f2
--- /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 8126f8b..67d24f5 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 @@
 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 0000000..a85dd28
--- /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 5a163a8..e28ca6e 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 @@
 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 @@
   ::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 0000000..eabafa2
--- /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 1f53b0d..97a98ee 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 @@
   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 0000000..9ed08f2
--- /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 8126f8b..67d24f5 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 @@
 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 0000000..a85dd28
--- /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 5a163a8..e28ca6e 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 @@
 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 @@
   ::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 0000000..eabafa2
--- /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