Xem bài viết riêng lẻ
  #3  
Cũ 03-05-2013, 10:32 AM
hoanghaicap hoanghaicap đang online
Senior Member
 
Tham gia ngày: May 2012
Bài gửi: 264
Mặc định

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....
Trả lời với trích dẫn
->