我可以使用adb uninstall <package_name>
从我的计算机上卸载设备上的应用程序,但我想对实际设备上的脚本执行相同的操作。
我也尝试使用android.intent.action.DELETE
运行am
意图,但它会提示用户进行确认。
鉴于设备已植根,是否可以在设备上运行命令以卸载应用程序而无需用户操作/确认?
尝试使用pm
command:
pm uninstall <package_name>
要么
pm uninstall -k <package_name>
删除包后,-k
标志会保留数据和缓存目录。
我自己没有测试过,但我不认为这应该显示警告信息。
adb shell pm uninstall *your.package.name*
对我有把戏。
要强制卸载系统用户应用程序:
使用:
adb shell pm uninstall --user 0 <package_name>
我卸载了一些系统启动器失败了(例如NovaLauncher)在这种情况下我建议使用“禁用”而不是“卸载”:
pm disable <package_name>
结果,当你有几个启动器时,你可以从启动器列表中隐藏这个系统启动器(sys app)
某些应用无法卸载,因此在命令下方会出现错误:
adb shell pm uninstall package_name Failure [DELETE_FAILED_INTERNAL_ERROR]
尝试运行disable命令,
adb shell pm disable package_name Package package_name new state: disabled
从设备中删除任何应用程序的简单命令,请尝试以下操作:
pm uninstall --user 0
此命令将强制从设备中删除该应用程序。
如果你想重新安装为用户删除的包(即pm uninstall --user 0
),没有root:
pm install --user 0 $(pm dump <package name> | awk '/path/{ print $2 }')
这将找到卸载的软件包的.apk
:pm dump <package name>
并搜索以path:
开头的行以获取.apk
的路径(请注意pm path <package>
不适用于已卸载的应用程序)并使用pm install --user 0
安装它(注意pm install
没有--user
参数不会'工作)。
这适用于任何系统应用程序,这是pm disable-user <package>
的一个很好的替代品,它仍然允许您通过设置轻松启用应用程序。例如,您可以卸载Play商店(pm uninstall --user 0 com.android.vending
)并且无法在默认的非root设备上启用/安装任何应用程序,而无法访问adb
或pm
。