Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 644d5ea6 authored by Pankaj Kanwar's avatar Pankaj Kanwar Committed by Gerrit Code Review
Browse files

Merge "Address IMSI privacy issues."

parents 545e2038 26509cda
Loading
Loading
Loading
Loading
+28 −1
Original line number Diff line number Diff line
@@ -2820,6 +2820,33 @@ public class TelephonyManager {
        }
    }

    /**
     * Resets the Carrier Keys in the database. This involves 2 steps:
     *  1. Delete the keys from the database.
     *  2. Send an intent to download new Certificates.
     * <p>
     * Requires Permission:
     *   {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
     * @hide
     */
    public void resetCarrierKeysForImsiEncryption() {
        try {
            IPhoneSubInfo info = getSubscriberInfo();
            if (info == null) {
                throw new RuntimeException("IMSI error: Subscriber Info is null");
            }
            int subId = getSubId(SubscriptionManager.getDefaultDataSubscriptionId());
            info.resetCarrierKeysForImsiEncryption(subId, mContext.getOpPackageName());
        } catch (RemoteException ex) {
            Rlog.e(TAG, "getCarrierInfoForImsiEncryption RemoteException" + ex);
            throw new RuntimeException("IMSI error: Remote Exception");
        } catch (NullPointerException ex) {
            // This could happen before phone restarts due to crashing
            Rlog.e(TAG, "getCarrierInfoForImsiEncryption NullPointerException" + ex);
            throw new RuntimeException("IMSI error: Null Pointer exception");
        }
    }

   /**
     * @param keyAvailability bitmask that defines the availabilty of keys for a type.
     * @param keyType the key type which is being checked. (WLAN, EPDG)
@@ -2855,7 +2882,7 @@ public class TelephonyManager {
     * device keystore.
     * <p>
     * Requires Permission:
     *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
     *   {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
     * @param imsiEncryptionInfo which includes the Key Type, the Public Key
     *        (java.security.PublicKey) and the Key Identifier.and the Key Identifier.
     *        The keyIdentifier Attribute value pair that helps a server locate
+7 −0
Original line number Diff line number Diff line
@@ -151,6 +151,13 @@ interface IPhoneSubInfo {
    void setCarrierInfoForImsiEncryption(int subId, String callingPackage,
    in ImsiEncryptionInfo imsiEncryptionInfo);

    /**
     * Resets the Carrier Keys in the database. This involves 2 steps:
     *  1. Delete the keys from the database.
     *  2. Send an intent to download new Certificates.
     */
    void resetCarrierKeysForImsiEncryption(int subId, String callingPackage);

    /**
     * Retrieves the alpha identifier associated with the voice mail number.
     */
+6 −0
Original line number Diff line number Diff line
@@ -486,4 +486,10 @@ public class TelephonyIntents {
    */
    public static final String ACTION_REQUEST_OMADM_CONFIGURATION_UPDATE =
            "com.android.omadm.service.CONFIGURATION_UPDATE";

    /**
     * Broadcast action to trigger the Carrier Certificate download.
     */
    public static final String ACTION_CARRIER_CERTIFICATE_DOWNLOAD =
            "com.android.internal.telephony.ACTION_CARRIER_CERTIFICATE_DOWNLOAD";
}