# LeEco Le 2 (X520) — 유튜브 전용기 개조 가이드 (Android 9)
> 작성일: 2026-10-25 · 실제 성공 세션 기반 (Windows PC + adb 사용)
> 난이도: 중 · 소요시간: 다운로드 제외 약 1~2시간 · 데이터: **전부 소멸됨(백업 필수)**
---
## 개요
- 목표: 스톡 안드로이드 6.0(플레이스토어 설치 불가)인 Le 2를 **안드로이드 9 + 구글 서비스 + 유튜브**가 되는 전용기로 만들기
- 핵심 방법: 폰에 루트 개방(개발자 빌드)이 가능하면 **fastboot 없이 dd 명령으로 TWRP를 설치**하고, 이후 TWRP를 adb로 원격 조작해 롬을 설치
- 롬 선택 근거: Le 2 커뮤니티 검증 결과 **Android 9 롬은 블루투스·카메라 정상, Android 10/11 롬은 둘 중 하나씩 고장** 공개 보고. 같은 안드로이드 버전을 위한 불안정한 비공식 빌드 설치보다 검증된 Android 9 (Havoc-OS 2.8)가 일반 사용에 최선
> ⚠️ 모델 확인 필수: 폰 뒷면 라벨의 모델명이 **X520 / X522 / X526**이면 이 가이드 그대로 (s2 계열). **X626(Le S3)은 다른 빌드라 이 가이드를 그대로 쓰면 안 됨.**
---
## 0. 준비물 체크리스트
PC 쪽:
- [ ] platform-tools (adb/fastboot) → `C:\platform-tools`
- [ ] TWRP 이미지: https://dl.twrp.me/s2/ → `twrp-3.7.0_9-0-s2.img` (약 27.5MB)
- MD5: `f486120bec70e7d460e038868e9a4f37`
- ⚠️ 파일 URL을 직접 입력하면 HTML이 다운로드됨 → **페이지에서 파일명을 클릭**해서 받을 것
- [ ] 롬 (브라우저로 다운로드): https://sourceforge.net/projects/havoc-os/files/s2/ → `Havoc-OS-v2.8-20190808-s2-Official.zip` (약 544MB)
- ⚠️ SourceForge는 자동다운로드(curl 등)가 Cloudflare에 막힘 → **반드시 브라우저**
- [ ] 갭스: https://opengapps.org/ → Platform **arm64** / Android **9.0** / Variant **pico** → 다운로드 (약 191MB)
- [ ] NewPipe APK (선택): https://github.com/TeamNewPipe/NewPipe/releases (요구 안드로이드 6.0 이상)
폰 쪽:
- [ ] 배터리 50% 이상 충전
- [ ] 개발자옵션 활성화: 설정 → 휴대전화 정보 → 빌드번호 7회 탭
- [ ] **USB 디버깅 ON**
- [ ] **루트 액세스 = "ADB만"** (개발자옵션에 항목이 있는 빌드만 — 없으면 문서 후반의 "순정 EUI 폰인 경우" 참조)
- [ ] 데이터 케이블
---
## 1단계 — 연결 및 상태 진단
```powershell
& "C:\platform-tools\adb.exe" devices -l
# 목록에 폰 시리얼이 "device" 상태로 나와야 함. "unauthorized"면 폰 화면의 허용 팝업 확인.
```
기기 정보 확인 (모델·안드로이드 버전·빌드 종류):
```powershell
$adb = "C:\platform-tools\adb.exe"
& $adb shell getprop ro.product.model # X520 / X526 확인
& $adb shell getprop ro.build.version.release # 현재 안드로이드 버전
& $adb shell getprop ro.build.display.id # 빌드명
& $adb shell getprop ro.debuggable # 1이면 개발자(userdebug) 빌드
```
**분기 판단**: `display.id`에 `userdebug`와 `test-keys`가 보이면 → 이 폰은 이전에 커스텀/개발자 펌웨어를 올려둔 폰. **루트 경로(A)가 열려 있다는 뜻** — 이 가이드 그대로 진행.
`user` + `release-keys`(순정 EUI)면 → 후반부 "순정 EUI 폰인 경우" 참조.
배터리 확인 (커스텀 빌드는 `dumpsys battery`가 빈 경우가 있음 → sysfs로 직접):
```powershell
& $adb shell "cat /sys/class/power_supply/battery/capacity" # 예: 58
& $adb shell "cat /sys/class/power_supply/battery/status" # Charging
```
---
## 2단계 — 백업 (절대 생략 금지)
플래싱하면 내부 저장소가 전부 지워집니다. 사진·문서·다운로드를 PC로 옮깁니다.
```powershell
# 폴더별 용량 확인
& $adb shell "du -sh /sdcard/DCIM /sdcard/Pictures /sdcard/Movies /sdcard/Download /sdcard/Documents /sdcard/Recordings 2>/dev/null"
New-Item -ItemType Directory -Path "C:\backup_le2" -Force | Out-Null
& $adb pull /sdcard/DCIM C:\backup_le2\DCIM
& $adb pull /sdcard/Pictures C:\backup_le2\Pictures
& $adb pull /sdcard/Movies C:\backup_le2\Movies
& $adb pull /sdcard/Download C:\backup_le2\Download
```
- 앱 데이터(카톡 대화, 게임 세이브 등)는 이 방식으로는 안 옮겨짐 → 필요하면 각 앱의 클라우드 백업 기능을 미리 실행
- 백업 후 파일 수 확인: `Get-ChildItem C:\backup_le2 -Recurse -File | Measure-Object`
---
## 3단계 — 루트 개방 (userdebug 빌드인 경우)
```powershell
& $adb root # "restarting adbd as root" 나오면 성공
& $adb shell id # uid=0(root) 확인
```
- `root access is disabled by system setting` 오류가 나면: 폰 **설정 → 개발자옵션 → 루트 액세스 → "ADB만"** 설정 후 재시도
루트로 파티션 확인:
```powershell
& $adb shell "ls /dev/block/bootdevice/by-name/"
# recovery = /dev/block/bootdevice/by-name/recovery 인지 확인
```
---
## 4단계 — 순정 리커버리 백업 → TWRP 설치 (dd 방식)
**4-1. 순정 리커버리 백업** (되돌리기용 보험):
```powershell
& $adb shell "dd if=/dev/block/bootdevice/by-name/recovery of=/sdcard/recovery_backup.img"
& $adb pull /sdcard/recovery_backup.img C:\backup_le2\le2_recovery_backup.img
```
**4-2. TWRP 이미지 검증 → 폰에 전송 → 플래시:**
```powershell
# PC에서 MD5 확인 (서버 제공값과 일치해야 함)
Get-FileHash C:\leeco-work\twrp-s2.img -Algorithm MD5
# 폰으로 전송
& $adb push C:\leeco-work\twrp-s2.img /sdcard/twrp-s2.img
# 리커버리 파티션에 직접 기록 (bs는 1048576처럼 숫자로 — '4M' 표기는 안 먹음)
& $adb shell "dd if=/sdcard/twrp-s2.img of=/dev/block/bootdevice/by-name/recovery bs=1048576"
```
**4-3. 기록 검증** (되읽어서 해시 대조):
```powershell
# PC: 로컬 이미지 앞 1MB 해시
$fs=[IO.File]::OpenRead("C:\leeco-work\twrp-s2.img"); $b=New-Object byte[] 1048576
[void]$fs.Read($b,0,1048576); $fs.Close()
[BitConverter]::ToString([Security.Cryptography.MD5]::Create().ComputeHash($b)) -replace '-',''
# 폰: 파티션 앞 1MB 해시 — 두 값이 같으면 성공
& $adb shell "dd if=/dev/block/bootdevice/by-name/recovery bs=1048576 count=1 2>/dev/null | md5sum"
```
**4-4. TWRP로 재부팅:**
```powershell
& $adb reboot recovery
# 폰 화면에 TWRP(파란 계열) 화면이 뜨고, PC에서는 'recovery' 모드로 인식됨
& $adb shell getprop ro.twrp.version # 3.7.0_9-0 이면 정상
```
> ✅ **여기까지가 핵심 우회점.** 부트로더 언락·fastboot 드라이버 없이 TWRP 설치가 끝났습니다. fastboot 경로는 순정 EUI 폰이 아니면 필요 없습니다.
---
## 5단계 — TWRP 원격 조작 (adb 명령만으로 설치)
TWRP는 터치로 조작할 수도 있지만, PC에서 명령으로 전부 처리하는 게 안전합니다.
**5-1. 데이터 영역 초기화** (암호화 해제 포함):
```powershell
$adb = "C:\platform-tools\adb.exe"
& $adb shell "twrp format data" # 1~2분. "Format Data Complete" 확인
& $adb shell "twrp wipe cache"
& $adb shell "twrp wipe dalvik"
```
**5-2. 롬·갭스 전송:**
```powershell
& $adb push C:\leeco-work\Havoc-OS-v2.8-20190808-s2-Official.zip /sdcard/rom.zip
& $adb push C:\leeco-work\open_gapps-arm64-9.0-pico-*.zip /sdcard/gapps.zip
# TWRP 모드에서는 20MB/s 이상으로 빠름 (735MB 기준 약 30초~1분)
```
**5-3. 설치 (롬 먼저, 갭스 나중):**
```powershell
& $adb shell "twrp install /sdcard/rom.zip"
# 끝까지 진행 후 "script succeeded: result was [1.000000]" 확인 (5~10분)
& $adb shell "twrp install /sdcard/gapps.zip"
# "Success." 확인 (3~5분)
```
**5-4. 재부팅:**
```powershell
& $adb shell "twrp wipe cache"
& $adb reboot
```
**첫 부팅은 5~10분 걸립니다** (새 시스템 초기화). 부팅 애니메이션이 돌아가면 정상 — 기다리면 됩니다.
---
## 6단계 — 첫 설정 및 유튜브 준비
1. 화면 마법사 따라 진행: Wi-Fi 연결 → 구글 계정 (건너뛰기 가능) → 나머지 기본값
2. 설정 → 휴대전화 정보 → 빌드번호 7회 탭 → 개발자옵션 → **USB 디버깅 ON** (새 롬이라 다시 켜야 함)
3. PC에서 연결 확인:
```powershell
& "C:\platform-tools\adb.exe" devices
& $adb shell getprop ro.build.version.release # 9 확인
& $adb shell pm list packages | findstr vending # 플레이스토어(com.android.vending) 있어야 함
```
4. 유튜브 설치 — 둘 중 선택:
- **플레이스토어**에서 공식 유튜브 앱 설치 (계정 로그인 필요)
- **NewPipe** 사이드로드: `adb install -r C:\leeco-work\newpipe.apk` — 계정 없이 가볍게 시청
5. 참고: 로그인 시 "기기가 인증되지 않았습니다" 경고는 커스텀 롬의 흔한 현상 — 유튜브·플레이스토어는 대부분 정상 작동
---
## 순정 EUI 폰인 경우 (userdebug가 아닌 폰)
`user` + `release-keys` 빌드는 adb root가 안 열립니다. 이 경우에만 fastboot 경로가 필요:
1. 설정 → 개발자옵션 → **OEM 잠금 해제** 켜기
2. `adb reboot bootloader` → `fastboot oem unlock` → 폰 화면에서 확인 (데이터 전부 소멸)
3. `fastboot flash recovery twrp-s2.img` → 볼륨+ 를 누른 채 `fastboot reboot` 해서 TWRP 직행
4. 이후는 본문 5단계와 동일
⚠️ fastboot 드라이버 문제가 잦습니다 (폰이 PC에서 안 보임):
- Windows 11 24H2 이상은 서명 없는 수동 INF 설치를 차단 → **Zadig** (https://zadig.akeo.ie) 로 WinUSB 드라이버 설치가 표준 해법
- 그래도 인식 안 되면 USB 포트(USB 2.0 포트)를 바꿔보고, 안 되면 fastboot을 우회하는 방법(루트 있는 다른 빌드의 dd 방식)을 고려
- 잠금·계정 문제는 LeEco에는 없음 (샤오미의 Mi 계정 잠금 같은 게 없음)
---
## 문제 해결 노트 (실제로 겪은 것들)
| 증상 | 원인/해법 |
|---|---|
| `dumpsys battery`가 비어 있음 | 커스텀 빌드에 배터리 서비스 미등록 → `/sys/class/power_supply/battery/capacity`로 직접 읽기 |
| dl.twrp.me에서 파일이 HTML로 다운로드됨 | 직접 URL 입력의 함정 → 페이지에서 파일명 클릭, 또는 Referer 헤더 지정 |
| SourceForge 자동다운로드 403 | Cloudflare 차단 → 브라우저로 수동 다운로드 |
| adb에서 "unauthorized" | 폰 화면의 USB 디버깅 허용 팝업을 확인 |
| dd의 `bs=4M` 실패 | 이 폰의 toybox는 M 접미사 미지원 → `bs=1048576` |
| Le 2용 최신 롬 찾기 | 공식 LineageOS 16.0~17.1 빌드는 서버에서 삭제됨. 18.1 비공식 빌드도 구글드라이브에서 삭제됨. **남은 최선 = Android 9 (Havoc-OS 2.8, SourceForge 살아있음)** |
| "ro.boot.verifiedbootstate=green인데 커스텀 빌드?" | Android 6 세대는 verified boot가 느슨함 — userdebug 빌드가 그대로 부팅되는 정상 케이스 |
| 부팅 중 "빨간 느낌표" 없이 그냥 오래 걸림 | 첫 부팅 5~10분은 정상. 20분 이상 진행 애니메이션 없이 검은 화면이면 부팅 실패 → TWRP로 재진입해 롬 재설치 |
---
## 되돌리기 (순정 복귀)
1. 순정 리커버리 백업을 폰에 push 후 dd로 원복:
`adb push le2_recovery_backup.img /sdcard/` → `dd if=/sdcard/le2_recovery_backup.img of=/dev/block/bootdevice/by-name/recovery bs=1048576`
2. 시스템까지 순정 복귀가 필요하면 Le 2 공식 펌웨어(EUI)를 EDL(9008) 모드로 플래시 — XDA "Le 2 unbrick QDLoader 9008" 가이드 참조
---
## 완료 후 이 폰의 역할 제안
- 유튜브 전용기 (NewPipe) — 와이파이 정상
- 소형 서버 후보 (Termux) — 단 RAM 3GB·저장소 32GB로 가벼운 역할만 (광고차단 DNS, 파일 동기화 백업고 등)
- 24시간 상시 전원은 배터리 부풂 유발 — 서버용은 충전 제한 기능(루트 필요) 또는 주기적 꺼주기 권장
---
## 참고 링크
- TWRP (s2): https://dl.twrp.me/s2/
- Havoc-OS (s2): https://sourceforge.net/projects/havoc-os/files/s2/
- OpenGapps: https://opengapps.org/ (arm64 / 9.0 / pico)
- NewPipe: https://github.com/TeamNewPipe/NewPipe/releases
- EDL 복구 참고: XDA — "LeEco Le 2 / X52X unbrick QDLoader 9008"