2011-04-11 68 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