Patch AppleUSBXHCI để dùng với mọi USB 3.0 Controller – Phần 3

Phần 3 – Áp dụng patch và tận hưởng thành quả

PatchAppleUSBXHCI1

 Phần trước: Các patch cần áp dụng đối với AppleUSBXHCI

1. Đối với patch trực tiếp trên binary

Sau khi đã áp dụng các patch trên giao diện của 0xED, bạn vào menu File -> Save để lưu binary lại, như vậy file AppleUSBXHCI.kext trên Desktop đã được patch. Giờ bạn chỉ việc cài kext này bằng Kext Utility hoặc Kext Wizard (nhớ rebuild cache, repair permission) là xong.

2. Sử dụng Clover để patch AppleUSBXHCI on-the-fly

Mục này sẽ hướng dẫn cách cấu hình Clover để patch AppleUSBXHCI mà không cần phải sửa đổi trực tiếp binary bằng 0xED.

Lưu ý: Cơ chế patch on-the-fly của Clover là sẽ tìm chuỗi byte gốc (mục Find) trong binary của kext (ở trong RAM sau khi đã load) và thay thế nó bằng chuỗi byte mới (mục Replace). Nếu chuỗi byte gốc xuất hiện nhiều lần trong binary thì nó sẽ thay thế từng ấy lần, và như vậy sẽ làm kext bị lỗi và chạy sai hoặc không chạy được. Do vậy việc lựa chọn chuỗi byte gốc phải chính xác để khi Clover tìm thì chỉ ra 1 kết quả đúng với vị trí cần thay thế.

Để test chuỗi byte gốc, bạn mở binary gốc (chưa patch) của AppleUSBXHCI bằng 0xED. Trên giao diện của 0xED, bạn nhập chuỗi byte vào ô tìm kiếm, bấm vào nút kính lúp và chọn Hex Search. Nếu chỉ ra được 1 kết quả tìm kiếm tại đúng offset cần patch thì chuỗi byte gốc là OK.

PatchAppleUSBXHCI11

a. Chuỗi byte gốc của các patch

Patch 1: Chuỗi byte gốc sẽ là:

00 80 75 34

Chuỗi byte thay thế sẽ là

00 80 EB 34 

Patch 2: Chuỗi byte gốc sẽ là:

E0 3D 00 01

Chuỗi byte thay thế sẽ là

E0 3D 00 00 

Patch 3: Các patch này đều thay đổi 0x400000 thành 0x0 nên mình sẽ gộp chúng lại. Chuỗi byte gốc sẽ là:

08 00 00 40

Chuỗi byte thay thế sẽ là

08 00 00 00

Patch 4: Chuỗi byte gốc sẽ là:

C8 00 00 00 01 48

Chuỗi byte thay thế sẽ là

C8 00 00 00 00 48

Patch 5: Chuỗi byte gốc sẽ là:

85 C0 75 4D

Chuỗi byte thay thế sẽ là

85 C0 EB 4D

b. Áp dụng trên Clover

Đầu tiên bạn cần có Clover Configurator, nếu chưa có thì tải ở đây. Chạy Clover Configurator, mở file config.plist rồi truy cập vào mục Kernel And Kext Patches.

Trong mục KextsToPatch, bấm nút + để thêm patch. Với mỗi patch, mục Name để là AppleUSBXHCI, mục Find nhập chuỗi byte gốc, mục Replace nhập chuỗi byte thay thế, và mục Comment để tên bất kì theo ý bạn. Chẳng hạn như mình làm dưới đây:

PatchAppleUSBXHCI12

Sau khi đã thêm tất cả các patch, lưu file config.plist lại và thế là xong.

Hết

Bình luận về bài viết này