[CM311-1A]-全网最全 Android 软件管理

##################################################

目录

如何使用命令安装卸载应用

示例安装一个小破站 TV 版

将安装包上传到系统 /tmp 目录

安装 bilibiliTV 版

查看安装后的软件信息

卸载刚刚安装的 tv

真的推荐安装一个安卓终端模拟器

jackpal.androidterm 包

查看某个应用的详细信息

如何使用命令启动应用程序

在前台运行 app

获取包名和 activity 路径

使用 am 的 start 命令启动 APP

示例使用命令启动哔哩哔哩 TV 版

使用 pm 应用管理工具

pm 简介

应用安装与数据文件的位置不同

查看包的系统状态信息

查看系统功能与支持库信息

测试包与 APK 路径查询

查询

常用查询语法及常用参数

列出所有包

-i 查看包的安装者

-u 列出包和未安装包信息

-e 列出启用包

-d 列出禁用包

-s 列出系统包

-3 列出所有第三方包

-f 查看包的安装位置

搜索包

卸载

根据 UID 卸载指定账户应用

安装

将 APP 安装到指定 UID 用户下

控制

清除应用数据

停用/禁用/启用

隐藏与恢复应用

默认安装位置


##################################################

如何使用命令安装卸载应用

——————————

示例安装一个小破站 TV 版

%%%%%

将安装包上传到系统 /tmp 目录

        如下 看注释:

cmcc_jiangsu:/ # cd /tmp    /* 进入 tmp */
cmcc_jiangsu:/tmp # ls    /* 此时可以看到没有安装包 */
capture
cmcc_jiangsu:/tmp # exit    /* 退出 shell */

C:\Users\byme>adb connect 192.168.0.101    /* 确定连接 */
already connected to 192.168.0.101:5555

C:\Users\byme>adb push D:\download\bilibiliTV\bilibiliTV_1.5.1_dangbei.apk /tmp    /* 将 apk 上传到 tmp 目录 */
D:\download\bilibiliTV\bilibiliTV_1.5....d. 3.1 MB/s (20727626 bytes in 6.398s)

C:\Users\byme>adb shell    /* 进入系统终端 */
cmcc_jiangsu:/ # cd /tmp    /* 进入 tmp */
cmcc_jiangsu:/tmp # ls    /* 发现 apk */
capture
cmcc_jiangsu:/tmp # ls
bilibiliTV_1.5.1_dangbei.apk capture
cmcc_jiangsu:/tmp # ls -alh
total 10M
drwxrwxrwt  3 root root  80 2022-07-23 17:21 .
drwxr-xr-x 23 root root   0 2015-01-01 08:00 ..
-rw-r--r--  1 root root 20M 2022-07-22 23:43 bilibiliTV_1.5.1_dangbei.apk
drwxrwxrwt  2 root root  40 2015-01-01 08:00 capture
cmcc_jiangsu:/tmp # 

%%%%%

安装 bilibiliTV 版

cmcc_jiangsu:/tmp # ls    /* 看一眼 apk 名字 */
bilibiliTV_1.5.1_dangbei.apk capture
cmcc_jiangsu:/tmp # pm install bilibiliTV_1.5.1_dangbei.apk    /* 安装 apk 输入前几个字母就可以按下 TAB 自动补全 */
avc:  denied  { read } for  scontext=u:r:system_server:s0 tcontext=u:object_r:su
_tmpfs:s0 tclass=file permissive=1
Success
cmcc_jiangsu:/tmp # screencap -p /sdcard/sc/1.png    /* 截取屏幕 */
screencap 3
screencap start. screen_type: 1
file path: /sdcard/sc/1.png
new ScreenCatch ok
got video+osd data: 1280 x 720
SkEncodeImage success
screencap end
cmcc_jiangsu:/tmp # ls /sdcard/sc -alh    /* 确定截取成功 */
total 282K
drwxrwx--x  2 root sdcard_rw 4.0K 2022-07-20 18:58 .
drwxrwx--x 22 root sdcard_rw 4.0K 2022-07-20 18:56 ..
-rw-rw----  1 root sdcard_rw 554K 2022-07-23 17:52 1.png
cmcc_jiangsu:/tmp # exit

C:\Users\byme>adb pull /sdcard/sc/1.png D:1.png    /* 将截屏下载到 D 盘根目录 */
/sdcard/sc/1.png: 1 file pulled, 0 skipped. 0.3 MB/s (567707 bytes in 1.863s)

C:\Users\byme> start 1.png    /* 使用默认图像查看器打开截屏文件 */

        看 出现一个云视听小电视:

云视听小电视

        安装成功:

云视听小电视

        添加到桌面:

添加到桌面

        启动成功:

启动成功

        好家伙我竟然在盒子上逛 B 站:

逛 B 站

%%%%%

查看安装后的软件信息

        我们很轻易的就能获取这个应用的包名叫

com.xiaodianshi.tv.yst        云视听小电视

cmcc_jiangsu:/ # pm list packages -3    /* 查看安装的所有第三方软甲 */
package:com.xiaodianshi.tv.yst    /* 这个就是我们刚刚安装的 b 站 */
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:com.dangbeimarket
cmcc_jiangsu:/ # pm list packages -i "tv"    /* 查看 tv 相关软件的安装信息 */
package:com.xiaodianshi.tv.yst  installer=null
package:com.dangbei.tvlauncher  installer=null
package:me.thomastv.rebootupdate  installer=null
cmcc_jiangsu:/ # pm list packages -f "tv"    /* 查看 tv 相关联应用的文件 */
package:/data/app/com.xiaodianshi.tv.yst-7s2x33sktQES0TVqJsQhbA==/base.apk=com.x
iaodianshi.tv.yst
package:/system/app/Dangbei2.apk=com.dangbei.tvlauncher
package:/data/app/me.thomastv.rebootupdate-4SVHakbq9YXs3X7ozxyY0w==/base.apk=me.
thomastv.rebootupdate
cmcc_jiangsu:/ # ls /data/app/com.xiaodianshi.tv.yst-7s2x33sktQES0TVqJsQhbA\=\=
base.apk lib oat
cmcc_jiangsu:/ # ls -alh /data/app/com.xiaodianshi.tv.yst-7s2x33sktQES0TVqJsQhbA\=\=
total 10M
drwxr-xr-x 4 system system  4.0K 2022-07-23 17:44 .
drwxrwxr-x 8 system system  4.0K 2022-07-23 17:44 ..
-rw-r--r-- 1 system system   20M 2022-07-23 17:44 base.apk
drwxr-xr-x 3 system system  4.0K 2022-07-23 17:44 lib
drwxrwx--x 3 system install 4.0K 2022-07-23 17:44 oat
cmcc_jiangsu:/ # 

%%%%%

卸载刚刚安装的 tv
 

cmcc_jiangsu:/ # pm list packages -3    /* 卸载之前的第三方软件 */
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:com.dangbeimarket
cmcc_jiangsu:/ # pm uninstall com.xiaodianshi.tv.yst    /* 卸载小破站 */
Success
cmcc_jiangsu:/ # pm list packages -3    /* 卸载之后再次查看第三方软件 */
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:com.dangbeimarket
cmcc_jiangsu:/ # 

——————————

真的推荐安装一个安卓终端模拟器

        安卓终端模拟器就相当于 Windows 的 cmd/Xshell 或者 Linux 的 console/terminal

        开源地址:

Terminal Emulator for Android Downloadshttps://jackpal.github.io/Android-Terminal-Emulator/

        如果访问不了也可以下载我提供的资源 跟上面是一样的:

pan.baidu.com/s/1yw8pzpMviDLjRJRf1IVZ4w
1297 
ranchui

%%%%%

jackpal.androidterm 包

        我这个包名是 jackpal.androidterm

cmcc_jiangsu:/ # pm list packages -3    /* 安装之前的第三方软件 */
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:com.dangbeimarket
cmcc_jiangsu:/ # ls /tmp/Term.apk  -alh    /* 确定 APK 位置 */
-rw-r--r-- 1 root root 551K 2022-05-28 23:35 /tmp/Term.apk
cmcc_jiangsu:/ # pm install /tmp/Term.apk    /* 安装 APK */
avc:  denied  { read } for  scontext=u:r:system_server:s0 tcontext=u:object_r:su
_tmpfs:s0 tclass=file permissive=1
Success
cmcc_jiangsu:/ # pm list packages -3    /* 安装之后再看 */
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:jackpal.androidterm
package:com.dangbeimarket
cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png    /* 截个屏 */
screencap 3
screencap start. screen_type: 1
file path: /sdcard/sc/1.png
new ScreenCatch ok
got video+osd data: 1280 x 720
SkEncodeImage success
screencap end
cmcc_jiangsu:/ # exit    /* 退出终端 */

C:\Users\byme>adb pull /sdcard/sc/1.png d:1.png    /* 获取截屏 */
/sdcard/sc/1.png: 1 file pulled, 0 ski...ed. 2.9 MB/s (1237270 bytes in 0.402s)

C:\Users\byme>start d:1.png    /* 打开截屏图像 */

        截屏如下:

终端模拟器

        安卓终端模拟器 可以运行命令:

安卓终端模拟器

——————————

查看某个应用的详细信息

        使用 dumpsys 的 package 子命令可以查看指定包的详细信息

        这边我是在一个小手机上查看安装的旧版本的终端模拟器:

