diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java index 9d70f4cba42098686a796cc3c14c61b5d8c211c3..7aa5c65f7f4c1d00c51fe46437b5e714019c5a2b 100644 --- a/services/core/java/com/android/server/pm/ComputerEngine.java +++ b/services/core/java/com/android/server/pm/ComputerEngine.java @@ -4297,7 +4297,12 @@ public class ComputerEngine implements Computer { if (Process.isIsolatedUid(uid) && mPermissionManager.getHotwordDetectionServiceProvider() != null && uid == mPermissionManager.getHotwordDetectionServiceProvider().getUid()) { - uid = getIsolatedOwner(uid); + try { + uid = getIsolatedOwner(uid); + } catch (IllegalStateException e) { + // If the owner uid doesn't exist, just use the current uid + Slog.wtf(TAG, "Expected isolated uid " + uid + " to have an owner", e); + } } final int callingUserId = UserHandle.getUserId(callingUid); final int appId = UserHandle.getAppId(uid); @@ -4338,7 +4343,12 @@ public class ComputerEngine implements Computer { if (Process.isIsolatedUid(uid) && mPermissionManager.getHotwordDetectionServiceProvider() != null && uid == mPermissionManager.getHotwordDetectionServiceProvider().getUid()) { - uid = getIsolatedOwner(uid); + try { + uid = getIsolatedOwner(uid); + } catch (IllegalStateException e) { + // If the owner uid doesn't exist, just use the current uid + Slog.wtf(TAG, "Expected isolated uid " + uid + " to have an owner", e); + } } final int appId = UserHandle.getAppId(uid); final Object obj = mSettings.getSettingBase(appId);