我正在尝试将修改后的apk文件安装到我的Nook Simple Touch上.我修改了Reader.apk程序,重新编译它,并用我自己的密钥签名.
我知道如果签名密钥不同,您无法在当前应用上安装应用.但是,INSTALL_FAILED_UPDATE_INCOMPATIBLE即使在完全卸载原始的Reader.apk应用程序后,我也会收到错误消息.
检查packages.xml文件后,我删除了旧的Reader.apk应用程序的条目.我仍然得到这个错误.该应用程序已完全卸载,我无法安装我的修改版本.
即使使用我的新密钥签署原始资源也会导致出现此错误(因此它与我所做的实际更改无关).
根据文档,如果先前安装的同名包具有与新包不同的签名(并且未删除旧包的数据),则会出现此错误.
如果您确定要将其删除,可能会有一些旧签名仍在浮动的位置,删除没有,嗯,删除.擦除仿真器/设备数据应该可以解决问题.
解决办法就是修改该AndroidManifest.xml文件。您需要删除sharedUserId第二行中的属性。
Reader.apk 文件是一个系统应用程序,由设备本身的制造商制作,这些制造商还制作了其他几个应用程序。因此,他们能够设置sharedUserId标志,这允许他们的所有应用程序相互交互。作为安全设计,所有应用程序都需要具有相同的签名密钥。当我尝试安装修改后的应用程序时,它安装失败,因为它试图与其他应用程序共享用户 ID,但缺少正确的签名密钥。
通过删除 xml 中的标志,您可以成功安装修改后的应用程序。更改文件中的以下行AndroidManifest.xml:
<manifest android:sharedUserId="android.media" android:versionCode="1"
android:versionName="1.0" package="com.bn.nook.reader.activities"
xmlns:android="http://schemas.android.com/apk/res/android">
Run Code Online (Sandbox Code Playgroud)
对此:
<manifest android:versionCode="1" android:versionName="1.0"
package="com.bn.nook.reader.activities"
xmlns:android="http://schemas.android.com/apk/res/android">`
Run Code Online (Sandbox Code Playgroud)
请参阅此 xda 帖子了解更多详细信息。(全面披露:我写了那篇文章。)
| 归档时间: |
|
| 查看次数: |
27633 次 |
| 最近记录: |