shell@GIONEE_G1605A:/mnt/sdcard $ pm list packages -3 | grep term    /* 在第三方应用中搜索包含 term 字样的包 */
package:jackpal.androidterm
shell@GIONEE_G1605A:/mnt/sdcard $ dumpsys package jackpal.androidterm    /* 查看终端模拟器应用的详细信息 */
Activity Resolver Table:
  Full MIME Types:
      */*:
        3d65be5 jackpal.androidterm/.TermHere
        a6316ba jackpal.androidterm/.shortcuts.FSNavigator

  Wild MIME Types:
      *:
        3d65be5 jackpal.androidterm/.TermHere
        a6316ba jackpal.androidterm/.shortcuts.FSNavigator

  Non-Data Actions:
      jackpal.androidterm.RUN_SHORTCUT:
        af9896b jackpal.androidterm/.RunShortcut
      jackpal.androidterm.private.SWITCH_WINDOW:
        7e04cc8 jackpal.androidterm/.TermInternal
      jackpal.androidterm.OPEN_NEW_WINDOW:
        c95d161 jackpal.androidterm/.RemoteInterface
      android.intent.action.MAIN:
        39be486 jackpal.androidterm/.Term
        ea55147 jackpal.androidterm/.shortcuts.AddShortcut
      android.intent.action.PICK:
        a6316ba jackpal.androidterm/.shortcuts.FSNavigator
      jackpal.androidterm.RUN_SCRIPT:
        f116d74 jackpal.androidterm/.RunScript
      jackpal.androidterm.private.OPEN_NEW_WINDOW:
        7e04cc8 jackpal.androidterm/.TermInternal
      android.intent.action.CREATE_SHORTCUT:
        ea55147 jackpal.androidterm/.shortcuts.AddShortcut

  MIME Typed Actions:
      android.intent.action.SEND:
        3d65be5 jackpal.androidterm/.TermHere
      android.intent.action.GET_CONTENT:
        a6316ba jackpal.androidterm/.shortcuts.FSNavigator

Permissions:
  Permission [jackpal.androidterm.permission.PREPEND_TO_PATH] (57d229d):
    sourcePackage=jackpal.androidterm
    uid=10128 gids=null type=0 prot=dangerous
    perm=Permission{941c312 jackpal.androidterm.permission.PREPEND_TO_PATH}
    packageSetting=PackageSetting{c5bbae3 jackpal.androidterm/10128}
  Permission [jackpal.androidterm.permission.RUN_SCRIPT] (491ece0):
    sourcePackage=jackpal.androidterm
    uid=10128 gids=null type=0 prot=dangerous
    perm=Permission{d8e4b99 jackpal.androidterm.permission.RUN_SCRIPT}
    packageSetting=PackageSetting{c5bbae3 jackpal.androidterm/10128}
  Permission [jackpal.androidterm.permission.APPEND_TO_PATH] (1f4fe5e):
    sourcePackage=jackpal.androidterm
    uid=10128 gids=null type=0 prot=dangerous
    perm=Permission{585223f jackpal.androidterm.permission.APPEND_TO_PATH}
    packageSetting=PackageSetting{c5bbae3 jackpal.androidterm/10128}

Key Set Manager:
  [jackpal.androidterm]
      Signing KeySets: 27

Packages:
  Package [jackpal.androidterm] (c5bbae3):
    userId=10128
    pkg=Package{e5a569a jackpal.androidterm}
    codePath=/data/app/jackpal.androidterm-1
    resourcePath=/data/app/jackpal.androidterm-1
    legacyNativeLibraryDir=/data/app/jackpal.androidterm-1/lib
    primaryCpuAbi=arm64-v8a
    secondaryCpuAbi=null
    versionCode=66 targetSdk=11
    versionName=1.0.65
    splits=[base]
    applicationInfo=ApplicationInfo{5d8f70c jackpal.androidterm clone=0}
    flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
    pkgFlagsEx=[ ]
    dataDir=/data/user/0/jackpal.androidterm
    supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
    timeStamp=2022-07-24 20:02:40
    firstInstallTime=2022-07-24 20:02:40
    lastUpdateTime=2022-07-24 20:02:40
    signatures=PackageSignatures{7ef0855 [c0ea26a]}
    installPermissionsFixed=true installStatus=1
    pkgFlags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
    declared permissions:
      jackpal.androidterm.permission.RUN_SCRIPT: prot=dangerous, INSTALLED
      jackpal.androidterm.permission.APPEND_TO_PATH: prot=dangerous, INSTALLED
      jackpal.androidterm.permission.PREPEND_TO_PATH: prot=dangerous, INSTALLED
    requested permissions:
      android.permission.INTERNET
      android.permission.READ_EXTERNAL_STORAGE
      android.permission.WRITE_EXTERNAL_STORAGE
      android.permission.ACCESS_SUPERUSER
      android.permission.WAKE_LOCK
    install permissions:
      android.permission.INTERNET: granted=true
      android.permission.READ_EXTERNAL_STORAGE: granted=true
      android.permission.WRITE_EXTERNAL_STORAGE: granted=true
      android.permission.WAKE_LOCK: granted=true
    User 0:  installed=true hidden=false stopped=false notLaunched=false enabled
=0
      gids=[3003]
      runtime permissions:
shell@GIONEE_G1605A:/mnt/sdcard $ 

——————————

如何使用命令启动应用程序

%%%%%

在前台运行 app

        先让程序在前台显示 不要黑屏不要切换到后台:

先让程序在前台显示

%%%%%

获取包名和 activity 路径

        此时可以使用命令获取信息了

        如果你在 cmd :

adb shell dumpsys window windows | findstr “Current”

        如果你在终端中:

shell@GIONEE_G1605A:/ $ dumpsys window windows | grep Current
  mCurrentFocus=Window{144ca1f u0 jackpal.androidterm/jackpal.androidterm.Term}
shell@GIONEE_G1605A:/ $

        可以从

jackpal.androidterm/jackpal.androidterm.Term

        看到包名和启动名:

包名 jackpal.androidterm

启动名 jackpal.androidterm.Term

%%%%%

使用 am 的 start 命令启动 APP

        语法格式:

am start package/applicationId.launchActivity

        package 是 app 的包名 一般是跟 applicationId 是相同的值
        launch activity 是启动 activity 的完整路径

        示例 jackpal.androidterm/jackpal.androidterm.Term 中

jackpal.androidterm 是 package

jackpal.androidterm 是 applicationId

Term 是 activity

jackpal.androidterm.Term 是 launch activity

        启动 jackpal.androidterm 示例:

shell@GIONEE_G1605A:/ $ am start jackpal.androidterm/jackpal.androidterm.Term
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.L
AUNCHER] cmp=jackpal.androidterm/.Term }
shell@GIONEE_G1605A:/ $

        或者

shell@GIONEE_G1605A:/ $ am start -n jackpal.androidterm/jackpal.androidterm.Term
Starting: Intent { cmp=jackpal.androidterm/.Term }
Warning: Activity not started, its current task has been brought to the front
shell@GIONEE_G1605A:/ $ 

        事实也确实成功了:

确实成功了

——————————

示例使用命令启动哔哩哔哩 TV 版

         启动小破站后截一下屏

cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png    /* 截个屏 */
screencap 3
screencap start. screen_type: 1
file path: /sdcard/sc/1.png
new ScreenCatch ok
got video+osd data: 1280 x 720
SkEncodeImage success
screencap end
cmcc_jiangsu:/ # 

小破站

        查看当前窗口的 activity 信息:

cmcc_jiangsu:/ # dumpsys window windows | grep Current
  mCurrentFocus=Window{d898b33 u0 com.xiaodianshi.tv.yst/com.xiaodianshi.tv.yst.
ui.introduction.IntroductionActivity}
cmcc_jiangsu:/ # 

        好家伙是真的长:

com.xiaodianshi.tv.yst.ui.introduction.IntroductionActivity

        通过命令启动 bilibili tv 版:

cmcc_jiangsu:/ # am start com.xiaodianshi.tv.yst/com.xiaodianshi.tv.yst.ui.introduction.IntroductionActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.L
AUNCHER] cmp=com.xiaodianshi.tv.yst/.ui.introduction.IntroductionActivity }
cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png
screencap 3
screencap start. screen_type: 1
file path: /sdcard/sc/1.png
new ScreenCatch ok
got video+osd data: 1280 x 720
SkEncodeImage success
screencap end
cmcc_jiangsu:/ # 

        结果笑死人 启动的只是那个协议对话框:

协议对话框

        无奈只好从应用详细信息中筛选:

cmcc_jiangsu:/ # dumpsys package com.xiaodianshi.tv.yst | grep com.xiaodianshi.tv.yst
        86a175e com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity filter
d6fb37d
          Action: "com.xiaodianshi.tv.yst.uri"
          Authority: "com.xiaodianshi.tv.yst": -1
        86a175e com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity filter
edb272
          Authority: "com.xiaodianshi.tv.yst": -1
        8fec73f com.xiaodianshi.tv.yst/com.yst.projection.ProjectionPlayerActivi
tyV2 filter fc90a79
        8fec73f com.xiaodianshi.tv.yst/com.yst.projection.ProjectionPlayerActivi
tyV2 filter c6083be
          Action: "com.xiaodianshi.tv.yst.uri"
      com.xiaodianshi.tv.yst:
        eea380c com.xiaodianshi.tv.yst/.ui.main.MainActivity filter 7bfe6c3
          Action: "com.xiaodianshi.tv.yst"
      com.xiaodianshi.tv.yst.external:
        86a175e com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity filter
ea235d4
          Action: "com.xiaodianshi.tv.yst.external"
      com.xiaodianshi.tv.yst.projection.entry:
        c15b555 com.xiaodianshi.tv.yst/com.yst.projection.entry.ProjectionEntryA
ctivity filter 302c1f
          Action: "com.xiaodianshi.tv.yst.projection.entry"
        eea380c com.xiaodianshi.tv.yst/.ui.main.MainActivity filter 7bfe6c3
          Action: "com.xiaodianshi.tv.yst"
        eea380c com.xiaodianshi.tv.yst/.ui.main.MainActivity filter 2d6db40
        73c4b6a com.xiaodianshi.tv.yst/com.bilibili.opd.app.bizcommon.sentinel.s
ession.ChildProcessSessionBroadcastReceiver filter 8147f27
        1a2985b com.xiaodianshi.tv.yst/.ui.transition.PreassembleBroadcastReceiv
er filter c071441
        e08c8f8 com.xiaodianshi.tv.yst/.video.service.YstMediaButtonReceiver fil
