Это не вопрос о том, как подписать файл .apk. Я хочу знать, что означает собственно подписание и как оно реализовано.
Внутри файла .apk есть папка META-INF, внутри которой есть два файла.
Во-первых, CERT.SF содержит хеши SHA1 для различных компонентов и выглядит следующим образом:
Name: res/layout/main.xml
SHA1-Digest: Cox/T8fN1X9Hv4VqjH9YKqc/MsM=
Name: AndroidManifest.xml
SHA1-Digest: wZ418H9Aix1LNch3ci7c+cHyuZc=
Name: resources.arsc
SHA1-Digest: P+uoRrpFyVW6P3Wf+4vuR2ZSuXY=
Name: classes.dex
SHA1-Digest: cN3zXtGii9zuTOkBqDTLymeMZQI=
Существует также файл CERT.RSA. Я предполагаю, что открытый ключ проверяет подпись.
Мой вопрос: где хранится подпись для всего файла .apk? И что на самом деле подписано? Это может быть либо
- .apk файл, используемый как один двоичный объект, и это подписано
- или CERT.SF, который содержит отдельные хэши для разных компонентов
Было бы намного лучше, если бы вы могли указать мне на документацию о подробном процессе подписания и проверки.