Android

안드로이드 루팅 - CF-Auto-Root, twrp

우제혁 2023. 12. 28. 16:37

개요

먼저 안드로이드앱 분석을 위해 루팅을 해줘야하는데 그 이유는 앱에서 root 권한으로 사용하기 위함이다. 이를 통해 frida를 사용해서 내부 함수를 조작해볼수도 있고 앱으로 시스템 권한을 얻어서 조작할 가능성을 확인해야하기 때문에 취약점 분석에 있어 루팅된 기계를 사용하거나 가상머신(NOX)등을 사용하기도 한다.

 

루팅 방법

1. 앱을 통한 루팅

2. 컴퓨터 소프트웨어(ordin, twrp)을 이용하는 방법

 

경험상 앱을 통한 루팅을 samsung S9 기준으로 잘 이뤄지지않았다 따라서 확실한 방법인 컴퓨터로 루팅하는 방법을 추천한다.

 

CF-Auto-Root

 

* 참고 사이트

https://su0-0su.tistory.com/102

 

 

1. 모델번호 확인 [환경설정]-[휴대전화 정보] 에서 모델 번호를 알아 놓는다.

S9 기준으로는 SMG930K 이다.

 

2. 환경설정에서 빌드 번호를 검색해서 7~8번정도 계속눌러주면 개발자 모드가 켜지며 옵션에 개발자 옵션이 생성된다.

 

3. 개발자 모드에 들어가 OEM 잠금해제와 USB 디버깅을 킨다.

 

 

루팅을 하기위해서는 개발자 모드로 들어가서 oem 버튼을 활성화 시켜야 하는데 oem 버튼이 없는 경우가 있다.

=> 와이파이를 연결하고 날짜를 최신으로 설정해주는것으로 옵션이 생기는것을 확인 할 수 있다. 
     이것은 스마트폰을 초기화해야한다.

*참고 사이트 : https://www.xda-developers.com/fix-missing-oem-unlock-samsung-galaxy-s9-samsung-galaxy-s8-samsung-galaxy-note-8/

 

 

4. 전원을 끈다음 전원을 키자마자 볼륨 하키 + 전원 키 + 홈버튼 를 동시에 눌러준다.

5. 눌러주게 되면 리커버리 모드에 진입하게 되며 볼룸 상키를 누르고 다운로드중입니다 상태의 화면을 유지한다.

 

 

6. 준비가 완료되면 아래 링크를 통해 알아놓은 모델 번호를 검색하여 CF-Auto-Root........tar.md5 파일과 ordin3 프로그램을 다운받아준다.

https://autoroot.chainfire.eu/

 

CF-Auto-Root

 

autoroot.chainfire.eu

 

 

7. 이후 ordin 프로그램을 실행한뒤 휴대폰을 노트북과 usb로 연결하게 되면  Added!라는 문구가 나온다.

 

8.AP를 선택하여 다음과 같이 아까 다운받은  CF-Auto-Root........tar.md5  파일을 선택해준다.

 

9. start를 눌러 루팅을 진행하고 다음과 같이 진행한다. 이때 폰은 초기화 해야할수 있으니 백업을 해둬야한다면 미리 진행한다.

 

 

10. SuperSU 앱이 설치되어 있다면 성공한것이며 정확히는 USB 연결후 ADB로 접근하여 SU를 입력했을때 오류없이 root 모드로 진입된다면 성공한 것이다.

 

 

twrp

 

- CF-Auto-Root 는 Android 7 까지만 지원이 된다고 하며 원하는 펌웨어가 존제하지 않을 수 있다. 이때는 twrp 루팅을 진행한다.

 

* 참고 사이트

https://m.blog.naver.com/okydoky0/222741847428

 

사전 준비

  1. ordin 실행 파일을 다운 받는다.
  2. 일단 twrp파일을 다운받는다.
  3. magisk를 다운 받는다.
  4. Disable_Dm-Verity_ForceEncrypt_03.04.2020.zip 을 다운 받는다.

 

진행

1. 스마트폰을 usb로 연결한다음 디버그 모드와 oem 모드로 설정한다.

 

2. 이어서 볼륨- / 빅스비 / 전원 을 눌러 다운로드 모드에 진입하고 + 버튼을 누른다.

 

3. ordin 실행 파일을 통해 ap에 twrp 파일을 넣은뒤 start해주는데 주의 할점이 있다.

start 되면서 바로 핸드폰이 재부팅 되는데 이때 바로 볼륨+ / 빅스비 / 전원 버튼 3개를 동시에 눌러서 TWRP에 진입해야한다.

 

* 이것을 좀더 편하게? 하는 방법은 이렇게 ordin 옵션 체크들을 해지하고

 start 버튼을 누른뒤 볼륨- / 전원 버튼을 누르면 재부팅 되는데 이때 볼륨+ / 빅스비 / 전원 버튼 3개를 누르는 방법도 있다.

 

 

4. 이어서 twrp 모드에 진입했으면 swipe로 첫 화면을 넘기고

 

5, wipe → format data → yes 입력 → swipe 해준다.

6. 이후 홈버튼으로 화면을 빠져나온다.

 

 * 이때 실수로홈버튼이 아닌 reboot을 누르면 다시 처음부터 해야하니 조심하자

 

7. 이어서 준비된 Disable_Dm-Verity_ForceEncrypt_03.04.2020 파일과 Magisk-v20.1 파일을 옮겨준다.

7. 이후 홈 화면에서 install을 누르면 sd 화면으로 가는데 여기서 Disable_Dm-Verity_ForceEncrypt_03.04.2020 을 설치해주자

 

8. 이어서 같은 방법으로 Magisk-v20.1 도 설치 하자

9. 이후 여기서는 reboot system을 눌러주자.

 

그럼 다시 초기화된 상태가 되며 초기 설정을 해줘야 한다. 이때 부팅 과정에서 로고로딩이 엄청 기니까 참을성을 가지고 기다리자 잘못된게 아니다.

 

이어서 화면에 Magisk가 깔려있다면 루팅 성공 확실한건 ADB SHELL을 한뒤 SU가 되면 루팅된거다.

 

 

삽질

INSTALL 과정에서 내부 파일들이 다 0MB로 나와있다면 아래 영상으로 해결할 수 있다.

추가로 설치도중 /data가 마운트 안된다는 오류도 이 유트브를 보고 해결했다.

https://www.google.com/search?q=twrp+failed+to+mount&oq=twrp+faild+to+&aqs=chrome.1.69i57j0i13i512l8j0i13i30.9365j0j7&sourceid=chrome&ie=UTF-8#fpstate=ive&vld=cid:6317cde0,vid:T-7neHzSIvc