ter 2759de6
        1a2985b com.xiaodianshi.tv.yst/.ui.transition.PreassembleBroadcastReceiv
er filter c071441
        ec951d1 com.xiaodianshi.tv.yst/.video.service.YstMediaService filter bd3
4f28
  Permission [com.xiaodianshi.tv.yst.permission.BLKV] (8352e34):
    sourcePackage=com.xiaodianshi.tv.yst
    perm=Permission{b4bb436 com.xiaodianshi.tv.yst.permission.BLKV}
    packageSetting=PackageSetting{7e85f37 com.xiaodianshi.tv.yst/10030}
  com.xiaodianshi.tv.yst/.provider.TvSearchSuggestionProvider:
    Provider{67d7ca4 com.xiaodianshi.tv.yst/.provider.TvSearchSuggestionProvider
}
  com.xiaodianshi.tv.yst/com.bilibili.lib.media.resolver.resolve.MediaResolvePro
vider:
    Provider{a403a0d com.xiaodianshi.tv.yst/com.bilibili.lib.media.resolver.reso
lve.MediaResolveProvider}
  com.xiaodianshi.tv.yst/androidx.lifecycle.ProcessLifecycleOwnerInitializer:
    Provider{216ddc2 com.xiaodianshi.tv.yst/androidx.lifecycle.ProcessLifecycleO
wnerInitializer}
  com.xiaodianshi.tv.yst/androidx.core.content.FileProvider:
    Provider{159b7d3 com.xiaodianshi.tv.yst/androidx.core.content.FileProvider}
  com.xiaodianshi.tv.yst/com.bilibili.lib.okdownloader.internal.db.DownloadDatab
aseProvider:
    Provider{967bf10 com.xiaodianshi.tv.yst/com.bilibili.lib.okdownloader.intern
al.db.DownloadDatabaseProvider}
  com.xiaodianshi.tv.yst/com.bilibili.lib.mod.ModResourceProvider:
    Provider{3c36a09 com.xiaodianshi.tv.yst/com.bilibili.lib.mod.ModResourceProv
ider}
  com.xiaodianshi.tv.yst/com.bilibili.xpref.XprefProvider:
    Provider{79140e com.xiaodianshi.tv.yst/com.bilibili.xpref.XprefProvider}
  com.xiaodianshi.tv.yst/com.bilibili.base.ipc.IPCActivityStateProvider:
    Provider{87dfe2f com.xiaodianshi.tv.yst/com.bilibili.base.ipc.IPCActivitySta
teProvider}
  com.xiaodianshi.tv.yst/com.bilibili.lib.account.AuthProvider:
    Provider{871bc3c com.xiaodianshi.tv.yst/com.bilibili.lib.account.AuthProvide
r}
  com.xiaodianshi.tv.yst/com.bilibili.app.lib.modx.ModImageContentProvider:
    Provider{22f9dc5 com.xiaodianshi.tv.yst/com.bilibili.app.lib.modx.ModImageCo
ntentProvider}
  com.xiaodianshi.tv.yst/com.coocaa.historylib.HistoryContentProvider:
    Provider{bb6631a com.xiaodianshi.tv.yst/com.coocaa.historylib.HistoryContent
Provider}
  com.xiaodianshi.tv.yst/com.coocaa.historylib.CollectContentProvider:
    Provider{ef64e4b com.xiaodianshi.tv.yst/com.coocaa.historylib.CollectContent
Provider}
  com.xiaodianshi.tv.yst/com.bilibili.infra.base.provider.InfraInitProvider:
    Provider{3bc6028 com.xiaodianshi.tv.yst/com.bilibili.infra.base.provider.Inf
raInitProvider}
  [com.xiaodianshi.tv.yst.provider.xpref]:
    Provider{79140e com.xiaodianshi.tv.yst/com.bilibili.xpref.XprefProvider}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.fileprovider]:
    Provider{159b7d3 com.xiaodianshi.tv.yst/androidx.core.content.FileProvider}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.lifecycle-process]:
    Provider{216ddc2 com.xiaodianshi.tv.yst/androidx.lifecycle.ProcessLifecycleO
wnerInitializer}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.provider.modimage]:
    Provider{22f9dc5 com.xiaodianshi.tv.yst/com.bilibili.app.lib.modx.ModImageCo
ntentProvider}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.provider.modresource]:
    Provider{3c36a09 com.xiaodianshi.tv.yst/com.bilibili.lib.mod.ModResourceProv
ider}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.provider.resolver]:
    Provider{a403a0d com.xiaodianshi.tv.yst/com.bilibili.lib.media.resolver.reso
lve.MediaResolveProvider}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.okdownloader.provider]:
    Provider{967bf10 com.xiaodianshi.tv.yst/com.bilibili.lib.okdownloader.intern
al.db.DownloadDatabaseProvider}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.coocaa.history]:
    Provider{bb6631a com.xiaodianshi.tv.yst/com.coocaa.historylib.HistoryContent
Provider}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.coocaa.collect]:
    Provider{ef64e4b com.xiaodianshi.tv.yst/com.coocaa.historylib.CollectContent
Provider}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.provider.TvSearchSuggestionProvider]:
    Provider{67d7ca4 com.xiaodianshi.tv.yst/.provider.TvSearchSuggestionProvider
}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.provider.InfraInitProvider]:
    Provider{3bc6028 com.xiaodianshi.tv.yst/com.bilibili.infra.base.provider.Inf
raInitProvider}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.provider.IPCActivityStateProvider]:
    Provider{87dfe2f com.xiaodianshi.tv.yst/com.bilibili.base.ipc.IPCActivitySta
teProvider}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst.provider.auth]:
    Provider{871bc3c com.xiaodianshi.tv.yst/com.bilibili.lib.account.AuthProvide
r}
      applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
  [com.xiaodianshi.tv.yst]
  Package [com.xiaodianshi.tv.yst] (7e85f37):
    pkg=Package{74796e6 com.xiaodianshi.tv.yst}
    codePath=/data/app/com.xiaodianshi.tv.yst-Gq1cdiX3Aho20N4EPrC5gw==
    resourcePath=/data/app/com.xiaodianshi.tv.yst-Gq1cdiX3Aho20N4EPrC5gw==
    legacyNativeLibraryDir=/data/app/com.xiaodianshi.tv.yst-Gq1cdiX3Aho20N4EPrC5
gw==/lib
    applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}
    dataDir=/data/user_de/0/com.xiaodianshi.tv.yst
      com.xiaodianshi.tv.yst.permission.BLKV: prot=signature, INSTALLED
      com.xiaodianshi.tv.yst.permission.BLKV
      com.xiaodianshi.tv.yst.permission.BLKV: granted=true
  [com.xiaodianshi.tv.yst]
    path: /data/app/com.xiaodianshi.tv.yst-Gq1cdiX3Aho20N4EPrC5gw==/base.apk
  [com.xiaodianshi.tv.yst]
cmcc_jiangsu:/ #

        没想到运气这么好 才试了第一个就成功了:

cmcc_jiangsu:/ # am start com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.L
AUNCHER] cmp=com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity }
cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png
screencap 3
screencap start. screen_type: 1
file path: /sdcard/sc/1.png
new ScreenCatch ok
got video+osd data: 1280 x 720
SkEncodeImage success
screencap end
cmcc_jiangsu:/ # 

am start com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity

##################################################

使用 pm 应用管理工具

——————————

pm 简介

        pm 是 包管理/package manager 简拼

        可以使用 pm 工具来执行应用的安装 或查询应用的信息、系统权限、控制应用
        pm 工具是 Android 开发与测试过程中必不可少的工具

%%%%%

应用安装与数据文件的位置不同

        App 的文件存储和数据目录在不同用户下都是独立的:

/data/user/0        root 用户内部存储位置

/storage/emulated/0/        root 用户外部存储位置

        但是同一个 APP 在多用户下却只有一个安装目录:

/data/app        第三方软件安装位置 这是普通用户安装的软件

/system/app        系统预装软件位置 这是系统自带的 app

/system/priv-app        特权 app 位置 这是系统级别的应用

        示例请看注释:

cmcc_jiangsu:/ # ls /data/user/0/    /* root 用户的应用数据存储位置 */
android                            com.android.sharedstoragebackup
android.ext.services               com.android.shell
android.ext.shared                 com.android.statementservice
com.android.backupconfirm          com.android.superuser
com.android.bluetooth              com.android.systemui
com.android.certinstaller          com.android.vpndialogs
com.android.companiondevicemanager com.android.webview
com.android.defcontainer           com.cmcc.mid.softdetector
com.android.externalstorage        com.dangbei.tvlauncher
com.android.inputdevices           com.dangbeimarket
com.android.inputmethod.latin      com.droidlogic
com.android.keychain               com.droidlogic.BluetoothRemote
com.android.location.fused         com.droidlogic.inputmethod.remote
com.android.managedprovisioning    com.fengyun.live
com.android.packageinstaller       com.iflytek.bt.auto
com.android.pacprocessor           com.iflytek.xiri
com.android.providers.downloads    com.iflytek.xiri2.system
com.android.providers.media        com.mylejia.store
com.android.providers.settings     com.tv.kuaisou
com.android.proxyhandler           com.xiaodianshi.tv.yst
com.android.se                     jackpal.androidterm
com.android.settings               me.thomastv.rebootupdate
cmcc_jiangsu:/ # ls /data/user/0/com.android.settings/ -alh    /* com.android.settings 的数据目录 */
total 14K
drwx------  6 system system 4.0K 2015-01-01 08:00 .
drwxrwx--x 46 system system 4.0K 2022-07-25 11:24 ..
drwxrws--x  2 system system 4.0K 2015-01-01 08:00 cache
drwxrws--x  2 system system 4.0K 2015-01-01 08:00 code_cache
drwxrwx--x  2 system system 4.0K 2015-01-01 08:00 files
lrwxrwxrwx  1 root   root     52 2015-01-01 08:00 lib -> /system/app/SkySettingA
9_jiangsuCMCC_release/lib/arm
drwxrwx--x  2 system system 4.0K 2022-07-25 11:29 shared_prefs
cmcc_jiangsu:/ # ls /data/app    /* 用户安装的第三方应用 */
com.dangbeimarket-GvchZCDlwKegHBtoXBQhwg==
com.fengyun.live-829NViyOdL42DNDyYJhxWw==
com.iflytek.xiri-WgYGkZvi6pwHhlca9dWSJw==
com.mylejia.store--X53YUFZXKN1XMhyN9prZw==
com.tv.kuaisou-fI0vFrNXcO_5RNCnl5c-7A==
com.xiaodianshi.tv.yst-KrOFFpsDIBXvgmut74jw_Q==
jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ==
me.thomastv.rebootupdate-4SVHakbq9YXs3X7ozxyY0w==
cmcc_jiangsu:/ # ls /system/app    /* 系统预装应用 */
Bluetooth
BtAutoConn_release_9.0_V1.0_19_20210827_chinamobile
CertInstaller
CompanionDeviceManager
Dangbei2.apk
ExtShared
GDYD-IPTVSettings-AN9-ALL-DEBUG-1.0.0-20210805-1058.apk
KeyChain
LatinIME
PacProcessor
SecureElement
SkySettingA9_jiangsuCMCC_release
SoftDetector_V5.1.0_20210721_35101_x025_encrypt
Superuser
SystemXiri_release-2.0.4-unsigned_signed_Aligned
Tr069_Service.apk
TvSettings
xiri
cmcc_jiangsu:/ # ls /system/priv-app    /* 系统特权应用 */
BackupRestoreConfirmation ManagedProvisioning Shell
DefaultContainerService   MediaProvider       SkySettings
DownloadProvider          PackageInstaller    StatementService
ExtServices               ProxyHandler        SystemUI
ExternalStorageProvider   Settings            VpnDialogs
FusedLocation             SettingsProvider
InputDevices              SharedStorageBackup
cmcc_jiangsu:/ # 

