diff --git a/services/usage/java/com/android/server/usage/AppStandbyController.java b/services/usage/java/com/android/server/usage/AppStandbyController.java index 77866279a751c..75e8fb5a34fe1 100644 --- a/services/usage/java/com/android/server/usage/AppStandbyController.java +++ b/services/usage/java/com/android/server/usage/AppStandbyController.java @@ -1356,7 +1356,7 @@ public class AppStandbyController { private void fetchCarrierPrivilegedAppsLocked() { TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class); - mCarrierPrivilegedApps = telephonyManager.getPackagesWithCarrierPrivileges(); + mCarrierPrivilegedApps = telephonyManager.getPackagesWithCarrierPrivilegesForAllPhones(); mHaveCarrierPrivilegedApps = true; if (DEBUG) { Slog.d(TAG, "apps with carrier privilege " + mCarrierPrivilegedApps); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 328a0a7a9512f..dab1e6f4abde2 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -7475,7 +7475,7 @@ public class TelephonyManager { try { ITelephony telephony = getITelephony(); if (telephony != null) - return telephony.checkCarrierPrivilegesForPackage(pkgName); + return telephony.checkCarrierPrivilegesForPackage(getSubId(), pkgName); } catch (RemoteException ex) { Rlog.e(TAG, "checkCarrierPrivilegesForPackage RemoteException", ex); } catch (NullPointerException ex) { @@ -7526,7 +7526,7 @@ public class TelephonyManager { try { ITelephony telephony = getITelephony(); if (telephony != null) { - return telephony.getPackagesWithCarrierPrivileges(); + return telephony.getPackagesWithCarrierPrivileges(getPhoneId()); } } catch (RemoteException ex) { Rlog.e(TAG, "getPackagesWithCarrierPrivileges RemoteException", ex); @@ -7536,6 +7536,22 @@ public class TelephonyManager { return Collections.EMPTY_LIST; } + /** @hide */ + public List getPackagesWithCarrierPrivilegesForAllPhones() { + try { + ITelephony telephony = getITelephony(); + if (telephony != null) { + return telephony.getPackagesWithCarrierPrivilegesForAllPhones(); + } + } catch (RemoteException ex) { + Rlog.e(TAG, "getPackagesWithCarrierPrivilegesForAllPhones RemoteException", ex); + } catch (NullPointerException ex) { + Rlog.e(TAG, "getPackagesWithCarrierPrivilegesForAllPhones NPE", ex); + } + return Collections.EMPTY_LIST; + } + + /** @hide */ @SystemApi @SuppressLint("Doclava125") diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 3991fea66a855..5ae818f9372b7 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -998,7 +998,7 @@ interface ITelephony { /** * Similar to above, but check for the package whose name is pkgName. */ - int checkCarrierPrivilegesForPackage(String pkgName); + int checkCarrierPrivilegesForPackage(int subId, String pkgName); /** * Similar to above, but check across all phones. @@ -1355,9 +1355,14 @@ interface ITelephony { in PhoneAccountHandle phoneAccountHandle, boolean enabled); /** - * Returns a list of packages that have carrier privileges. + * Returns a list of packages that have carrier privileges for the specific phone. */ - List getPackagesWithCarrierPrivileges(); + List getPackagesWithCarrierPrivileges(int phoneId); + + /** + * Returns a list of packages that have carrier privileges. + */ + List getPackagesWithCarrierPrivilegesForAllPhones(); /** * Return the application ID for the app type.