Phosphene: Đảo ngược kỹ thuật framework riêng tư của Apple để tạo video wallpaper cho macOS

Công nghệ20 tháng 5, 2026·5 phút đọc

Phosphene là một ứng dụng mã nguồn mở cho phép người dùng macOS sử dụng video làm hình nền. Điểm đặc biệt là công cụ này đã phân tích ngược framework riêng tư WallpaperExtensionKit của Apple để tích hợp sâu vào hệ thống, mang lại khả năng phát video mượt mà, tiết kiệm pin và hỗ trợ đa màn hình.

Phosphene: Đảo ngược kỹ thuật framework riêng tư của Apple để tạo video wallpaper cho macOS

Phosphene là một dự án kỹ thuật ấn tượng, biến màn hình macOS của bạn thành một trải nghiệm sống động với khả năng sử dụng video làm hình nền. Không giống như các ứng dụng thông thường, Phosphene hoạt động như một engine hình nền video chuyên nghiệp dành cho macOS Tahoe, tích hợp sâu vào hệ thống thông qua việc phân tích ngược (reverse engineering) các framework riêng tư của Apple.

Dự án này không chỉ đơn thuần là phát video, mà còn giải quyết các thách thức phức tạp về quản lý tài nguyên hệ thống, đồng bộ hóa vòng lặp và tương thích với cơ chế quản lý năng lượng của macOS.

Tích hợp sâu vào hệ thống macOS

Điểm nổi bật nhất của Phosphene là cách nó hoạt động "ngầm" bên trong hệ thống. Thay vì chỉ đơn giản là phủ một cửa sổ video lên màn hình desktop, ứng dụng này sử dụng WallpaperExtensionKit — một framework riêng tư mà chính Apple sử dụng cho tính năng hình nền Aerials của mình.

Phosphene tải framework này thông qua dlopen và sử dụng kỹ thuật nội suy thời gian chạy (runtime introspection) dựa trên Mirror để giao tiếp với các kiểu dữ liệu XPC của nó. Điều này có nghĩa là quá trình phát video chạy ngoài tiến trình chính (out-of-process), giúp ứng dụng tồn tại ngay cả khi người dùng thoát ứng dụng và tích hợp mượt mà với vòng đời của màn hình khóa/máy tính ở chế độ chờ của hệ điều hành.

Tuy nhiên, vì sử dụng các API riêng tư, nhà phát triển cảnh báo rằng Apple có thể thay đổi cấu trúc này trong các bản cập nhật lớn tiếp theo. Hiện tại, dự án đang theo dõi macOS 26 (Tahoe).

Các tính năng kỹ thuật ưu việt

Phosphene được trang bị một loạt các tính năng được thiết kế để mang lại trải nghiệm mượt mà nhất mà không làm ảnh hưởng đến hiệu suất máy:

  • Tùy chỉnh video đa dạng: Người dùng có thể nhập các tệp MP4, MOV hoặc bất kỳ tệp nào có thể đọc được bởi AVFoundation. Các video này sẽ xuất hiện ngay trong trình chọn hình nền hệ thống (System Settings → Wallpaper).
  • Vòng lặp không gián đoạn (Gapless looping): Ứng dụng đạt được độ chính xác theo khung hình (frame-accurate) bằng cách bù trừ PTS/DTS qua các ranh giới vòng lặp, đảm bảo không có hiện tượng giật cục khi video lặp lại.
  • Hỗ trợ đa màn hình: Cho phép chọn hình nền khác nhau cho từng màn hình và trạng thái này được duy trì bởi macOS.
  • Phát video thông minh theo năng lượng: Một chính sách PlaybackPolicy được áp dụng để tự động giảm khối lượng công việc hoặc tạm dừng dựa trên trạng thái nhiệt, mức pin, chế độ sạc, Chế độ trò chơi (Game Mode) và chế độ trình chiếu.
  • Hiệu ứng chuyển tiếp mượt mà: Khi tính năng "Chỉ trên màn hình khóa" được bật, hình nền sẽ chuyển động theo đường cong khối (cubic curve) khi bạn khóa hoặc mở khóa máy, tương tự như hành vi của Aerials gốc.
  • Tối ưu hóa thích ứng: Có thể hiển thị trước các biến thể video có độ phân giải hoặc khung hình thấp hơn; bộ kết xuất sẽ tự động chuyển sang biến thể tiết kiệm tài nguyên nhất phù hợp với chính sách hiện tại.

Kiến trúc và cách thức hoạt động

Phosphene được chia thành hai thành phần chính hoạt động song song:

  1. Phần ứng dụng chính (Phosphene.app): Đây là giao diện người dùng trên thanh menu (menu bar). Nhiệm vụ của nó là quản lý thư viện video trên đĩa, chuyển mã các biến thể độ phân giải thấp hơn thông qua VideoOptimizationService, hiển thị tùy chọn và gửi thông báo Darwin khi thư viện thay đổi.
  2. Phần mở rộng (PhospheneExtension.appex): Chạy bên trong tiến trình WallpaperAgent của hệ thống khi hình nền Phosphene đang hoạt động. Nó tải WallpaperExtensionKit.framework tại thời điểm chạy, đăng ký dưới dạng nhà cung cấp hình nền và kết xuất các khung hình vào CAContext từ xa thông qua AVSampleBufferDisplayLayer.

Thay vì sử dụng AVPlayerLayer (thường bị âm thầm thất bại trong ngữ cảnh CAContext từ xa), VideoRenderer của Phosphene điều khiển AVSampleBufferDisplayLayer thủ công. Nó sử dụng một AVAssetReader cho vòng lặp hiện tại và một cái khác được tải trước cho vòng lặp tiếp theo, tạo ra dòng thời gian tăng đơn điệu để loại bỏ các lỗi hình ảnh (glitch).

Thách thức kỹ thuật và giải pháp

Để đạt được sự tích hợp hoàn hảo này, nhà phát triển đã phải giải quyết nhiều vấn đề kỹ thuật khó khăn:

  • WallpaperSnapshotXPC Swizzle: Bộ mã hóa ảnh chụp nhanh của hệ thống kiểm tra type(of: coder) == NSXPCCoder.self, nhưng bộ mã hóa thực tế là một lớp con. Nếu không có thao tác swizzle thời gian chạy trong mã, ảnh chụp nhanh sẽ mã hóa thành "không gì cả", dẫn đến màn hình khóa xám trong quá trình chuyển đổi.
  • Phân tích XPC dựa trên Mirror: Các kiểu yêu cầu của Apple (như WallpaperCreationRequestXPC) không nằm trong bất kỳ tệp tiêu đề SDK công khai nào. Phần mở rộng phải đọc chúng thông qua phản chiếu (reflection) của Mirror. Nếu Apple đổi tên các trường, ứng dụng có thể sẽ bị lỗi.

Yêu cầu hệ thống

Để sử dụng Phosphene, người dùng cần có:

  • macOS Tahoe (26.0+): Ứng dụng phụ thuộc vào điểm mở rộng hình nền được giới thiệu trong macOS 14 nhưng sử dụng các API SwiftUI và glassEffect() chỉ có trên Tahoe.
  • Apple Silicon: Mục tiêu là arm64-apple-macos26.0.
  • Xcode 17+: Để biên dịch dự án với tính năng đồng thời nghiêm ngặt của Swift 6.

Dự án hiện đã được mã nguồn mở dưới giấy phép MIT, cho phép cộng đồng kỹ thuật nghiên cứu và đóng góp vào việc khai thác sâu hơn các khả năng ẩn của macOS.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