如何更改已在 Play 商店发布的应用程序的签名密钥?除了 contentProvider,还有其他有效的替代方案吗?

How to change the signing key of an app already published on play store? Is there another efficient alternative to contentProvider?

我遇到了与那个问题完全相同的问题:

我已经解决了这个问题:

他说:

App B has identical <permission> elements as App A and both App A and App B are signed by the same signing key

但是在生成我的应用程序的应用程序包时,I have forgotten to sign them with the same signing key

根据我所做的研究:

It is not possible to change the singing key of an application once it is on play store.

我的实际问题:

我最近将两个具有相同 <permission> 元素的应用程序放到了 Play 商店中。当我第一次从 Play 商店安装应用程序 A 时,我将无法安装应用程序 B。当我第一次从 Play 商店安装应用程序 B 时,我将无法安装应用程序 A。我的一个应用程序不是当我先安装另一个应用程序时能够安装。

根据@commonware 的回答:

you would need to remove one of the two apps from the Play Store and submit a replacement, with a new application ID, that is signed by the same signing key as the other shipping app.

但是我不想更改这两个应用程序中任何一个的应用程序ID

知道如何解决这个问题吗?

是否有任何其他有效的替代 ContentProvider 的方法来在同一作者的两个应用程序之间共享数据?

我暂时接受了@Warlock 的回答,但我正在寻找更好的答案。

可以为 Play 商店中已有的应用更改歌调。但它现在有一个主要的缺点,这些缺点将在几年内消失。它仅适用于 运行 Android 9 及更高版本的设备。所以你的 mindSkdVersion 必须是 28+。它称为密钥轮换,它是 APK 签名方案 v3 的一部分。看到这个 link.

此外,除了信任相同的签名密钥之外,我不知道如何在两个应用程序之间 100% 安全地更改数据。不太安全的方法仅依赖于已知的 applicationId(刚刚发送带有“com.myapp.someaction”的 Intent),攻击者当然可以使用和侧载应用程序或使用其他发行版。更难破解的方法是直接使用 Android IPC / AIDL