Я понимаю, что приложения подписаны как Google, так и разработчиком.
Как определить, apk
находится ли файл в Play Маркете или загружен неопубликованным.
Я бы предпочел, чтобы метод работал на всех основных платформах, только если это возможно, включая сам Android.
Даже если загружено, я хотел бы знать источник приложения. Вроде из Play Маркета.
Я думаю об использовании приложения или метода, использующего обнаружение подписи.
Вы не можете сказать, .apk
исходно ли оно было из Playstore, но вы можете сказать, соответствует ли оно тому, что доступно в Playstore. Вот что вам нужно:
.apk
_.apk
же приложения в той же версии из PlaystoreРазархивируйте оба .apk
(каждый в свой собственный каталог) и сравните их сертификаты (хранящиеся в META-INF/
каталоге. Подробности о тщательном сравнении можно найти, например, здесь . Вам понадобится команда:
openssl pkcs7 -inform DER -in META-INF/CERT.RSA -noout -print_certs -text
В качестве альтернативы, если вы установили не openssl, а Oracle JDK:
keytool -printcert -file META-INF/CERT.RSA
или
jarsigner -verify -certs -verbose ../Example.apk
Если сертификаты совпадают, оба APK-файла были подписаны с использованием одного и того же ключа. Если ключ разработчика не был скомпрометирован, это должно означать, что потенциально загруженный APK должен быть в порядке (нет никаких гарантий, что сам разработчик не играл в игры, но если размер и MD5 APK также совпадают, я бы сказал, что это безопасно).
Иззи
adb dumpsys package
(оно содержит имя пакета приложения, установившего его, которое будет плеймаркетом, когда оно используется, или F-Droids и т. д., или «неизвестный источник», когда полностью с боковой загрузкой.Уолли