Я немного поиграл с подписью APK в андроиде, и я хотел бы задать несколько дополнительных вопросов.Подписание приложения - изменения в APK
Я знаю, что MANIFEST.MF содержит SHA-1 хэши всех файлов в APK. Я знаю, что CERT.SF содержит хэш манифеста и хэши всех манифеста. И затем есть CERT.RSA, который содержит сертификат RSA из хранилища ключей, используемого для подписания APK.
Я смог воспроизвести содержимое MANIFEST.MF и CERT.SF, но я не могу найти, как CERT.RSA «подключен» к этим файлам.
Что я имею в виду: если я изменяю содержимое APK (например, заменяю значок приложения), то, конечно, во время установки я получаю исключение, говоря, что хэш в MANIFEST и реальный хэш разные. Но когда я обновляю хэши в MANIFEST и CERT, так что они верны, я по-прежнему получаю Invalid Certificate Exception во время установки. Но на этот раз в самом первом файле ресурсов в apk.
Итак, как Android знает, что я что-то изменил в apk, даже когда обновил хэши? Я вижу, что это как-то связано с CERT.RSA, но я изо всех сил пытаюсь выяснить, как это работает.
EDIT, если говорить более четко: все, кроме упомянутых выше, должно соответствовать, чтобы Android считал, что APK действителен?