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