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

Commit ea1c186f authored by Meng Wang's avatar Meng Wang
Browse files

Do not use hidden API StorageManager.inCryptKeeperBounce

The API should always return false since FBE is required for all devices
launching Android 10:
https://source.android.com/compatibility/10/android-10-cdd.html#9_9_2_encryption_requirements

Bug: 141247460
Test: manaul
Change-Id: I8978b236525a25db06604dcdc20bede0ed1e50a6
parent f1f6618a
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import android.os.Handler;
import android.os.Message;
import android.os.PowerManager;
import android.os.RegistrantList;
import android.os.storage.StorageManager;
import android.sysprop.TelephonyProperties;
import android.telephony.PhoneCapability;
import android.telephony.Rlog;
@@ -99,15 +98,21 @@ public class PhoneConfigurationManager {
        notifyCapabilityChanged();

        mPhones = PhoneFactory.getPhones();
        if (!StorageManager.inCryptKeeperBounce()) {

        /*
         * To support FDE (deprecated), additional check is needed:
         *
         * if (!StorageManager.inCryptKeeperBounce()) {
         *     // for loop below
         * } else {
         *     for (Phone phone : mPhones) {
         *         phone.mCi.registerForOn(mHandler, Phone.EVENT_RADIO_ON, phone);
         *     }
         * }
         */
        for (Phone phone : mPhones) {
            phone.mCi.registerForAvailable(mHandler, Phone.EVENT_RADIO_AVAILABLE, phone);
        }
        } else {
            for (Phone phone : mPhones) {
                phone.mCi.registerForOn(mHandler, Phone.EVENT_RADIO_ON, phone);
            }
        }
    }

    private PhoneCapability getDefaultCapability() {
+11 −11
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import android.os.Handler;
import android.os.Message;
import android.os.Registrant;
import android.os.RegistrantList;
import android.os.storage.StorageManager;
import android.preference.PreferenceManager;
import android.telephony.CarrierConfigManager;
import android.telephony.Rlog;
@@ -224,16 +223,17 @@ public class UiccController extends Handler {
        for (int i = 0; i < mCis.length; i++) {
            mCis[i].registerForIccStatusChanged(this, EVENT_ICC_STATUS_CHANGED, i);

            // TODO remove this once modem correctly notifies the unsols
            // If the device is unencrypted or has been decrypted or FBE is supported,
            // i.e. not in CryptKeeper bounce, read SIM when radio state is available.
            // Else wait for radio to be on. This is needed for the scenario when SIM is locked --
            // to avoid overlap of CryptKeeper and SIM unlock screen.
            if (!StorageManager.inCryptKeeperBounce()) {
            /*
             * To support FDE (deprecated), additional check is needed:
             *
             * if (!StorageManager.inCryptKeeperBounce()) {
             *     mCis[i].registerForAvailable(this, EVENT_RADIO_AVAILABLE, i);
             * } else {
             *     mCis[i].registerForOn(this, EVENT_RADIO_ON, i);
             * }
             */
            mCis[i].registerForAvailable(this, EVENT_RADIO_AVAILABLE, i);
            } else {
                mCis[i].registerForOn(this, EVENT_RADIO_ON, i);
            }

            mCis[i].registerForNotAvailable(this, EVENT_RADIO_UNAVAILABLE, i);
            mCis[i].registerForIccRefresh(this, EVENT_SIM_REFRESH, i);
        }