From e83500d732acf282b34acbc30b257e55ad599400 Mon Sep 17 00:00:00 2001 From: Vladimir Komsiyski Date: Thu, 8 Jun 2023 11:16:00 +0200 Subject: [PATCH] Clear identity when releasing display resources. We already do this in `close()` but not in `onVirtualDisplayRemoved()`. This causes a security exception due to missing `WAKE_LOCK` permission on builds that use HSUM. Fix: 286185979 Test: presubmit Change-Id: Iebbb04f6223d465beb1fbfe0f28d3a96e4304db3 Merged-In: I40447a461409fb523be3932d67b1fc6f0843e9e9 --- .../server/companion/virtual/VirtualDeviceImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java index 6b55d7ed4d56f..cd2f844294e33 100644 --- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java +++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java @@ -987,8 +987,12 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub "Virtual device doesn't have a virtual display with ID " + displayId); } - releaseOwnedVirtualDisplayResources(virtualDisplayWrapper); - + final long ident = Binder.clearCallingIdentity(); + try { + releaseOwnedVirtualDisplayResources(virtualDisplayWrapper); + } finally { + Binder.restoreCallingIdentity(ident); + } } /**