Bài viết của Hoangle2610 tạo ra nhiều cảm hứng và cũng rất quan trong. Đây là một bài chính tôi cũng muốn đề cập đến nhiều lần nhưng vì bận và làm biếng. Sẵn có chủ đề ở đây tôi xin đóng góp ý kiến vào chung để cho anh em đọc. Vì tôi muốn giải thích tường tận, vì thế khi đọc có thể là hơi rắt rối, quanh co nên anh em bỏ qua cho.
Những danh từ quan trọng trong bài viết này mà minh cần quen thuộc và hiểu là:
Bootloader - BL - phần boot của con chip.
Baseband - BB - cái modem / con communication chip.
Firmware - FW - phần mềm của con chip.
Secpack - là cái chìa khóa để mình có thể upload/write firmware vào BB - Đây là giải thích vắn tắt nhất mà tôi có thể nghỉ ra. Muốn hiểu thêm, các bạn có thể đọc ở đây
http://code.google.com/p/iphone-elit...Authentication
Unlock - giải mã cái baseband FW (modem FW) của iphone để nó có thể nhận tín hiệu và đăng ký IMEI của phone với mọi GSM provider
Trên iPhone, mình hay nói đến firmware và bootloader. Nhân dịp này, tôi xin nói thêm là trên iPhone có 2 phần firmware và 2 phần bootloader. Đúng vậy và đừng ngạc nhiên. Tại sao lại là như vậy?
-
Trên iPhone có 2 con chip quan trọng:
A)
ARM core processor: con này thì chạy Operating System (Darwin) và phần application bootloader nằm trong flash memory
B)
Infineon processor (S-Gold): còn này thì quản lý baseband, có phần bootloader và phần mềm chính là baseband firmware
Các bạn cũng có thể nghỉ như thế này cho dễ hiểu (tàm tạm như vậy )
A)
Intel CPU - Operating system = Windows XP/Vista - Bootloader == boot sector ở trên đĩa cứng (hard disk)
B)
PC ROM BIOS (cũng có boot loader) và firmware == BIOS Flash file
----------------------------------------------------------------------------------------
1. Khác biệt giữa BL 4.6 và 3.9
Cái BB của iphone nằm trên một con chip (Infineon - dân hacker cũng gọi là S-Gold). Trên con chip naỳ có 2 phần: một là bootloader và phần kia là chỗ chứa firmware (code).
Trên những iphone đời trước (OTB 1.0.x, 1.1.1), phần BL là version 3.9
Trên những iphone đời sau và đến hiện tại (OTB 1.1.2, 1.1.3 và 1.1.4), phần BL là version 4.6
Tại sao phần bootloader này lại quan trọng và được đề cập rất nhiều trong những thời gian gần đây?.
1a) Với BL 4.6 Apple thay đổi cái format của secpacks. Vì thế những secpacks cũ (cũ hơn 1.1.3) sẽ không có giá trị (validate) với 4.6 BL. 1.1.3 secpacks chỉ giá trị trên 4.6 BL mà thôi.
1b) BL 4.6 cần phải có secpack mới hơn để mình có thể đụng chạm đến baseband (thí dụ như baseband của 1.1.2 / 02.02.13_G cần secpack của 1.1.3) ***
1c) Một điều kiện rất là quan trọng với BL 4.6 là nó sẽ kiểm tra toàn thể hết tất cả BB fỉmware (signature check) bắt đầu từ FW 1.1.3 trở lên. 1.1.2 BB fỉmware trở xuống, chỉ kiểm tra 1 signature mà thôi.
1d) Bootloader cũ, 3.9 không có phần kiểm tra kiểu này, nó chỉ kiểm tra một signature. Và vì thế mình có thể viết (write operation) bất cứ fỉmware nào cũng được. Và BL 3.9 chỉ cần secpack cùng version với baseband hoặc mới hơn. (Thí dụ như baseband 1.1.2 / 04.02.13_G thì dùng secpack của 1.1.2 cũng được).
----------------------------------------------------------------------------------------
2. Tại sao phần bootloader kiểm tra code mắc mớ gì đến unlock?
Khi mình unlock, thì có nghĩa là mình đã lấy cái BB fỉmware, sửa đổi nó (giải mã) và viết trở lại vào chỗ chứa (write update).
2a) Viết trở lại trên chip có BL 3.9 thì OK tại vì nó không cần secpack mới hơn (1c) và nó chỉ kiểm tra 1 signature)
2b) Viết trở lại trên chip có BL 4.6 thì không được tại vì 1c ở trên.
----------------------------------------------------------------------------------------
3. Liên quan đến ZiPhone.
Đọc đến đây thì hy vọng các bạn đã hiểu và đoán được lý do tại sao iPlus và ZiPhone có chức năng đưa BL xuống (BL downgrade).
Tôi đưa những ví dụ thực tế:
3a) Các bạn còn nhớ với OTB 1.1.3, mình có thể unlock mà không bắt buộc đưa BL 4.6 xuống tại vì sau khi unlock các bạn có thể kiểm tra va sẽ thấy là BB là 04.02.13_G (1.1.2) chứ không phải là 04.13.13_G. Trường hợp này tôi hay gọi là "hybrid mode", tại vì OS là 1.1.3 và baseband là 1.1.2 (google locate không chạy). Tại sao không là 1.1.3 BB? Tại vì lý do 1c) ở trên.
3b) Muốn OTB 1.1.3 với 1.1.3 unlock baseband thì phải đưa bootloader 4.6 xuống 3.9 tại vì 1d) và 2a)
----------------------------------------------------------------------------------------
4. Liên quan đến iPlus và ZiPhone
Khi 1.1.4 được phát hành thì tại sao ZiPhone lúc này lai bắt buộc phải đưa BL 4.6 xuống 3.9 chứ không như phần 3a) ở trên?
4a) thứ nhất là cần phải có secpack mới hơn (1.1.5) - lý do 1b) và 1c) ở trên
Còn đối với iPlus thì cũng vậy, nhưng đặc biệt là nó đưa BL 4.6 xuống 3.9FB (fakeblank)
----------------------------------------------------------------------------------------
5. Khác nhau giữa BL 3.9 và BL 3.9FB
Dùng 3.9FB thì mình có thể đi về trở lại 4.6 hoặc 4.6FB bằng cách sử dụng phần mềm hiện nay
(tôi sẽ viết thêm cách làm sau)
Dùng 3.9 thì không dùng phần mềm để đưa về 4.6, chỉ có cách là tháo phone ra mà thôi.
----------------------------------------------------------------------------------------
6. BL 4.6FB là cái gì và tôi có cần không?
BL 4.6FB lúc này chỉ là "proof of concept" và thật ra mình cũng chưa cần đến vì từ đây những hackers, programmers có thể viết ra một "custom" bootloader mà không có "signature check". Khi mà không có signature check thì tha hồ mà chạy baseband 1.1.3, 1.1.4 .....
----------------------------------------------------------------------------------------
Xin tạm ngưng ở đây. Mỏi tay quá. Tôi sẽ viết thêm và bổ túc thêm sau....