Якщо уникнути дискусії щодо легітимності встановлення цього додатка на телефоні, питання перевірки - це те, що я мав намір зрозуміти деякий час, і ви запропонували мені спробувати розібратися в можливому способі перевірити, хто підписався апк.
Програми для 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
чи пропонує вам посилання для завантаження чи щось подібне?