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

Commit a6afa81d authored by Michal Karpinski's avatar Michal Karpinski Committed by Android (Google) Code Review
Browse files

Merge "Push the device owner packageName from DPMS to ATMS instead of calling...

Merge "Push the device owner packageName from DPMS to ATMS instead of calling DPM.isDeviceOwnerApp()"
parents adf522b2 4026caeb
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -989,8 +989,8 @@ class ActivityStarter {
        if (mSupervisor.mRecentTasks.isCallerRecents(callingUid)) {
            return false;
        }
        // don't abort if the callingPackage is a device owner
        if (mService.getDevicePolicyManager().isDeviceOwnerApp(callingPackage)) {
        // don't abort if the callingPackage is the device owner
        if (mService.isDeviceOwner(callingPackage)) {
            return false;
        }
        // anything that has fallen through would currently be aborted
+5 −0
Original line number Diff line number Diff line
@@ -492,4 +492,9 @@ public abstract class ActivityTaskManagerInternal {

    /** Returns true if uid has a visible window or its process is in a top state. */
    public abstract boolean isUidForeground(int uid);

    /**
     * Called by DevicePolicyManagerService to set the package name of the device owner.
     */
    public abstract void setDeviceOwnerPackageName(String deviceOwnerPkg);
}
+20 −9
Original line number Diff line number Diff line
@@ -151,7 +151,6 @@ import android.app.RemoteAction;
import android.app.WaitResult;
import android.app.WindowConfiguration;
import android.app.admin.DevicePolicyCache;
import android.app.admin.DevicePolicyManager;
import android.app.assist.AssistContent;
import android.app.assist.AssistStructure;
import android.app.usage.UsageStatsManagerInternal;
@@ -363,7 +362,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
    WindowManagerService mWindowManager;
    private UserManagerService mUserManager;
    private AppOpsService mAppOpsService;
    private DevicePolicyManager mDpm;
    /** All active uids in the system. */
    private final SparseArray<Integer> mActiveUids = new SparseArray<>();
    private final SparseArray<String> mPendingTempWhitelist = new SparseArray<>();
@@ -623,6 +621,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {

    private FontScaleSettingObserver mFontScaleSettingObserver;

    private String mDeviceOwnerPackageName;

    private final class FontScaleSettingObserver extends ContentObserver {
        private final Uri mFontScaleUri = Settings.System.getUriFor(FONT_SCALE);
        private final Uri mHideErrorDialogsUri = Settings.Global.getUriFor(HIDE_ERROR_DIALOGS);
@@ -838,13 +838,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
        return mAppOpsService;
    }

    DevicePolicyManager getDevicePolicyManager() {
        if (mDpm == null) {
            mDpm = mContext.getSystemService(DevicePolicyManager.class);
        }
        return mDpm;
    }

    boolean hasUserRestriction(String restriction, int userId) {
        return getUserManager().hasUserRestriction(restriction, userId);
    }
@@ -5725,6 +5718,17 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
                || mWindowManager.mRoot.isAnyNonToastWindowVisibleForUid(uid);
    }

    boolean isDeviceOwner(String packageName) {
        if (packageName == null) {
            return false;
        }
        return packageName.equals(mDeviceOwnerPackageName);
    }

    void setDeviceOwnerPackageName(String deviceOwnerPkg) {
        mDeviceOwnerPackageName = deviceOwnerPkg;
    }

    /**
     * @return whitelist tag for a uid from mPendingTempWhitelist, null if not currently on
     * the whitelist
@@ -7142,5 +7146,12 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
                return ActivityTaskManagerService.this.isUidForeground(uid);
            }
        }

        @Override
        public void setDeviceOwnerPackageName(String deviceOwnerPkg) {
            synchronized (mGlobalLock) {
                ActivityTaskManagerService.this.setDeviceOwnerPackageName(deviceOwnerPkg);
            }
        }
    }
}
+6 −1
Original line number Diff line number Diff line
@@ -247,6 +247,7 @@ import com.android.server.net.NetworkPolicyManagerInternal;
import com.android.server.pm.UserRestrictionsUtils;
import com.android.server.storage.DeviceStorageMonitorInternal;
import com.android.server.uri.UriGrantsManagerInternal;
import com.android.server.wm.ActivityTaskManagerInternal;
import com.google.android.collect.Sets;
@@ -1870,7 +1871,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
        Owners newOwners() {
            return new Owners(getUserManager(), getUserManagerInternal(),
                    getPackageManagerInternal());
                    getPackageManagerInternal(), getActivityTaskManagerInternal());
        }
        UserManager getUserManager() {
@@ -1885,6 +1886,10 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
            return LocalServices.getService(PackageManagerInternal.class);
        }
        ActivityTaskManagerInternal getActivityTaskManagerInternal() {
            return LocalServices.getService(ActivityTaskManagerInternal.class);
        }
        UsageStatsManagerInternal getUsageStatsManagerInternal() {
            return LocalServices.getService(UsageStatsManagerInternal.class);
        }
+17 −2
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import android.util.Xml;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.FastXmlSerializer;
import com.android.server.LocalServices;
import com.android.server.wm.ActivityTaskManagerInternal;

import libcore.io.IoUtils;

@@ -104,6 +105,7 @@ class Owners {
    private final UserManager mUserManager;
    private final UserManagerInternal mUserManagerInternal;
    private final PackageManagerInternal mPackageManagerInternal;
    private final ActivityTaskManagerInternal mActivityTaskManagerInternal;

    private boolean mSystemReady;

@@ -129,18 +131,22 @@ class Owners {

    public Owners(UserManager userManager,
            UserManagerInternal userManagerInternal,
            PackageManagerInternal packageManagerInternal) {
        this(userManager, userManagerInternal, packageManagerInternal, new Injector());
            PackageManagerInternal packageManagerInternal,
            ActivityTaskManagerInternal activityTaskManagerInternal) {
        this(userManager, userManagerInternal, packageManagerInternal,
                activityTaskManagerInternal, new Injector());
    }

    @VisibleForTesting
    Owners(UserManager userManager,
            UserManagerInternal userManagerInternal,
            PackageManagerInternal packageManagerInternal,
            ActivityTaskManagerInternal activityTaskManagerInternal,
            Injector injector) {
        mUserManager = userManager;
        mUserManagerInternal = userManagerInternal;
        mPackageManagerInternal = packageManagerInternal;
        mActivityTaskManagerInternal = activityTaskManagerInternal;
        mInjector = injector;
    }

@@ -187,6 +193,7 @@ class Owners {
                        getDeviceOwnerUserId()));
            }
            pushToPackageManagerLocked();
            pushToActivityTaskManagerLocked();
            pushToAppOpsLocked();
        }
    }
@@ -201,6 +208,11 @@ class Owners {
                po);
    }

    private void pushToActivityTaskManagerLocked() {
        mActivityTaskManagerInternal.setDeviceOwnerPackageName(mDeviceOwner != null
                ? mDeviceOwner.packageName : null);
    }

    String getDeviceOwnerPackageName() {
        synchronized (mLock) {
            return mDeviceOwner != null ? mDeviceOwner.packageName : null;
@@ -275,6 +287,7 @@ class Owners {

            mUserManagerInternal.setDeviceManaged(true);
            pushToPackageManagerLocked();
            pushToActivityTaskManagerLocked();
            pushToAppOpsLocked();
        }
    }
@@ -286,6 +299,7 @@ class Owners {

            mUserManagerInternal.setDeviceManaged(false);
            pushToPackageManagerLocked();
            pushToActivityTaskManagerLocked();
            pushToAppOpsLocked();
        }
    }
@@ -333,6 +347,7 @@ class Owners {
                    mDeviceOwner.remoteBugreportHash, /* canAccessDeviceIds =*/
                    mDeviceOwner.canAccessDeviceIds);
            pushToPackageManagerLocked();
            pushToActivityTaskManagerLocked();
            pushToAppOpsLocked();
        }
    }
Loading