2013-08-22 36 views
0

我想創建一個安全應用程序,並希望檢查下載的應用程序是否未被篡改, 我發現了一個使用jarsigner實用程序驗證應用程序的解決方案,但是可以通過編程實現嗎?在Android系統上運行Jarsigner實用程序

我已經看到我們可以添加二進制文件並以編程方式使用它,我可以在這種情況下做到這一點嗎?怎麼樣??

回答

1

Android檢查APK簽名是否在安裝時驗證,您不必手動執行。但是,這並不意味着簽名是您的簽名,任何人都可以重新簽名APK。隨着最近所謂的'MasterKey'漏洞,APK可以被修改而不會使簽名無效(就Android而言)。所以,如果你想確保你得到了你期望的相同的二進制文件,可以計算出它的SHA1等哈希,並與你所期望的相比較。您還可以檢查簽名證書是否屬於您自己的。這會給你的二進制證書:

PackageManager pm = getPackageManager(); 
byte[] certDer = pm.getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES).signatures[0]; 
+0

,但將比較這些應用程序的SHA1與服務器上的數據庫,其中保存的應用程序wid diff版本的記錄和他們的哈希會好嗎? – Neji

+0

您需要爲每個版本保留獨立的哈希值。 –

相關問題