删除系统应用导致INSTALL_FAILED_UPDATE_INCOMPATIBLE的安装错误

升级完海尔电视rom之后,打算卸载系统自带的优酷应用,装一个新版本。由于是系统应用,所以无法在电视上通过应用管理程序卸载的。

果断连接上adb ,使用adb shell进行卸载。

1.寻找系统应用

进入/data/system/app 下,找到优酷的apk

2.切换用户

输入【su】,切换到root账户

授予/data/system 文件夹读写权限(注意:有的盒子可能不支持该命令)

mount -o remount rw /system

3.删除系统应用

使用【rm】删除应用后,再次安装之后,发现logcat报INSTALL_FAILED_UPDATE_INCOMPATIBLE 错误,应该是删除文件之后,再次安装的应用与系统记录的版本不一致造成的。

解决办法:

系统安装的应用信息,记录在一个文件中,类似于windows的注册表。该文件叫packages.xml ,一般放置 /data/system/app下(不同厂商放置的位置不同,有的在system下)

按Ctrl+C退出adb shell ,利用adb pull /data/system/app/packages.xml命令将packages.xml放到你PC机本地,然后找到你需要的包名,删除<package>到</package>的一段数据。例如:

<package name="com.youku.tv" codePath="/data/app/com.youku.tv-1.apk" flags="0" ts="1382501265000" version="1801000" userId="10036">
<sigs count="1">
<cert index="3" />
</sigs>
<perms>
<item name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<item name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<item name="android.permission.GET_TASKS" />
<item name="android.permission.WRITE_EXTERNAL_STORAGE" />
<item name="android.permission.READ_LOGS" />
<item name="android.permission.ACCESS_WIFI_STATE" />
<item name="android.permission.ACCESS_COARSE_LOCATION" />
<item name="android.permission.DISABLE_KEYGUARD" />
<item name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<item name="android.permission.READ_PHONE_STATE" />
<item name="android.permission.RECEIVE_BOOT_COMPLETED" />
<item name="android.permission.SYSTEM_ALERT_WINDOW" />
<item name="android.permission.CAMERA" />
<item name="android.permission.WRITE_SETTINGS" />
<item name="android.permission.INTERNET" />
<item name="android.permission.ACCESS_FINE_LOCATION" />
<item name="android.permission.VIBRATE" />
<item name="com.android.launcher.permission.READ_SETTINGS" />
<item name="android.permission.WAKE_LOCK" />
<item name="android.permission.ACCESS_NETWORK_STATE" />
<item name="com.android.launcher.permission.WRITE_SETTINGS" />
</perms>
</package>

保存packages.xml,然后adb push packages.xml /data/system将packages.xml文件送回设备中。

然后再次adb install安装你的apk文件,看看是否success。

如果还不能成功,还有一种可能性,就是你的安装包与之前设备上的安装包签名不一致,或者你的安装包根本就没有签名。这时候采用adb uninstall 包名卸载之前的安装包,再次adb install 安装你的apk文件。

如果还不行,查看logcat日志,进一步分析具体原因。


原文链接:http://www.67tgb.com/?p=634

转载注明:望月听涛

你可能感兴趣的:(删除系统应用导致INSTALL_FAILED_UPDATE_INCOMPATIBLE的安装错误)