Vài ngày trước, tôi thấy bài đăng của Ryan Doyle về việc dùng Claude Code để tùy biến chiếc TV của anh ấy và nghĩ bụng mình cũng nên thử xem làm được gì với TV nhà mình không.
https://x.com/doooyle/status/2111196679680540724
TV của tôi là dòng Samsung 'The Frame' đời 2024, chạy hệ điều hành Tizen.
Tôi rất ghét Smart Hub của Samsung (hay bất cứ tên gọi nào họ đặt cho nó) và muốn có một màn hình chính đơn giản hơn, chỉ tập trung vào những ứng dụng tôi thực sự dùng.
Tạm thời, tôi gọi giải pháp của mình là Clean Frame.
Kể từ khi đăng vài tấm ảnh chụp màn hình, tôi nhận được khá nhiều câu hỏi về cách tôi làm nó chạy trên TV Samsung, liệu TV có còn hoạt động như một khung tranh nghệ thuật được không, và tôi có chia sẻ repo không. Vài người đã thử làm với Claude nhưng bị mắc kẹt.
Cá nhân tôi không có nhiều thời gian để viết bài này, nên tôi nhờ Codex đọc lại các đoạn chat của chúng tôi, đọc chính tả cho nó trong vài phút, và nó đã xuất bản nội dung bạn sắp đọc dưới đây.
Một lưu ý nhỏ:
Tôi hoàn toàn không phải chuyên gia. Chắc chắn sẽ có rủi ro, và việc thay đổi các cài đặt này có thể gây lỗi hoặc khiến TV của bạn không dùng được nữa. Nếu bạn muốn thử, hãy tự chịu trách nhiệm.
Đưa một ứng dụng lên TV
Ban đầu tôi làm khá dè dặt, chưa vội quan tâm giao diện trông ra sao mà chỉ muốn kiểm tra xem liệu mình có thể đưa ứng dụng tự viết lên TV được hay không.
Tôi dùng Codex kết hợp Astra để xử lý phần thiết lập của Samsung, bắt đầu bằng việc bật Developer Mode trên TV và kết nối từ máy tính. Tizen có sẵn công cụ dành cho nhà phát triển để cài ứng dụng riêng, nên đó là điểm khởi đầu của chúng tôi.
Bản thân ứng dụng chỉ gồm HTML, CSS và JavaScript. Công cụ của Samsung sẽ đóng gói chúng lại để chạy được trên TV. Tizen vẫn là hệ điều hành điều khiển TV, còn Clean Frame chỉ mở các ứng dụng streaming đã cài sẵn trên đó.
Phiên bản đầu tiên rất sơ sài. Tôi có thể chuyển qua lại giữa vài ứng dụng bằng remote, bấm OK để mở Netflix hoặc YouTube. Lúc đó tôi chỉ cần thử được đến vậy là đủ.

Phiên bản đầu tiên tôi đã thử nghiệm và cài lên TV.
Khi bước đó thành công, tôi mới bắt đầu nghĩ xem mình thực sự muốn hiển thị gì trên màn hình.
Nếu bạn muốn tự làm, đây là các bước thiết lập:
- Đặt máy tính và TV vào cùng một mạng nội bộ.
- Trên TV, vào Apps → App Settings và nhập 12345 bằng bàn phím số trên remote.
- Bật Developer Mode và nhập địa chỉ IP nội bộ của máy tính vào ô Host PC IP.
- Khởi động lại TV, sau đó kết nối từ máy tính bằng công cụ phát triển của Samsung.
- Dùng công cụ certificate của Samsung để tạo author certificate và distributor certificate. Thêm device ID (DUID) của TV vào distributor certificate, rồi đóng gói và cài ứng dụng.
Rất dễ nhầm lẫn các địa chỉ IP. Bạn nhập IP của máy tính trên TV, rồi lại dùng IP của TV để kết nối từ máy tính. Hướng dẫn kết nối của Samsung và hướng dẫn tạo certificate có mô tả chi tiết từng bước.
Sau khi cài xong công cụ SDB của Samsung, đây là các lệnh để kết nối và kiểm tra xem TV đã hiện lên chưa. Hãy thay TV_IP bằng địa chỉ IP nội bộ của TV nhà bạn:
1sdb connect TV_IP:261012sdb devices
Tôi đã phải tắt hẳn nguồn TV ở ổ cắm rồi bật lại thì máy tính mới kết nối được. Bấm nút Power trên remote chỉ chuyển TV sang Art Mode thôi.
Chúng tôi cũng từng bị từ chối ứng dụng do cách ký (sign) file. Dùng chính công cụ đóng gói của Samsung đã giải quyết được vấn đề này.
Tôi đã dùng prompt nào?
Có người xin prompt vì Codex liên tục báo lỗi khi họ thử. Người khác thì bảo Claude nói rằng việc này không khả thi trên Tizen, hoặc chỉ dừng lại ở mức dựng được một ứng dụng tùy chỉnh. Tôi không rõ các phiên làm việc đó khác biệt chỗ nào. Codex kết hợp Astra đã làm được trên TV của tôi, và tôi tiếp cận từng bước một.
Đây là ví dụ về cách tôi sẽ bắt đầu, chứ không phải prompt chính xác từ phiên làm việc của tôi:
1Giúp tôi xây dựng một launcher đơn giản cho chiếc Samsung Frame của tôi.2Kiểm tra model và firmware của tôi so với tài liệu dành cho nhà phát triển của Samsung.3Bắt đầu với một ứng dụng Tizen cơ bản đã được ký, có thể mở một ứng dụng4streaming đang tồn tại. Đừng đụng vào cài đặt Home và khởi động cho đến khi5chúng ta làm được việc đó trên TV.
Thiết kế giao diện
Tôi dùng Codex và Claude Opus 5.5 để thử vài kiểu thiết kế. Có cái chỉ là danh sách đơn giản với tên ứng dụng to. Cái khác lại có thanh dock hoặc lưới ảnh phủ trên một bức hình. Việc nhìn chúng cạnh nhau giúp tôi nhận ra mình thích gì.

