Czy istnieje sposób na odzyskanie informacji o podpisie apk w środowisku wykonawczym?Pobieranie podpisu apk w środowisku wykonawczym dla Androida
Na przykład mam tę samą aplikację podpisaną z 2 różnymi sygnaturami: app-1.apk i app-2.apk i chciałbym móc odróżnić obie apk w czasie wykonywania. Czy to jest możliwe?
Moim celem jest wdrożenie systemu licencjonowania przy użyciu zewnętrznego serwera i na podstawie kodu wersji aplikacji i podpisu.
prawej, z wyjątkiem tego, co wywołań API podpis "jest rzeczywiście _certificate_ podpisanie. Wywołaj 'toByteArray()', aby uzyskać certyfikat nieprzetworzony. Ponadto 'hashCode()' nie kupuje zbyt wiele, musisz użyć 'MessageDigest', aby obliczyć wartość mieszania certyfikatu dla porównania. –
@NikolayElenkov To może być stary post, ale potrzebowałem tego kodu zaimplementowanego. Jaka jest różnica między certyfikowanym certyfikatem a surowym certyfikatem? Kiedy używam Twojej metody 'toByteArray()' zamiast 'hashCode()' moja suma kontrolna 'MD5' zmienia się za każdym razem, gdy ponownie uruchamiam' .apk', podczas gdy użycie 'hashCode()' zachowuje stabilność, dopóki nie zrekompiluję aplikacji. Chcę tylko zidentyfikować magazyn kluczy używany do podpisywania '.apk'. – Synaero
'hashCode()' nie zwraca sumy kontrolnej MD5, jest to mniej więcej losowa wartość identyfikująca obiekt w środowisku wykonawczym. użyj 'MessageDigest.getInstance (" MD5 "). digest (sigs [0] .toByteArray())'. BTW, nie ma sensu identyfikować "magazynu kluczy", trzeba zidentyfikować klucz/certyfikat podpisu. –