2011-04-11 65 views
9

我做了一个APK,签名的证书有效期为1天。我的目标是向某些人提供试用版应用程序,但阻止他们在到期日后复制应用程序。如果他们在没有问题的过期日期之前复制应用程序。我认为Android操作系统会阻止任何在手机上安装过期证书的应用程序。但是,我发现我可以在签名证书到期后两天在手机上安装应用程序。 Jarsigner确认证书已过期。为什么Android允许使用过期证书安装应用程序?为什么Android允许安装已过期证书的APK?

+0

这很有趣。但通常人们会进行有时间限制的试用,但会在应用程序中放入代码,以便在给定日期后拒绝运行,而不是希望操作系统在该日期之后拒绝安装它。你是否特意要限制安装日期而不是运行日期?如果是这样,你可以在到期前安装在私人设置和/或SD卡中创建一个授权记录 - 每个都有不同的清理/重新安装生存问题。 – 2011-04-11 18:42:27

+0

是的,我不想限制运行日期,该应用程序应完全提供给我给它的人,但不应该重新安装。我很困惑,因为Android Guide告诉系统在安装时测试证书的到期日期,但似乎并非如此。也许我可以像你建议的那样自己做这份工作,但我想知道为什么证书没有被检查。 – Patrick 2011-04-11 18:57:22

+1

你可能很好地发现了一个错误(或者在测试中有些微妙的错误)。但为了实现你的目标,依靠你自己实现的东西可能更有效。 (可能是缓存的)运行授权方案不需要依赖于日期 - 它可能与你在某个服务器上创建的用户帐户有关。顺便提一句,请注意,即使您的原始方案有效,也会因重新签署apk而被轻易击败。 – 2011-04-11 19:05:31

回答

2

据我所知,允许由开发者通过adb或第三方安装。我相信,如果你将它上传到市场,你会发现困难。恕我直言,这是合乎逻辑的,因为当您将应用程序安装到市场之外时,您将承担许多风险,而您无法通过正确签署的应用程序解决这些风险。

+1

你可能是对的,开发者指南是错误的。 – Patrick 2011-04-27 18:09:13