[환경]
Host: Windows 11
Mobile: Galaxy Note 10 / Android 12
시작하기 전에
앱 취약점 진단 시 root 권한은 필수적이다. 진단용 단말기를 새로 들였으며, 그 과정을 정리한다.
루팅 시 Galaxy 단말기의 경우 단말기 무결성이 해제되며 knox, 삼성페이 등 일부 기능을 사용할 수 없다.
Magisk를 이용한 탈옥이며, 게시글의 Step을 재정리한 것이다.
작업하는 모든 폴더 및 파일명에 "한글"이 없도록 한다.
준비
0. 데이터 백업
공기계로 하는 것을 권장하며, 필요한 데이터가 있는 경우 백업 후에 진행한다.
1. Odin (최신 버전 다운로드, 작성일 기준 v3.14)
- 이미지를 플래싱하기 위한 도구
https://www.thecustomdroid.com/download-odin-flash-tool/
2. Samsung USB Driver (최신 버전 설치, 작성일 기준 v1.7.59)
- PC와 단말을 연결하기 위한 Driver 설치
- 설치하면 윈도우 탐색기에서 단말기 저장소에서 바로 접근할 수 있다.
https://www.thecustomdroid.com/download-samsung-usb-driver/
3. 기본 펌웨어 다운로드
https://samfrew.com/model/SM-N970F/
시작하기
1. Mobile Settings” > “About phone” > “Software information”
2. “Build number” 를 반복해서 터치하여 “Developer mode has been enabled!” 메시지 확인
3. “Settings” > “Developer options” (설정 > 개발자 옵션)
4. OEM unlocking(OEM 잠금 해제) 체크
Step 1. 다운로드 모드로 부팅
1. 기기를 종료한 후 "볼륨 상 + 전원 버튼" 으로 부팅한다.
2. Recovery Mode로 부팅이 되며 볼륨버튼을 이용하여 "Reboot to bootloader" 선택 후 재부팅
3. 재부팅 후 "설정" > "OEM 잠금 해제"가 회색으로 비활성화된 것을 확인 후 다시 종료
4. 부팅 시 "볼륨 상 + 전원버튼"으로 다운로드 모드로 부팅
5. "볼륨 상" 버튼을 눌러서 다운로드 모드로 진입
* 이 시점에 단말기가 초기화됨
(선택사항) 버튼으로 리커버리/다운로드 모드 접근이 어려울 경우
adb 명령어로 접근할 수 있다.
* recovery mode로 재부팅
Window # adb reboot recovery
* download mode로 재부팅
Window # adb reboot bootloader
Step 2. 펌웨어 패치
1. 준비하기 - 3. 펌웨어 다운로드에서 다운받은 펌웨어 파일을 준비한다.
2. Magisk 최신 설치 파일을 준비한다.
2. PC-단말기를 연결한 후 Magisk.apk와 'AP_'로 시작하는 파일을 단말기에 복사한다.
3. 단말기를 정상부팅한 다음, magisk.apk를 설치하고 실행한다.
4. 매지스크 앱에서 상단의 "설치" > "다음" > 설치방법 "파일 선택 및 패치" 선택한 다음 '단계2'에서 복사한 AP 파일을 선택한다.
5. 단말기에서 선택한 AP 파일의 경로에 magisk_patched~~.tar 파일이 생성된다. tar 파일을 PC로 복사한다.
루팅 진행 중 오류 발생 시 이 파일은 재부팅 시점마다 다시만들어 줘야한다.
6. Odin을 사용하여 플래싱한다.
BL: 다운받은 펌웨어에서 BL로 시작하는 파일 지정
AP: 이전 단계(5)에서 작업한 magisk_patched~~~.tar 파일 지정
CP: 다운받은 펌웨어에서 "CP"로 시작하는 파일 지정
CSC: "HOME_CSC"로 시작하는 파일 지정
USERDATA: 미지정
7. Odin의 options 탭에서 "Auto Reboot" 체크해제
8. "Start" 버튼으로 진행
Step 3. 공장초기화 & 재부팅
1. 작업이 완료되면 단말기와 PC 연결된 USB 분리
2. "볼륨 하 + 전원" 버튼으로 Download Mode 종료
3. 매우 중요! 화면이 꺼지면, "볼륨 하"에서 손을 떼고 "볼륨 상 + 전원" 버튼으로 리커버리 모드 진입
- 리커버리 모드 진입 실패 시 Step 2 - 5 단계부터 다시 진행하면됨
4. 리커버리 모드에서 "Wipe data/factory reset" 선택
5. "Reboot System now" 선택
6. Recovery 모드로 부팅하기 위해 "볼륨 상 + 전원" 버튼으로 부팅
부팅이 완료되면 루팅된 상태임
Step 4. 부팅모드 선택해서 부팅하기
Magisk가 /recovery 경로에 설치되어있기 때문에 리커버리 모드로 부팅했을 때에만 root 권한을 사용할 수 있다.
- 일반 환경으로 부팅(unrooted system) : 전원 종료 후 일반적인 부팅처럼 전원버튼으로 부팅하면 된다.
- Magisk 루팅 환경으로 부팅(rooted system) : 리커버리 모드로 부팅(볼륨 상 + 전원), 부트로드 경고 메시지가 나오면 버튼에서 손 떼기. 이렇게 해도 되고 일반부팅 후 "adb reboot recovery" 해도 된다.
- 기존 리커버리 모드로 부팅(Recovery Mode) : 볼륨 상 + 전원 버튼 눌러서 부팅한 후 부트로더 경고 메시지가 나오면 전원버튼만 떼고 볼륨 상은 유지
이제 AOS 12 진단기기가 생겼다.
'Security > Mobile' 카테고리의 다른 글
[안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part1 (0) | 2023.07.08 |
---|---|
[안드로이드 모의해킹] HTTP/S 패킷 스니핑, 변조하기 (2) | 2023.06.03 |
[안드로이드] UberSigner로 apk 서명하기 (0) | 2023.04.26 |
[안드로이드 모의해킹] apk파일 코드패치와 무결성 검사 (0) | 2023.04.19 |
[안드로이드 모의해킹] Activity 강제 실행 취약점 (0) | 2023.04.12 |