Najnowsza aktualizacja Map Google jest niedostępna w moim kraju, więc pobrałem wersję, przechodząc do „Google Maps 5.4.0 apk”. Właściwie to znalazłem, ale teraz zastanawiam się, jak mogę stwierdzić, czy w rzeczywistości jest to ta sama wersja, co na rynku.
Jak mogę się upewnić, że nie zostało zmienione? Czy aplikacje są podpisane w jakikolwiek sposób? Czy jest jakiś sposób sprawdzenia podpisów?
m.google.com/maps
czy oferuje link do pobrania lub coś podobnego?Odpowiedzi:
Pomijając debatę na temat zasadności zainstalowania tej aplikacji na telefonie, kwestia weryfikacji jest kwestią, którą chciałem zrozumieć od jakiegoś czasu, a ty zachęciłeś mnie, abym spróbował znaleźć sposób na sprawdzenie, kto podpisał apk.
Aplikacje na Androida są podpisywane w normalny sposób .jar (.apk to tak naprawdę tylko specjalny plik .jar, który jest po prostu specjalnym plikiem .zip), jednak śledzenie autentyczności certyfikatów może nie być trywialne, chyba że masz coś dobrego porównać do. To jest w zasadzie to, co robi sam telefon - weryfikuje, że coś, co twierdzi, że pochodzi od tej samej strony, jak coś, co już jest w telefonie, naprawdę nie jest - telefon nie odmawia instalacji rzeczy z nieznanymi sygnatariuszami, może tylko (sprzeciwić się / wyczyścić aplikację dane) pozornych fałszerstw, gdy coś nowego nie pasuje do czegoś starego, do czego się twierdzi.
Będziesz potrzebował jarsignera i keytoola. Uważam, że pochodzą one z JDK, który jest warunkiem wstępnym dla zestawu SDK systemu Android, a nie samego zestawu SDK.
Najpierw spróbuj zweryfikować klucz publiczny zawarty w .apk. Zwykle jest to plik META-INF / CERTS.RSA, ale może znajdować się w innym pliku - rozpakuje -l. Chcesz zobaczyć, co możesz o tym dowiedzieć:
To zrzuci wiele informacji o tym, kim jest osoba podpisująca. Niektóre certyfikaty najwyraźniej same są podpisywane przez znane strony, ale bez zastanowienia się, jak to prześledzić, podejrzewam, że możesz zrobić coś takiego:
Jeśli masz znaną zaufaną aplikację tego samego autora, który użył tego samego certyfikatu. Zakładam, że wystarczą certyfikaty o tej samej sumie MD5.
Zakładając, że zdecydowałeś się zaufać certyfikatowi, możesz sprawdzić, czy został on użyty do podpisania każdego z plików w .apk
(Jeśli w archiwum jest więcej niż jeden plik .RSA, należy dodać flagę -certs, aby poinformować, które certyfikaty zostały użyte do podpisania każdego pliku, aby mieć pewność, że jest to certyfikat, który zweryfikowałeś)
źródło
Jest (teraz)
apksigner
narzędzie,build-tools
które robi to, co chcesz. Z dokumentów :źródło
Możesz także spróbować przesłać pakiet APK do bezpłatnego programu antywirusowego VirusTotal.com . Wygeneruje unikalny skrót dla APK, a jeśli inni już go przesłali, aby go przetestować (bardzo prawdopodobne), będziesz miał więcej pomysłów, że APK jest ważny.
Usługa przeskanuje również pakiet APK za pomocą ponad 60 skanerów antywirusowych i poinformuje cię, jeśli podejrzewa, że ma podobne sygnatury do już znalezionych wirusów.
źródło
Aby porównać certyfikaty z podejrzanego pliku apk, być może jednym z pomysłów jest pobranie jego wersji z oficjalnego Sklepu Play w telefonie, wykonanie kopii zapasowej na komputerze i przejście do katalogu kopii zapasowej, wybranie odpowiedniego pliku apk i wykonanie tych samych kontroli. Możesz także wyświetlić certyfikaty Google, sprawdzając domyślną aplikację urządzenia (jak każdy com.google.android. * Apk)
źródło