안드로이드 개발을 하다 보면 에뮬레이터 이외에 실제 기기에서의 정상 작동을 확인하기 위해 여러 가지 해상도의 기기와 OS 버전에서 테스트해보곤 한다. 안드로이드 놈들이 허구한 날 API버전 업그레이드니 기능 개선이니 하면서 기존의 존재하던 기능들을 없애버리거나 새로 만들거나 변경시켜 버리는 등 하루가 멀다 하고 바뀌는 것들도 많고 실제 사용자들이 사용하는 기기들은 크기도 버전도 다양하기 때문이다.
안드로이드 개발자인 친구가 자신이 사용하던 테스트폰의 OS를 실수로 업그레이드(버전이 올라가는 거니까 업그레이드가 맞는 것 같은데 왜 업데이트라고 하는 곳들이 많지?) 시켜버리는 바람에 Android 10 (API 29)이던 기기가 12가 되어버렸다고 한다. 그래서 원래 버전이였던 Android 10으로 다운그레이드하려 했지만 방법이 너무 복잡하고 되질 않는다고 도움을 청해왔다. 나라고 해본 적 있는 건 아니었지만 찾아보니 시도해 볼만 해 보여서 도전해 봤다.
결과적으로는 성공하긴 했지만 정보가 많은 듯하면서도 부족했고, 내가 필요했던 내용들이 깔끔하게 정리되어 있는 곳들이 없어 여기저기 찾아서 하느라 힘들었다. 다 해놓고 나니 다운그레이드 작업이 엄청 복잡한 게 아니었는데 말이다... 그래서 내가 처했던 문제들과 해결방법, 그리고 전체적인 순서에 대해 정리해보려 한다.
다운그레이드를 진행했던 기기는 Galaxy S10e 모델이었지만 본 게시글에서는 Galaxy Note10 모델로 진행하려 한다.
그리고 다운그레이드 과정에서 기기의 모든 정보가 초기화된다. 간혹 초기화까지는 안 해도 된다는 식의 정보도 있긴 했는데 적어도 나는 공장 초기화가 필수로 진행되어야 했고 애초에 테스트폰이라 정보가 날아가도 상관없었다.
기기의 정보를 알아내자
1. '옵션 - 휴대전화 정보'에서 모델명 확인 : Galaxy Note10 5G
2. '옵션 - 휴대전화 정보'에서 모델번호 확인 : SM-N971N
3. '옵션 - 휴대전화 정보 - 소프트웨어 정보'에서 빌드번호 확인 : N971NKSU2HWD2
(사실 빌드번호가 필요한 게 아니고 부트로더 버전을 확인하기 위함이다. 중간에 KSU2에 '2'가 부트로더 버전이다.)
4. '옵션 - 휴대전화 정보 - 소프트웨어 정보'에서 서비스 공급자 소프트 웨어 버전 확인 : SKC
(SKT = SKC, KT = KTC, LG = LUC, 자급제 = KOO)
얻어낸 정보들을 정리하면
- 모델명 : Galaxy Note10 5G
- 모델번호 : SM-N971N
- 부트로더 버전 : 2
- 통신사 : SKC
이렇게 된다. 모델명의 경우 크게 필요는 없지만 후에 펌웨어 다운로드 때 편하려고 알아뒀다.
펌웨어를 구하자.
갑자기 펌웨어는 뭐야? 하겠지만 펌웨어는 그냥 OS 버전 파일이라고 생각하면 될 것 같다. 펌웨어는 버전이 굉장히 다양하기 때문에 여기부터 조심해야 한다. 잘못하면 벽돌이 되거나 심한 경우 메인보드에도 문제가 생겨 하드웨어 교체를 해야 할 수도 있다고 한다.
펌웨어의 경우 찾아다니면서 여러 곳을 봤지만 회원 가입이 필요하거나, 검색이 안되거나, 보기 힘든 사이트들이 많았고, 내가 사용했던 사이트는 이곳이다. (광고 아님...)
펌웨어 메뉴로 들어가서 스크롤을 내려보면 이런 화면이 보이는데 자기가 다운그레이드하려는 브랜드를 클릭하면 된다. (이 밖에 기기들이 있는지는 모르겠으나... 나는 삼성 펌웨어만 있으면 돼서 이곳에서 다운로드했다.)
여기서 우측에 모델을 입력하면 된다. 사이트 기본 언어가 포르투칼어?로 되어 있는데 보기 힘들면 상단에서 영어로 바꿔주거나 크롬일 경우 번역을 사용하면 된다.
여기에 아까 알아놨던 모델번호를 입력하면 알아서 해당하는 모델명까지 표시된다.
모델명을 입력하면 보이지 않던 필드가 표시되는데 이곳에도 역시 아까 알아 놓았던 통신사를 선택해 주면 된다.
이제 검색된 펌웨어들 중에서 원하는 버전의 펌웨어를 다운로드 받아주면 된다. 지금 예시로 보이는 갤럭시 노트10 모델의 경우 제공되는 펌웨어가 12버전 밖에 없나 보다. 이 경우 다른 사이트에서도 찾아봐야겠지만 내가 원하는 버전의 펌웨어가 애초에 지원 안 되는 경우일 수도 있다.
여기서 중요하다. 글 마무리 때 따로 언급하겠지만, 난 여기서 다른 곳에서 정보를 못 얻어서 이유도 모르고 엄청 고생했다.
사진에 빨간색으로 표시해 놓은 'PDA'에 보면 아까 '빌드번호'와 유사한 형태를 띠고 있다. 실제로 완전히 동일한 것도 있을 텐데 그런 경우에는 기기에 깔려있는 펌웨어와 같은 파일이라 그렇다. 여하튼 '빌드번호'를 통해 알아냈던 '부트로더 버전'보다 이하일 경우 해당 펌웨어는 설치가 불가능하다. 물론 정보를 찾다 보면 무슨 플래싱 하라는 말도 있고 부트로더 버전별로 다른 건가 싶긴 하지만 적어도 내가 찾아낸 정보로는 이하의 부트로더 버전의 펌웨어로는 다운그레이드시킬 수 없었다. (이 부분은 극히 내 경험일 뿐이니 다를 수도 있다.)
지금 예시의 갤럭시 노트10 검색결과는 전부 버전이 12밖에 없지만 실제 다운그레이드를 진행했던 갤럭시 S10e 모델의 경우 12와 11이 존재했다. 자기가 검색한 결과에서 원하는 OS 버전이 존재하고 부트로더 버전이 더 낮은 펌웨어가 아니라면 다운로드해주면 된다. 회원가입도 필요 없고 무료다.(다시 말하지만 광고 아님... ㅎ)
부트로더 버전은 가운데쯤 있는 'N971NKSU2HWD2' 이다. 앞에 'N971N'은 모델명이고 'KSU'는 잘 알아본 건 아니지만(중요한 게 아니라...) 'Security ~'의 약자라고 한다. 그러니 이 것들을 제외하고 처음 나오는 숫자가 부트로더 버전이라고 알면 된다.
압축파일을 다운로드하고 해제시키면 이런 파일들이 있다. 많이 옛날 기기일 경우 저렇게 여러 파일로 나뉘어 있지 않다고는 한다.
일단 제일 중요한 펌웨어는 구했으니, 이제 펌웨어 설치에 필요한 것들을 준비하자.
오딘 다운로드
링크에서 '오딘'이라는 프로그램을 다운로드한다. 설치 프로그램은 아니다. 방금 위에서 다운 받았던 펌웨어 압축파일의 내용물이 대체 뭘까 궁금한 사람들은 하단에 친절하게 적혀있으니 읽어보면 좋겠다.
삼성 USB 드라이버 설치
https://www.samsungsvc.co.kr/download
삼성 USB 드라이버도 설치해 준다. 이걸 설치해야 정상적으로 펌웨어를 설치할 수 있다는데 이것도 처음 본 글에서는 안 알려줘서 나~중에 한참 돌아다니다가 알게 되었다... 물론 드라이버를 설치하지 않은 상태에서 시도했던 펌웨어가 애초에 설치가 안 되는 펌웨어였던 터라 이거 안 깔면 절대 안 됨!이라고 까진 확실하게 말할 순 없으나 대부분의 정보글들에서 설치하라고 하기도 하고 상식적으로도 설치하는 게 맞다. (예전에는 기기별로 드라이버가 다 따로 있었는데 통합이라니 참 좋아졌구나.)
컴퓨터에서 필요한 준비는 모두 끝났다. 기기에서 필요한 준비 작업을 하자.
먼저 기기에서 '설정 - 계정 및 백업 - 계정 관리'에 구글이나 삼성 계정을 전부 없애준다. 그렇다면 그 밖에 계정들은 괜찮냐? 할 수도 있는데 그 부분은 잘 모르겠다. 만약 괜찮다고 한들 서두에서 언급했듯이 공장 초기화는 기본 적으로 진행되어야 하는 작업이라 남겨놓는다고 해서 의미는 없을 것 같다.
그러면 왜 계정을 제거시켜놔야 하느냐? 아직 오딘을 실행시키기 전이지만 후에 오딘 실행시 경고 문구가 출력되는데 여기서 보면 계정을 삭제해 달라고 한다. 그렇지 않으면 Lock이 걸려서 기기 사용이 불가능해진다고 한다.
이제 마지막이다. '설정 - 휴대전화 정보 - 소프트웨어 정보'에서 '빌드번호'부분을 연타해서 개발자 모드를 활성화시켜주고 '개발자 옵션'으로 들어가 'OEM 잠금 해제'를 활성화시켜준다.
드디어 펌웨어 설치 차례다. 오딘을 켜자.
오딘 실행 시 'ID:COM'에 아무것도 표시되어 있지 않은데, 연결되어 있는 기기가 없다는 뜻이다.
컴퓨터와 기기를 연결하자. '다운로드 모드'로!
이제 컴퓨터에 기기를 연결해야 하는데 일반 연결이 아니고 '다운로드 모드' 연결이 필요하다. '다운로드 모드'에 진입하는 방법은 기기 별로 다 다르므로 검색으로 알아보면 되겠다. 내가 진행했던 갤럭시 S10e모델의 경우 '전원이 꺼져있는 상태에서 볼륨 다운 버튼+전원 버튼 상태로 케이블 연결'이었다. 참고로 '리커버리 모드'가 아니니 헷갈리지 말 것.
정상적으로 진입하면 이런 모습이 보인다.
오딘으로 돌아가 연결을 확인하고 펌웨어 설치를 진행하자.
이제 다운로드 받았던 펌웨어를 넣어주면 된다. 펌웨어 파일들을 보면 파일명 각각 앞에 BL, AP, CP, CSC_OMC로 시작하는데 버튼을 클릭해서 해당되는 파일들을 넣어주자. 'USERDATA'는 필요 없고 'CSC'의 경우 'HOME_CSC_OMC'가 아니고 'CSC_OMC'이니 헷갈리지 말 것. 'AP' 파일을 넣어줄 때 몇 초 정도 시간이 소요되는 게 정상이니 멈춘 줄 알고 끄지 말자.
그리고 기본적으로 설정돼있긴 하는데 'Options' 탭에서 위와 같이 세팅되어 있는지 확인하자. 나는 해당되지 않았지만 플래싱(?)이라는 걸 하려는 거면 'Auto Reboot'이 꺼져 있어야 하는데 지금 다루고 있는 건 아니므로 패스.
펌웨어 설치
모두 넣고 하단에 'Start'를 누르면 자동으로 작업 진행 후 완료된다. (위 사진은 다시 작업을 진행할 수는 없어서 나무위키의 사진을 가져온 것이니 빨간 표시 이외는 신경 쓰지 말 것)
내가 겪었던 문제들.
CASE : 오딘에서 펌웨어를 설치시키는 과정에서 'BOOT'에서 진행되지 않고 멈춰버림
=> 여러 문제들이 포함된 문제이지만 내 경우에는 기기와 설치하려는 펌웨어의 부트로더 버전이 맞지 않아서였다. 실제로 다운그레이드를 진행했던 갤럭시 S10e의 경우 부트로더가 7이었는데 내가 설치하려던 펌웨어는 5였다. 다행히 설치 중간에 멈췄다고 기기에 문제가 생기진 않았고 부팅도 정상적이었으나, 다른 펌웨어를 다시 다운로드하여 진행해야 했다.
CASE : 오딘에서 정상적으로 진행하고 완료시킨 후 기기를 부팅했는데 리커버리 모드로 자동 진입되어 정상적인 부팅이 불가능함.
=> 다른 경우는 모르겠고 나의 경우 공장 초기화를 통해 정상화시킬 수 있었다. 'Factory data reset'으로 볼륨 키를 사용해 이동 후 전원 키를 사용해 선택해 주면 된다.
마치며
안드로이드 OS 다운그레이드가 가능하다는 건 알고 있었지만 직접 해보기는 처음이었다. 본래 원했던 다운그레이드 버전은 펌웨어가 아예 지원을 못하는지 파일이 없어서 진행하진 못했지만 좋은 경험이었다. 다운그레이드를 찾다 보니 '구글 픽셀을 사용하려면 순정 펌웨어 설치를 해야 한다' 던가 'OS를 업데이트했더니 기기에서 게임이 비정상적으로 구동돼서 다운하려 한다' 던가 여러 이유들로 다운그레이드를 하던데, 도움이 되었으면 좋겠다.
'etc' 카테고리의 다른 글
데스크탑PC와 에어팟프로 블루투스 연결이 되지 않는 문제 (0) | 2022.08.30 |
---|---|
윈도우(Windows) 알림(센터)이 오지 않는 문제 (0) | 2022.08.21 |
화면 특정 영역의 클릭이 안되는 문제 (9) | 2022.08.14 |
ASUS 노트북에서 블루투스가 사라지는(안되는) 문제 (6) | 2022.08.09 |
소스트리(source tree)로 clone시에 프로그램이 강제 종료되는 문제 (github) (2) | 2021.11.08 |
최근댓글