%%%%%

查看包的系统状态信息

        语法:

pm dump 子命令 包名

        子命令:

pm dump package [包名]	/* 打印服务信息 */
pm dump activity [包名]	/* 打印 Activity 信息 */
pm dump meminfo [包名]	/* 打印当前内存使用信息 */
pm dump procstats [包名]	/* 打印系统内存使用与一段时间内存汇总 */
pm dump usagestats [包名]	/* 打印服务器使用状态信息 */
pm dump batterystats [包名]	/* 打印电池状态信息 */

        不过我的盒子总报错 只好使用 dumpsys 命令:

dumpsys package [包名]	/* 打印服务信息 */
dumpsys activity [包名]	/* 打印 Activity 信息 */
dumpsys meminfo [包名]	/* 打印当前内存使用信息 */
dumpsys procstats [包名]	/* 打印系统内存使用与一段时间内存汇总 */
dumpsys usagestats [包名]	/* 打印服务器使用状态信息 */
dumpsys batterystats [包名]	/* 打印电池状态信息 */

        示例查看 终端模拟器 的包信息:

cmcc_jiangsu:/ # dumpsys package jackpal.androidterm
Activity Resolver Table:
  Full MIME Types:
      */*:
        2c3ec43 jackpal.androidterm/.TermHere filter 4201189
          Action: "android.intent.action.SEND"
          Category: "android.intent.category.DEFAULT"
          Type: "*"
          mPriority=0, mOrder=0, mHasPartialTypes=true
        e3a32c0 jackpal.androidterm/.shortcuts.FSNavigator filter 801b9cb
          Action: "android.intent.action.GET_CONTENT"
          Category: "android.intent.category.DEFAULT"
          Category: "android.intent.category.OPENABLE"
          Type: "*"
          mPriority=0, mOrder=0, mHasPartialTypes=true

  Wild MIME Types:
      *:
        2c3ec43 jackpal.androidterm/.TermHere filter 4201189
          Action: "android.intent.action.SEND"
          Category: "android.intent.category.DEFAULT"
          Type: "*"
          mPriority=0, mOrder=0, mHasPartialTypes=true
        e3a32c0 jackpal.androidterm/.shortcuts.FSNavigator filter 801b9cb
          Action: "android.intent.action.GET_CONTENT"
          Category: "android.intent.category.DEFAULT"
          Category: "android.intent.category.OPENABLE"
          Type: "*"
          mPriority=0, mOrder=0, mHasPartialTypes=true

  Non-Data Actions:
      jackpal.androidterm.RUN_SHORTCUT:
        abe4bf9 jackpal.androidterm/.RunShortcut filter a41b1af
          Action: "jackpal.androidterm.RUN_SHORTCUT"
          Category: "android.intent.category.DEFAULT"
      jackpal.androidterm.private.SWITCH_WINDOW:
        9c2673e jackpal.androidterm/.TermInternal filter 7613353
          Action: "jackpal.androidterm.private.SWITCH_WINDOW"
          Category: "android.intent.category.DEFAULT"
      jackpal.androidterm.OPEN_NEW_WINDOW:
        b2f099f jackpal.androidterm/.RemoteInterface filter 7385490
          Action: "jackpal.androidterm.OPEN_NEW_WINDOW"
          Category: "android.intent.category.DEFAULT"
      android.intent.action.MAIN:
        7efbaec jackpal.androidterm/.Term filter b79698d
          Action: "android.intent.action.MAIN"
          Category: "android.intent.category.LAUNCHER"
          Category: "android.intent.category.MULTIWINDOW_LAUNCHER"
        a8eaeb5 jackpal.androidterm/.shortcuts.AddShortcut filter e7629bc
          Action: "android.intent.action.MAIN"
      android.intent.action.PICK:
        e3a32c0 jackpal.androidterm/.shortcuts.FSNavigator filter 8664c9a
          Action: "android.intent.action.PICK"
          Category: "android.intent.category.DEFAULT"
      jackpal.androidterm.RUN_SCRIPT:
        cf9b94a jackpal.androidterm/.RunScript filter ff5658e
          Action: "jackpal.androidterm.RUN_SCRIPT"
          Category: "android.intent.category.DEFAULT"
      jackpal.androidterm.private.OPEN_NEW_WINDOW:
        9c2673e jackpal.androidterm/.TermInternal filter e91742
          Action: "jackpal.androidterm.private.OPEN_NEW_WINDOW"
          Category: "android.intent.category.DEFAULT"
      android.intent.action.CREATE_SHORTCUT:
        a8eaeb5 jackpal.androidterm/.shortcuts.AddShortcut filter c6f3d45
          Action: "android.intent.action.CREATE_SHORTCUT"

  MIME Typed Actions:
      android.intent.action.SEND:
        2c3ec43 jackpal.androidterm/.TermHere filter 4201189
          Action: "android.intent.action.SEND"
          Category: "android.intent.category.DEFAULT"
          Type: "*"
          mPriority=0, mOrder=0, mHasPartialTypes=true
      android.intent.action.GET_CONTENT:
        e3a32c0 jackpal.androidterm/.shortcuts.FSNavigator filter 801b9cb
          Action: "android.intent.action.GET_CONTENT"
          Category: "android.intent.category.DEFAULT"
          Category: "android.intent.category.OPENABLE"
          Type: "*"
          mPriority=0, mOrder=0, mHasPartialTypes=true

Service Resolver Table:
  Non-Data Actions:
      jackpal.androidterm.action.START_TERM.v1:
        604a0bb jackpal.androidterm/.TermService filter 427ba24
          Action: "jackpal.androidterm.action.START_TERM.v1"
          Category: "android.intent.category.DEFAULT"

Permissions:
  Permission [jackpal.androidterm.permission.PREPEND_TO_PATH] (49399d8):
    sourcePackage=jackpal.androidterm
    uid=10031 gids=null type=0 prot=dangerous
    perm=Permission{c88131 jackpal.androidterm.permission.PREPEND_TO_PATH}
    packageSetting=PackageSetting{9a22016 jackpal.androidterm/10031}

Permissions:
  Permission [jackpal.androidterm.permission.RUN_SCRIPT] (6d28d97):
    sourcePackage=jackpal.androidterm
    uid=10031 gids=null type=0 prot=dangerous
    perm=Permission{8947b84 jackpal.androidterm.permission.RUN_SCRIPT}
    packageSetting=PackageSetting{9a22016 jackpal.androidterm/10031}

Permissions:
  Permission [jackpal.androidterm.permission.APPEND_TO_PATH] (f2ff6d):
    sourcePackage=jackpal.androidterm
    uid=10031 gids=null type=0 prot=dangerous
    perm=Permission{c9827a2 jackpal.androidterm.permission.APPEND_TO_PATH}
    packageSetting=PackageSetting{9a22016 jackpal.androidterm/10031}

Key Set Manager:
  [jackpal.androidterm]
      Signing KeySets: 17

Packages:
  Package [jackpal.androidterm] (9a22016):
    userId=10031
    pkg=Package{2286c33 jackpal.androidterm}
    codePath=/data/app/jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ==
    resourcePath=/data/app/jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ==
    legacyNativeLibraryDir=/data/app/jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ=
=/lib
    primaryCpuAbi=armeabi
    secondaryCpuAbi=null
    versionCode=71 minSdk=4 targetSdk=22
    versionName=1.0.70
    splits=[base]
    apkSigningVersion=1
    applicationInfo=ApplicationInfo{e9fcbf0 jackpal.androidterm}
    flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
    privateFlags=[ DEFAULT_TO_DEVICE_PROTECTED_STORAGE DIRECT_BOOT_AWARE ]
    dataDir=/data/user_de/0/jackpal.androidterm
    supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
    usesLibraries:
      org.apache.http.legacy
    usesLibraryFiles:
      /system/framework/org.apache.http.legacy.boot.jar
    timeStamp=2022-07-23 23:53:02
    firstInstallTime=2022-07-23 23:53:02
    lastUpdateTime=2022-07-23 23:53:02
    signatures=PackageSignatures{5cd2569 version:1, signatures:[e7b54ff0], past
signatures:[]}
    installPermissionsFixed=true
    pkgFlags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
    declared permissions:
      jackpal.androidterm.permission.RUN_SCRIPT: prot=dangerous, INSTALLED
      jackpal.androidterm.permission.APPEND_TO_PATH: prot=dangerous, INSTALLED
      jackpal.androidterm.permission.PREPEND_TO_PATH: prot=dangerous, INSTALLED
    requested permissions:
      android.permission.INTERNET
      android.permission.READ_EXTERNAL_STORAGE
      android.permission.WRITE_EXTERNAL_STORAGE
      android.permission.ACCESS_SUPERUSER
      android.permission.WAKE_LOCK
    install permissions:
      android.permission.INTERNET: granted=true
      android.permission.READ_EXTERNAL_STORAGE: granted=true
      android.permission.WRITE_EXTERNAL_STORAGE: granted=true
      android.permission.WAKE_LOCK: granted=true
    User 0: ceDataInode=-4294966708 installed=true hidden=false suspended=false
stopped=false notLaunched=false enabled=0 instant=false virtual=false
      gids=[3003]
      runtime permissions:

Package Changes:
  Sequence number=0


Dexopt state:
  [jackpal.androidterm]
    path: /data/app/jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ==/base.apk
      arm: [status=speed-profile] [reason=install]


Compiler stats:
  [jackpal.androidterm]
    (No recorded stats)
cmcc_jiangsu:/ # 

        示例查看进程中的 sh 信息:

cmcc_jiangsu:/ # dumpsys procstats sh
CURRENT STATS:
System memory usage:
  SOn /Norm: 1 samples:
    Cached: 176MB min, 176MB avg, 176MB max
    Free: 705MB min, 705MB avg, 705MB max
    ZRam: 12KB min, 12KB avg, 12KB max
    Kernel: 145MB min, 145MB avg, 145MB max
    Native: 388MB min, 388MB avg, 388MB max
       Low : 1 samples:
    Cached: 136MB min, 136MB avg, 136MB max
    Free: 860MB min, 860MB avg, 860MB max
    ZRam: 0.00 min, 0.00 avg, 0.00 max
    Kernel: 129MB min, 129MB avg, 129MB max
    Native: 311MB min, 311MB avg, 311MB max

Summary:

Run time Stats:
  SOn /Norm: +36m9s929ms (running)
       Mod : +24s266ms
       Low : +5s211ms
       Crit: +4s583ms
      TOTAL: +36m43s989ms

Memory usage:
  Kernel : 137MB (16 samples)
  Native : 350MB (16 samples)
  Persist: 154MB (110 samples)
  Top: 121MB (35 samples)
  ImpFg: 134MB (193 samples)
  ImpBg: 7.1MB (15 samples)
  Service: 62MB (168 samples)
  Receivr: 22KB (63 samples)
  LastAct: 466KB (25 samples)
  CchEmty: 117MB (151 samples)
  Cached : 156MB (16 samples)
  Free   : 783MB (16 samples)
  Z-Ram  : 6.0KB (16 samples)
  TOTAL  : 2.0GB
  ServRst: 556KB (28 samples)

PSS collection stats:
  Internal Single: 113x over +6s76ms
  Internal All Procs (Memory Change): 0x over 0
  Internal All Procs (Polling): 2x over +147ms
  External: 0x over 0
  External Slow: 63x over +6s830ms

          Start time: 2015-01-01 08:00:10
        Total uptime: +36m44s154ms
  Total elapsed time: +36m44s154ms (partial) (swapped-out-pss) libart.so

Available pages by page size:
Zone   0       Unmovable      1     0    13    10    17    14    14     9     3
    2     0
Zone   0         Movable      0     1     1     1     4    10     3     0     2
    4   159
Zone   0     Reclaimable      1     1     0     1     0     1     0     0     1
    1     0
Zone   0      HighAtomic      0     0     0     0     0     0     0     0     0
    0     0
Zone   0             CMA      0     0     0     0     0     0     0     0     1
    0     0
Zone   0         Isolate      0     0     0     0     0     0     0     0     0
    0     0
Zone   0       Unmovable      0     1     0     0     1     1     0     0     0
    1     0
Zone   0         Movable      1     0     0     1     1     1     1     1     1
    0    66
Zone   0     Reclaimable      0     0     0     0     0     0     0     0     0
    0     0
Zone   0      HighAtomic      0     0     0     0     0     0     0     0     0
    0     0
Zone   0             CMA      3     3     3     1     4     0     1     0     1
    1   148
Zone   0         Isolate      0     0     0     0     0     0     0     0     0
    0     0

AGGREGATED OVER LAST 24 HOURS:
System memory usage:
  SOn /Norm: 8 samples:
    Cached: 168MB min, 275MB avg, 340MB max
    Free: 463MB min, 639MB avg, 893MB max
    ZRam: 0.00 min, 9.0KB avg, 12KB max
    Kernel: 125MB min, 140MB avg, 149MB max
    Native: 338MB min, 380MB avg, 407MB max
       Low : 2 samples:
    Cached: 136MB min, 233MB avg, 330MB max
    Free: 568MB min, 714MB avg, 860MB max
    ZRam: 0.00 min, 6.0KB avg, 12KB max
    Kernel: 129MB min, 135MB avg, 142MB max
    Native: 311MB min, 358MB avg, 405MB max

Summary:

Run time Stats:
  SOn /Norm: +5h52m19s853ms
       Mod : +22m13s287ms
       Low : +2h0m22s180ms
       Crit: +4s583ms
      TOTAL: +8h14m59s903ms

Memory usage:
  Kernel : 140MB (78 samples)
  Native : 379MB (78 samples)
  Persist: 157MB (241 samples)
  Top: 128MB (88 samples)
  ImpFg: 123MB (1195 samples)
  ImpBg: 13MB (40 samples)
  Service: 49MB (947 samples)
  Receivr: 4.0KB (422 samples)
  LastAct: 373KB (72 samples)
  CchAct: 14MB (17 samples)
  CchEmty: 79MB (391 samples)
  Cached : 272MB (78 samples)
  Free   : 643MB (78 samples)
  Z-Ram  : 8.7KB (78 samples)
  TOTAL  : 1.9GB
  ServRst: 48KB (89 samples)

PSS collection stats:
  Internal Single: 315x over +17s246ms
  Internal All Procs (Memory Change): 81x over +3s988ms
  Internal All Procs (Polling): 63x over +3s189ms
  External: 0x over 0
  External Slow: 519x over +1m2s809ms

          Start time: 2015-01-01 08:00:10
        Total uptime: +8h15m0s252ms
  Total elapsed time: +8h15m0s253ms (partial) (swapped-out-pss) libart.so

Available pages by page size:
Zone   0       Unmovable      1     0    13    10    17    14    14     9     3
    2     0
Zone   0         Movable      0     1     1     1     4    10     3     0     2
    4   159
Zone   0     Reclaimable      1     1     0     1     0     1     0     0     1
    1     0
Zone   0      HighAtomic      0     0     0     0     0     0     0     0     0
    0     0
Zone   0             CMA      0     0     0     0     0     0     0     0     1
    0     0
Zone   0         Isolate      0     0     0     0     0     0     0     0     0
    0     0
Zone   0       Unmovable      0     1     0     0     1     1     0     0     0
    1     0
Zone   0         Movable      1     0     0     1     1     1     1     1     1
    0    66
Zone   0     Reclaimable      0     0     0     0     0     0     0     0     0
    0     0
Zone   0      HighAtomic      0     0     0     0     0     0     0     0     0
    0     0
Zone   0             CMA      3     3     3     1     4     0     1     0     1
    1   148
Zone   0         Isolate      0     0     0     0     0     0     0     0     0
    0     0

AGGREGATED OVER LAST 3 HOURS:
System memory usage:
  SOn /Norm: 1 samples:
    Cached: 176MB min, 176MB avg, 176MB max
    Free: 705MB min, 705MB avg, 705MB max
    ZRam: 12KB min, 12KB avg, 12KB max
    Kernel: 145MB min, 145MB avg, 145MB max
    Native: 388MB min, 388MB avg, 388MB max
       Low : 2 samples:
    Cached: 136MB min, 233MB avg, 330MB max
    Free: 568MB min, 714MB avg, 860MB max
    ZRam: 0.00 min, 6.0KB avg, 12KB max
    Kernel: 129MB min, 135MB avg, 142MB max
    Native: 311MB min, 358MB avg, 405MB max

Summary:

Run time Stats:
  SOn /Norm: +36m9s997ms
       Mod : +24s266ms
       Low : +2h0m21s599ms
       Crit: +4s583ms
      TOTAL: +2h37m0s445ms

Memory usage:
  Kernel : 139MB (24 samples)
  Native : 368MB (24 samples)
  Persist: 155MB (129 samples)
  Top: 143MB (29 samples)
  ImpFg: 154MB (414 samples)
  ImpBg: 17MB (14 samples)
  Service: 73MB (314 samples)
  Receivr: 5.1KB (81 samples)
  LastAct: 109KB (29 samples)
  CchEmty: 65MB (151 samples)
  Cached : 214MB (24 samples)
  Free   : 711MB (24 samples)
  Z-Ram  : 8.0KB (24 samples)
  TOTAL  : 2.0GB
  ServRst: 139KB (37 samples)

PSS collection stats:
  Internal Single: 136x over +7s324ms
  Internal All Procs (Memory Change): 0x over 0
  Internal All Procs (Polling): 23x over +1s208ms
  External: 0x over 0
  External Slow: 183x over +21s381ms

          Start time: 2015-01-01 08:00:10
        Total uptime: +2h37m0s615ms
  Total elapsed time: +2h37m0s615ms (partial) (swapped-out-pss) libart.so

Available pages by page size:
Zone   0       Unmovable      1     0    13    10    17    14    14     9     3
    2     0
Zone   0         Movable      0     1     1     1     4    10     3     0     2
    4   159
Zone   0     Reclaimable      1     1     0     1     0     1     0     0     1
    1     0
Zone   0      HighAtomic      0     0     0     0     0     0     0     0     0
    0     0
Zone   0             CMA      0     0     0     0     0     0     0     0     1
    0     0
Zone   0         Isolate      0     0     0     0     0     0     0     0     0
    0     0
Zone   0       Unmovable      0     1     0     0     1     1     0     0     0
    1     0
Zone   0         Movable      1     0     0     1     1     1     1     1     1
    0    66
Zone   0     Reclaimable      0     0     0     0     0     0     0     0     0
    0     0
Zone   0      HighAtomic      0     0     0     0     0     0     0     0     0
    0     0
Zone   0             CMA      3     3     3     1     4     0     1     0     1
    1   148
Zone   0         Isolate      0     0     0     0     0     0     0     0     0
    0     0
cmcc_jiangsu:/ # 

%%%%%

查看系统功能与支持库信息

        查看系统功能:

pm list feature    /* 打印系统的所有功能/列出所有硬件相关信息 */

        查看支持库信息:

