스위치 CFW 부팅 과정

스위치 커스텀 펌웨어는 여러가지가 합쳐져서 만들어져 복잡합니다. 하지만 구조는 생각보다 간단합니다. 일엔비디아 프로세서의 취약점을 이용해 정상 부팅을 중단시키고 디버그 모드(?) 같은 곳으로 집입시킵니다. 이 상태에서는 메인 메모리(RAM)을 수정할 수 있는데, 편의를 위해 GUI 부트로더로 부팅하게 됩니다. 부트로더를 ram에 주입하는 과정을 paylord라고 부릅니다. 이 부트로더로 부팅한 후에 순정 OS가 설치된 스토리지를 읽어오고 수정하게 됩니다. 부트로더는 안드로이드에서 리커버리 모드 같은 느낌입니다.

스위치 CFW 특징

순정 롬에 홈브류나 여러가지 부가기능을 넣은 상태로 부팅할 수 있게 해주는 애를 CFW라고 부릅니다. 그러니까 우리가 흔히 생각하는 "커펌"이라는 행위와 달리 닌텐도 CFW에서는 운영체제를 수정하지는 않습니다. 처음에 부트로더를 읽고, 순정 롬에 덮어쓸 모듈 같은 것을 읽고, 순정 롬을 불러올 때 모듈을 적용하게 됩니다.

그러다보니 sd카드를 지워버리면 아무것도 수정되지 않은 순정 롬으로 부팅하게 됩니다. 하지만 OS 자체에서 CFW 모듈을 덮어쓴 채로 부팅했는지, 순정 상태로 부팅했는지 확인이 가능하고, 닌텐도가 해당 기기의 일련번호를 닌텐도 서버에 보내버리면 기기가 밴을 당할 수 있습니다.

CFW 비교입니다.

가장 많이 이용하는 것은 Atmosphere(이하 앳모스피어 또는 대기)입니다. 다른 부트로더로 부팅한 다음 atmosphere 를 실행하면 대기가 순정롬과 atmosphere 모듈을 함께 불러옵니다. 순정 앳모스피어는 정말 아무것도 없습니다. 홈브류도 직접 구해서 넣어줘야 합니다. 앳모스피어 말고는 ReiNXSXOS가 있습니다. SXOS는 유료입니다. ReiNX는 업데이트도 조금 느릴 뿐 아니라 지원하는 부트로더도 별로 없습니다.

부트로더입니다

헤카테는 필수 부트로더라 할 수 있습니다. 헤카테는 시스템 파티션을 불러오고 복제하는 기능과 부팅할 파티션 설정, 다른 페이로드 주입 등등 많은 기능을 제공해주고 있습니다. RetroReloaded Pro(이하 RR)neutOS(뉴토스)헤카테 기반은 아니지만 헤카테로 처음 세팅을 해줘야 사용할 수 있습니다. RRRR로 부팅 된 상태에서 헤카테로 부팅할 수 있습니다. 하지만 neutOS는 완전히 기기를 종료했다가 헤카테로 부트로더를 바꿔서 부팅해서 설정하고, 다시 뉴토스로 부팅해야 합니다.

RR 부트로더의 경우 부트로더에서 홈브류를 켜고 끌 수도 있고, CFW에서 사용할 서비스를 선택할 수 있습니다. 이 기능이 꽤 절실합니다. 그저 세팅된 배포판 그대로 사용하면 문제 없겠지만, 저처럼 이것저것 실험하는 사람에겐 꽤 좋은 기능입니다. 만약 부팅에 계속 실패하는 원인이 서비스라면 다른 배포판은 microSD를 PC에 연결해서 문제가 되는 서비스를 켜거나 꺼야 하지만, RR은 부팅 전에 기기 자체에서 세팅이 가능하기 때문입니다.

배포판 비교

배포판이란 단어를 사용하신 분은 없는데 배포판이라 부른 이유가 있습니다. 아래 적는 것들은 CFW에 부트로더와 꼭 필요한 몇몇 홈브류를 포함한 통합본입니다. 배포판들은 대체로 기본적인 홈브류를 포함하고 있습니다. 왠만하면 게임하는데 문제 없을 기본적인 기능들을 포함하고 있습니다. 현재 프레임이나 cpu, gpu 리소스 사용량 모니터링, 시스템 설정 같은 것들을 게임하면서 실시간으로 할 수 있게 해주는 오버레이들이 기본 포함입니다.

먼저 neutOS의 경우 atmosphere로 부팅 가능하며 그 샆을 이용할 수 있게 해줍니다. 부트로더가 없는것이 특징입니다. 페이로드를 하게 되면 바로 대기로 부팅해버립니다.

두번째로 Retro Reloaded는 많은 것이 포함되어있고 매일 업데이트 됩니다. ReiNXSX OS를 지원합니다.

하지만 제가 해본 결과 대부분 10.0.2에서 작동하지 않습니다. Lanplay도 켠 상태로 부팅하면 에러가 나오고, uboot 같은 것들도 정상 작동하지 않습니다. 찾아보니 uboot이나 ulaunch 같은 기능들이 마지막 업데이트가 3,4개월 되었더군요. 큰 숫자가 업데이트 된지도 한달이 다 되가는데 여전히 패치가 없습니다. 어쩌면 저만 안되는 것일수도..

그리고 전원 메뉴와 홈 메뉴가 커스텀 되어있는데, 홈 메뉴에서 전원 메뉴를 불러올 수 있습니다. 전원 버튼으로 전원 메뉴 띄울땐 거의 7초 정도 눌러줘야 하지만, RR에서는 홈버튼 1초만 누르면 종료 버튼이 보입니다. (나중에 다른 배포판에 RR 메뉴를 덮어쓰는 방법에 대해 쓰겠습니다.)

KEFIR는 러시아산 배포판입니다. 업데이트도 빠르고 atmospheresxos를 지원합니다. 온라인 계정이 있어야 실행 가능한 게임을 실행할 수 있도록, 온라인 계정을 inject 해주는 기능 때문에 많이 알려져 있습니다. 한국에서는 많이 이용하지 않습니다. 영어로 조차 번역해주지 않기 때문에 러시아 전용 배포판이라고 생각하면 될것 같습니다.

마지막으로 OpenCourse 님의 배포판입니다. 오픈 코스님은 RRPro+대기로 배포해주신 적도 있고, 헤카테+앳모스피어로 배포해주신 적도 있고, 최근엔 뉴토스+대기 조합으로 배포판 만들어주시기도 합니다. 그리고 사진만 보고 따라해도 모두가 할 수 있을 만큼 자세하게 설명되어있습니다. 저도 이분 블로그에서 배웠습니다.

Ads Blocker Image Powered by Code Help Pro

광고 차단 감지됨!

닫기를 누르면 이용하실 수 있지만, 광고 차단은 해제해주시면 좋겠습니다.
Powered By
100% Free SEO Tools - Tool Kits PRO