Ký hiệu mã cho Android
Trong bài viết này, bạn sẽ tìm hiểu cách ký mã cho Android (APK). Bạn cần ký ứng dụng của mình Android nếu bạn đã chọn Android là một trong những nền tảng khi tạo và xây dựng dự án của mình.
Quan trọng
Nếu bạn muốn ký ứng dụng AAB để phân phối trên Google Play, hãy tham khảo Ký ứng dụng của bạn.
Chuẩn bị PC của bạn
Bạn cần những thông tin sau để bắt đầu:
- Cài đặt Android Studio
- Cài đặt OpenSSL
Tạo khóa
Lưu ý
Chuyển sang ký gói APK nếu bạn đã tạo khóa và hàm băm chữ ký trong khi tạo đăng ký ứng dụng.
Chúng tôi sẽ sử dụng keytool.exe (có sẵn sau khi cài đặt Android Studio, từ vị trí thư mục "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") để tạo chứng chỉ để ký gói ứng dụng. Keytool được sử dụng để quản lý kho khóa (cơ sở dữ liệu) gồm các khóa mật mã, chuỗi chứng chỉ X.509 và các chứng chỉ đáng tin cậy.
Để tạo khóa, hãy mở dấu nhắc lệnh và chạy lệnh sau:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Tham số:
- genkey - lệnh để tạo khóa.
- bí danh - cho biết bí danh sẽ được sử dụng trong tương lai để chỉ mục nhập kho khóa chứa các khóa được tạo.
- keyalg - tên thuật toán khóa.
- keystore - tên của kho khóa bạn đang sử dụng.
- keysize - kích thước của từng khóa sẽ được tạo.
- validity - tính hiệu lực của khóa trong một số ngày.
Ví dụ:
Nếu chuẩn bị Key Vault, PATH_TO_KEYSTORE phải có đuôi .pfx.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Nếu chuẩn bị cho ký thủ công, PATH_TO_KEYSTORE phải có phần mở rộng .jks.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Tạo hàm băm chữ ký
Lưu ý
Chuyển sang ký gói APK nếu bạn đã tạo khóa và hàm băm chữ ký trong khi tạo đăng ký ứng dụng.
Sau khi tạo khóa, lệnh exportcert được sử dụng trong keytool để xuất chứng chỉ kho khóa.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Tham số:
- exportcert - đọc từ kho khóa chứng chỉ được liên kết với bí danh và lưu trữ nó trong tệp cert_file. Khi không có tệp nào được chỉ định, chứng chỉ sẽ được xuất ra stdout.
- alias - bí danh được sử dụng khi tạo khóa sớm hơn.
- keystore - tên của kho khóa bạn đang sử dụng.
- openssl - tạo khóa SHA1 cho Android.
Thêm hàm băm chữ ký được tạo trong URI chuyển hướng trong khi đăng ký ứng dụng.
Chuyển đổi SHA1 hex sang hàm băm chữ ký được mã hóa Base64 theo cách thủ công
Bạn có thể gặp lỗi sau nếu hàm băm chữ ký của bạn không được mã hóa chính xác hoặc không được chấp nhận trong cổng Azure:
"Hàm băm chữ ký phải là SHA1 được mã hóa base64."
Khi lỗi này xuất hiện, hãy thử tạo hàm băm chữ ký bằng các bước sau:
- Chạy
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
để liệt kê thông tin chứng chỉ ở chế độ chi tiết. - Sao chép giá trị SHA1 trong phần Dấu vân tay chứng chỉ từ kết quả. Đảm bảo rằng bạn chỉ sao chép giá trị thập lục phân.
Ví dụ:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- Sử dụng bất kỳ công cụ chuyển đổi "Hệ thập lục phân sang Base64" có sẵn nào để chuyển đổi giá trị thập lục phân của dấu vân tay chứng chỉ đã sao chép thành giá trị được mã hóa Base64.
Ví dụ về giá trị được mã hóa Base64:8CPPeLaz9etdqQyaQubcqsy2Tw=
- Sao chép giá trị được mã hóa Base64 được tạo dưới dạng Băm chữ ký trong cổng Azure trong khi đăng ký ứng dụng.
Ký gói APK
Để ký gói APK, chúng tôi sẽ sử dụng công cụ apksigner. Công cụ này cho phép bạn ký APK và đảm bảo rằng chữ ký gói APK được xác minh thành công trên tất cả Android nền tảng được APK hỗ trợ.
Tìm apksigner của bạn
Kiểm tra đường dẫn SDK Android trong Android Studio.
Chọn Công cụ > Trình quản lý SDK > Vị trí SDK Android.
Nếu sử dụng iOS, hãy kiểm tra tệp apksigner từ thư mục buildTools Version :
Chuyển đến thư mục SDK > build-tools > buildToolsVersion > lib và kiểm tra tệp apksigner.jar
Sử dụng tệp apksigner
Chạy lệnh sau để sử dụng apksigner và ký vào gói:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Tham số:
- ks - đường dẫn đến kho khóa.
- ks-key-alias - đường dẫn bí danh chính đến tệp APK.
Khi được nhắc, hãy nhập mật khẩu.
Thêm thông tin: Công cụ dòng lệnh Android Studio: apksigner
Phân phối ứng dụng
Bạn có thể lưu trữ gói trên dịch vụ phân phối như Trung tâm ứng dụng. Để phân phối bằng Microsoft Intune, hãy xem Thêm một dòng ứng dụng kinh doanh Android vào Microsoft Intune. Để tìm hiểu về cách cấp cho một ứng dụng quyền truy cập vào dịch vụ bảo vệ ứng dụng Intune, hãy xem Cấp cho ứng dụng của bạn quyền truy cập vào dịch vụ bảo vệ ứng dụng Intune.