"Flash Disk" là gì thì mình xin... miễn giải thích ở đây, nó còn được biết với tên "Internal Storage" ở một số dòng khác. Và từ khi tập cook ROM, mình đã ra sức tìm kiếm, search... search... và search... nhưng không thấy ai trả lời cho câu hỏi "Làm sao thêm Flash Disk vào ROM?", thế là mình tự "ngâm kú" dựa trên những gì đã biết về PC nhưng đem áp dụng qua PPC thì... thành công!
Và mình đã tìm ra 2 cách để làm được điều này, như đã hứa và cũng là một cách để nói lời cảm ơn đến các bạn ở diễn đàn và ở WIKI mình sẽ "chia xẻ" cách mà mình nghĩ nó dễ nuốt hơn.
Khi mình viết bài hướng dẫn này, mình đã cố gắng đi theo từng bước, từ cơ bản nhưng... khó nuốt quá! Vì thế mình quyết định chơi... ngược lại, để các bạn làm được trên một bản ROM thực tế đã, sau đó giải thích sau.
Cách làm này áp dụng cho Universal và có thể cũng áp dụng được cho những dòng khác!
* Những thứ cần thiết:
1. Bản ROM chưa có Flash Disk của bạn(OS.nb, nk.nba hay nk.fat), kitchen khác nhau dùng tên file khác nhau.
2. Chương trình chỉnh sửa HEX, mình dùng XVI32.
3. File mẫu Flash Disk của mình.
* Nguyên lý hoạt động:
Dung lượng tối đa của ROM Universal là 63 MB (66.060.288 Byte), chúng ta thường sử dụng ít hơn con số này nên dung lượng còn lại trở thành... phí phạm, vì thế ta tận dụng nó.
* Những chỗ cần chỉnh sửa:
- Không cần thay đổi gì trong SYS và OEM.
- boot.rgu trong XIP (chỉ khi cần thiết, hầu hết XIP đã có sẵn những chỉnh sửa này )
- 512 Byte đầu tiên của file ROM (được gọi là MBR - Master Boot Record) (chỉ khi cần thiết, hầu hết các ROM mới đã có sẵn )
- 512 Byte đầu tiên của mẫu Flash Disk của mình (được gọi là Boot Sector hay Boot Record), đây là điều phải làm để xác định dung lượng Flash Disk.
* Bắt đầu:
1. Download file đính kèm, bung nén vào chung thư mục với file nk.nbf của bạn.
2. Chạy HTC64, decode nk.nbf thành 2 file (nk.prj and nk.fat).
3. Chạy XVI32, mở nk.fat và ghi lại 2 giá trị (hay nhớ trong đầu nếu có thể) giá trị 1 (3 byte ở địa chỉ từ $1E6 đến $1E8 [hay từ $1F6 đến $1F8 nếu không phải là 00 00 00]) và giá trị 2 (2 byte ở địa chỉ từ $1EA đến $1EB [hay từ $1FA đến $1FB nếu không phải là 00 00]).
- Chú ý: Mình sử dụng ROM luca16thebig 1.4.9 BETA1 làm ví dụ, giá trị sẽ khác đối với ROM của bạn hoặc ROM sau khi build lại.
Nhập 2 giá trị 1 và 2 mà bạn đã ghi lại vào 2 vị trí 1 (từ $1C đến $1E) và 2 (từ $13 đến $14). Kiểm tra lại xem có đúng chưa và lưu lại.
- Chú ý: File mẫu của mình đã chỉnh sẵn theo giá trị của ROM luca16thebig 1.4.9 BETA1.
6. Chạy HTC64, encode lại 2 file (nk.prj and nk.fat) thành nk.nbf và thế là xong!
* Giá trị 1 và 2 là gì?
Cả 2 giá trị này đều được lưu ở dạng thập lục và theo thứ tự đảo nghịch, trong ví dụ này ta có:
- Giá trị 1 là 80 88 01, vậy giá trị thực của nó là 1.88.80h, đổi sang hệ thập phân là 100.480, đây là số sector đã sử dụng cho ROM (1 sector = 512 Byte). Và... dung lượng ROM luca16thebig 1.4.9 BETA1 là 51.445.760 Byte = 100.480 sector x 512 Byte.
- Giá trị 2 là 80 6F, giá trị thực là 6F.80h, đổi sang hệ thập phân là 28.544, đây là số sector còn trống và ta sẽ sử dụng làm Flash Disk có dung lượng là 28.544 sector x 512 Byte = 14.614.528 Byte (khoảng 14 MB).
- Như đã nói ở trên, dung lượng tối đa của ROM Universal là 66.060.288 Byte = 51.445.760 Byte + 14.614.528 Byte.
Nếu ROM bạn đã hỗ trợ sẵn Flash Disk, mỗi lần bạn build lại, 2 giá trị này sẽ tự động thay đổi theo giá trị mới trong MBR và bạn chỉ việc nhập 2 giá trị này vào file mẫu VNIntFlashDisk.template của mình!
- Chú ý: ROM luca16thebig 1.4.9 BETA1 đã hỗ trợ Flash Disk. Nếu ROM bạn không hỗ trợ thì hãy đọc tiếp bài viết số 2.
Link: VNIntFlashDisk.rar
Và mình đã tìm ra 2 cách để làm được điều này, như đã hứa và cũng là một cách để nói lời cảm ơn đến các bạn ở diễn đàn và ở WIKI mình sẽ "chia xẻ" cách mà mình nghĩ nó dễ nuốt hơn.
Khi mình viết bài hướng dẫn này, mình đã cố gắng đi theo từng bước, từ cơ bản nhưng... khó nuốt quá! Vì thế mình quyết định chơi... ngược lại, để các bạn làm được trên một bản ROM thực tế đã, sau đó giải thích sau.
Cách làm này áp dụng cho Universal và có thể cũng áp dụng được cho những dòng khác!
* Những thứ cần thiết:
1. Bản ROM chưa có Flash Disk của bạn(OS.nb, nk.nba hay nk.fat), kitchen khác nhau dùng tên file khác nhau.
2. Chương trình chỉnh sửa HEX, mình dùng XVI32.
3. File mẫu Flash Disk của mình.
* Nguyên lý hoạt động:
Dung lượng tối đa của ROM Universal là 63 MB (66.060.288 Byte), chúng ta thường sử dụng ít hơn con số này nên dung lượng còn lại trở thành... phí phạm, vì thế ta tận dụng nó.
* Những chỗ cần chỉnh sửa:
- Không cần thay đổi gì trong SYS và OEM.
- boot.rgu trong XIP (chỉ khi cần thiết, hầu hết XIP đã có sẵn những chỉnh sửa này )
- 512 Byte đầu tiên của file ROM (được gọi là MBR - Master Boot Record) (chỉ khi cần thiết, hầu hết các ROM mới đã có sẵn )
- 512 Byte đầu tiên của mẫu Flash Disk của mình (được gọi là Boot Sector hay Boot Record), đây là điều phải làm để xác định dung lượng Flash Disk.
* Bắt đầu:
1. Download file đính kèm, bung nén vào chung thư mục với file nk.nbf của bạn.
2. Chạy HTC64, decode nk.nbf thành 2 file (nk.prj and nk.fat).
3. Chạy XVI32, mở nk.fat và ghi lại 2 giá trị (hay nhớ trong đầu nếu có thể) giá trị 1 (3 byte ở địa chỉ từ $1E6 đến $1E8 [hay từ $1F6 đến $1F8 nếu không phải là 00 00 00]) và giá trị 2 (2 byte ở địa chỉ từ $1EA đến $1EB [hay từ $1FA đến $1FB nếu không phải là 00 00]).
- Chú ý: Mình sử dụng ROM luca16thebig 1.4.9 BETA1 làm ví dụ, giá trị sẽ khác đối với ROM của bạn hoặc ROM sau khi build lại.
4. Đóng file nk.fat lại và đừng lưu. Mở file mẫu VNIntFlashDisk.template của mình (cũng bằng XVI32).00000000 ...
...
000001E0 41 88 04 FF 41 F7 80 88 01 00 80 6F 00 00 00 00
000001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
Nhập 2 giá trị 1 và 2 mà bạn đã ghi lại vào 2 vị trí 1 (từ $1C đến $1E) và 2 (từ $13 đến $14). Kiểm tra lại xem có đúng chưa và lưu lại.
- Chú ý: File mẫu của mình đã chỉnh sẵn theo giá trị của ROM luca16thebig 1.4.9 BETA1.
5. Chạy combine.bat của mình, file rom gốc ROM sẽ được lưu thành nk.fat.original. File nk.fat bây giờ đã có Flash Disk!00000000 ...
00000010 02 00 02 80 6F F8 0C 00 3F 00 FF 00 80 88 01 00
6. Chạy HTC64, encode lại 2 file (nk.prj and nk.fat) thành nk.nbf và thế là xong!
* Giá trị 1 và 2 là gì?
Cả 2 giá trị này đều được lưu ở dạng thập lục và theo thứ tự đảo nghịch, trong ví dụ này ta có:
- Giá trị 1 là 80 88 01, vậy giá trị thực của nó là 1.88.80h, đổi sang hệ thập phân là 100.480, đây là số sector đã sử dụng cho ROM (1 sector = 512 Byte). Và... dung lượng ROM luca16thebig 1.4.9 BETA1 là 51.445.760 Byte = 100.480 sector x 512 Byte.
- Giá trị 2 là 80 6F, giá trị thực là 6F.80h, đổi sang hệ thập phân là 28.544, đây là số sector còn trống và ta sẽ sử dụng làm Flash Disk có dung lượng là 28.544 sector x 512 Byte = 14.614.528 Byte (khoảng 14 MB).
- Như đã nói ở trên, dung lượng tối đa của ROM Universal là 66.060.288 Byte = 51.445.760 Byte + 14.614.528 Byte.
Nếu ROM bạn đã hỗ trợ sẵn Flash Disk, mỗi lần bạn build lại, 2 giá trị này sẽ tự động thay đổi theo giá trị mới trong MBR và bạn chỉ việc nhập 2 giá trị này vào file mẫu VNIntFlashDisk.template của mình!
- Chú ý: ROM luca16thebig 1.4.9 BETA1 đã hỗ trợ Flash Disk. Nếu ROM bạn không hỗ trợ thì hãy đọc tiếp bài viết số 2.
Link: VNIntFlashDisk.rar
Chỉnh sửa cuối: