【问题标题】:Extract apk and merge with updates, then install new apk提取apk并与更新合并,然后安装新的apk
【发布时间】:2021-07-21 21:12:21
【问题描述】:

首先,当您的手机上有应用并且此应用在 Play 商店中有更新时,谷歌只返回更新的部分代码而不是整个包装(例如 3 毫克而不是 8 毫克,即整个包装的大小)。我研究并发现在android方面,google play提取本地应用程序并合并从play store下载的更新文件并生成新的apk,然后安装新的apk和更新。考虑到 Play 商店没有用于签署新 apk 的 apk 密钥库,但 apk 已成功安装。 现在,我有一个应用程序可以从我的服务器下载更新的 apk。服务器检测两个 apk 之间的更改并仅返回已完成的更改。现在,在 android 端,我希望我正在运行的应用程序提取本地 apk 并将其与更新合并并生成新的 apk(如 Play 商店)。它也应该签署新的 apk,但它不应该将我的密钥库放在用户端文件中。 我最近在 Windows 中,解压缩了一个 apk 文件并从另一个 apk 中添加了一些文件。两个 apk 都已签名。把那个新的apk放在我的手机里。但android无法安装应用程序并说“应用程序无法安装”。 我该怎么做?

【问题讨论】:

    标签: android


    【解决方案1】:

    应用无法修改其 APK。该 apk 文件仅对用户 system 可写,因此非 root 设备上的常规应用程序无法更新或修改其自己的或任何其他 apk。

    唯一的方法是保存到 sdcard 上的 apk,然后触发应用程序的侧面加载,以便用户可以选择安装它。但是 AFAIR 需要为“安装来自未知来源的应用程序”激活设备(默认情况下禁用)。

    签名:APK 签名由一个文本文件组成,该文件包含其中包含的每个文件的哈希值和 APK 以及该文本文件的签名。

    因此,如果您有两个 APK:一个旧 APK 和一个新 APK 都正确签名,您提取旧 APK 和新 APK 之间的更改(包括带有哈希值的文本文件及其签名),然后应用提取的更改对于旧 apk,“更新的旧 apk”不会按位相同,但具有相同的内容。因此签名将再次有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多