From 310c9fbc204f06c19ed500eb67181a91990aa89b Mon Sep 17 00:00:00 2001 From: paulhu Date: Thu, 10 Dec 2020 23:32:32 +0800 Subject: [PATCH] Replace PackageManager @hide APIs ConnectivityService is using PackageManager#getApplicationInfoAsUser() to get application info but this API is not able to call after CS becomes a mainline module. Thus, replace it with formal API. Bug: 170593746 Test: atest FrameworksNetTests Test: atest CtsNetTestCasesLegacyApi22 Change-Id: Idd1269aa50e234801583097bb6f40b099bab8fba --- .../java/com/android/server/ConnectivityService.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 3552933f33..5c1405ce2c 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -5566,11 +5566,12 @@ public class ConnectivityService extends IConnectivityManager.Stub } private boolean checkUnsupportedStartingFrom(int version, String callingPackageName) { - final PackageManager pm = mContext.getPackageManager(); - final int userId = UserHandle.getCallingUserId(); + final UserHandle user = UserHandle.getUserHandleForUid(Binder.getCallingUid()); + final PackageManager pm = + mContext.createContextAsUser(user, 0 /* flags */).getPackageManager(); try { - final int callingVersion = pm.getApplicationInfoAsUser( - callingPackageName, 0 /* flags */, userId).targetSdkVersion; + final int callingVersion = pm.getApplicationInfo( + callingPackageName, 0 /* flags */).targetSdkVersion; if (callingVersion < version) return false; } catch (PackageManager.NameNotFoundException e) { } return true;