6

应用程序许可的文档描述LICENSED_OLD_KEY为含义:

该应用程序已授权给用户,但有可用的更新应用程序版本使用不同的密钥进行签名。

另一方面,签署策略的文档说:

如果您在不使用匹配证书的情况下签署新版本,您还需要为应用程序分配一个不同的包名称——在这种情况下,用户将新版本安装为一个全新的应用程序。

由于应用程序由其包名称标识,这似乎表明您无法更改已发布应用程序的签名密钥。(相反,您可以更改密钥和包,但它会被市场视为新应用程序。)

我想不出有可能收到LICENSED_OLD_KEY回复的场景。我错过了什么吗?

4

1 回答 1

3

文件指出LICENSED_OLD_KEY

...可以表明已安装的应用程序版本使用的密钥对无效或已泄露。

看起来此代码是为私钥泄露或不再受信任的情况添加的。由于当前的 IPC 机制甚至不知道客户端使用了哪个公钥,我猜想整个包名都会被污染。这个想法是,在这种情况下,应用程序应该要求用户升级到没有被污染并且应该已经存在的新版本。由于此升级需要切换到全新的不同软件包,因此不清楚应该如何完成。我的猜测是这个机制在这一点上根本没有真正使用,所以得到这个代码的机会非常接近于零。在当前版本的官方 LVL 库中,此代码的处理方式与正常LICENSED响应相同。

ps 另外请注意,您混淆了用于签署应用程序的密钥对和用于 LVL 服务的密钥对。这两者是完全不同且不相关的。有趣的是,使用后一个密钥对,您甚至根本不知道私钥。您可以从发布者控制台获得自己的预生成公钥(每个开发人员一个),这就是您所获得的全部内容。

于 2011-12-17T10:32:41.940 回答