Một lập trình viên người Việt đã đạt được bước đột phá công nghệ khi boot thành công macOS lên iPhone. Đây là lần hiếm hoi macOS có thể khởi chạy một phần giao diện thực tế trên phần cứng iOS, mở ra những khả năng thử nghiệm độc đáo giữa hai hệ sinh thái của Apple.
Dự án có tên MacWSBootingGuide hiện vẫn trong giai đoạn thử nghiệm (WIP – Work in Progress) và yêu cầu người dùng có kiến thức chuyên sâu về jailbreak, cũng như khả năng can thiệp vào hệ thống file và tiến trình của iOS/macOS.
Quá trình đã được chia sẻ trên mạng xã hội
Để khởi chạy WindowServer của macOS trên iPhone, lập trình viên đã sử dụng một số framework từ môi trường giả lập macOS, bao gồm:
Cơ chế hoạt động đòi hỏi các framework từ runtime mô phỏng macOS (MTLSimDriver, MTLSimImplementation, MetalSerializer) và một loạt thao tác kỹ thuật như trích xuất hệ thống tệp, vá lỗi dyld, launchservicesd, cùng các thành phần như MTLSimDriver và WindowServer. Một số thách thức, như xung đột kiến trúc (arm64e vs. arm64) và thiếu syscall, được xử lý qua các bản vá thủ công và tự động.
Để WindowServer có thể chạy, lập trình viên đã áp dụng nhiều bản vá cả ở phía macOS và iOS:
Dù vẫn là dự án đang phát triển, thành tựu này chứng minh tiềm năng tích hợp macOS trên iPhone, hứa hẹn mang lại trải nghiệm ứng dụng máy tính trên thiết bị di động. Cộng đồng công nghệ đang háo hức theo dõi các cập nhật tiếp theo!
Thông tin về dự án các bạn có thể tham khảo thêm tại đây
github.com
Quá trình đã được chia sẻ trên mạng xã hội
Cơ chế hoạt động và yêu cầu ban đầu
Để khởi chạy WindowServer của macOS trên iPhone, lập trình viên đã sử dụng một số framework từ môi trường giả lập macOS, bao gồm:
- MTLSimDriver.framework
- MTLSimImplementation.framework
- MetalSerializer.framework
Cơ chế hoạt động đòi hỏi các framework từ runtime mô phỏng macOS (MTLSimDriver, MTLSimImplementation, MetalSerializer) và một loạt thao tác kỹ thuật như trích xuất hệ thống tệp, vá lỗi dyld, launchservicesd, cùng các thành phần như MTLSimDriver và WindowServer. Một số thách thức, như xung đột kiến trúc (arm64e vs. arm64) và thiếu syscall, được xử lý qua các bản vá thủ công và tự động.
Các bản vá (patch) quan trọng
Để WindowServer có thể chạy, lập trình viên đã áp dụng nhiều bản vá cả ở phía macOS và iOS:
Phía macOS
- dyld: vá kiểm tra kiến trúc để cho phép nạp thư viện arm64e vào tiến trình arm64.
- launchservicesd: bổ sung xử lý các syscall bị thiếu và chuyển daemon thành dylib để tương thích.
- MTLSimDriver: vá nhiều lỗi liên quan đến Metal API, bộ nhớ, định dạng pixel, và hỗ trợ texture.
- WindowServer: bỏ qua một số API lỗi thời (NXClickTime, NXGetClickSpace) và vá thiếu theme sáng khi dùng recoveryOS.
Phía iOS
- MTLCompilerService: bỏ giới hạn kiểm tra nền tảng để cho phép biên dịch chéo shader.
- launchd: cho phép nạp các XPC bundle chưa khai báo trong plist.
- watchdogd: vô hiệu hóa watchdog để tránh reset tiến trình khi khởi động thử nghiệm
Dù vẫn là dự án đang phát triển, thành tựu này chứng minh tiềm năng tích hợp macOS trên iPhone, hứa hẹn mang lại trải nghiệm ứng dụng máy tính trên thiết bị di động. Cộng đồng công nghệ đang háo hức theo dõi các cập nhật tiếp theo!
Thông tin về dự án các bạn có thể tham khảo thêm tại đây
GitHub - khanhduytran0/MacWSBootingGuide: Booting macOS's WindowServer on your jailbroken iDevice for real
Booting macOS's WindowServer on your jailbroken iDevice for real - khanhduytran0/MacWSBootingGuide
BÀI MỚI ĐANG THẢO LUẬN