В подписанном apk будет файл META-INF/MANIFEST.MF. И в этом файле, мы можем найти дайджестов, как эти:Как SDK или ADT генерируют SHA1-Digest для ресурсов пакетов приложений Android
Название: Рез/макет/main.xml SHA1-Digest: NJ1YLN3mBEKTPibVXbFO8eRCAr8 =
Имя: AndroidManifest.xml SHA1-Digest: BlnC6ZBDtQYWeJNiespsQve82wY =
Имя: Рез/вытяжке-MDPI/ic_launcher.png SHA1-Digest: 4ss2KZ3FzkmfE6HAAsVu0aJKx1U =
Я нашел способ создания дайджеста в Java, как это:
public static void main(String[] args) throws NoSuchAlgorithmException, Exception {
MessageDigest md = MessageDigest.getInstance("sha-1");
FileInputStream in = new FileInputStream("./ic_launcher.png");
int bytes = 0;
while ((bytes = in.read()) != -1) {
md.update((byte)bytes);
}
in.close();
byte[] thedigest = md.digest();
System.out.println(Base64Encoder.encode(thedigest));
}
Для тестирования я использовал этот простой код для создания некоторых дайджестов, которые в основном так же, как дайджесты META-INF/MANIFEST.MF в APK, и до сих пор есть небольшое количество исключений. Как этот Png файл:
В APK дайджест для этого PNG файла 4ss2KZ3FzkmfE6HAAsVu0aJKx1U =, которая очень отличается от sjmKOs4BYDXg7COdeTc8tIfPBR0 = генерируемых моего код выше.
Но как объяснить, что почти 20 дайджестов, сгенерированных моим кодом, такие же, как и дайджесты в apk, и только этот дайджест Png отличается?
Не могли бы вы рассказать мне, как SDK или ADT генерируют SHA1-Digest для ресурсов пакетов приложений Android или отличий от моего кода?
Большое спасибо!
Вы правы! Я пробовал! Большое спасибо! – hardPass