signature.py — это инструмент командной строки для проверки подписи APK-файлов. Скрипт позволяет анализировать подпись Android-приложений, определять используемые схемы (v1/v2/v3/v4), извлекать информацию о сертификатах и сравнивать их с эталонными отпечатками. Подходит как для локальных APK, так и для установленных приложений на устройстве (через adb).
- Проверка подписи APK с помощью
apksigner(Android SDK build-tools). - Фолбэк-анализ (если
apksignerнедоступен). - Определение используемых схем подписи (v1/v2/v3/v4).
- Извлечение информации о подписантах и сертификатах.
- Вывод отчёта в человекочитаемом виде или JSON.
- Поддержка базового анализа APK без распаковки.
- Коды возврата для интеграции в CI/CD.
- Python 3.9+
- ОС: Linux / macOS / Windows
- Опционально:
apksigner(Android SDK build-tools) для полноценной проверкиadbдля проверки APK прямо с устройства
git clone https://github.com/Android-RU/APK-Signature-Verifier.git
cd APK-Signature-VerifierСкрипт не требует установки как пакета. Можно запускать напрямую:
python3 signature.py <путь_к_APK>python3 signature.py app-release.apkpython3 signature.py app-release.apk --jsonpython3 signature.py app-release.apk --json --out report.jsonpython3 signature.py --package com.example.appЧеловекочитаемый отчёт:
APK: app-release.apk
Verification mode: apksigner
Verified: True
Schemes:
v1: ok
v2: ok
v3: ok
Signers: 1
- Signer #1: {...}
JSON-отчёт:
{
"apk_path": "app-release.apk",
"verification_mode": "apksigner",
"verified": true,
"schemes": {
"v1": "ok",
"v2": "ok",
"v3": "ok"
},
"signers": [
{
"sha256": "3f1a...9c"
}
]
}Скрипт возвращает коды выхода:
0— подпись валидна1— подпись невалидна3— ошибка ввода/CLI127/124— проблемы с окружением или таймаут
Пример использования в GitHub Actions:
- name: Verify APK Signature
run: python3 signature.py app-release.apkПроект распространяется под лицензией MIT. Подробнее см. LICENSE.