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;
+    }
 }