간혹 삼성 스마트폰을 싹 밀어버리고 최신 펌웨어를 깔끔하게 넣어줄 필요성을 느낄 때가 있습니다. 저처럼 OTA 업데이트를 불신하거나 자잘한 오류가 발생한다거나... 이유는 많겠지요.
그럴때 쓰는 프로그램이 두가지가 있습니다. SamFirm과 Odin입니다. SamFirm은 최신 펌웨어를 다운로드 받을때 사용하는 도구이고 Odin은 그 다운로드 받은 펌웨어를 삼성 스마트폰에 플래싱(설치)해주는 도구입니다. 1
이제 그 도구들을 사용해 삼성 스마트폰에 최신 펌웨어를 플래싱하는 방법에 대해 알아보겠습니다.
SamFirm vs UPDATO
시작하기 전에 잠깐 짚고 넘어갈 것이 있습니다. SamFirm의 개발은 중지된지 오래입니다. 애시당초 공식 XDA 포럼 스레드에도 This tool is deprecated라고 대문짝만하게 써두었습니다. 그 대신 UPDATO라는 사이트를 소개하고 있습니다. 왜일까요?
삼성이 출시하는 스마트폰의 갯수는 정말정말 많습니다. 그리고 삼성은 그 스마트폰들의 모든 펌웨어들을 갖고 있을 생각이 전혀 없습니다. 보통 사람들이 필요로 하는 펌웨어는 최신 펌웨어밖에 없을테니까요. 그래서 삼성 서버에서 펌웨어를 받아오는 SamFirm은 오직 최신 펌웨어만 받아올 수 있습니다. 그마저도 삼성 서버에서 펌웨어 파일이 내려가면 더이상 다운로드 받을 수 없죠.
UPDATO는 삼성 스마트폰들의 펌웨어들을 자신들의 서버에 따로 올려놓고 다운로드 받게 합니다.
그 대신, 자신들의 서버 비용을 충당하기 위해 '공짜로 받는 대신에 느리게 받을래, 아니면 돈 내고 제법 빠르게 받을래?'를 선택하게 합니다. 나쁘지 않은 판단입니다. 요새 나오는 펌웨어 하나에 4~5기가는 우습게 나오는데, 수십수백개의 스마트폰에 대한 각 펌웨어 버전의 총 용량을 따져보면 엄청날테니까요.
따라서 결론은 이렇습니다.
최신 펌웨어만을 받고 싶다면 SamFirm, 예전 펌웨어도 받고 싶다면 UPDATO를 사용해야 합니다.
아, 물론 이 글에서는 SamFirm을 이용해 최신 펌웨어를 받는 방법에 대해서만 설명합니다. 하지만 겸사겸사 곁가지로 펌웨어 다운그레이드때의 팁도 적어두도록 하겠습니다.
SamFirm
SamFirm의 공식 XDA 스레드에서 SamFirm의 마지막 버전, v0.3.6을 다운로드 받습니다. 아니면 여기서 받던가요.
ZIP파일의 압축을 풀어 나오는 SamFirm.exe을 실행하면 다음과 같은 화면이 나옵니다.
이제 사용자가 채워넣어야 하는 부분에 대해 설명하겠습니다.
- Model: 스마트폰의 모델 넘버입니다. 가령 예를 들면 '삼성 갤럭시 S8+'은 'SM-G955N'이라는 모델 넘버를 갖고 있습니다. 잘 모르겠다면 나무위키라도 뒤져보세요.
- Region: 스마트폰의 통신사 코드입니다. 국내 통신 3사에 대한 통신사 코드는 다음과 같습니다.
KT SKT LGT 자급제 통신사 코드 KTC SKC LUC KOO
나머지 밑의 PDA, CSC, Phone는 채우지 않고 위쪽에 있는 Auto 체크박스를 클릭해 자동으로 최신 펌웨어를 받도록 합니다. 2
Binary Nature 체크박스를 선택하면 흔히 '초기화 펌웨어'라고 불리는, 기기에 플래싱할 수 있는 모든 파일을 다운로드 할 수 있습니다.
Check Update 버튼을 클릭하면 잠시 후 이런식으로 화면이 나옵니다.
이때 펌웨어를 다운그레이드 할 생각이라면 Download의 Version 영역을 잘 보아야 합니다. G955NKSU4DSK2라고 되어 있는데, 이때 U4 부분은 부트로더의 버전을 나타냅니다. Odin을 이용해서 플래싱 할 때, 부트로더의 다운그레이드는 Knox 워런티를 손상시킵니다. 가령 본인이 부트로더 버전이 4(U4)인데 3(U3)인 펌웨어를 무작정 플래싱하면 그대로 Knox 워런티가 0x1로 손상되어 관련 기능들을 사용할 수 없게 됩니다.
최신 펌웨어만을 설치할 생각이라면 그런거 신경 안쓰고 Download 버튼을 누르면 됩니다. 그러면 파일을 저장할 위치를 묻고, 위치를 지정하고 나면 진행바가 올라가면서 펌웨어를 다운로드 받습니다. Decrypt automatically 옵션이 기본 체크되어 있으므로, 최종적으로 다운로드된 파일은 ZIP파일이 됩니다. 3
Odin
이제 SamFirm에서 다운로드 받은 ZIP파일의 압축을 풉니다.
이제 Odin을 다운로드 받습니다. Odin은 원래 삼성 서비스센터에서 사용하던 프로그램이 유출된 것이므로, 공식 다운로드가 존재하지 않습니다.
Odin은 특수한 경우가 아니면 항상 최신 버전을 사용하는 것이 좋습니다. 현재 2019년 기준으로는 Odin v3.14.1이 최신 버전입니다.
ZIP파일의 압축을 풀어 나오는 Odin3 v3.14.1.exe를 실행합니다.
처음에 이렇게 경고 메세지가 나오는데, 매우 중요합니다. 실제로 기기에서 삼성 계정과 구글 계정을 모두 삭제하지 않으면 Odin으로 펌웨어를 밀고 나서 부팅할 때 기기에서 사용하던 구글 계정과 삼성 계정에 로그인하라고 강제합니다. 이것이 디바이스 락입니다. 이렇게 되면 로그인하지 않는 이상 기기를 사용할 수 없게 됩니다.
본인의 기기라고 하더라도 미리 삼성 계정과 구글 계정을 삭제하도록 합시다.
실행하고 나면 이런 창이 나타납니다. 이때 아까 압축을 풀었던 펌웨어들이 있는 폴더를 봅시다. Odin의 오른쪽에 있는 버튼들을 눌러 각각 해당하는 파일들을 선택하면 MD5를 통한 무결성을 확인한 후 파일명이 버튼 오른쪽에 나타나게 됩니다.
이런식으로 버튼 왼쪽의 체크박스가 체크되고 오른쪽의 상자에 파일명이 나타났다면 파일이 손상되지 않았으며, 인식되었다는 뜻입니다.
이때 주의할 점은 반드시 버튼에 쓰인 글자와 같은 이름을 가진 파일을 불러와야 합니다. BL에 AP 파일을 넣어도 저런식으로 체크박스가 체크되고 파일명이 나타납니다.
파일들을 불러올 때 주의할 점이 둘 있습니다.
- CSC: 펌웨어의 압축을 풀었을 때, CSC 파일과 HOME_CSC 파일이 있을겁니다. 이런 점이 서로 다릅니다.
- CSC: 내부에 파티셔닝을 위한 PIT 파일이 같이 들어있어, 플래싱하면 스마트폰 전체가 공장초기화 됩니다.
- HOME_CSC: PIT파일이 없어 공장초기화 없이 파일들을 업데이트 합니다.
- USERDATA: 통신사만의 앱이나 설정등을 담겨있다고 하는데, CSC에도 이런 것들이 포함되어 있다고 알고 있습니다. 빼라는 말도 있지만, 저는 포함하도록 하겠습니다.
5칸 모두 채워넣었다면 스마트폰을 다운로드 모드로 진입시킵니다. 갤럭시 S8의 경우, 전원을 끈 상태에서 전원 + 볼륨 하 + 빅스비 세 버튼을 함께 길게 눌러 진입할 수 있습니다.
다운로드 모드에 진입한 스마트폰을 컴퓨터에 연결하고 Odin에서 Added 메세지가 나타났는지 확인한 후, Start 버튼을 누르면 펌웨어 설치가 시작됩니다. Odin에서 PASS가 떴다면 스마트폰이 자동으로 재부팅되며 공장초기화 등의 남은 과정들을 자동으로 진행한 이후 초기 화면에 진입하게 됩니다.