Hỗ trợ iOS: Hướng tới các thiết bị chạy iOS 64-bit. Hiện dự án vẫn đang trong giai đoạn thử nghiệm và chưa công bố danh sách phiên bản iOS tương thích đầy đủ cho mọi ứng dụng 32-bit.
LiveContainer vừa tiếp tục cập nhật LiveExec32 với bản Nightly Release @ 20260908. Đây là dự án thử nghiệm nhằm thực thi mã ARM 32-bit trên các thiết bị iOS 64-bit — một hướng phát triển đáng chú ý đối với những ứng dụng và trò chơi iOS cũ vốn không còn được các phiên bản iOS hiện đại hỗ trợ trực tiếp.
1.LiveExec32 là gì?
LiveExec32 được nhóm LiveContainer mô tả là công cụ có khả năng chạy binary 32-bit trên iOS 64-bit bằng cách chuyển tiếp các system call giữa môi trường giả lập và hệ thống chủ.
Thay vì để CPU thực thi trực tiếp mã ARMv7, LiveExec32 sử dụng Dynarmic làm bộ dịch động, chuyển mã ARMv7 32-bit sang ARM64 để thiết bị hiện đại có thể xử lý. Dự án được xây dựng với nhiều ý tưởng và mã tham khảo từ unidbg.
1.1LiveExec32 hoạt động như thế nào?
Theo tài liệu của dự án, kiến trúc hiện tại gồm một số thành phần đáng chú ý:
- Sử dụng Dynarmic để dịch động mã ARMv7 sang ARM64.
- Khởi chạy môi trường guest từ dyld, giúp các API của dyld 32-bit được tách biệt khỏi môi trường host 64-bit.
- Chuyển tiếp các syscall cần thiết giữa guest và iOS.
- Có hệ thống crash reporter và symbolicator dành cho mã guest.
- Có khả năng mô phỏng các bind mount.
- Sử dụng một môi trường filesystem riêng dành cho phần mềm 32-bit.
Nói đơn giản, LiveExec32 đang xây dựng một lớp tương thích 32-bit bên trong iOS 64-bit thay vì cố gắng khiến iOS chạy trực tiếp executable ARMv7.
2.Bản Nightly 20260908 có gì mới?
Bản phát hành mới được GitHub Actions tạo tự động dưới dạng Pre-release, sử dụng commit:
- 0b588dc3d73497a79f0f9328b242c370e15d9f1f
Thay đổi chính của commit này có tên “Gate verbose host logs behind compile-time flag”.
Cụ thể, các log chi tiết liên quan đến bridge, loader, memory, syscall và thread hiện được đặt phía sau tùy chọn compile-time. LC32_DEBUG_LOGS mặc định được đặt về 0, giúp loại bỏ các log debug thông thường khỏi bản build khi không cần thiết, trong khi các thông báo lỗi quan trọng vẫn được giữ lại.
Thay đổi này không phải một tính năng lớn dành cho người dùng cuối, nhưng cho thấy LiveExec32 đang được tiếp tục tối ưu và hoàn thiện sau khi hoạt động nghiên cứu 32-bit từng bị tạm dừng trong LiveContainer.
3.Khả năng chạy ứng dụng 32-bit hiện tại đến đâu?
Đây là phần cần phân biệt rõ.
README của LiveExec32 hiện xác nhận dự án đã có thể thực thi các binary C, C++ và Objective-C đơn giản. Tuy nhiên, nhóm phát triển cũng nói rõ rằng vẫn cần thêm nhiều công việc trước khi có thể chạy ứng dụng 32-bit hoàn chỉnh một cách tương thích rộng rãi.
Một trong những vấn đề quan trọng nhất là việc proxy các class, object và method call Objective-C giữa môi trường guest 32-bit và host 64-bit.
Repository hiện đã có riêng phần Objective-C Proxy, nhưng tài liệu vẫn liệt kê một số hạng mục TODO như xử lý thêm các phương thức Objective-C và kiểm tra các method được override.
Đáng chú ý, mã nguồn thử nghiệm của LiveExec32 đã chứa một ứng dụng sử dụng UIKit, trong đó tạo UIViewController, UILabel, UIButton và hiển thị dòng chữ “Hello world from 32bit”. Điều này cho thấy quá trình thử nghiệm đã vượt xa việc chỉ chạy các chương trình command-line ARMv7 đơn giản.
4.LiveExec32 có đồng nghĩa LiveContainer đã chạy được app 32-bit?
Trước đây LiveContainer từng thử nghiệm khả năng hỗ trợ ứng dụng 32-bit, nhưng tính năng này đã bị loại khỏi LiveContainer 3.7.0 do quá trình nghiên cứu LiveExec32 cần thêm thời gian. Nhóm phát triển khi đó cũng để ngỏ khả năng sử dụng những engine khác như touchHLE.
LiveExec32 hiện đang được phát triển dưới repository riêng và đã xuất hiện các bản Nightly mới, nhưng điều này không có nghĩa người dùng có thể lấy bất kỳ IPA 32-bit cũ nào rồi chạy ngay trên iPhone đời mới.
Khả năng tương thích còn phụ thuộc vào framework, Objective-C runtime, syscall, API hệ thống và nhiều thành phần khác mà ứng dụng cũ sử dụng.
5.Vì sao LiveExec32 đáng chú ý?
Apple đã chuyển hoàn toàn sang hệ sinh thái ứng dụng 64-bit từ nhiều năm trước, khiến một lượng lớn game và ứng dụng iOS cũ không còn khả năng chạy trực tiếp trên các phiên bản iOS mới.
Nếu LiveExec32 hoàn thiện được lớp dịch ARMv7 và bridge giữa môi trường 32-bit với framework 64-bit của iOS, dự án có thể mở ra khả năng chạy lại một phần những phần mềm iOS cũ trên phần cứng hiện đại.
Tuy nhiên, ở thời điểm hiện tại nên xem LiveExec32 là một dự án nghiên cứu và thử nghiệm, chưa phải giải pháp tương thích hoàn chỉnh dành cho người dùng phổ thông.
6.Kết luận
Bản Nightly 20260908 cho thấy LiveExec32 vẫn đang được phát triển tích cực. Bản cập nhật mới tập trung vào hệ thống logging và quá trình hoàn thiện nền tảng, trong khi repository hiện đã có các thành phần phục vụ việc bridge Objective-C và thử nghiệm UIKit.
Đây là một bước tiến đáng theo dõi đối với mục tiêu đưa ứng dụng ARMv7/32-bit trở lại trên iOS 64-bit, nhưng hiện vẫn còn quá sớm để khẳng định các game hay ứng dụng 32-bit cũ đã có thể hoạt động đầy đủ trên iPhone hiện đại.
Repository: LiveContainer/LiveExec32 trên GitHub






Chưa có bình luận. Hãy là người đầu tiên chia sẻ.