diff options
4 files changed, 8 insertions, 7 deletions
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index 99deac4c8cf4..62fdfaea1303 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -280,7 +280,7 @@ public final class SurfaceControl implements Parcelable { private static native int nativeGetLayerId(long nativeObject); private static native void nativeAddTransactionCommittedListener(long nativeObject, TransactionCommittedListener listener); - private static native void nativeSanitize(long transactionObject); + private static native void nativeSanitize(long transactionObject, int pid, int uid); private static native void nativeSetDestinationFrame(long transactionObj, long nativeObject, int l, int t, int r, int b); private static native void nativeSetDefaultApplyToken(IBinder token); @@ -3960,8 +3960,8 @@ public final class SurfaceControl implements Parcelable { /** * @hide */ - public void sanitize() { - nativeSanitize(mNativeObject); + public void sanitize(int pid, int uid) { + nativeSanitize(mNativeObject, pid, uid); } /** diff --git a/core/java/android/window/SurfaceSyncGroup.java b/core/java/android/window/SurfaceSyncGroup.java index eec05b94734b..dfdff9ef97ce 100644 --- a/core/java/android/window/SurfaceSyncGroup.java +++ b/core/java/android/window/SurfaceSyncGroup.java @@ -714,6 +714,7 @@ public final class SurfaceSyncGroup { public void onTransactionReady(Transaction t) { synchronized (mLock) { if (t != null) { + t.sanitize(Binder.getCallingPid(), Binder.getCallingUid()); // When an older parent sync group is added due to a child syncGroup // getting added to multiple groups, we need to maintain merge order // so the older parentSyncGroup transactions are overwritten by diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp index 193099baad48..424925328dfd 100644 --- a/core/jni/android_view_SurfaceControl.cpp +++ b/core/jni/android_view_SurfaceControl.cpp @@ -972,9 +972,9 @@ static void nativeSurfaceFlushJankData(JNIEnv* env, jclass clazz, jlong nativeOb SurfaceComposerClient::Transaction::sendSurfaceFlushJankDataTransaction(ctrl); } -static void nativeSanitize(JNIEnv* env, jclass clazz, jlong transactionObj) { +static void nativeSanitize(JNIEnv* env, jclass clazz, jlong transactionObj, jint pid, jint uid) { auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj); - transaction->sanitize(); + transaction->sanitize(pid, uid); } static void nativeSetDestinationFrame(JNIEnv* env, jclass clazz, jlong transactionObj, @@ -2268,7 +2268,7 @@ static const JNINativeMethod sSurfaceControlMethods[] = { (void*) nativeSetTrustedPresentationCallback }, {"nativeClearTrustedPresentationCallback", "(JJ)V", (void*) nativeClearTrustedPresentationCallback }, - {"nativeSanitize", "(J)V", + {"nativeSanitize", "(JII)V", (void*) nativeSanitize }, {"nativeSetDestinationFrame", "(JJIIII)V", (void*)nativeSetDestinationFrame }, diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index f253fb0c7271..1a2b57cc7d61 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -2675,7 +2675,7 @@ public class WindowManagerService extends IWindowManager.Stub void finishDrawingWindow(Session session, IWindow client, @Nullable SurfaceControl.Transaction postDrawTransaction, int seqId) { if (postDrawTransaction != null) { - postDrawTransaction.sanitize(); + postDrawTransaction.sanitize(Binder.getCallingPid(), Binder.getCallingUid()); } final long origId = Binder.clearCallingIdentity(); |