Bu uygulamayı telefonunuza yükleme meşruiyeti konusundaki tartışmayı ortadan kaldırırken, doğrulama sorusu bir süredir anlamayı istediğim bir konudur ve benden kimin imzaladığını doğrulamanın yolunu bulmaya çalışmamı istediniz. Bir apk.
Android uygulamaları (.apk gerçekten sadece özel bir .zip sadece özel bir .jar olan) ancak önemsiz olmayabilir .jar dosyaları normal şekilde imzalanır iz bir şey için iyi bilinen sürece sertifikaların doğruluğunu karşılaştırmak. Telefonun kendisi de temelde böyledir - telefonda zaten bir kişiyle aynı partiden olduğunu iddia eden bir şeyin gerçekte olduğunu doğrular - telefon bilinmeyen imzalı bir şeyleri yüklemeyi reddetmez, sadece () verileri, yeni bir şeyin iddia ettiği eski bir şeyle eşleşmediği zaman görünürde sahtecilik yapar.
Jarsigner ve keytool'a ihtiyacınız olacak. Bunların, SDK'nın kendisinden ziyade android SDK'nın ön şartı olan JDK'dan geldiğine inanıyorum.
İlk önce, .apk içinde yer alan ortak anahtarı doğrulamaya çalışın. Genellikle bu META-INF / CERTS.RSA içindedir, ancak başka bir dosyada olabilir - unzip -l size söyleyecektir. Bu konuda ne bulabileceğini görmek istiyorsun:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert
Bu, imzalayanın kim olduğunu iddia ettiği hakkında birçok bilgi bırakacak. Bazı sertifikaların görünüşte bilinen taraflarca imzalanmış olmasına rağmen, bunun nasıl izleneceğine karar vermeden, böyle bir şey yapabileceğinden şüpheleniyorum:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
unzip -p knowngood.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
Bilinen güvenilir bir apk varsa, aynı sertifikayı kullanan aynı yazardan. Aynı MD5 toplamına sahip olan sertifikaların yeterli olduğunu farz ediyorum.
Sertifikaya güvenmeye karar verdiğinizi varsayarak, .apk içindeki her bir dosyayı imzalamak için kullanılmış olup olmadığını görebilirsiniz.
jarsigner -verbose -verify suspect.apk
(Arşivde birden fazla .RSA dosyası varsa, her dosyayı imzalamak için hangi sertifikaların kullanıldığını size bildirmek için -certs bayrağını eklemelisiniz, böylece onayladığınız sertifikanın olduğundan emin olabilirsiniz)