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:

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

Ảnh chụp màn hình với lệnh keytool sử dụng các tham số trong ví dụ trên.

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:

  1. 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.
  2. 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
  3. 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=
  4. 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

  1. Kiểm tra đường dẫn SDK Android trong Android Studio.

  2. 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.

Xem thêm