Shore Tiles, một thiết kế dạng lưới kính tôi thử sớm trên trình duyệt.
Từ đó, tôi liên tục tinh chỉnh bố cục, font chữ và cảm giác sử dụng bằng remote.
Tôi cũng làm một trình tùy biến giao diện nhỏ trên trình duyệt để thử ghép các nền, font, bố cục và hiệu ứng kính với nhau. Nhờ vậy, tôi dễ dàng hình dung cái nào ổn trước khi đưa lên TV.

Trình tùy biến giao diện, nơi tôi có thể thử các lựa chọn khác nhau đặt cạnh nhau.
Cuối cùng, tôi giữ lại một danh sách và một thanh dock, kèm cài đặt để chọn nền, font và icon. Tôi cũng có thể chọn ứng dụng nào được hiện và sắp xếp chúng theo thứ tự mình muốn.

Bố cục dạng danh sách, hiển thị trên trình duyệt.
Nhiều người hỏi liệu nó có nhanh không. Ban đầu thì không. Hiệu ứng kính trông đẹp trên trình duyệt, nhưng di chuyển trên TV lại khá giật. Hai thứ đã khắc phục điều này: tối ưu hóa hình ảnh và chuẩn bị sẵn hiệu ứng kính từ trước, thay vì bắt TV vẽ chúng theo thời gian thực. Giờ nó phản hồi cực kỳ mượt. Còn bản thân các ứng dụng streaming vẫn mất chừng đó thời gian để mở.
Danh sách ứng dụng cũng cần dọn dẹp. Khi tôi yêu cầu Tizen liệt kê các ứng dụng đã cài, nó trả về hàng trăm mục. Phần lớn là dịch vụ chạy nền, công cụ quản lý tài khoản và ứng dụng hệ thống. Chúng tôi thêm một bộ lọc kiểm tra tên và app ID của từng mục, giữ lại các ứng dụng streaming tôi dùng, và loại bỏ mấy thứ nội bộ kia khỏi danh sách chọn. Chúng vẫn nằm trên TV và làm đúng nhiệm vụ của mình. Việc này chỉ làm gọn danh sách trong Clean Frame, chứ không gỡ hay vô hiệu hóa chúng.
Tôi phóng to tên ứng dụng và nới rộng khoảng cách để dễ đọc hơn từ ghế sofa. Tôi cũng muốn làm nổi bật ứng dụng đang được chọn, và khi thoát Cài đặt thì quay lại đúng vị trí cũ. Đã có kha khá lần chỉnh qua chỉnh lại với những chi tiết nhỏ này.
Biến nó thành màn hình chính
Khi đã ưng ý với cách hoạt động, tôi muốn bấm nút Home là quay lại được ngay.
Chúng tôi thử cài đặt khởi động của Samsung trước. Tôi tắt Start with Smart Hub Home và bật Autorun Last App. Cách này giúp Clean Frame hiện lên khi bật TV, miễn là nó là ứng dụng cuối cùng tôi dùng.
Để nút Home đưa tôi trở lại sau khi xem xong một nội dung thì tốn công hơn chút. Việc cài Clean Frame cho tôi một ứng dụng để mở, nhưng TV vẫn cần được chỉ định dùng nó làm màn hình Home. Chúng tôi dùng một chương trình hỗ trợ nhỏ, chạy một lần trên TV thông qua kết nối nhà phát triển. Nó thay đổi cài đặt Home của TV để trỏ về Clean Frame và bật tính năng tự động khởi chạy cho ứng dụng Home đó. Chúng tôi đã lưu lại cài đặt gốc trước và kiểm tra kỹ để đảm bảo có thể khôi phục lại.
Tôi thử nghiệm với Netflix. Khi Netflix đang mở, tôi bấm nút Home trên remote thường và quay thẳng về Clean Frame. Nghĩa là tôi có thể mở một ứng dụng, rồi trở về màn hình chính tự chế bằng chính nút bấm quen thuộc.
Nếu bạn muốn làm tương tự, hãy lưu ý phần này vượt ngoài quy trình cài đặt ứng dụng thông thường trong tài liệu của Samsung. TV của tôi là Frame LS03D chạy firmware 2130.0. Tài liệu tham khảo chúng tôi dùng dành cho một model Samsung khác, nên chúng tôi đã đối chiếu với TV của mình trước khi thay đổi. Chương trình hỗ trợ chỉ cần chạy một lần, nên tôi không cần cắm Mac liên tục để nó hoạt động.
Nó chạy qua kết nối nhà phát triển và không cần quyền root. Dù vậy, tôi khuyên bạn vẫn nên cẩn thận ở bước này. Nó can thiệp vào cài đặt Home của TV, và một model hay phiên bản firmware khác có thể sẽ phản ứng khác.
Tình hình hiện tại
Nó đã được cài trên TV của tôi và hoạt động rất tốt. Tôi có thể đổi bố cục, font chữ, hình nền, đồng thời giữ lại các ứng dụng mình muốn theo đúng thứ tự mong muốn.
Remote thường vẫn dùng bình thường, bấm Home sẽ quay về Clean Frame, và tôi vẫn có thể dùng TV để trưng tranh nghệ thuật.
Dưới đây là vài tổ hợp tôi đang thử. Tôi có thể thay đổi hình nền, bố cục, font, kiểu focus và cách hiển thị các ứng dụng cũng như nút điều khiển Home. Những ảnh chụp màn hình này lấy từ ứng dụng hiện tại đang chạy trên trình duyệt.

