나의 성장기 보안/코딩$

안드로이드 진단 - Rooting된 단말기 순정 펌웨어 설치하는 방법

App 진단
@2021-10-26 22:38:27

Odin에 대하여

삼성 갤럭시 스마트폰을 사용할 때 간혹 업데이트가 아닌 다운그레이드, 루팅 기기를 순정펌웨어로 복구할 때 주로 사용하는 프로그램이 Odin이다.

이 프로그램은 본래 서비스센터에서 고객을 위한 서비스 용도로만 사용되던 삼성 내부프로그램 이었으나 어느순간 루팅 및 순정펌웨어를 설치할 수 있는 삼성의 공식 펌웨어 설치 프로그램이다.

다운로드 사이트는 다음과 같다.

 

2020년도 7월 1일 기준으로 최신 버전은 3.14.4 Version이며 갤럭시 S20까지 이를 지원한다.

Odin을 사용할 경우 Smart Switch Process를 종료한 후 작업하는 것을 추천한다.(Windows 상에서)

 

오딘을 사용하여 커스텀 바이너리 등을 설치하여 Knox Warranty 무효 비트가 1(엑시노스 계열) 또는 0x01(스냅드래곤 계열)로 올라가면 삼성페이등의 Knox와 관련된 기능을 사용할 수 없으며, Knox 관련 기능을 다시 사용하기 위해서는 보증 기간이 지나지 않더라도 메인보드를 유상으로 교체해야 한다.

 

하지만 Knox관련 부분을 제외한 나머지는 보증 기간 내 무상 수리가 가능하다.

https://dl2018.sammobile.com/Odin3-v3.14.4.zip

위의 링크로 접속하게 되면 최신 Odin Version인 Odin3-v3.14.4 Version을 다운로드 받을 수 있다.


Odin 사용 방법

1. Odin Program과 설치할 펌웨어를 준비한다. 펌웨어 파일을 압축하여 공유하는 사이트도 존재하는데, 압축 해제하면 다음과 같은 파일을 얻게 된다.

  • BL (부트로더 파일)
  • AP (시스템 및 리커버리 파일)
  • CP (통신 모뎀 파일)
  • CSC 또는 HOME_CSC(지역 및 통신사 코드 파일)

2. Odin을 열고 오른쪽에서 파일 선택 버튼 중에서 위에서 아래로 차례대로 선택해주면 된다.

단, 커스텀 펌웨어 상태에서 순정 펌웨어로 돌아가는 경우 HOME_CSC 대신 CSC를 CSC버튼에 선택하여 넣어줘야 한다.

 

3. Phone을 다운로드 모드로 부팅한다. 거의 대부분 전원 + 빅스비 버튼 + 볼륨 상 키를 동시에 누르면 부팅하면서 경고화면이 발생하는데, 이때 Reboot Bootloader키를 누르면 다운로드 모드로 진입한다. 컴퓨터와 연결한 후, F. Rest Time과 Auto-Reboot가 선택되어 있는지 확인한 후 플래시를 시작하면 된다.

※ 만약 설치 중 오류가 발생하면 다른 케이블을 사용해보거나, 컴퓨터 뒷면에 연결을 시도하거나 기기가 지원하는 오딘 버전을 사용하는지 확인하자

※ 참고로 오래된 펌웨어는 압축파일을 해제했을 때 BL, AP, CP, CSC등 여러 개가 나오지 않고 1개로 통합되어 있는 경우가 있다. 이럴 경우 그냥 AP에 넣고 플래싱 진행하면 된다.


순정 펌웨어 다운로드 하는 방법

갤럭시를 사용하다보면 가끔씩 순정펌웨어를 사용할 일이 발생한다.

이럴때 사용해줄 수 있는 프로그램이 존재한다.

바로 Samfirm이란 프로그램인데, 해당 프로그램은 사실 예전부터 존재했지만 20년 말에 삼성 펌웨어 서버에서 펌웨어를 내려받는 방식의 변화가 생기면서 작동이 되지 않았다.

 

하지만 samfirm 제작자가 이를 확인하고, samfirm reborn이라는 이름의 프로그램을 새로 출시했다.

https://github.com/ivanmeler/SamFirm_Reborn/releases

 

Releases · ivanmeler/SamFirm_Reborn

Contribute to ivanmeler/SamFirm_Reborn development by creating an account on GitHub.

github.com

위의 Link를 접속하여 SamFirm_Reborn.zip를 다운로드 받는다.

그 후 SamFirm.exe를 다운로드 받으면 된다.

 

SamFirm Reborn

1. Model란에 기기의 모델명을 적어주면 된다.

- 기기의 모델명은 [설정] -> [휴대전화 정보]로 이동하면, [모델번호]에 기입된 항목을 찾아 입력해주면 된다.

2. Region은 기기의 CSC코드를 입력해주면 된다.

- 기기의 CSC번호는 [설정] -> [휴대전화 정보] -> [소프트웨어 정보] -> [서비스 공급자 소프트웨어 버전]에서 찾을 수 있다.

내 단말의 경우 SKC

※ 처음에 Manual 모드로 가있는 경우가 있다. 일반 사용자의 경우, 사용할 일이 거의 없으므로, Auto에 Check하고, Check Update버튼을 누르면 된다.

 

삼성은 서버에 펌웨어를 저장할때 암호화 해서 보관하기 때문에, 다운로드만 진행해서는 펌웨어를 사용할 수 없는 암호화된 파일만을 내려받게 된다.

 

따라서 암호화를 해제하는 작업을 진행해야 되는데, 게이지가 다차서 다운로드가 완료되면 잠시 프로그램이 아래의 문구를 표시하며, CRC32값을 확인한다.

Checking CRC32...

다소 시간이 걸릴 수도 있는 작업으로, 이 작업 도중 프로그램을 종료한다면 파일을 다시 다운로드 해야 할 수 있다.

Sucess: CRC match!

Decrypting firmware...

CRC32 값 확인이 끝나면, 위 문구가 뜨면서 게이지가 처음부터 다시 차오르는데 암호화된 .zip파일을 복호화하는 과정이다.