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

Commit ff3a453f authored by Chris Wren's avatar Chris Wren Committed by Android Git Automerger
Browse files

am 7c96d187: am c26939b4: Merge "add banned packages to notification dumpsys" into mnc-dev

* commit '7c96d187':
  add banned packages to notification dumpsys
parents be17a55c 7c96d187
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ParceledListSlice;
import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.media.AudioAttributes;
@@ -72,6 +73,7 @@ import android.os.Process;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.Vibrator;
import android.provider.Settings;
import android.service.notification.Condition;
@@ -441,6 +443,12 @@ public class NotificationManagerService extends SystemService {
        return true;
    }

    /** Use this to check if a package can post a notification or toast. */
    private boolean checkNotificationOp(String pkg, int uid) {
        return mAppOps.checkOp(AppOpsManager.OP_POST_NOTIFICATION, uid, pkg)
                == AppOpsManager.MODE_ALLOWED;
    }

    private static final class ToastRecord
    {
        final int pid;
@@ -1909,6 +1917,26 @@ public class NotificationManagerService extends SystemService {
                    r.dump(pw, "      ", getContext());
                }
            }

            try {
                pw.println("\n  Banned Packages:");
                for(UserInfo user : UserManager.get(getContext()).getUsers()) {
                    final int userId = user.getUserHandle().getIdentifier();
                    pw.println("    UserId " + userId);
                    final PackageManager packageManager = getContext().getPackageManager();
                    List<PackageInfo> packages = packageManager.getInstalledPackages(0, userId);
                    final int packageCount = packages.size();
                    for (int p = 0; p < packageCount; p++) {
                        final String packageName = packages.get(p).packageName;
                        final int uid = packageManager.getPackageUid(packageName, userId);
                        if (!checkNotificationOp(packageName, uid)) {
                            pw.println("       " + packageName);
                        }
                    }
                }
            } catch (NameNotFoundException e) {
                // pass
            }
        }
    }