QEMU에서 iPod Classic 6G를 에뮬레이션해 애플 순정 retailOS 부팅에 성공
iPod Classic 6G in QEMU

개발자가 QEMU로 iPod Classic 6G(Samsung S5L8702)를 에뮬레이션해 수정되지 않은 애플 retailOS를 부팅시켰다. 내비게이션, 디스크, 화면, 음악 라이브러리는 작동했지만 뮤직 플레이어는 부분 렌더링되고 소리가 나지 않았다. SoC 데이터시트가 없고 펌웨어가 암호화되어 있어, emCORE로 플래시 메모리를 추출하고 이미지를 복호화했다. Claude Code의 도움을 받아 코드를 작성했으며, 약 16개의 가설을 철회했다.
QEMU에서 애플의 수정되지 않은 retailOS를 부팅하는 데 성공했다. 내비게이션, 디스크, 화면, 음악 라이브러리는 한동안 작동했지만, 뮤직 플레이어는 부분적으로만 렌더링되고 소리가 나지 않았다.
HN 토론
12- dmonterocrespo
저는 iPod Classic 6G(Samsung S5L8702)용 QEMU 에뮬레이터를 개발해 왔는데, 이 에뮬레이터는 원본 그대로의, 수정되지 않은 Apple retailOS를 부팅합니다. 내비게이션, 디스크, 화면, 음악 라이브러리는 한동안 작동했지만, 음악 플레이어는 부분적으로만 렌더링되고 소리가 나지 않았습니다. 네 가지 서로 다른 오류가 있었는데, 마지막 오류는 제 잘못이었고, 그게 너무 재미있어서 글을 쓸 정도였습니다.
저는 몇 달 동안 제 서랍에 있는 iPod Classic 6G를 에뮬레이션하려고 시도했지만 성공하지 못했습니다. 오랜 시간 끝에 마침내 실행에 성공했지만, 아직 다소 거칩니다. QEMU에서 원본 그대로의, 수정되지 않은 Apple retailOS를 부팅하는 데 성공했습니다. 내비게이션, 디스크, 화면, 음악 라이브러리는 한동안 작동했지만, 음악 플레이어는 부분적으로만 렌더링되고 소리가 나지 않았습니다.
이미 알고 있는 한 가지는 펌웨어가 Apple의 것이고 암호화되어 있어서 합법적인 다운로드가 없다는 것입니다. 저는 2008년산 iPod Classic 6G를 가지고 있습니다. Claude Code의 도움으로 emCORE를 사용해 그것을 추출하는 코드를 만들 수 있었습니다. 플래시 메모리의 내용을 추출하고 이미지를 직접 복호화했습니다.
그리고 부트 ROM은 실행 중인 기기에서 읽을 수 없습니다. 후자는 힘든 방식으로 확인했고, 그 과정에서 제 iPod이 여러 번 재시작되었습니다(재시작하려면 중앙 버튼과 메뉴 버튼을 5초 동안 누릅니다).
SoC에 대한 데이터시트가 없습니다. 게스트의 일부를 잠금 해제할 수 있게 해주는 각 모델 레지스터는 게스트 자체가 수행한 쓰기 작업에서 파생됩니다,
코드와 노트, 포함 [… ]
- dmonterocrespo
저에게 많은 어려움을 준 것 중 하나는 음악 플레이어의 잠금을 해제하는 것이었습니다. 리버스 엔지니어링은 정말 어려웠습니다. 많은 가능한 변형을 조사했고, https://freemyipod.org 에서 메모리 레지스터 정보를 검색해 보았지만, 이 특정 iPod에 대해 음악 플레이어에 도움이 될 만한 것은 아무것도 없었습니다. 지금은 제 iPod에서 처음 봤을 때 정말 좋아했던 Cover Flow의 잠금을 해제하려고 노력 중입니다.
- ChrisRR
r/emulation에서 AI 코드에 대한 끝없는 악플이 아닌 댓글 섹션을 보는 것은 드문 일이다