Dùng Claude Opus để ‘mổ xẻ’ TV LG cũ, lập trình viên tăng tốc ứng dụng gấp 10 lần

Theo dõi Genk.vn trên google news
Dùng Claude Opus để ‘mổ xẻ’ TV LG cũ, lập trình viên tăng tốc ứng dụng gấp 10 lần

Trong khi LG không công khai bộ công cụ phát triển ứng dụng cho TV của mình, lập trình viên này phải dùng đến AI Claude để xây dựng bộ ứng dụng mới cho thiết bị.

Trên chiếc TV LG đời 2019, ứng dụng Plex chính thức mất khoảng 30 giây mới hiện màn hình chọn hồ sơ người dùng. Một lập trình viên đã dùng Claude Opus cùng các công cụ phân tích phần mềm để tự xây dựng ứng dụng thay thế, rút thời gian chờ xuống còn 3 giây.

Plex là nền tảng giúp người dùng quản lý và xem phim, chương trình truyền hình từ thư viện nội dung cá nhân trên nhiều thiết bị, trong đó có TV thông minh. Thay vì phải tìm kiếm tệp video trực tiếp trên máy tính hoặc ổ lưu trữ, người dùng có thể duyệt thư viện, xem thông tin phim và phát nội dung qua giao diện Plex. Tuy nhiên, trên chiếc TV LG đời 2019 của lập trình viên này, ứng dụng chính thức hoạt động chậm đến mức mỗi thao tác đều trở nên mất kiên nhẫn.

Ứng dụng Plex chính thức mất khoảng 30 giây để tải màn hình chọn hồ sơ, thêm khoảng 30 giây để hiện giao diện chính. Ngay cả việc mở menu cũng mất khoảng 5 giây, trong khi trang thông tin phim cần khoảng 10 giây. Giao diện có cảm giác giống một trang web hơn là ứng dụng chạy trực tiếp trên TV.

Dùng Claude Opus để ‘mổ xẻ’ TV LG cũ, lập trình viên tăng tốc ứng dụng gấp 10 lần- Ảnh 1.

LG không cung cấp bộ công cụ phát triển ứng dụng native công khai cho lập trình viên thông thường. Để tìm hiểu cách phần mềm vận hành, tác giả đã root chiếc TV phục vụ nghiên cứu, trích xuất các thư viện hệ thống rồi phân tích chúng bằng Ghidra, công cụ thường được dùng để dịch ngược phần mềm.

Claude Opus hỗ trợ lần theo địa chỉ trong mã máy, các tham chiếu chéo và chuỗi ký tự để giúp tác giả hiểu cấu trúc chương trình nhanh hơn. Tuy nhiên, AI đôi khi đưa ra kết luận sai, nên các giả thuyết vẫn phải được kiểm chứng bằng mã nhị phân và thử nghiệm trên thiết bị thật. Cộng đồng Homebrew của webOS cũng cung cấp tài liệu hữu ích cho quá trình phát triển.

Việc root chỉ phục vụ nghiên cứu, không phải điều kiện để chạy ứng dụng mới. Sản phẩm hoàn thiện, mang tên PlxNative, có thể cài đặt mà không cần root TV.

Từ thử nghiệm đơn giản đến ứng dụng hoàn chỉnh

Ban đầu, tác giả chỉ tạo một giao diện gồm các ô màu để kiểm tra khả năng dựng hình ở tốc độ 60 khung hình/giây. Các ô này cùng thử phát một tập phim The Office, qua đó giúp lập trình viên kiểm tra khả năng phối hợp giữa giao diện và hệ thống phát video. Sau đó, công cụ Fable hỗ trợ kết nối các thành phần trong hệ thống media để hình ảnh đầu tiên xuất hiện trên màn hình.

Dùng Claude Opus để ‘mổ xẻ’ TV LG cũ, lập trình viên tăng tốc ứng dụng gấp 10 lần- Ảnh 2.

Quá trình phát triển cũng bộc lộ những lỗi khó phát hiện. Một lỗi tràn ngăn xếp xuất phát từ phiên bản SDL do LG chỉnh sửa: cấu trúc dữ liệu mà thư viện ghi ra lớn hơn kích thước mà phần khai báo trong mã nguồn dự kiến, dẫn đến ghi đè bộ nhớ.

Để giảm rủi ro từ những lỗi quản lý bộ nhớ tương tự, tác giả chuyển phần lớn ứng dụng từ C sang Rust, ngôn ngữ có cơ chế kiểm tra an toàn bộ nhớ ngay từ quá trình biên dịch. Phần giao tiếp với các thành phần native của LG vẫn được giữ bằng C.

Kết quả: từ 30 giây xuống còn 3 giây

Tác giả tiếp tục xây dựng giao diện OpenGL riêng và tối ưu để duy trì tốc độ 60 khung hình/giây. Hiệu ứng đổ bóng ban đầu khiến hiệu năng giảm mạnh, buộc anh phải điều chỉnh shader, giảm độ phân giải của một số vùng đệm và lưu lại những kết quả có thể tái sử dụng.

Các chỉ số theo dõi GPU Mali cho thấy bộ xử lý đồ họa bị giới hạn chủ yếu bởi khối lượng tính toán, thay vì chỉ bởi việc xử lý điểm ảnh. Phát hiện này giúp tác giả tập trung tối ưu đúng phần gây nghẽn.


Kết quả, PlxNative khởi động đến màn hình chọn hồ sơ trong khoảng 3 giây. Nếu ghi nhớ hồ sơ đã sử dụng, ứng dụng có thể đi thẳng đến giao diện chính sau khoảng 4 giây, thay vì chờ gần một phút như khi dùng Plex chính thức.

Ứng dụng hỗ trợ TV chạy webOS 4.0 trở lên, có thể phát trực tiếp nhiều định dạng như H.264, HEVC và video 4K khi phần cứng hỗ trợ. Những định dạng không tương thích vẫn có thể được máy chủ Plex chuyển mã. Người dùng có thể cài đặt qua LG Developer Mode hoặc kênh Homebrew của webOS.

Dự án cho thấy AI có thể giúp rút ngắn quá trình phân tích phần mềm và phát triển ứng dụng, nhưng không thể thay thế việc kiểm tra trên phần cứng thật. Tốc độ cải thiện đến từ sự kết hợp giữa công cụ AI, kỹ thuật dịch ngược và nhiều vòng thử nghiệm, tối ưu của lập trình viên. Đôi khi, chiếc TV cũ chưa hẳn đã quá chậm; vấn đề nằm ở phần mềm đang chạy trên nó.

Tin cùng chuyên mục
Xem theo ngày