pm list libraries    /* 打印当前设备所支持的所有库 */

        示例查看支持库:

cmcc_jiangsu:/ # pm list libraries
library:android.ext.services
library:android.ext.shared
library:android.test.base
library:android.test.mock
library:android.test.runner
library:com.android.future.usb.accessory
library:com.android.location.provider
library:com.android.media.remotedisplay
library:com.android.mediadrm.signer
library:droidlogic.software.core
library:droidlogic.tv.software.core
library:javax.obex
library:org.apache.http.legacy
cmcc_jiangsu:/ # 

%%%%%

测试包与 APK 路径查询

        测试包:

pm list instrymentation	/* 列出所有的 instrumentation 测试包 */
pm list instrymentation 包名	/* 指定某个 app 的测试包 */
pm list instrymentation -f	/* 列出 apk 文件位置 */

        APK 路径查询:

pm path 包名	/* 列出指定包的 APK 路径 */

        示例:

cmcc_jiangsu:/ # pm path jackpal.androidterm
package:/data/app/jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ==/base.apk
cmcc_jiangsu:/ # 

——————————

查询

%%%%%

常用查询语法及常用参数

        pm 查询语法:

pm list packages 参数 包名

        pm 查询常用参数:

-i	查看应用的安装者

-f	显示每个包的文件位置

