使用'adb shell pm uninstall'卸载系统应用程序失败


20

我试图在ADB中强制卸载,但失败了:

$ adb shell pm uninstall -k org.openintents.filemanager
$ adb shell pm list packages -f | grep -i manager
package:/system/app/FileManager.apk=org.openintents.filemanager

这里出了什么问题?我能做什么?

我使用了内部应用程序管理器,没有选择将其删除。


1
从/ system手动删除应用程序时,请记住在/ data / data /«identifier»中删除其相应的数据文件夹。/data/system/packages.xml中也有以前的apk签名的踪迹,该签名可能会阻止重新安装已重建的用其他密钥打包。
Anddam

〜“ 系统应用程序 ” 是什么意思?
IgorGanapolsky '16

Answers:


18

好吧,由于该FileManager.apk软件包位于/system/app/目录中,因此它是一个系统应用程序。因此,删除它的一般方法是:

adb shell
su
mount -o rw,remount /system
rm -rf /system/app/FileManager.apk
rm -rf /data/data/org.openintents.filemanager
mount -o ro,remount /system
exit
exit

1
运行时mount -o ro,remount /system,出现错误:设备或资源繁忙
IgorGanapolsky '16

1
@IgorG。我能够通过回答实际设备上的提示来解决此问题。
亚历克斯B

@AlexB实际上,没有提示发生。我猜这是一个自定义的盗版电话。
IgorGanapolsky '16

10

编辑:当我看到对CommonsWare答案的评论时,我没有意识到它与询问者相同...不管怎么说,一些解释可能对某人有用。

如您自己所言,卸载系统应用程序最简单的方法就是删除.apk文件。该adb install/ adb uninstall命令是有用的常规应用,而不是系统应用。由于此apk位于中/system/appadb uninstall因此不会将其删除。

您可以使用建议的命令(rm /system/app/YourApp.apk),但在/system文件夹需要具有写权限之前。您将需要查看如何remount /system在特定设备中操作,请尝试搜索“ android remount +rw /system”和您的设备)。

或者,您可以使用可以执行删除和重新挂载并且具有root访问权限的任何应用程序,例如Root ExplorerAstro


谢谢aleadam ...情节变厚,因为我确实删除了apk的rm,但也许不是缓存。.我无法从市场上安装..失败了..看来我要么必须清除dalvik缓存,要么将整个ROM还原为备份映像...使用adb在cmd行安装==> [INSTALL_FAILED_UPDATE_INCOMPATIBLE] ...无法使用市场下载安装...得到“安装错误不兼容的更新” ... im自定义ROM并有2周大的备份,我可能只是恢复到原来的状态。

链接 我应该做的是在该线程的

1

' Failure'问题与adb shell附加一个以^ M结尾的DOS行(无论如何在CentOS Linux上)有关。将要卸载的应用程序列表放入文件中,然后直接复制到android设备。

root@android:/root # dos2unix list-of-apps-to-uninstall.txt     
root@android:/root # for f in `cat list-of-apps-to-uninstall.txt` ; do echo $f; pm uninstall $f; done;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.