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 7c228748414f3..3536561f0d81a 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -7517,7 +7517,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) { @@ -7568,7 +7568,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); @@ -7578,6 +7578,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 e8ce2b457ab46..68fd9ac8d6bde 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1000,7 +1000,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. @@ -1357,9 +1357,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.