Cảm ơn anh @iamkingvn về bài TUT bên tinhte.vn và hướng dẫn em những bước đầu tiên. Em xin phép viết lại TUT từ bài của anh.
Em cũng xin lỗi anh @vnbb về bài review Comic của em. Em viết bài này coi như chuộc lỗi

Bài TUT này có sửa chữa một số lỗi mà anh em thường mắc phải khi tạo được file BAR nhưng ko thể nào sign được.
Các file có thể đổi tên để các bạn dễ nhớ, điều này ko làm ảnh hưởng đến quá trình re-package, nhưng phải để nguyên tên mở rộng.

1. Chuẩn bị:
1.1: Download tool: http://www.mediafire.com/?m5d990yhbu2c070
Giải nén, trong folder apk2bar có:
- apk2bar-HaTaX.bat -> chuyển apk sang bar
- signbar-HaTaX.bat -> dùng để sign file bar
- thư mục bin -> các tools để lấy *.p12

1.2: Download Android SDK: http://dl.google.com/android/installer_r16-windows.exe
Cài đặt Android SDK, sau đó chạy SDK Manager. Chọn như trong ảnh này


2. Chỉnh sửa đường dẫn
Mở file apk2bar-HataX.bat bẳng Notepad để edit. sửa đường dẫn ở dòng"ANDROIDSDK=" bởi đường dẫn của Android SDK bạn cài. Nếu để cài mặc định thì đường dẫn sẽ như thế này: C:\Program Files (x86)\Android\android-sdk. Xem ảnh để nhìn rõ

Lưu ý nhớ bỏ dấu "\" phía sau android-sdk

3. Kiểm tra APK --> BAR có hoạt động ko
Bước này để kiểm tra các step trên các bạn làm đúng chưa, nếu bạn drag file *.APK vào file apk2bar-HaTaX.bat , nếu cho ra file *.BAR không có error gì các bước trên đã OK.

4. Đăng ký Sign Blackberry Tablet OS (file *.cjs)
Vào link sau để đăng ký: https://www.blackberry.com/SignedKeys/
Lưu ý phần điền PIN, bạn có thể điền bất kỳ (từ 6 đến 10 ký tự) nhưng bắt buộc bạn phải nhớ PIN. Vì sao ư? Các bước sau các bạn sẽ hiểu.

Sau khi đăng ký bạn phải chờ 2 tiếng mới có. Bạn sẽ nhận được 2 file *.csj
+ file đầu tiên: client-PBDT-xxxxxxxx.csj (x: là số của client)
+ file thứ hai: client-RDK-xxxxxxxx.csj (x: là số của client)

5. Lấy file *.p12 (đây là bước quan trọng và gặp nhiều trục trặc nhất và cũng là nguyên nhân phát sinh lỗi ko sign sau này)

5.1: Copy 2 file *.csj vào thư mục \apk2bar\bin mà đã tải xuống ở bước chuẩn bị

5.2: Tạo pass cho file *.csj
Mở cmd.exe, đưa đường dẫn đến \apk2bar\bin


Trong CMD gõ:


Mã:
blackberry-signer  -csksetup  -cskpass <create_a_password>

Nếu bạn có key sẵn rồi thì nó sẽ báo lỗi


Mã:
CSK file already exists. Use -cskdelete to delete first
Không dùng lệnh cskdelete đễ xóa trừ khi bạn quên pass . Nếu bạn quên pass thì bạn xóa CSK file và request từ RIM file CSJ mới

5.3: Đăng ký file với RIM (đăng ký cả 2 file CSJ mà RIM gửi cho bạn)
5.3.1
Lưu ý:
<PIN>: là PIN mà bạn điền vào mẫu đăng ký ở bước 4
<csk password>: là mật khẩu bạn tạo ở bước 5.2
<CSJ_file>: là tên file CSJ bạn vừa copy vào trong thư mục bin (\apk2bar\bin)
Lưu ý dấu cách trong đoạn code

Gõ tiếp lệnh sau để đăng ký cho file đầu tiên:


Mã:
blackberry-signer -register -csjpin <PIN> -cskpass <csk password> <CSJ_file>


Nói rõ một chút vì sau lại là file đầu tiên:
Như đã nói ở đoạn trước là RIM sẽ gửi cho bạn 2 file CSJ. Chúng ta cần phải đăng ký 2 file này với RIM, nếu chỉ đăng ký 1 file thì sẽ gặp lỗi (trong \apk2bar\log):


Mã:
Error: Certificate chain not found for: RDK. 
RDK must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
Đây là lỗi RDK ko hợp lệ với trường hợp chỉ đăng ký file client-PBDT-xxxxxxx.csj
Và, mình đã nói ở trên là chúng ta có thể đổi tên file CSJ cho dễ nhớ, nó ko ảnh hưởng đến quá trình re-package. Mình khuyên bạn nên đổi tên cho 2 file CSJ nhận được như sau:
+ client-PBDT-xxxxxxxx.csj --> pbdtxxxxxxx.csj
+ client-RDK-xxxxxxxx.csj --> pbrdkxxxxxx.csj

5.3.2: Thao tác tiếp với file CSJ còn lại. Xem phần mình khoanh đỏ.


5.4: Gõ tiếp lệnh


Mã:
blackberry-keytool -genkeypair -keystore <tên file.p12> -storepass <password cho file .p12> -dname "cn=<tên gì cũng được>" -alias author


Đến bước này bạn đã xong 90% quãng đường này rồi . Hãy tỉnh táo để thực hiện bước tiếp theo nhé :P

6. Cấu hình file signbar-HaTax.bat để sign cho file BAR
Dùng notepad để edit file signbar-HaTaX.bat . Chỉ Edit phần bôi đỏ của file , không sửa các nơi còn lại, xem hình dưới để thấy rõ:



Mã:
SET DEVCERTFILE= Đường dẫn đến file *.p12. Nằm trong \apk2bar\bin\
SET DEVCERTPASS= Password file *.p12, được tạo ở bước 5.4
SET CSKPASS= Password file CSJ được tạo ở bước 5.2
Đã xong 98% :-bd
1% còn lại là rủi ro về lỗi ko mong muốn :-o (cái này ít xảy ra nếu bạn làm đúng các thao tác trên)
1% tiếp nữa là bị crash trên Android Runtime Environment for Playbook ^^ (cái này hay gặp với game nhất)

Special thank to @iamkingvn

Nguyễn Thạch Sơn