Android pm命令参考
通过ad执行pm命令,可以做很多事,拿下系统代码
/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java,pm命令处理部分,具体参数去搜索:
public int onCommand(String cmd) {if (cmd == null) {return handleDefaultCommands(cmd);}final PrintWriter pw = getOutPrintWriter();try {switch (cmd) {case "path":return runPath();case "dump":return runDump();case "list":return runList();case "gc":return runGc();case "resolve-activity":return runResolveActivity();case "query-activities":return runQueryIntentActivities();case "query-services":return runQueryIntentServices();case "query-receivers":return runQueryIntentReceivers();case "install":return runInstall();case "install-streaming":return runStreamingInstall();case "install-incremental":return runIncrementalInstall();case "install-abandon":case "install-destroy":return runInstallAbandon();case "install-commit":return runInstallCommit();case "install-create":return runInstallCreate();case "install-remove":return runInstallRemove();case "install-write":return runInstallWrite();case "install-existing":return runInstallExisting();case "set-install-location":return runSetInstallLocation();case "get-install-location":return runGetInstallLocation();case "install-add-session":return runInstallAddSession();case "move-package":return runMovePackage();case "move-primary-storage":return runMovePrimaryStorage();case "compile":return runCompile();case "reconcile-secondary-dex-files":return runreconcileSecondaryDexFiles();case "force-dex-opt":return runForceDexOpt();case "bg-dexopt-job":return runDexoptJob();case "cancel-bg-dexopt-job":return cancelBgDexOptJob();case "delete-dexopt":return runDeleteDexOpt();case "dump-profiles":return runDumpProfiles();case "snapshot-profile":return runSnapshotProfile();case "uninstall":return runUninstall();case "clear":return runClear();case "enable":return runSetEnabledSetting(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);case "disable":return runSetEnabledSetting(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);case "disable-user":return runSetEnabledSetting(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER);case "disable-until-used":return runSetEnabledSetting(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED);case "default-state":return runSetEnabledSetting(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);case "hide":return runSetHiddenSetting(true);case "unhide":return runSetHiddenSetting(false);case "suspend":return runSuspend(true);case "unsuspend":return runSuspend(false);case "set-distracting-restriction":return runSetDistractingRestriction();case "grant":return runGrantRevokePermission(true);case "revoke":return runGrantRevokePermission(false);case "reset-permissions":return runResetPermissions();case "set-permission-flags":return setOrClearPermissionFlags(true);case "clear-permission-flags":return setOrClearPermissionFlags(false);case "set-permission-enforced":return runSetPermissionEnforced();case "get-privapp-permissions":return runGetPrivappPermissions();case "get-privapp-deny-permissions":return runGetPrivappDenyPermissions();case "get-oem-permissions":return runGetOemPermissions();case "trim-caches":return runTrimCaches();case "create-user":return runCreateUser();case "remove-user":return runRemoveUser();case "set-user-restriction":return runSetUserRestriction();case "get-max-users":return runGetMaxUsers();case "get-max-running-users":return runGetMaxRunningUsers();case "set-home-activity":return runSetHomeActivity();case "set-installer":return runSetInstaller();case "get-instantapp-resolver":return runGetInstantAppResolver();case "has-feature":return runHasFeature();case "set-harmful-app-warning":return runSetHarmfulAppWarning();case "get-harmful-app-warning":return runGetHarmfulAppWarning();case "get-stagedsessions":return runListStagedSessions();case "uninstall-system-updates":String packageName = getNextArg();return uninstallSystemUpdates(packageName);case "rollback-app":return runRollbackApp();case "get-moduleinfo":return runGetModuleInfo();case "log-visibility":return runLogVisibility();case "bypass-staged-installer-check":return runBypassStagedInstallerCheck();case "bypass-allowed-apex-update-check":return runBypassAllowedApexUpdateCheck();case "set-silent-updates-policy":return runSetSilentUpdatesPolicy();default: {Boolean domainVerificationResult =mDomainVerificationShell.runCommand(this, cmd);if (domainVerificationResult != null) {return domainVerificationResult ? 0 : 1;}String nextArg = getNextArg();if (nextArg == null) {if (cmd.equalsIgnoreCase("-l")) {return runListPackages(false);} else if (cmd.equalsIgnoreCase("-lf")) {return runListPackages(true);}} else if (getNextArg() == null) {if (cmd.equalsIgnoreCase("-p")) {return displayPackageFilePath(nextArg, UserHandle.USER_SYSTEM);}}return handleDefaultCommands(cmd);}}} catch (RemoteException e) {pw.println("Remote exception: " + e);}return -1;}