일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 악성스크립트
- 안드로이드
- 파일리스
- Python
- 7layer
- 네트워크
- 공급망공격
- anaconda
- 악성코드
- 더위쳐
- 오늘의게임
- IaaS
- 정적분석
- reactjs
- 메일헤더
- paas
- pyqt
- 블록체인
- 악성앱
- 드라이브바이다운로드
- CPPG
- 웹크롤링
- 준비과정
- 파이썬
- ios
- MacOD
- 메타데이터
- 스타듀밸리
- 프론트앤드
- objectiveC
- Today
- Total
취보특개
Android Rooting 본문
이 게시글은 아래 블로그의 글을 내가 보기 쉽게 정리하고 덪붙인 글이다.
post.naver.com/viewer/postView.nhn?volumeNo=12991630&memberNo=40975723
안드로이드 루팅, 정석대로 해보자
[BY 수빈킴] 안드로이드 사용자라면 누구나 루팅 생각을 한 번쯤은 해봤을 겁니다. 꽤 어렵게 보이기 때...
m.post.naver.com
루팅은,
안드로이드 최고관리자(Root) 권한을 가져오는 작업으로서, 보호된 시스템파일영역을 접근하여 수정할 수 있게 해준다.
하지만, 제조사, 통신사가 막아놓은 시스템 영역을 건드리다보니 시스템 파일 손상이 되어도 A/S 거절을 당할 수 있으며
구동되는 어플리케이션에 무슨짓을 할지모르는 얘로 규정되어 금융앱 등 이용불가능한 어플이 생긴다.
때문에 공기계에다가 시도하도록 하고,
상용 애플리케이션에 허락없이 패킷조작등의 전자적 침해행위를 행하는 것은 불법을 명심하자.
루팅관련 용어,
펌웨어 : OS를 기반으로 제조사가 정식으로 제작한 소프트웨어
커스텀롬(==커스텀 펌웨어) : 개인이 임의로 저작한 펌웨어
오딘 : 삼성 디바이스에서만 동작하는 펌웨어 업그레이더
슈퍼유저 : 루팅 후 필수적으로 설치되는 앱으로, 루팅 앱의 슈퍼유저 권한을 부여함
슈퍼SU : 루팅용 바이너리 코드의 대표주자
루트 익스플로라 : 파일 관리 앱으로, 시스템의 기본 애플리케이션을 삭제할 수 있다
루팅을 하게되면,
① 하드웨어 성능 조절
: CPU 기본동작 클럭을 올려서 원래 성능보다 높거나(오버클럭) 낮게함
② 기본 프로그램 삭제
: 제조사, 통신사가 시스템 파티션에 강제로 끼워놓아 유저들은 삭제할 수 없게한 앱을 상제할 수 있다.
: 안드로이드 4.0부터는 기본 앱을 비활성화 가능(그래도 걸리적 거리니 아예 지워버리면 좋다)
③ 각종 알림음이나 폰트 교체
: 시스템 파티션에 ttf 파일을 삽입하여 폰트교체.
: 카메라 셔텨음 파일을 지우거나 무음파일로 교체하여 무음카메라도 가능
④ 외장 메모리를 내장 메모리화
: 내장메모리 용량 확보
⑤ 각종 키 맵핑
: 전원 버튼을 다른 기능으로 바꾸는 등
⑥ 부팅 애니메이션 변경, 스티커 최대볼륨 강화, 마켓의 국가별 차단 프로그램 해제 등등..
클릭한번으로 루팅을 해주는 등 좋은 툴들이 많지만,
어떤 기기라도 동일한 방법으로 루팅할 수 있게 수동으로 하는법에 대해 알아보자.
수동으로 루팅을 진행하면, 새로운 버전의 커스텀 리커버리나 커스텀 롬을 자유롭게 적용가능하고
단계마다 직접 하나씩 확인하기 때문에 오류가 발생할 가능성이 줄어든다.
무엇보다 안드로이드에 대한 지식을 얻을 수 있다.
루팅과정
루팅은 크게 세 단계로 진행된다.
① 부트로더 언락
기기 내부 메모리에 기록이 가능하도록 닫혀있는 빗장을 여는 단계
② 커스텀 리커버리 설치
기존 안드로이드 리커버리(복구) 프로그램을 다른 개발자가 만든 것으로 교체함으로써,
커스텀 롬을 내부에 설치하거나 내장 메모리나 캐시 등을 삭제하는 등 행위 가능
③ 루팅(혹은 커스텀 롬 설치)
안드로이드 본체가 아닌 별도의 OS인 리커버리를 구동하여(교체된 커스텀 리커버리가 구동됨)
압축파일 형태로 내부저장소에 저장된 SU바이너리를 설치하여 루트권한 획득
커스텀 롬의 설치를 원할 경우 이 단계에서 진행 가능하며,
루팅이 이미 된 커스텀 롬을 설치해야 커스텀 롬과 루팅의 효능을 동시에 누릴 수 있다.
루팅준비
① platform-tools 및 ADB
② SuperSU(기기를타지않는다)
download.chainfire.eu/1220/SuperSU/SR5-SuperSU-v2.82-SR5-20171001224502.zip
③ 배터리 충전
작업 도중 전원이 나가 하드브릭(벽돌)이 되지 않도록 충분히 충전
④ 자료 백업
부트로드 언락에서 기기의 자료(앱, 사진, 음악 등) 모두 삭제되니 미리 백업
⑤ ADB드라이버준비
⑥ 커스텀 리커버리 준비
TWRP가 가장 유명하다. 기기에 맞는 버전의 TWRP를 구글에 검색하여 다운로드
1. 부트로더 언락
① 기기를 끄고 패스트부트(fastboot) 모드로 부팅
보통 '전원버튼'과 '볼륜 다운(또는 업)'을 길게 누르면 되며,
생소한 부팅화면과 함께 안드로이드 깡통 로봇이 누워있는 모습이 보인다.
② 기기를 USB로 컴퓨터에 연결
# 아래 명령어를 통해 연결이 잘되었는지 확인 가능(fastboot은 platform-tools 폴더에 있음)
# 기기의 시리얼 넘버가 나타난다면 정상 연결된 것
fastboot devices
③ 부트로더 언락
# 명령어 입력 시 기기의 모든 정보가 사라진다
fastboot oem unlock
# 기기 재부팅
fastboot reboot
④ USB 디버그 모드 활성화
재부팅 후 '설정 > 디바이스정보 > 빌드 넘버 7회 클릭 > 개발자옵션 > USB 디버깅 체크
2. 커스텀 리커버리 설치
① 다시 기기를 끄고 패스트부트(fastboot) 모드로 부팅
② TWRP 파일을 platform-tools 폴더에 복사
③ 커스텀 리커버리 설치
# 결과값: Size too large ... (엉뚱한 기기용의 커스텀 리커버리 파일)
fastboot flash recovery [twrp파일명]
④ 기기 재부팅
⑥ 리커버리 모드 진입
패스트부트 모드에서 recovery를 선택하는 등 기기마다 방식이 다르기 때문에 검색해보아야 함
3-1. 루팅(기본 롬에 루팅만 하기)
① superSU를 platform-tools 폴더에 복사
② 리커버리 모드 진입
③ superSU 파일을 기기로 복사
adb push [파일이름] [파일이 저장될 경로]
④ 리커버리 모드에서 Install 선택, SuperSU-(버전).zip 파일 선택
⑤ 설치 후 재부팅
3-2. 루팅(루팅이된 커스텀 롬 얹기)
이미 루팅이 된 커스텀 롬을 설치할 경우 SuperSU를 복사할 필요가 없다.
① 커스텀 롬 .zip 파일을 platform-tools 폴더에 복사
② adb push 입력
③ 리커버리 모드에서, Wipe > Factory Recet으로 스와이프
④ Install 선택, 커스텀롬.zip 파일 선택
※ 커스텀 롬의 경우 Google APP을 모아둔 GApps를 같이 Install 하면 편리하다.
⑤ 설치 후 재부팅
클릭 몇번으로 루팅을 하는 방법은,
CF-Auto-Root
autoroot.chainfire.eu
(a) 위 페이지에서 CTRL+F로 디바이스명을 찾아본다.
(b) 해당되는 파일을 다운로드받은 후 풀면 Odin.exe가 보인다.(삼성 루팅해주는 프로그램)
(c) 디바이스 종료 > 볼륨↓ + 홈 + 전원버튼을 동시에 누름 > 다운로드 모드 진입
※ 디바이스 전원은 혹시 모르니 30%이상 되도록 한다.
※ USB디버그 모드 활성화가 되어 있어야한다.
(d) 볼륨↑로 진행
(e) Odin.exe 실행 > AP클릭 > 압축 해제된 폴더에 바로 보이는 CF-AUTO-ROOT ... 클릭
※ 하단 좌측 로그에 Added!! 가 있어야 휴대폰이 제대로 연결된 것이다.
(f) 스타트 클릭
(g) 폰을 조작하지 않고 기다리다가, 재부팅 후 어플리케이션 중 SuperSU가 있으면 성공
'Boan > 모바일' 카테고리의 다른 글
iOS jailbreaking (0) | 2021.03.14 |
---|---|
iOS Homebrew Usage (0) | 2021.03.14 |
Frida Usage - 1 (Basic Concept) (0) | 2021.01.09 |
Android ADB Usage (0) | 2021.01.09 |
Android static analysis (0) | 2019.12.07 |