-d	搭配过滤器 只显示禁用的应用的包名
-e	搭配过滤器 只显示可用的应用的包名
-s	搭配过滤器 只显示系统应用的包名
-3	搭配过滤器 只显示第三方应用的包名

%%%%%

列出所有包

cmcc_jiangsu:/tmp # pm list packages
package:com.iflytek.xiri
package:com.droidlogic.inputmethod.remote
package:com.android.providers.media
package:com.mylejia.store
package:com.android.externalstorage
package:com.android.companiondevicemanager
package:com.android.providers.downloads
package:com.fengyun.live
package:com.droidlogic
package:com.dangbei.tvlauncher
package:com.android.defcontainer
package:com.android.pacprocessor
package:com.android.certinstaller
package:me.thomastv.rebootupdate
package:android
package:com.android.backupconfirm
package:com.android.statementservice
package:com.android.superuser
package:com.android.providers.settings
package:com.android.sharedstoragebackup
package:com.iflytek.xiri2.system
package:com.android.webview
package:com.android.se
package:com.android.inputdevices
package:com.droidlogic.BluetoothRemote
package:android.ext.shared
package:com.android.keychain
package:android.ext.services
package:com.android.packageinstaller
package:com.android.proxyhandler
package:com.android.inputmethod.latin
package:com.android.managedprovisioning
package:com.iflytek.bt.auto
package:com.android.settings
package:com.android.vpndialogs
package:com.android.shell
package:com.dangbeimarket
package:com.android.location.fused
package:com.android.systemui
package:com.android.bluetooth
package:com.cmcc.mid.softdetector
cmcc_jiangsu:/tmp #

%%%%%

-i 查看包的安装者

cmcc_jiangsu:/tmp # pm list packages -i
package:com.iflytek.xiri  installer=null
package:com.droidlogic.inputmethod.remote  installer=null
package:com.android.providers.media  installer=null
package:com.mylejia.store  installer=null
package:com.android.externalstorage  installer=null
package:com.android.companiondevicemanager  installer=null
package:com.android.providers.downloads  installer=null
package:com.fengyun.live  installer=null
package:com.droidlogic  installer=null
package:com.dangbei.tvlauncher  installer=null
package:com.android.defcontainer  installer=null
package:com.android.pacprocessor  installer=null
package:com.android.certinstaller  installer=null
package:me.thomastv.rebootupdate  installer=null
package:android  installer=null
package:com.android.backupconfirm  installer=null
package:com.android.statementservice  installer=null
package:com.android.superuser  installer=null
package:com.android.providers.settings  installer=null
package:com.android.sharedstoragebackup  installer=null
package:com.iflytek.xiri2.system  installer=null
package:com.android.webview  installer=null
package:com.android.se  installer=null
package:com.android.inputdevices  installer=null
package:com.droidlogic.BluetoothRemote  installer=null
package:android.ext.shared  installer=null
package:com.android.keychain  installer=null
package:android.ext.services  installer=null
package:com.android.packageinstaller  installer=null
package:com.android.proxyhandler  installer=null
package:com.android.inputmethod.latin  installer=null
package:com.android.managedprovisioning  installer=null
package:com.iflytek.bt.auto  installer=null
package:com.android.settings  installer=null
package:com.android.vpndialogs  installer=null
package:com.android.shell  installer=null
package:com.dangbeimarket  installer=null
package:com.android.location.fused  installer=null
package:com.android.systemui  installer=null
package:com.android.bluetooth  installer=null
package:com.cmcc.mid.softdetector  installer=null
cmcc_jiangsu:/tmp # 

%%%%%

-u 列出包和未安装包信息

cmcc_jiangsu:/tmp # pm list packages -u
package:com.iflytek.xiri
package:com.droidlogic.inputmethod.remote
package:com.android.providers.media
package:com.mylejia.store
package:com.android.externalstorage
package:com.android.companiondevicemanager
package:com.android.providers.downloads
package:com.fengyun.live
package:com.droidlogic
package:com.dangbei.tvlauncher
package:com.android.defcontainer
package:com.android.pacprocessor
package:com.android.certinstaller
package:me.thomastv.rebootupdate
package:android
package:com.android.backupconfirm
package:com.android.statementservice
package:com.android.superuser
package:com.android.providers.settings
package:com.android.sharedstoragebackup
package:com.iflytek.xiri2.system
package:com.android.webview
package:com.android.se
package:com.android.inputdevices
package:com.droidlogic.BluetoothRemote
package:android.ext.shared
package:com.android.keychain
package:android.ext.services
package:com.android.packageinstaller
package:com.android.proxyhandler
package:com.android.inputmethod.latin
package:com.android.managedprovisioning
package:com.iflytek.bt.auto
package:com.android.settings
package:com.android.vpndialogs
package:com.android.shell
package:com.dangbeimarket
package:com.android.location.fused
package:com.android.systemui
package:com.android.bluetooth
package:com.cmcc.mid.softdetector
cmcc_jiangsu:/tmp # 

%%%%%

-e 列出启用包

cmcc_jiangsu:/tmp # pm list packages -e
package:com.iflytek.xiri
package:com.droidlogic.inputmethod.remote
package:com.android.providers.media
package:com.mylejia.store
package:com.android.externalstorage
package:com.android.companiondevicemanager
package:com.android.providers.downloads
package:com.fengyun.live
package:com.droidlogic
package:com.dangbei.tvlauncher
package:com.android.defcontainer
package:com.android.pacprocessor
package:com.android.certinstaller
package:me.thomastv.rebootupdate
package:android
package:com.android.backupconfirm
package:com.android.statementservice
package:com.android.superuser
package:com.android.providers.settings
package:com.android.sharedstoragebackup
package:com.iflytek.xiri2.system
package:com.android.webview
package:com.android.se
package:com.android.inputdevices
package:com.droidlogic.BluetoothRemote
package:android.ext.shared
package:com.android.keychain
package:android.ext.services
package:com.android.packageinstaller
package:com.android.proxyhandler
package:com.android.inputmethod.latin
package:com.android.managedprovisioning
package:com.iflytek.bt.auto
package:com.android.settings
package:com.android.vpndialogs
package:com.android.shell
package:com.dangbeimarket
package:com.android.location.fused
package:com.android.systemui
package:com.android.bluetooth
package:com.cmcc.mid.softdetector
cmcc_jiangsu:/tmp # 

%%%%%

-d 列出禁用包

cmcc_jiangsu:/tmp # pm list packages -d
cmcc_jiangsu:/tmp #

%%%%%

-s 列出系统包

cmcc_jiangsu:/tmp # pm list packages -s
package:com.iflytek.xiri
package:com.droidlogic.inputmethod.remote
package:com.android.providers.media
package:com.android.externalstorage
package:com.android.companiondevicemanager
package:com.android.providers.downloads
package:com.droidlogic
package:com.dangbei.tvlauncher
package:com.android.defcontainer
package:com.android.pacprocessor
package:com.android.certinstaller
package:android
package:com.android.backupconfirm
package:com.android.statementservice
package:com.android.superuser
package:com.android.providers.settings
package:com.android.sharedstoragebackup
package:com.iflytek.xiri2.system
package:com.android.webview
package:com.android.se
package:com.android.inputdevices
package:com.droidlogic.BluetoothRemote
package:android.ext.shared
package:com.android.keychain
package:android.ext.services
package:com.android.packageinstaller
package:com.android.proxyhandler
package:com.android.inputmethod.latin
package:com.android.managedprovisioning
package:com.iflytek.bt.auto
package:com.android.settings
package:com.android.vpndialogs
package:com.android.shell
package:com.android.location.fused
package:com.android.systemui
package:com.android.bluetooth
package:com.cmcc.mid.softdetector
cmcc_jiangsu:/tmp # 

%%%%%

-3 列出所有第三方包

