如何使用 'original' 密钥签署 apk

How to sign an apk with 'original' key

大家好,我正在使用 apktools,但我遇到了一个小问题:

我可以反编译和重新编译 apk,但是当我想在我的设备上安装它时,出现无法安装的错误。

我用新的 apk 替换了旧 apk 的 resources.arcs,但我得到了同样的错误。

然后我退出了 apk 并可以将它安装到我的设备上,但是在我可以安装它之前我必须在我的 phone 上卸载原始应用程序,因为存在具有相同包但密钥不同的应用程序在我的 phone.

有没有办法可以修改 apk 并使用它的旧密钥,这样我就可以安装修改后的应用程序而无需卸载它的 'old' 版本?

长话短说:不,你不能。为了签署一个应用程序(或签署任何东西,事实上)你需要一个私钥。在您的情况下,原始开发人员的私钥,即他用来签署应用程序的私钥。除非他允许您访问它,否则您无法获得它,这意味着您无法签署您修改后的应用程序。

如果可能的话,想象一下它会导致的问题。我可以使用 Gmail 应用程序,添加恶意软件,对其签名并假装是 Google,让用户相信我是 Google。这将是可怕的。

可以使用与原始密钥不同的密钥对未签名的 APK 进行签名,但您将无法将其上传到 Play 商店,也无法安装它在安装了相同应用程序的设备上 除非包名称(应用程序 ID)已更改

Play 商店不允许上传两个应用程序 ID 相同但使用不同密钥签名的应用程序。此外,Play 商店不允许上传具有相同应用程序 ID、使用原始密钥签名的应用程序,除非版本高于商店中当前的版本。

Is there a way I can modify an apk and use the old key of it [to sign the app]

除非您有权访问原始密钥,否则不会。