From c253a493d3ace0eb7baefe8f5c37a4c9da07d400 Mon Sep 17 00:00:00 2001 From: Atneya Nair Date: Fri, 12 May 2023 12:08:14 -0700 Subject: [PATCH] Filter out user handle in ST package check Only the app id part of uid matters in checking against the uid associated with a package from package manager. Bug: 281778398 Test: agsa/as smoke + user switch tests Change-Id: I8e00f95c5e2d756ef256828d6360c9f7e3226c10 --- .../android/server/soundtrigger/SoundTriggerService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java index 9fb5509141a73..13945a119e6f3 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java @@ -366,10 +366,10 @@ public class SoundTriggerService extends SystemService { try { int uid = mPackageManager.getPackageUid(mOriginatorIdentity.packageName, PackageManager.PackageInfoFlags.of(0)); - if (uid != mOriginatorIdentity.uid) { - throw new SecurityException("Package name: " + - mOriginatorIdentity.packageName + "with uid: " + uid - + "attempted to spoof as: " + mOriginatorIdentity.uid); + if (!UserHandle.isSameApp(uid, mOriginatorIdentity.uid)) { + throw new SecurityException("Uid " + mOriginatorIdentity.uid + + " attempted to spoof package name " + + mOriginatorIdentity.packageName + " with uid: " + uid); } } catch (PackageManager.NameNotFoundException e) { throw new SecurityException("Package name not found: "