Cài đặt Focus, kèm bản xem trước hiệu ứng Glass và Clear tint trên màn hình Home.

Blue Peaks với bố cục danh sách, font Mori, kiểu focus Type và icon cho các nút điều khiển Home.

Chỉ có chữ trên nền đen, dùng font Mori và kiểu focus Type.

Mountain Valley với bố cục dock, vật liệu Clear tint và kiểu focus Glass.
Tính đến lúc viết bài này, khá nhiều người đã xin link repo. Tôi vẫn đang hoàn thiện vài thứ và có thể sẽ bổ sung vào đây sau. Trong lúc chờ đợi, hướng dẫn này sẽ giúp bạn đi được phần lớn chặng đường để tự làm một bản riêng, bắt đầu từ model và firmware TV của bạn rồi tiến hành từng bước một.
Vài câu hỏi từ phần bình luận
Tôi có còn dùng nó làm khung tranh nghệ thuật được không?
Được chứ. Tính năng đó vẫn hoạt động bình thường. Hình nền trong Clean Frame tách biệt hoàn toàn với Art Mode của Samsung.
Chuyện gì xảy ra khi Netflix hay các ứng dụng khác cập nhật?
Chúng vẫn là những ứng dụng do TV cài đặt và quản lý. Clean Frame chỉ mở chúng lên thôi. Tôi không hề duy trì các phiên bản Netflix hay YouTube riêng biệt. Còn việc Samsung cập nhật firmware lại là chuyện khác: tôi chưa thử xem thiết lập Home có trụ vững qua một bản cập nhật như vậy không.
Bạn đã thay thế Tizen hay cài Android à?
TV vẫn chạy Tizen. Clean Frame là một ứng dụng Tizen, và tôi chỉ đổi cài đặt Home để nó mở lên khi tôi bấm nút Home. Tôi không cài Android hay thay thế hệ điều hành của TV.
Cách này có áp dụng được cho TV khác không?
Nhiều người hỏi về các dòng Samsung cũ hơn, LG, Hisense và Vizio - tôi không rõ về những hãng đó. Nhưng dường như danh sách những người làm được việc này trên nhiều model đang ngày càng dài. Và theo tôi thấy, Tizen có vẻ là một trong những hệ điều hành khó nhằn nhất, nên khả năng cao là TV của bạn sẽ làm được.
Giao diện có độ phân giải 4K không?
Giao diện được dựng ở mức 1920 × 1080 và co giãn để vừa màn hình. Tôi chưa làm phiên bản 4K native. Chuyện này không liên quan đến chất lượng video bên trong các ứng dụng streaming.
Nó có hoạt động với Home Assistant không?
Hiện tại Clean Frame chưa tích hợp Home Assistant. Cho đến giờ, tôi chỉ tập trung vào màn hình chính và việc dùng nó với remote thường. Tuy nhiên, xét cho cùng nó chỉ là một ứng dụng web nên bạn có thể dễ dàng bổ sung rất nhiều tính năng khác, vì vậy việc này hoàn toàn khả thi.





