From 331fd66f153d1cf73c79b8af1908917924d95831 Mon Sep 17 00:00:00 2001 From: atrost Date: Fri, 22 Nov 2019 15:30:27 +0000 Subject: [PATCH] Use PackageManagerInternal instead of PackageManager in PlatformCompat. PlatformCompat service runs in the system service, and therefore can use PackageManagerInternal directly. Test: local flash, test app killed. Change-Id: I7fa13cde7d4698a2d2653711ac8a7d460c54dfe2 --- .../android/server/compat/PlatformCompat.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/services/core/java/com/android/server/compat/PlatformCompat.java b/services/core/java/com/android/server/compat/PlatformCompat.java index ae5ad7ea1261b..311e24fd5ee2a 100644 --- a/services/core/java/com/android/server/compat/PlatformCompat.java +++ b/services/core/java/com/android/server/compat/PlatformCompat.java @@ -20,7 +20,7 @@ import android.app.ActivityManager; import android.app.IActivityManager; import android.content.Context; import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; +import android.content.pm.PackageManagerInternal; import android.os.Binder; import android.os.RemoteException; import android.os.UserHandle; @@ -32,6 +32,7 @@ import com.android.internal.compat.CompatibilityChangeConfig; import com.android.internal.compat.CompatibilityChangeInfo; import com.android.internal.compat.IPlatformCompat; import com.android.internal.util.DumpUtils; +import com.android.server.LocalServices; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -197,12 +198,8 @@ public class PlatformCompat extends IPlatformCompat.Stub { } private ApplicationInfo getApplicationInfo(String packageName, int userId) { - try { - return mContext.getPackageManager().getApplicationInfoAsUser(packageName, 0, userId); - } catch (PackageManager.NameNotFoundException e) { - Slog.e(TAG, "No installed package " + packageName); - } - return null; + return LocalServices.getService(PackageManagerInternal.class).getApplicationInfo( + packageName, 0, userId, userId); } private void reportChange(long changeId, int uid, int state) { @@ -210,11 +207,11 @@ public class PlatformCompat extends IPlatformCompat.Stub { } private void killPackage(String packageName) { - int uid = -1; - try { - uid = mContext.getPackageManager().getPackageUid(packageName, 0); - } catch (PackageManager.NameNotFoundException e) { - Slog.w(TAG, "Didn't find package " + packageName + " on device.", e); + int uid = LocalServices.getService(PackageManagerInternal.class).getPackageUid(packageName, + 0, UserHandle.myUserId()); + + if (uid < 0) { + Slog.w(TAG, "Didn't find package " + packageName + " on device."); return; }