在安装不同版本的应用程序时出现签名错误

时间:2019-06-12 13:00:53

标签: filesystems telegram android-7.1-nougat

最近我安装了一个名为eelo的自定义ROM。该电报应用程序已预先安装,因此可以视为系统应用程序。但是它是一种具有不同特征的自定义构建,它缺少许多功能,并且在本质上已过时。因此,我想安装该应用程序的正式版本。

对于安装该应用程序,我尝试使用adb shell pm uninstall --user 0 org.telegram.messenger卸载前一个应用程序。输出显示为SUCCESS,并验证了我尝试过的adb uninstall --user 0 org.telegram.messenger的卸载。它的输出也为SUCCESS。当我进行下一步以使用命令adb install Telegram-5.7.1.apk安装 新APK 时,它发出了

adb: failed to install Telegram-5.7.1.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package org.telegram.messenger signatures do not match the previously installed version; ignoring!]

经过进一步研究,我发现我需要注释掉/data/system/packages.xml文件的电报包部分。但是在编辑文件并重新引导后,文件将恢复为编辑之前的原始内容。我什至尝试用chmod 744 /data/system更改文件夹的权限,并用packages.xml更改文件chmod 777 /data/system/packages.xml的权限,但没有效果,因为它们在重新启动后全部还原。

我想从系统中完全卸载Telegram应用并安装一个新的。以及如何编辑/data/system/packages.xml文件并阻止系统将其还原。

任何形式的帮助或建议都是完全可以理解的。

1 个答案:

答案 0 :(得分:0)

最终找到了该查询的答案以及解决方法。

  1. 第一个是如何完全删除系统应用程序? 这些是以下步骤

    $ adb root-使用root特权启动adbd。

    $ adb shell-直接与电话系统交互。

    $ pm uninstall --user 0 <package>.apk-要从root用户卸载软件包,就是要从系统中删除的任何软件包。

    这几个步骤可能会删除整个程序包,但就我而言,它有所不同,因为它从先前构建的应用程序中留下了几个文件。所以这些是我遵循的步骤:

    $ adb shell mount -o rw,remount /system-这会将系统重新安装为读写状态。最初/system是只读文件夹,因此您无法直接进行编辑。

    $ adb shell rm -r /system/<package>.apk-这将删除apk,并且以前的版本将不存在任何内容。

  2. 为什么我不能编辑/data/system/packages.xml文件?

    对此的答案是,尽管我可以使用vim对其进行编辑,但它仍会恢复为以前的未编辑形式。发生这种情况是因为它正在更新/system/app文件中的信息。因此,对其进行编辑是徒劳的。

请参阅以下实际上对我有帮助的链接

Read only file system on Android

https://www.besttechie.com/remove-preloaded-software-from-android/