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

Commit 45448df4 authored by Guojing Yuan's avatar Guojing Yuan
Browse files

[CDM] Exempt auto revoke for distinct packages only.

Bug: 373957005
Test: manual
Flag: EXEMPT bugfix
Change-Id: I72113f30a4d96db39b7f6ff99bb8da0cbe05ae49
parent 44102648
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.os.Binder;
import android.os.Environment;
import android.os.PowerExemptionManager;
import android.util.ArraySet;
import android.util.Pair;
import android.util.Slog;

import com.android.internal.util.ArrayUtils;
@@ -44,6 +45,7 @@ import com.android.server.pm.UserManagerInternal;
import com.android.server.wm.ActivityTaskManagerInternal;

import java.io.File;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@@ -185,14 +187,18 @@ public class CompanionExemptionProcessor {
            try {
                final List<AssociationInfo> associations =
                        mAssociationStore.getActiveAssociationsByUser(userId);
                Set<Pair<String, Integer>> exemptedPackages = new HashSet<>();
                for (AssociationInfo a : associations) {
                    try {
                        int uid = pm.getPackageUidAsUser(a.getPackageName(), userId);
                        updateAutoRevokeExemption(a.getPackageName(), uid, true);
                        exemptedPackages.add(new Pair<>(a.getPackageName(), uid));
                    } catch (PackageManager.NameNotFoundException e) {
                        Slog.w(TAG, "Unknown companion package: " + a.getPackageName(), e);
                    }
                }
                for (Pair<String, Integer> exemptedPackage : exemptedPackages) {
                    updateAutoRevokeExemption(exemptedPackage.first, exemptedPackage.second, true);
                }
            } finally {
                pref.edit().putBoolean(PREF_KEY_AUTO_REVOKE_GRANTS_DONE, true).apply();
            }