Android 无需 root 卸载系统应用

卸载应用的命令

adb shell pm uninstall [-k] [--user USER_ID] 包名

-k : 卸载应用但保留数据和缓存
--user 指定用户 id : Android 系统支持多个用户,默认系统用户只有一个,id=0。

卸载系统应用(例:系统自带的计算器)

  • 不指定用户ID

当我们不设置用户ID的时候,卸载系统应用是不成功的。

adb shell pm uninstall com.android.calculator2

返回:

Failure [DELETE_FAILED_INTERNAL_ERROR]
  • 指定用户ID

当我们设置了用户ID为系统用户即id=0时,可以成功的卸载系统应用。

adb shell pm uninstall --user 0 com.android.calculator2

返回:

Success

所以,当我们想卸载系统应用时,我们只需要指定其id=0即可。

那对于那些不知道其包名的应用怎么办?

通过下面的方法获取包名即可。

查看APP的包名

打开APP,然后再输入如下命令:

  • Linux系统

adb shell dumpsys window | grep mCurrentFocus

  • Windows系统

adb shell dumpsys window | findstr mCurrentFocus

结果:

  mCurrentFocus=Window{d7e79b8 u0 com.android.calculator2/com.android.calculator
2.Calculator}

通过这个命令我们就可以获取当前应用的包名和Activity名了。

恢复出厂设置

当我们不小心把系统核心应用给卸载了怎么办?那就只能恢复出厂设置来解决了。如果有幸,你的设备Launcher应用可以正常使用,那就打开系统设置,然后去恢复出厂设置即可。如果无法操作系统设置怎么办?那就使用adb命令的方法来实现。以前有一种发广播的方式adb shell am broadcast -a android.intent.action.MASTER_CLEAR,但现在好像实现不了。来看看用adb的方式:

adb root
adb shell "echo \"--wipe_data\" > /cache/recovery/command"
adb reboot recovery

总结

我们想要卸载应用(包括系统应用)只需要分两步:

第一步:获取应用的包名(当前打开的应用)

Windows 系统:
adb shell dumpsys window | findstr mCurrentFocus
或者 Linux 系统:
adb shell dumpsys window | grep mCurrentFocus

第二步:使用卸载命令

adb shell pm uninstall --user 0 包名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值