2011-08-18 38 views
144

Tôi làm cách nào để kiểm tra xem gói ứng dụng Android có được ký bằng bản phát hành chứ không phải là gỡ lỗi không?Làm cách nào để xác minh rằng gói ứng dụng Android được ký bằng chứng chỉ phát hành?

+5

tôi đã viết [một kịch bản] (https://raw.githubusercontent.com/johnnylambada/robospanner/master/apk/apk-validate) sẽ xác nhận một gói ứng dụng chống lại một keystore . – JohnnyLambada

+0

chấp nhận câu trả lời nếu bạn có của bạn. –

+0

@JohnnyLambada Tôi làm cách nào để chạy tập lệnh của bạn trong Mac? –

Trả lời

248

Sử dụng lệnh này, (đi đến java jdk < < đường bin trong cmd prompt)

$ jarsigner -verify -verbose -certs my_application.apk 

Nếu bạn thấy "CN = Android Debug", điều này có nghĩa là .apk đã được ký kết với phím debug tạo bởi Android SDK (có nghĩa là nó chưa được ký), nếu không bạn sẽ tìm thấy một cái gì đó cho CN. Để biết thêm chi tiết xem: http://developer.android.com/guide/publishing/app-signing.html

+0

Tôi nhận được thông báo là xác minh jar ở cuối lệnh thực thi cho 2 tệp apk khác nhau. nhưng vì nó cho CN = "android debug" cho 1 apk và khác nhau cho các gói ứng dụng khác .got để knw mà 1 được ký. Cảm ơn. – iRunner

+0

@iRunner TẤT CẢ các ứng dụng cần phải được ký trước khi cài đặt trên thiết bị, sử dụng phím gỡ lỗi hoặc khóa thực. – Chloe

+2

Làm cách nào để xác minh chữ ký này? Nó sẽ sử dụng CA đáng tin cậy của hệ thống? Hoặc đây chỉ là một công cụ để kiểm tra tính toàn vẹn của các tệp jar? Cảm ơn bạn –

52

Sử dụng lệnh này: (Jarsigner nằm trong thư mục bin Java của bạn goto Java-> jdk-> đường bin trong cmd prompt)

$ jarsigner -verify my_signed.apk 

Nếu .apk được ký chính xác , Jarsigner in "jar xác minh"

+9

Điều này là không đủ tốt vì cả hai gỡ lỗi và phát hành apks được ký kết sẽ cung cấp cho "jar xác minh". Kiểm tra chi tiết câu trả lời của @ Anass. – rpattabi

27

Sử dụng giao diện điều khiển lệnh:

apksigner verify --print-certs application-development-release.apk

Yo u có thể tìm thấy apksigner trong ../sdk/build-tools/24.0.3/apksigner.bat. Chỉ dành cho công cụ xây dựng phiên bản 24.0.3 trở lên.

Cũng đọc google docs: https://developer.android.com/studio/command-line/apksigner.html

+0

Tôi tìm thấy 'apksigner' trong'% LOCALAPPDATA% \ Android \ sdk \ build-tools \ 25.0.3 \ '(và mọi phiên bản công cụ xây dựng khác mà tôi đã cài đặt) – Jon

+0

thông tin cách tìm: http://stackoverflow.com/q/40004884/1747983 – Tilo

+2

Lưu ý rằng 'apksigner' bị thiếu trong phiên bản' 26.0.0' của công cụ xây dựng. Nó được theo dõi trong https://issuetracker.google.com/issues/62696222 và phải được sửa trong phiên bản tiếp theo. Cách giải quyết cho đến lúc đó là sử dụng 'apksigner' từ' 25.0.3'. – friederbluemle

Các vấn đề liên quan