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

Commit 5882228a authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Key revocation check is permissive when device is unlocked" am:...

Merge "Merge "Key revocation check is permissive when device is unlocked" am: a9384cdc am: 3f638d9a" into qt-qpr1-dev-plus-aosp
parents 27e92684 f2086f7b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -377,6 +377,7 @@ applications that come with the platform
    <privapp-permissions package="com.android.dynsystem">
        <permission name="android.permission.REBOOT"/>
        <permission name="android.permission.MANAGE_DYNAMIC_SYSTEM"/>
        <permission name="android.permission.READ_OEM_UNLOCK_STATE"/>
    </privapp-permissions>

    <privapp-permissions package="com.android.settings">
+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
    <uses-permission android:name="android.permission.MANAGE_DYNAMIC_SYSTEM" />
    <uses-permission android:name="android.permission.REBOOT" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.READ_OEM_UNLOCK_STATE" />

    <application
        android:allowBackup="false"
+14 −5
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.os.AsyncTask;
import android.os.MemoryFile;
import android.os.ParcelFileDescriptor;
import android.os.image.DynamicSystemManager;
import android.service.persistentdata.PersistentDataBlockManager;
import android.util.Log;
import android.webkit.URLUtil;

@@ -133,6 +134,7 @@ class InstallationAsyncTask extends AsyncTask<String, InstallationAsyncTask.Prog
    private final DynamicSystemManager mDynSystem;
    private final ProgressListener mListener;
    private final boolean mIsNetworkUrl;
    private final boolean mIsDeviceBootloaderUnlocked;
    private DynamicSystemManager.Session mInstallationSession;
    private KeyRevocationList mKeyRevocationList;

@@ -160,6 +162,13 @@ class InstallationAsyncTask extends AsyncTask<String, InstallationAsyncTask.Prog
        mDynSystem = dynSystem;
        mListener = listener;
        mIsNetworkUrl = URLUtil.isNetworkUrl(mUrl);
        PersistentDataBlockManager pdbManager =
                (PersistentDataBlockManager)
                        mContext.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
        mIsDeviceBootloaderUnlocked =
                (pdbManager != null)
                        && (pdbManager.getFlashLockState()
                                == PersistentDataBlockManager.FLASH_LOCK_UNLOCKED);
    }

    @Override
@@ -272,7 +281,6 @@ class InstallationAsyncTask extends AsyncTask<String, InstallationAsyncTask.Prog
                    String.format(Locale.US, "Unsupported URL: %s", mUrl));
        }

        // TODO(yochiang): Bypass this check if device is unlocked
        try {
            String listUrl = mContext.getString(R.string.key_revocation_list_url);
            mKeyRevocationList = KeyRevocationList.fromUrl(new URL(listUrl));
@@ -287,11 +295,12 @@ class InstallationAsyncTask extends AsyncTask<String, InstallationAsyncTask.Prog

    private void imageValidationThrowOrWarning(ImageValidationException e)
            throws ImageValidationException {
        if (mIsNetworkUrl) {
            throw e;
        } else {
            // If DSU is being installed from a local file URI, then be permissive
        if (mIsDeviceBootloaderUnlocked || !mIsNetworkUrl) {
            // If device is OEM unlocked or DSU is being installed from a local file URI,
            // then be permissive.
            Log.w(TAG, e.toString());
        } else {
            throw e;
        }
    }