Add hidden systemapi hasCarrierPrivileges(pkgname) to PhoneInterfaceManager.
Change-Id: I190b97db44da092f14c79ec5f693cade88200458
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index f1c3e18..f4d82c6 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -1660,4 +1660,24 @@
}
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
}
+
+ @Override
+ public int hasCarrierPrivileges(String pkgname) {
+ PackageManager packageManager = mPhone.getContext().getPackageManager();
+ try {
+ PackageInfo pInfo = packageManager.getPackageInfo(pkgname,
+ PackageManager.GET_SIGNATURES);
+ Signature[] signatures = pInfo.signatures;
+ for (Signature sig : signatures) {
+ int hasAccess = UiccController.getInstance().getUiccCard().hasCarrierPrivileges(
+ sig, pInfo.packageName);
+ if (hasAccess != TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS) {
+ return hasAccess;
+ }
+ }
+ } catch (PackageManager.NameNotFoundException ex) {
+ loge("NameNotFoundException: " + ex);
+ }
+ return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
+ }
}