cmcc_jiangsu:/tmp # pm list packages -3
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:com.dangbeimarket
cmcc_jiangsu:/tmp # 

%%%%%

-f 查看包的安装位置

        列出包和包相关联的文件:

cmcc_jiangsu:/tmp # pm list packages -f
package:/data/app/com.iflytek.xiri-WgYGkZvi6pwHhlca9dWSJw==/base.apk=com.iflytek.xiri
package:/vendor/app/RemoteIME/RemoteIME.apk=com.droidlogic.inputmethod.remote
package:/system/priv-app/MediaProvider/MediaProvider.apk=com.android.providers.media
package:/data/app/com.mylejia.store--X53YUFZXKN1XMhyN9prZw==/base.apk=com.mylejia.store
package:/system/priv-app/ExternalStorageProvider/ExternalStorageProvider.apk=com.android.externalstorage
package:/system/app/CompanionDeviceManager/CompanionDeviceManager.apk=com.android.companiondevicemanager
package:/system/priv-app/DownloadProvider/DownloadProvider.apk=com.android.providers.downloads
package:/data/app/com.fengyun.live-829NViyOdL42DNDyYJhxWw==/base.apk=com.fengyun.live
package:/product/priv-app/droidlogic-res/droidlogic-res.apk=com.droidlogic
package:/system/app/Dangbei2.apk=com.dangbei.tvlauncher
package:/system/priv-app/DefaultContainerService/DefaultContainerService.apk=com.android.defcontainer
package:/system/app/PacProcessor/PacProcessor.apk=com.android.pacprocessor
package:/system/app/CertInstaller/CertInstaller.apk=com.android.certinstaller
package:/data/app/me.thomastv.rebootupdate-4SVHakbq9YXs3X7ozxyY0w==/base.apk=me.thomastv.rebootupdate
package:/system/framework/framework-res.apk=android
package:/system/priv-app/BackupRestoreConfirmation/BackupRestoreConfirmation.apk=com.android.backupconfirm
package:/system/priv-app/StatementService/StatementService.apk=com.android.statementservice
package:/system/app/Superuser/Superuser.apk=com.android.superuser
package:/system/priv-app/SettingsProvider/SettingsProvider.apk=com.android.providers.settings
package:/system/priv-app/SharedStorageBackup/SharedStorageBackup.apk=com.android.sharedstoragebackup
package:/system/app/SystemXiri_release-2.0.4-unsigned_signed_Aligned/SystemXiri_release-2.0.4-unsigned_signed_Aligned.apk=com.iflytek.xiri2.system
package:/product/app/webview/webview.apk=com.android.webview
package:/system/app/SecureElement/SecureElement.apk=com.android.se
package:/system/priv-app/InputDevices/InputDevices.apk=com.android.inputdevices
package:/vendor/app/BluetoothRemote/BluetoothRemote.apk=com.droidlogic.BluetoothRemote
package:/system/app/ExtShared/ExtShared.apk=android.ext.shared
package:/system/app/KeyChain/KeyChain.apk=com.android.keychain
package:/system/priv-app/ExtServices/ExtServices.apk=android.ext.services
package:/system/priv-app/PackageInstaller/PackageInstaller.apk=com.android.packageinstaller
package:/system/priv-app/ProxyHandler/ProxyHandler.apk=com.android.proxyhandler
package:/system/app/LatinIME/LatinIME.apk=com.android.inputmethod.latin
package:/system/priv-app/ManagedProvisioning/ManagedProvisioning.apk=com.android.managedprovisioning
package:/system/app/BtAutoConn_release_9.0_V1.0_19_20210827_chinamobile/BtAutoConn_release_9.0_V1.0_19_20210827_chinamobile.apk=com.iflytek.bt.auto
package:/system/app/SkySettingA9_jiangsuCMCC_release/SkySettingA9_jiangsuCMCC_release.apk=com.android.settings
package:/system/priv-app/VpnDialogs/VpnDialogs.apk=com.android.vpndialogs
package:/system/priv-app/Shell/Shell.apk=com.android.shell
package:/data/app/com.dangbeimarket-GvchZCDlwKegHBtoXBQhwg==/base.apk=com.dangbeimarket
package:/system/priv-app/FusedLocation/FusedLocation.apk=com.android.location.fused
package:/system/priv-app/SystemUI/SystemUI.apk=com.android.systemui
package:/system/app/Bluetooth/Bluetooth.apk=com.android.bluetooth
package:/system/app/SoftDetector_V5.1.0_20210721_35101_x025_encrypt/SoftDetector_V5.1.0_20210721_35101_x025_encrypt.apk=com.cmcc.mid.softdetector
cmcc_jiangsu:/tmp #

%%%%%

搜索包

        搜索包很简单 在引号中输入包包含的字符 所有匹配的信息都列出来:

shell@GIONEE_G1605A:/ $ pm list packages "androidterm"    /* 寻找包含 androidterm 的包 */
package:jackpal.androidterm
shell@GIONEE_G1605A:/ $ 

        也可以根据多个参数配合查找:

cmcc_jiangsu:/tmp # pm list packages -3 "live"    /* 在第三方软件中搜索包含 live 字样的包 */
package:com.fengyun.live
cmcc_jiangsu:/tmp # 

——————————

卸载

        卸载时如果加上 -k 参数表示保留配置和缓存文件:

pm uninstall -k 应用名    /* 卸载应用且保留数据与缓存 */
pm uninstall 应用名    /* 如果不加 -k 参数则全部删除 */

        卸载安卓预装软件的话我们经常使用该命令:

pm uninstall -k –user 包名

        示例卸载终端模拟器:

shell@GIONEE_G1605A:/ $ pm list packages -3
package:com.uei.quicksetsdk.mtkirmgr
package:jackpal.androidterm
package:com.iflytek.translate
shell@GIONEE_G1605A:/ $ pm uninstall jackpal.androidterm
Success
shell@GIONEE_G1605A:/ $ pm list packages -3
package:com.uei.quicksetsdk.mtkirmgr
package:com.iflytek.translate
shell@GIONEE_G1605A:/ $ 

%%%%%

根据 UID 卸载指定账户应用

        还可以卸载指定用户的软件

pm uninstall --user 0 应用    /* 卸载默认用户的 应用 */

        示例搭配用户 UID 卸载指定软件:

cmcc_jiangsu:/ # pm list packages -3    /* 查看第三方应用 */
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:jackpal.androidterm
package:com.dangbeimarket
cmcc_jiangsu:/ # pm uninstall --user 0 com.xiaodianshi.tv.yst    /* 卸载机主的小破站 */
Success
cmcc_jiangsu:/ # pm list packages -3    /* 查看第三方应用 卸载成功 */
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:jackpal.androidterm
package:com.dangbeimarket
cmcc_jiangsu:/ # 

——————————

安装

        需要注意的是 pm install 与 adb install 不同

        adb install 安装的 .apk 是在你的电脑上!

        而 pm install 安装的 .apk 是存储在你的手机中!

        所以手下你需要将 .apk 文件上传到手机目录中 常用的目录如:

/data/local/tmp

        安装 apk 最常用的两种方式:

pm install apk    /* 安装指定 apk */
pm install -r APK    /* -r 参数表示重新安装指定 apk 会保留应用数据 */

        其她参数 可能以后会用到:

-l    锁定应用程序
-t    允许测试 apk 被安装
-i    指定安装包的包名!!!
-s    安装到 sd 卡
-f    默认安装到系统内置存储中
-d    允许降级安装 同一应用低级换高级

        示例安装终端模拟器:

cmcc_jiangsu:/ # pm list packages -3
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:com.dangbeimarket
cmcc_jiangsu:/ # ls /tmp/Term.apk  -alh 
-rw-r--r-- 1 root root 551K 2022-05-28 23:35 /tmp/Term.apk
cmcc_jiangsu:/ # pm install /tmp/Term.apk
avc:  denied  { read } for  scontext=u:r:system_server:s0 tcontext=u:object_r:su
_tmpfs:s0 tclass=file permissive=1
Success
cmcc_jiangsu:/ # pm list packages -3
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:jackpal.androidterm
package:com.dangbeimarket
cmcc_jiangsu:/ # 

%%%%%

将 APP 安装到指定 UID 用户下

        语法格式:

pm install –user USER_ID name.apk

        示例将当贝市场安装到机主用户下:

cmcc_jiangsu:/ # pm list users    /* 列出用户信息 */
Users:
        UserInfo{0:机主:13} running
cmcc_jiangsu:/ # ls /sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload    /* 查看安装包在哪里 */
Term-1.0.65.apk bilibiliTV_1.5.1_dangbei.apk
Term.apk        dangbeishichang1_3.11.9.2_dangbei.apk
cmcc_jiangsu:/ # pm list packages -3    /* 查看第三方应用列表 */
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:jackpal.androidterm
package:com.dangbeimarket
cmcc_jiangsu:/ # cd /sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload    /* 进入安装包目录 */
cmcc_jiangsu:/sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload # pwd    /* 查看当前位置 */
/sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload
cmcc_jiangsu:/sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload # pm install --user 0 dangbeishichang1_3.11.9.2_dangbei.apk    /* 将指定 apk 安装到 UID 为 0 的用户上 */
avc:  denied  { read } for  scontext=u:r:system_server:s0 tcontext=u:object_r:sd
cardfs:s0 tclass=file permissive=1
Success
cmcc_jiangsu:/sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload # cd /    /* 回到根目录 */
cmcc_jiangsu:/ # pm list packages -3    /* 查看第三方应用列表 发现多出来 com.dangbeimarket */
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:jackpal.androidterm
package:com.dangbeimarket
package:com.tv.kuaisou
cmcc_jiangsu:/ # 

        安装成功:

com.dangbeimarket

——————————

控制

%%%%%

清除应用数据

        语法如下:

pm clear 包名

        示例 清除终端模拟器的数据:

shell@GIONEE_G1605A:/mnt/sdcard $ pm clear jackpal.androidterm
Success
shell@GIONEE_G1605A:/mnt/sdcard $ 

