2014-02-18 1 views
1

У нас есть стороннее приложение, которое было создано для нас, но мы будем продолжать двигаться вперед.Android - Как я могу сказать, что apk был подписан с моим ключом

Они построили apk и подписали его своим ключом, но для того, чтобы загрузить его и использовать наш ключ, мне пришлось уйти в отставку.

Для этого я использовал https://code.google.com/p/apk-resigner/

Теперь я пытаюсь сравнить их 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 на файлы, которые не должны произойти, как бы сказать, что это было подписано с ключом в моем хранилище ключей !?

Любые идеи кто-нибудь?

Благодаря

ответ

1

Я не совсем уверен, если это работает, но я заметил его в менеджере пакетов: http://developer.android.com/reference/android/content/pm/PackageManager.html#checkSignatures(java.lang.String, java.lang.String)

Его должен быть в состоянии принять ваш первый пакет (собственным) и подпись сравните его с подписью стороннего приложения. Это запускается в приложении Android, а не на платформе разработки (Windows, Mac, Linux и т. Д.).

Рассматривая документацию, если возвращается 0, подпись соответствует. Если 1 возвращен, ни одна из них не подписана. -3 для отсутствия соответствия. -2 для не второго пакета, не подписанного и -1 для первого пакета, не подписанного. -4, если оба пакета недействительны.

Этот код работает для меня:

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

Так что вы думаете, может быть, создать небольшой тест приложения, который только принимает оба packagenames в качестве входных данных, а затем выводит результат –

+0

Вы можете сделать это в своем собственном APK слишком Я думаю. Но использование другого теста apk тоже должно работать. – Orphamiel

+0

Отредактировано кодом, который работает. – Orphamiel

Смежные вопросы