安装不同版本的应用程序时出现签名错误
Getting signature error while installing a different version of the app
最近我安装了一个名为eelo的自定义ROM。 Telegram 应用程序是预装的,因此可以将其视为系统应用程序。但它是一种定制的,具有不同的特点,它缺乏很多功能,而且本质上已经过时了。因此,我想安装正式版的应用程序。
为了安装应用程序,我尝试使用 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
安装 new 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
更改文件夹的权限,用 chmod 777 /data/system/packages.xml
更改文件 packages.xml
的权限,但没有任何效果,因为它在重启后全部恢复。
我想从我的系统中完全卸载 Telegram 应用程序并安装一个新应用程序。以及如何编辑 /data/system/packages.xml
文件并阻止系统将其还原。
非常感谢任何形式的帮助或建议。
最终找到了查询的答案以及解决方法。
首先是如何彻底删除一个系统应用?
这些是以下步骤
$ adb root
- 以 root 权限启动 adbd。
$ adb shell
- 直接与 phone 系统交互。
$ pm uninstall --user 0 <package>.apk
- 要从 root 用户卸载软件包是您要从系统中删除的任何软件包。
这几个步骤可能会删除整个包,但在我的情况下它是不同的,因为它留下了以前构建的应用程序中的几个文件。所以这些是我遵循的步骤:
$ adb shell mount -o rw,remount /system
- 这会将系统重新挂载为 read-write。原来 /system
是一个 read-only 文件夹,所以你不能直接编辑。
$ adb shell rm -r /system/<package>.apk
- 这将删除 apk,之前构建的内容不会留下任何东西。
为什么我无法编辑 /data/system/packages.xml
文件?
答案是,虽然我可以用 vim
编辑它,但它一直恢复到以前未编辑的形式。发生这种情况是因为它正在更新 /system/app
文件中的信息。因此,编辑它是徒劳的。
参考以下实际帮助我的链接
Read only file system on Android
https://www.besttechie.com/remove-preloaded-software-from-android/
最近我安装了一个名为eelo的自定义ROM。 Telegram 应用程序是预装的,因此可以将其视为系统应用程序。但它是一种定制的,具有不同的特点,它缺乏很多功能,而且本质上已经过时了。因此,我想安装正式版的应用程序。
为了安装应用程序,我尝试使用 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
安装 new 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
更改文件夹的权限,用 chmod 777 /data/system/packages.xml
更改文件 packages.xml
的权限,但没有任何效果,因为它在重启后全部恢复。
我想从我的系统中完全卸载 Telegram 应用程序并安装一个新应用程序。以及如何编辑 /data/system/packages.xml
文件并阻止系统将其还原。
非常感谢任何形式的帮助或建议。
最终找到了查询的答案以及解决方法。
首先是如何彻底删除一个系统应用? 这些是以下步骤
$ adb root
- 以 root 权限启动 adbd。$ adb shell
- 直接与 phone 系统交互。$ pm uninstall --user 0 <package>.apk
- 要从 root 用户卸载软件包是您要从系统中删除的任何软件包。这几个步骤可能会删除整个包,但在我的情况下它是不同的,因为它留下了以前构建的应用程序中的几个文件。所以这些是我遵循的步骤:
$ adb shell mount -o rw,remount /system
- 这会将系统重新挂载为 read-write。原来/system
是一个 read-only 文件夹,所以你不能直接编辑。$ adb shell rm -r /system/<package>.apk
- 这将删除 apk,之前构建的内容不会留下任何东西。为什么我无法编辑
/data/system/packages.xml
文件?答案是,虽然我可以用
vim
编辑它,但它一直恢复到以前未编辑的形式。发生这种情况是因为它正在更新/system/app
文件中的信息。因此,编辑它是徒劳的。
参考以下实际帮助我的链接
Read only file system on Android
https://www.besttechie.com/remove-preloaded-software-from-android/