簡體   English   中英

Android-如何確定我的密鑰已對apk進行了簽名

[英]Android - How can I tell that an apk has been signed with my key

我們已經為我們創建了一個第三方應用程序,但是我們將繼續前進。

他們已經構建了apk並用自己的密鑰對其進行了簽名,但是為了讓我們上載它並使用我們的密鑰,我不得不辭職了。

為此,我使用了https://code.google.com/p/apk-resigner/

現在,我正在嘗試將他們的apk與我辭職的apk進行比較,但不確定100%該怎么做。

我試着做

jarsigner -verify -keystore my_keystore_location -verbose -certs my.apk

而且我收到了很多帶有smk的文件。 這將是有道理的

s = signature was verified 
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope

但是,當我運行仍然具有其密鑰的第三方apk時,我也會在文件上收到smk,這不應該發生,因為那會說它已經在我的密鑰庫中用密鑰簽名了!

有任何想法嗎?

謝謝

我不確定這是否可行,但我在包管理器中發現了它: http : //developer.android.com/reference/android/content/pm/PackageManager.html#checkSignatures(java.lang.String,java.lang 。串)

它應該能夠取得您第一個程序包(您自己)的簽名,並將其與第三方應用程序的簽名進行比較。 這是在android應用上運行的,而不是在您的開發平台(Windows,Mac,Linux等)上運行的。

查看文檔,如果返回0,則簽名匹配。 如果返回1,則均未簽名。 -3無匹配。 -2表示未簽名的第二個軟件包,-1表示未簽名的第一個軟件包。 -4如果兩個軟件包均無效。

這段代碼為我工作:

final PackageManager pm = getPackageManager();
System.out.println(pm.checkSignatures("com.testing1", "com.testing2"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM