Что такое проверка подписи приложения

«Что такое проверка подписи приложения» — вопрос из категории Android компоненты, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Проверка подписи приложения — это механизм безопасности Android, который подтверждает целостность и подлинность APK/AAB. Каждое приложение подписывается цифровой подписью разработчика перед публикацией. При установке система проверяет:

  1. Соответствие подписи (не изменён ли APK после подписания)
  2. Совпадение подписи с предыдущими версиями (для обновлений)
  3. Наличие доверенного сертификата

Пример проверки подписи в коде:

val packageInfo = packageManager.getPackageInfo(
    packageName, 
    PackageManager.GET_SIGNATURES
)
val signatures = packageInfo.signatures
val currentSignature = signatures[0].toCharsString()

// Сравнить с ожидаемой подписью
if (currentSignature != EXPECTED_SIGNATURE) {
    throw SecurityException("Invalid app signature!")
}

Используется для защиты от модифицированных APK и подтверждения авторства. В Google Play подпись управляется через Play App Signing.