%%%%%

停用/禁用/启用

        需要注意的是只有系统应用才可以禁用 第三方应用不可以哦

        主要是对 package/包 或 component/组件 进行操作:

pm enable 包名/组件名    /* 使 package 或 component 可用 */
pm disenable 包名/组件名    /* 使 package 或 component 不可用 直接就找不到应用了 */
pm disenable-user 包名/组件名    /* 使 package 或 component 不可用 会显示已停用 */

        示例禁用 com.android.webview 包 介绍一个这个包:

        WebView 是 Android 系统提供的一个能显示网页的系统控件

        是一个特殊的 View 同时也是一个 ViewGroup 可以有很多其她子 View
        该控件的作用是用来展示一个 web 页面

        她使用的内核是 webkit 引擎
        在低版本和高版本采用了不同的 webkit 版本内核

        在版本更新到 4.4 后直接使用了 Chrome 作为内置网页浏览器

cmcc_jiangsu:/ # pm list packages -d    /* 没有禁用包 */
cmcc_jiangsu:/ # pm list packages -s    /* 查看系统包 */
package:com.iflytek.xiri
package:com.droidlogic.inputmethod.remote
package:com.android.providers.media
package:com.android.externalstorage
package:com.android.companiondevicemanager
package:com.android.providers.downloads
package:com.droidlogic
package:com.dangbei.tvlauncher
package:com.android.defcontainer
package:com.android.pacprocessor
package:com.android.certinstaller
package:android
package:com.android.backupconfirm
package:com.android.statementservice
package:com.android.superuser
package:com.android.providers.settings
package:com.android.sharedstoragebackup
package:com.iflytek.xiri2.system
package:com.android.webview
package:com.android.se
package:com.android.inputdevices
package:com.droidlogic.BluetoothRemote
package:android.ext.shared
package:com.android.keychain
package:android.ext.services
package:com.android.packageinstaller
package:com.android.proxyhandler
package:com.android.inputmethod.latin
package:com.android.managedprovisioning
package:com.iflytek.bt.auto
package:com.android.settings
package:com.android.vpndialogs
package:com.android.shell
package:com.android.location.fused
package:com.android.systemui
package:com.android.bluetooth
package:com.cmcc.mid.softdetector
cmcc_jiangsu:/ # pm disable-user com.android.webview    /* 停用该包 这是一个浏览器控件 */
Package com.android.webview new state: disabled-user
cmcc_jiangsu:/ # pm list packages -d    /* 查看禁用包 成功禁用 */
package:com.android.webview
cmcc_jiangsu:/ # pm disable com.android.bluetooth    /* 禁用该包 这是蓝牙 */
Package com.android.bluetooth new state: disabled
cmcc_jiangsu:/ # pm list packages -d    /* 查看禁用包 蓝牙也被禁了 */
package:com.android.webview
package:com.android.bluetooth
cmcc_jiangsu:/ # 

        WebView 组件是安卓系统中内置的一款基于 webkit 引擎、展现 web 页面的控件
        WebView 能够对 Web 页面进行显示和渲染
        网络上或本地可以直接使用 html 文件作布局 更可以和 JavaScript 交互调用

        WebView 控件功能强大

        除了具有一般 View 的属性和设置外 还可以对 url 请求、页面加载、渲染、页面交互进行强大的处理

    总的来说 WebView 是用于展示网络请求后的结果
    比如开发者开发一款 APP 如果想要用她访问网络 但是不想使用手机安装的浏览器
    而是想在自己 APP 内部打开展示网页 此时就可以使用 WebView 这个组件来展示网页

        蓝牙就不需要介绍了吧 懂的都懂

        下面示例一下怎么启用应用:

cmcc_jiangsu:/ # pm enable com.android.webview    /* 恢复 WebView 控件 */
Package com.android.webview new state: enabled
cmcc_jiangsu:/ # pm list packages -d    /* 查看禁用包列表 WebView 已经恢复 */
package:com.android.bluetooth
cmcc_jiangsu:/ # pm enable com.android.bluetooth    /* 恢复蓝牙 */
Package com.android.bluetooth new state: enabled
cmcc_jiangsu:/ # pm list packages -d    /* 已经没有禁用包了 */
cmcc_jiangsu:/ # pm list packages -s
package:com.iflytek.xiri
package:com.droidlogic.inputmethod.remote
package:com.android.providers.media
package:com.android.externalstorage
package:com.android.companiondevicemanager
package:com.android.providers.downloads
package:com.droidlogic
package:com.dangbei.tvlauncher
package:com.android.defcontainer
package:com.android.pacprocessor
package:com.android.certinstaller
package:android
package:com.android.backupconfirm
package:com.android.statementservice
package:com.android.superuser
package:com.android.providers.settings
package:com.android.sharedstoragebackup
package:com.iflytek.xiri2.system
package:com.android.webview
package:com.android.se
package:com.android.inputdevices
package:com.droidlogic.BluetoothRemote
package:android.ext.shared
package:com.android.keychain
package:android.ext.services
package:com.android.packageinstaller
package:com.android.proxyhandler
package:com.android.inputmethod.latin
package:com.android.managedprovisioning
package:com.iflytek.bt.auto
package:com.android.settings
package:com.android.vpndialogs
package:com.android.shell
package:com.android.location.fused
package:com.android.systemui
package:com.android.bluetooth
package:com.cmcc.mid.softdetector
cmcc_jiangsu:/ #

%%%%%

隐藏与恢复应用

        被隐藏应用在应用管理中变得不可见 桌面图标也会消失:

pm hide 应用    /* 隐藏 package 或 component */
pm unhide 应用    /* 将 package 或 component 恢复可见 */

        示例隐藏小破站:

cmcc_jiangsu:/ # pm list packages -3    /* 查看第三方应用 */
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:jackpal.androidterm
package:com.dangbeimarket
cmcc_jiangsu:/ # pm hide com.xiaodianshi.tv.yst    /* 隐藏 B 站 TV 版 */
Package com.xiaodianshi.tv.yst new hidden state: true
cmcc_jiangsu:/ # pm list packages -3    /* 再次查看第三方应用 发现消失了 */
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:jackpal.androidterm
package:com.dangbeimarket
cmcc_jiangsu:/ # pm list packages -d    /* 并没有禁用 */
cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png    /* 截个屏 */
screencap 3
screencap start. screen_type: 1
file path: /sdcard/sc/1.png
new ScreenCatch ok
got video+osd data: 1280 x 720
SkEncodeImage success
screencap end
cmcc_jiangsu:/ # 

        发现桌面图标消失掉了:

screencap -p /sdcard/sc/1.png

        示例恢复小破站:

cmcc_jiangsu:/ # pm unhide com.xiaodianshi.tv.yst    /* 恢复小破站 */
Package com.xiaodianshi.tv.yst new hidden state: false
cmcc_jiangsu:/ # pm list packages -3    /* 查看第三方应用 bilibili tv 回来了 */
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:jackpal.androidterm
package:com.dangbeimarket
cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png    /* 截个屏 */
screencap 3
screencap start. screen_type: 1
file path: /sdcard/sc/1.png
new ScreenCatch ok
got video+osd data: 1280 x 720
SkEncodeImage success
screencap end
cmcc_jiangsu:/ # 

回来了

%%%%%

默认安装位置

        返回当前应用的安装位置:

pm get-install-localtion

        会返回 0/1/2 三种值 分别表示 自动/内部/外部

        示例:

cmcc_jiangsu:/ # pm get-install-location
0[auto]
cmcc_jiangsu:/ #

        我这边是让系统自动安装

        控制应用的默认安装位置

pm set-install-location 位置    /* 更改默认的安装位置 */

        参数如下:

0    自动 让系统决定最好的位置
1    内部存储 安装在内部设备上的存储
2    外部存储 安装在外部媒体

        示例更改安装位置 注意:

只适用于调试 不要瞎搞!

cmcc_jiangsu:/ # pm set-install-location 2
cmcc_jiangsu:/ # pm get-install-location
2[external]
cmcc_jiangsu:/ # pm set-install-location 1
cmcc_jiangsu:/ # pm get-install-location
1[internal]
cmcc_jiangsu:/ # pm set-install-location 0
cmcc_jiangsu:/ # pm get-install-location
0[auto]
cmcc_jiangsu:/ # 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
访问 Android 内置的 Linux 命令行 shell。 受欢迎的“Android Terminal Emulator”的一个新版本。同样的程序,新的名字。 主要功能 + 完整的 Linux 终端模拟器。 + 多窗口。 + 启动器快捷显示 + 支持 UTF-8 文本。(阿拉伯语、中文、希腊语、希伯来文、日语、韩文、俄语、泰文等。) + 全免费,无广告、无内置付费项目,无烦人的屏幕。 常见问题简述: + 如果遇到输入问题,请安装免费的“Hacker's Keyboard IME”。(尤其是对于三星或 HTC 设备。) + 该应用非游戏模拟器。 + 该应用不用于获取手机 root 权限或更改手机 IMEI 码。 + 需知道(或愿意学习)通过该应用使用命令行。 + 为了使用 Android 设备内置命令之外的命令,需安装一组命令行应用,比如 Busy Box 或 Debian chroot。 + 在版本低于 5.0 的 Android 系统上安装该应用,如果出现 -505 错误,表示其他应用正在使用同样的权限。为了成功安装本应用,请先卸载这些应用。(有用户反馈称,导致该问题的原因是 jrummy's Toolbox Pro。) 想要了解更多有关 Terminal Emulator for Android 的信息? 请加入 G+ 社区:#Android Terminal Emulator https://plus.google.com/u/0/communities/106164413936367578283 或查看文档 wiki: http://github.com/jackpal/Android-Terminal-Emulator/wiki 想要参加 Terminal Emulator for Android 的翻译或校对?请访问 https://github.com/jackpal/Android-Terminal-Emulator/wiki/Translating-to-Other-Languages for instructions。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燃吹

呜呜呜没钱钱吃饭了……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值