Tạm gác lại cuộc tranh luận về tính hợp pháp của việc cài đặt ứng dụng đó trên điện thoại của bạn, câu hỏi xác minh là câu hỏi mà tôi có ý định tìm hiểu trong một thời gian, và bạn đã nhắc tôi cố gắng tìm ra cách xác minh ai đã ký một apk.
Các ứng dụng Android được ký theo cách thông thường của các tệp .jar (.apk thực sự chỉ là một .jar đặc biệt chỉ là một .zip đặc biệt) tuy nhiên việc theo dõi tính xác thực của các chứng chỉ trừ khi bạn biết điều gì đó tốt so với. Về cơ bản đó là những gì điện thoại tự làm - xác minh rằng thứ gì đó được cho là của cùng một bên với điện thoại thực sự là - điện thoại không từ chối cài đặt mọi thứ với người ký không xác định, chỉ có thể (phản đối / xóa ứng dụng dữ liệu của) các giả mạo rõ ràng khi một cái gì đó mới không khớp với cái cũ mà nó tuyên bố.
Bạn sẽ cần phải có jarsigner và keytool. Tôi tin rằng những điều này đến từ JDK, đây là điều kiện tiên quyết cho SDK Android chứ không phải chính SDK.
Trước tiên, bạn muốn thử xác minh khóa chung có trong .apk. Thông thường, đây là trong META-INF / CERTS.RSA nhưng nó có thể ở một tệp khác - unzip -l sẽ cho bạn biết. Bạn muốn xem những gì bạn có thể tìm hiểu về nó:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert
Điều đó sẽ tiết lộ rất nhiều thông tin về người ký tên tuyên bố. Một số chứng chỉ dường như được ký bởi các bên đã biết, nhưng không tìm ra cách truy tìm điều đó, tôi nghi ngờ bạn có thể làm điều gì đó như thế này:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
unzip -p knowngood.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
Nếu bạn có một apk đáng tin cậy được biết đến từ cùng một tác giả đã sử dụng cùng một chứng chỉ. Tôi giả sử rằng các chứng chỉ có cùng số tiền MD5 là đủ.
Giả sử bạn đã quyết định tin tưởng chứng chỉ, thì bạn có thể xem liệu nó đã được sử dụng để ký từng tệp trong .apk chưa
jarsigner -verbose -verify suspect.apk
(Nếu có nhiều hơn một tệp .RSA trong kho lưu trữ, bạn nên thêm cờ -certs để cho bạn biết (các) chứng chỉ nào đã được sử dụng để ký từng tệp, vì vậy bạn có thể chắc chắn chứng chỉ mà bạn đã xác minh)
m.google.com/maps
, nó có cung cấp cho bạn một liên kết tải xuống hoặc một cái gì đó giống nhau không?