diff options
| author | 2023-05-02 13:57:59 +0000 | |
|---|---|---|
| committer | 2023-05-02 14:03:34 +0000 | |
| commit | 878e87d2c176a13089d427df3b5f8ec3ea6ecd1c (patch) | |
| tree | f7e760d85ee3e5bcbb826dd22e3672df36b68e25 | |
| parent | 78ad5e0d41652561f822499bcbb93aecd7718014 (diff) | |
Support showing initial non stopped system packages
Bug: 269129704
Test: inspect output of pm list initial-non-stopped-system-packages
Change-Id: I6741c9d5fe1328d246c10fd6b3d28aa81cc2f52f
3 files changed, 25 insertions, 0 deletions
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index 1ba84c5aae19..d802b46f1fde 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -502,6 +502,8 @@ interface IPackageManager { boolean hasSystemFeature(String name, int version); + List<String> getInitialNonStoppedSystemPackages(); + void enterSafeMode(); @UnsupportedAppUsage boolean isSafeMode(); diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index b5108af6d2f8..f48204645d34 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -5258,6 +5258,12 @@ public class PackageManagerService implements PackageSender, TestUtilityService } @Override + public @NonNull List<String> getInitialNonStoppedSystemPackages() { + return mInitialNonStoppedSystemPackages != null + ? new ArrayList<>(mInitialNonStoppedSystemPackages) : new ArrayList<>(); + } + + @Override public String[] getUnsuspendablePackagesForUser(String[] packageNames, int userId) { Objects.requireNonNull(packageNames, "packageNames cannot be null"); mContext.enforceCallingOrSelfPermission(Manifest.permission.SUSPEND_APPS, diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index f78b611a70e3..58183f0bc16a 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -782,6 +782,8 @@ class PackageManagerShellCommand extends ShellCommand { getInFileDescriptor(), getOutFileDescriptor(), getErrFileDescriptor(), new String[] { "list" }, getShellCallback(), adoptResultReceiver()); return 0; + case "initial-non-stopped-system-packages": + return runListInitialNonStoppedSystemPackages(); } pw.println("Error: unknown list type '" + type + "'"); return -1; @@ -794,6 +796,21 @@ class PackageManagerShellCommand extends ShellCommand { return 0; } + private int runListInitialNonStoppedSystemPackages() throws RemoteException { + final PrintWriter pw = getOutPrintWriter(); + final List<String> list = mInterface.getInitialNonStoppedSystemPackages(); + + Collections.sort(list); + + for (String pkgName : list) { + pw.print("package:"); + pw.print(pkgName); + pw.println(); + } + + return 0; + } + private int runListFeatures() throws RemoteException { final PrintWriter pw = getOutPrintWriter(); final List<FeatureInfo> list = mInterface.getSystemAvailableFeatures().getList(); |