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

Commit 5f30cfd5 authored by Alex Buynytskyy's avatar Alex Buynytskyy
Browse files

More debug info on package state changes.

Bug: 273282505
Test: presubmit
Change-Id: I42b60df64fde4b6b8d408c657ed842df7cb8a4c9
parent 181ccdc5
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -3052,7 +3052,7 @@ public class ApplicationPackageManager extends PackageManager {
            mPM.setComponentEnabledSetting(componentName, enabled
                    ? COMPONENT_ENABLED_STATE_DEFAULT
                    : COMPONENT_ENABLED_STATE_DISABLED,
                    DONT_KILL_APP, getUserId());
                    DONT_KILL_APP, getUserId(), mContext.getOpPackageName());
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -3075,7 +3075,8 @@ public class ApplicationPackageManager extends PackageManager {
    public void setComponentEnabledSetting(ComponentName componentName,
                                           int newState, int flags) {
        try {
            mPM.setComponentEnabledSetting(componentName, newState, flags, getUserId());
            mPM.setComponentEnabledSetting(componentName, newState, flags, getUserId(),
                    mContext.getOpPackageName());
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -3084,7 +3085,7 @@ public class ApplicationPackageManager extends PackageManager {
    @Override
    public void setComponentEnabledSettings(List<ComponentEnabledSetting> settings) {
        try {
            mPM.setComponentEnabledSettings(settings, getUserId());
            mPM.setComponentEnabledSettings(settings, getUserId(), mContext.getOpPackageName());
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
+3 −2
Original line number Diff line number Diff line
@@ -353,12 +353,13 @@ interface IPackageManager {
     */
    @UnsupportedAppUsage
    void setComponentEnabledSetting(in ComponentName componentName,
            in int newState, in int flags, int userId);
            in int newState, in int flags, int userId, String callingPackage);

    /**
     * As per {@link android.content.pm.PackageManager#setComponentEnabledSettings}.
     */
    void setComponentEnabledSettings(in List<ComponentEnabledSetting> settings, int userId);
    void setComponentEnabledSettings(in List<ComponentEnabledSetting> settings, int userId,
            String callingPackage);

    /**
     * As per {@link android.content.pm.PackageManager#getComponentEnabledSetting}.
+1 −1
Original line number Diff line number Diff line
@@ -8837,7 +8837,7 @@ public class ActivityManagerService extends IActivityManager.Stub
                try {
                    AppGlobals.getPackageManager().setComponentEnabledSetting(cName,
                            PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0,
                            UserHandle.USER_SYSTEM);
                            UserHandle.USER_SYSTEM, "am");
                } catch (RemoteException e) {
                    throw e.rethrowAsRuntimeException();
                }
+13 −11
Original line number Diff line number Diff line
@@ -3779,7 +3779,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
    }

    private void setEnabledSettings(List<ComponentEnabledSetting> settings, int userId,
            String callingPackage) {
            @NonNull String callingPackage) {
        final int callingUid = Binder.getCallingUid();
        // TODO: This method is not properly snapshotified beyond this call
        final Computer preLockSnapshot = snapshotComputer();
@@ -4051,11 +4051,6 @@ public class PackageManagerService implements PackageSender, TestUtilityService
        boolean success = false;
        if (!setting.isComponent()) {
            // We're dealing with an application/package level state change
            if (newState == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
                    || newState == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) {
                // Don't care about who enables an app.
                callingPackage = null;
            }
            pkgSetting.setEnabled(newState, userId, callingPackage);
            if ((newState == COMPONENT_ENABLED_STATE_DISABLED_USER
                    || newState == COMPONENT_ENABLED_STATE_DISABLED)
@@ -5814,21 +5809,28 @@ public class PackageManagerService implements PackageSender, TestUtilityService

        @Override
        public void setComponentEnabledSetting(ComponentName componentName,
                int newState, int flags, int userId) {
                int newState, int flags, int userId, String callingPackage) {
            if (!mUserManager.exists(userId)) return;
            if (callingPackage == null) {
                callingPackage = Integer.toString(Binder.getCallingUid());
            }

            setEnabledSettings(List.of(new PackageManager.ComponentEnabledSetting(componentName, newState, flags)),
                    userId, null /* callingPackage */);
                    userId, callingPackage);
        }

        @Override
        public void setComponentEnabledSettings(List<PackageManager.ComponentEnabledSetting> settings, int userId) {
        public void setComponentEnabledSettings(
                List<PackageManager.ComponentEnabledSetting> settings, int userId,
                String callingPackage) {
            if (!mUserManager.exists(userId)) return;
            if (settings == null || settings.isEmpty()) {
                throw new IllegalArgumentException("The list of enabled settings is empty");
            }

            setEnabledSettings(settings, userId, null /* callingPackage */);
            if (callingPackage == null) {
                callingPackage = Integer.toString(Binder.getCallingUid());
            }
            setEnabledSettings(settings, userId, callingPackage);
        }

        @Override
+1 −1
Original line number Diff line number Diff line
@@ -2447,7 +2447,7 @@ class PackageManagerShellCommand extends ShellCommand {
                    mInterface.getApplicationEnabledSetting(pkg, translatedUserId)));
            return 0;
        } else {
            mInterface.setComponentEnabledSetting(cn, state, 0, translatedUserId);
            mInterface.setComponentEnabledSetting(cn, state, 0, translatedUserId, "shell");
            getOutPrintWriter().println("Component " + cn.toShortString() + " new state: "
                    + enabledSettingToString(
                    mInterface.getComponentEnabledSetting(cn, translatedUserId)));
Loading