본문으로 건너뛰기

© 2026 Molayo

GeekNews헤드라인2026. 05. 23. 03:40

Phosphene - Apple의 비디오 배경화면을 리버스 엔지니어링한 macOS Tahoe용 비디오 배경화면 엔진

요약

Apple의 비공개 프레임워크를 리버스 엔지니어링하여 macOS Tahoe에서 동작하는 비디오 배경화면 엔진 'Phosphene'을 구현했습니다. 잠금 화면과 데스크톱 간의 애니메이션 연속성을 유지하는 Apple의 동기화 시스템 구조를 분석하고 이를 재현하는 과정을 다룹니다.

핵심 포인트

  • Apple의 비공개 .appex 프레임워크 역공학 성공
  • 잠금 화면과 데스크톱 간의 끊김 없는 애니메이션 구현 원리 분석
  • WallpaperAgent와 com.apple.wallpaper 확장 구조 파악
  • 기존 LegacyScreenSaver의 메모리 효율성 문제 해결

1998년쯤 xscreensaver 해킹을 X 루트 창 배경, 그러니까 데스크톱에 띄워 쓰던 때가 그리워짐

이거 정말 고마움. 화면 보호기 모음을 만들고 있었는데 LegacyScreenSaver가 너무 엉성했음
누군가 Apple의 비공개 배경화면 프레임워크를 알아내길 바랐는데, 정말 해냈음

내가 보기엔 이건 WallpaperAgent용이고, com.apple.wallpaper의 확장을 WallpaperAgent가 데스크톱에서 실행하는 구조임
화면 보호기는 다른 글을 보면 되고, 그쪽에는 이를 우회하는 비공개 화면 보호기 API 샘플을 올려둠. Apple은 자체 “Aerials”에서 둘 다 쓰고, 화면 보호기 플레이어와 데스크톱 플레이어 사이의 위치를 공유하는 동기화 시스템을 갖고 있음

LegacyScreenSaver는 메모리를 정말 많이 먹음

Apple 최고의 동영상 배경화면은 Macintosh라고 생각함. 어떻게 동작하는지 궁금함

나도 궁금함. 이 배경화면 일부를 보고 단순한 동영상 파일 모음이 아니라 절차적으로 생성되는 것 같다고 느꼈고, 확인하려고 다시 봤음
날짜와 시간이 시스템 날짜·시간과 초 단위까지 맞는 지점이 여러 군데 있음

와, 이건 진짜 멋짐. 비공개 화면 보호기 .appex 프레임워크를 역공학해서 Aerial 4에서 동작하게 만드는 데는 성공했고, 원하는 사람을 위해 지난주 v4와 함께 샘플 프로젝트와 문서를 공개했음: https://github.com/AerialScreensaver/AppexSaverMinimal
Wallpaper appex도 같은 방식으로 시도했는데 역공학 자체는 쉬워 보였지만 WallpaperAgent가 로드를 거부해서, 아직은 배경화면 위와 아이콘 아래에 내 창과 동영상 플레이어를 띄우는 고전적인 트릭을 쓰고 있음. 뭘 놓쳤는지 살펴볼 예정임

정말 잘 만들었음. 최근 비슷한 토끼굴에 빠져서 Aerials 카탈로그를 역공학하고 Apple이 이걸 어떻게 연결하는지 파악했는데, 또 다른 오픈소스 프로젝트가 이걸 하는 걸 보니 좋음
가장 마음에 드는 세부 요소이자 우리 도구에서는 재현하지 못한 부분은 로그인 창과 라이브 데스크톱 사이에서 애니메이션이 계속 이어지는 방식임. 우리는 같은 아이디어를 크로스 플랫폼으로 구현한 phonto를 만들었음: https://github.com/museslabs/phonto. 전체 역공학 과정을 글로 쓰려던 참이었는데, 이게 시작할 계기가 될 수도 있겠음

동작 방식은 동영상 재생이 잠금 화면과 데스크톱 사이에서 공유되고, Apple 프레임워크가 표시되는 표면을 투명하게 전환하는 구조임

Windows 98에서 HTML 페이지를 배경화면으로 쓸 수 있었던 게 떠오름. 그 HTML에는 동영상도 넣을 수 있었음

X11에서는 원하는 어떤 프로그램이든 루트 창으로 설정할 수 있음
그건 그렇고 Windows 98의 Active Desktop은 이미 불안정한 운영체제에서 가장 불안정한 부분이었음. 새 시스템을 설치하면 제일 먼저 꺼야 했고, 잘못 쳐다보기만 해도 여전히 죽긴 했지만 적어도 재미로 죽지는 않게 됨

AI 자동 생성 콘텐츠

본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0