В дополнение к дискуссии о легитимности установки этого приложения на ваш телефон, вопрос проверки является тем, который я хотел понять некоторое время, и вы предложили мне попытаться выяснить возможный способ проверки того, кто подписал апк.
Приложения Android подписываются обычным образом .jar-файлами (на самом деле .apk - это просто специальный .jar, который является просто специальным .zip), однако проследить подлинность сертификатов, если у вас есть что-то хорошее по сравнению с. Это в основном то, что делает сам телефон - проверяет, что то, что, как утверждают, принадлежит той же стороне, что и то, что уже есть на телефоне, - телефон не отказывается устанавливать вещи с неизвестными подписчиками, он может только (возражать против / очищать приложение данные о) очевидных подделках, когда что-то новое не соответствует старому, на которое оно претендует.
Вам понадобится jarsigner и keytool. Я считаю, что они исходят от JDK, который является предпосылкой для Android SDK, а не сам SDK.
Сначала вы хотите проверить открытый ключ, содержащийся в .apk. Обычно это в META-INF / CERTS.RSA, но это может быть в другом файле - unzip -l скажет вам. Вы хотите увидеть, что вы можете узнать об этом:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert
Это даст много информации о том, кем подписчик утверждает. Некоторые сертификаты, очевидно, сами подписаны известными сторонами, но, не зная, как это отследить, я подозреваю, что вы могли бы сделать что-то вроде этого:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
unzip -p knowngood.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
Если у вас есть известный доверенный apk от того же автора, который использовал тот же сертификат. Я предполагаю, что сертификатов с одинаковой суммой MD5 достаточно.
Предполагая, что вы решили доверять сертификату, вы сможете увидеть, использовался ли он для подписи каждого из файлов в .apk.
jarsigner -verbose -verify suspect.apk
(Если в архиве более одного файла .RSA, вы должны добавить флаг -certs, чтобы указать, какие сертификаты использовались для подписи каждого файла, чтобы вы могли быть уверены, что это сертификат, который вы проверяли)
m.google.com/maps
предлагает ли она ссылку для скачивания или что-то в этом роде?