adb tools(免root使用ADB命令卸载系统预装APP)是一款可以免root卸载预置应用,仅删除当前用户下的APP,不是彻底删除APP,恢复出厂设置后,删除的APP即可恢复。
工具说明
删除APP后,手机不会再显示该APP,也就没有了应用自启,广告等问题。
免root ADB命令卸载系统预装应用
首先要知道系统预装的应用分3种:
不可卸载
这部分没有 root 权限,是不能卸载的。比如 Phone、Message、Calendar 等。
可卸载,可恢复
这部分没有 root 权限,用户也可以卸载,但恢复出厂后又会回来。比如 EMUI 预置的很多第三方的 APP。
可卸载,不恢复
这部分预置在 data 分区,data 分区是用户存储数据的分区,恢复出厂清空数据时也会清理掉这部分 APP。这种情况一般作特殊用途,比如出厂前测试硬件好坏的部分工具 APP,测完恢复出厂,用户也就感觉不到了。
通常说的卸载预置应用是指第1种的,但上面也说了,没有root权限是不能卸载的,岂不是标题党了?
实际上本文要介绍的方法处理起来与上面第2种情况类似,虽说可以免root卸载预置应用,但也不是彻底删除APK,让它不可恢复(root后的删除一般是彻底删除)。
好了,废话不多说,步骤如下:
1、激活开发者模式,打开 USB debug。
2、连接电脑,打开 cmd 窗口。
3、adb shell 进入 shell 模式。
4、获取要卸载的应用的包名,方法如下:
方法1:
借助第三方应用市场,比如全国最大的同性交友网站——酷安,在它上面打开某个应用的详情界面时,浏览器地址栏就会显示出这个应用的包名,比如华为音乐播放器的地址是:https://www.coolapk.com/apk/com.android.mediacenter
包名就是最后一串:com.android.mediacenter
方法2:
列出所有包名,一个个看那个最像。
这种方法比较考研耐心和运气(有可能你以为的不是你以为的),如果知道关键字可以这样搜一下:
方法3(推荐方法):
先将 APP 打开,然后使用 ADB 命令查看当前界面的信息:
这里 window{} 中就是这个界面的包名类名,包名就是:com.baidu.haokan
5、拿到包名之后,接下来就是卸载应用了,命令如下:
这个命令的意思就是将用户 0 的 packageName 应用卸载掉。以上一步的com.baidu.haokan为例:
-k 表示保存数据,如不需要,可去掉 -k。
--user 指定用户 id,Android 系统支持多个用户,默认用户只有一个,id=0。
至此,系统预置的应用就被卸载了。部分情况下,有可能在设置 > 应用列表中看到“未针对此用户安装”的字样,这个没有影响,重启一下就没有了。
当时没有考虑这么多,刚查了一下还有很多具体的指令操作:
不使用参数:adb shell pm list packages,查看当前连接设备或者虚拟机的所有包
使用-f参数:adb shell pm list packages -f, 输出包和包相关联的文件
使用-d参数:adb shell pm list packages -d, 只输出禁用的包。由于本机禁用没有,输出为空。
使用-e参数:adb shell pm list packages -e, 只输出启用的包。
使用-s参数:adb shell pm list packages -s, 只输出系统的包。
使用-3参数:adb shell pm list packages -3, 只输出第三方的包。
使用-i参数:adb shell pm list packages -i, 只输出包和安装信息(安装来源)。
使用-u参数:adb shell pm list packages -u, 只输出包和未安装包信息(安装来源)。
使用--user参数:adb shell pm list packages --user <USER_ID>, 根据用户id查询用户的空间的所有包,USER_ID代表当前连接设备的顺序,从零开始:
使用-e参数且设置过滤条件:adb shell pm list packages -e "ximalaya", 只输出启用的包。
可以根据需要选择不同的指令。
可以尝试一下下面的操作:
1、获取模拟器/设备列表
adb devices
2、指定device来执行adb shell
adb -s devicename shell
例如:
adb -s emulator-5554 shell
在多device的时候,执行adb命令一般都需要用参数-s指定device。例如卸载emulator-5554上的包com.soft.camera
adb -s emulator-5554 uninstall com.soft.camera
adb [-d|-e|-s <serialNumber>] <command>
如果是开了一台真机,一台模拟器;
以下命令直接连接模拟器
adb -e shell
以下命令直接连接真机:
adb -d shell