admin管理员组

文章数量:1558103

作为apk开发人员,经常会遇到要在已预装自家apk的设备上调试新版的apk,这时候就会遇到签名冲突或者已安装错误提示 INSTALL_FAILED_ALREADY_EXISTS

这个时候就需要卸载掉该预装app。

由于预装app比较特殊,通常很难通过下面常用方法卸载掉:

方法一:用户通过遥控器在机顶盒上卸载,尝试卸载预装app时可能会提示“系统app,无法卸载”

方法二:通过adb 命令  “adb uninstall pacakgename”, 对于预装app, 通常操作结果是 “Failure”

对于需要版本迭代、调试的开发者或者QA,此时就需要通过其他方法卸载掉预装app。

经过多次实验,本人尝试出以下操作步骤可以卸载掉一部分设备上的预装app:

1. Adb 连接后 执行命令: adb shell

2. 查询安装包

#find . -name “packagename”

然后会list所有包含该packagename

然后手动到各个目录下执行 # rm -rf packagename

 

3. 查询预装apk的位置

   #find . -name “package.apk”

执行完后通常会发现/system/app/  或者/system/priv_app/ 目录下有之前预装进去的apk。这个apk文件必须删除,否则每次设备启动后系统去检查该预装app是否安装,如果没有安装,系统在启动时就会通过该apk完成安装。删掉该预装apk文件,系统再次启动时就不会安装了。

4. 删除预装apk文件

通常/system 目录下的文件无法正常删除的,会提示“Read only file system”

这时就需要通过命令”mount -o remount,rw /system” 来修改文件模式,使得只读模式变成可读写模式。

然后再到apk所在的目录 /system/app 或者/system/priv_app/ 下, 通过“rm -rf package.apk” 来删除该预装apk文件

 

完成上述步骤后,预装apk文件和安装好的目录都已删除掉了。重启下android 设备,再次adb 连接后,可以到安装目录/data/data/下查看到预装的app目录是否还在。

如果不存在,且查不到该app其他安装目录了,那么恭喜你!大功告成!

本文标签: 设备androidapp