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

Commit afe18ed6 authored by justinzhang's avatar justinzhang Committed by Android (Google) Code Review
Browse files

Merge "Use DeviecPolicyManager to authenticate lock task"

parents 1c7c2a0d 7bd35c7e
Loading
Loading
Loading
Loading
+19 −11
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.app.AppOpsManager;
import android.app.IActivityContainer;
import android.app.IActivityContainerCallback;
import android.app.IAppTask;
import android.app.admin.DevicePolicyManager;
import android.appwidget.AppWidgetManager;
import android.graphics.Rect;
import android.os.BatteryStats;
@@ -7576,12 +7577,9 @@ public final class ActivityManagerService extends ActivityManagerNative
    }
    private boolean isLockTaskAuthorized(ComponentName name) {
//        enforceCallingPermission(android.Manifest.permission.REORDER_TASKS,
//                "startLockTaskMode()");
//        DevicePolicyManager dpm = (DevicePolicyManager)
//                mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
//        return dpm != null && dpm.isLockTaskPermitted(name);
        return true;
        final DevicePolicyManager dpm = (DevicePolicyManager)
                mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
        return dpm != null && dpm.isLockTaskPermitted(name);
    }
    private void startLockTaskMode(TaskRecord task) {
@@ -7640,8 +7638,18 @@ public final class ActivityManagerService extends ActivityManagerNative
    @Override
    public void stopLockTaskMode() {
//        enforceCallingPermission(android.Manifest.permission.REORDER_TASKS,
//                "stopLockTaskMode()");
        // Check if the calling task is eligible to use lock task
        final int uid = Binder.getCallingUid();
        try {
            final String name = AppGlobals.getPackageManager().getNameForUid(uid);
            if (!isLockTaskAuthorized(new ComponentName(name, name))) {
                return;
            }
        } catch (RemoteException e) {
            Log.d(TAG, "stopLockTaskMode " + e);
            return;
        }
        // Stop lock task
        synchronized (this) {
            mStackSupervisor.setLockTaskModeLocked(null);
        }