Перейти к содержимому
ecdsa.com

Схемы подписи APK (v1–v4)

Форматы подписи приложений Android: v1 — подпись JAR, v2 (Android 7.0) и v3 (Android 9, ротация ключей) — подписи всего файла в блоке подписи APK (APK Signing Block), v3.1 (Android 13) — ротация только для выбранных версий платформы, v4 (Android 11) — для инкрементальной установки.
Другие написанияAPK signingAPK Signature Scheme v2APK Signature Scheme v3apksigner

v2 подписывает всё содержимое APK, кроме самого блока подписи (идентификатор блока 0x7109871a), поэтому любое изменение обнаруживается, а проверка идёт быстрее, чем проверка каждой записи JAR в v1. v3 (идентификатор блока 0xf05368c0) добавляет цепочку подтверждений ротации (proof-of-rotation lineage), чтобы приложение могло перейти на новый ключ подписи; v3.1 позволяет применять ротацию только к более новым версиям платформы. v4 хранит подпись на основе дерева Меркла в отдельном файле .idsig для инкрементальной установки через ADB и требует также подписи v2 или v3.

apksigner sign и apksigner verify --print-certs работают со всеми схемами; Google Play App Signing хранит ключ подписи приложения на стороне Google, а разработчики загружают сборки с отдельным ключом загрузки (upload key). Обновления должны быть подписаны тем же ключом или его преемником после ротации, иначе установка не удастся. Инспектор подписей APK показывает схемы, подписантов и цепочку ротации.

Стандарты и ссылки

Все термины