Как проверить подпись APK
Название, значок и интерфейс подделываются за час. Подпись — нет: подписать файл ключом чужого разработчика посторонний не может. Поэтому проверка подписи отвечает на вопрос «то же это приложение или уже нет» лучше, чем любые внешние признаки.
3 дня бесплатно, без карты: приложение Happ бесплатное, платный только доступ к серверам. Ссылка-подписка ТОК приходит сразу и добавляется в приложение одной кнопкой.
Оформить HAPP подписку бесплатно карта не нужна · отмена в один кликЧто такое подпись простыми словами
Когда разработчик собирает приложение, он подписывает файл своим ключом. Система при установке эту подпись проверяет и запоминает. Если кто-то распакует файл, что-то в него добавит и соберёт обратно, подписать тем же ключом он не сможет — подпись станет другой. Именно поэтому система не даёт обновить приложение файлом с другой подписью: она видит, что это уже не тот издатель.
Пересобранный APK всегда имеет другую подпись, даже если внешне ничем не отличается от оригинала.
Как проверить. Проверить можно и без установки, и после неё — способы ниже. Совпадение подписи с той, что у сборки из релизов проекта, и есть подтверждение подлинности.
Способ 1. На телефоне, без компьютера
-
Поставьте приложение для просмотра сведений о пакетах
Подойдёт любая утилита из магазина, которая умеет показывать сертификат установленного приложения. Название конкретной программы мы не рекомендуем: они появляются и исчезают, а требования к ним минимальные.
-
Найдите Happ в списке установленных
Откройте карточку приложения в этой утилите и найдите раздел с подписью или сертификатом — там будет отпечаток вида длинной строки из шестнадцатеричных пар.
-
Сравните отпечаток
Сверьте его с отпечатком у сборки, установленной из магазина или из релизов проекта. Совпадает — файл тот же. Не совпадает — приложение пересобрано кем-то посторонним.
Способ 2. На компьютере
Если у вас есть инструменты разработчика Android, отпечаток показывает утилита apksigner из состава SDK:
apksigner verify --print-certs happ.apk
В выводе будет строка с отпечатком сертификата. Тот же результат даёт keytool -printcert -jarfile happ.apk. Ставить SDK ради одной проверки не обязательно — способ для тех, у кого он уже есть.
Что означает несовпадение
- Приложение пересобрано. Кто и что в него добавил — неизвестно, и узнать это без разбора файла нельзя.
- Обновление из магазина не встанет поверх такой сборки: система не даст. Это, кстати, частая причина ошибок при обновлении.
- Действовать нужно как с непроверенной сборкой — план по шагам.
Установка на Android по шагам, включая разрешение на установку из файла, — happ.land.
Подпись есть у приложений на iPhone?
Там подписью занимается сама платформа, и посторонний файл поставить обычным способом нельзя. Поэтому вопрос актуален в основном для Android.
Отпечаток подписи — это секрет?
Нет, это открытые данные: подпись публична по устройству. Секретен ключ, которым подписывают, и он есть только у разработчика.
Можно ли доверять сборке, если подпись совпала?
Совпадение подписи означает, что файл собрал тот же издатель. Это главное, что вообще можно проверить со стороны.
А если я ставил из магазина?
Тогда подпись проверяет сам магазин и система. Отдельная проверка нужна для файлов, скачанных вручную.
Приложение бесплатное, а серверы к нему — нет: это отдельная услуга, и выбирать её приходится самому. Если не хочется собирать доступ из случайных ключей, у ТОК есть 3 дня без карты — ровно чтобы посмотреть, как связка работает у вас. Это наше предложение, а не рекомендация разработчика Happ.
Посмотреть доступ на 3 дня →