
CVE-2019-2215를 arm32로 포팅하고 su 바이너리를 /sbin에 마운트하는 앱으로, denylist + 루트 앱 설치 프로그램이 포함되어 있습니다. firehose/Magisk 가이드 포함.
Sonim XP3800용 루트 액세스. 두 가지 방법이 제공되며, 상황에 맞는 방법을 선택하세요.
Root Manager 앱은 CVE-2019-2215(binder use-after-free 커널 취약점)를 악용하여 기기에서 직접 루트 권한을 획득합니다. 컴퓨터, 부트로더 잠금 해제, 플래싱이 필요 없습니다. 익스플로잇 바이너리는 XP3800의 3.18.71 커널을 대상으로 처음부터 다시 작성된 ARM32 포트이며, 모든 커널 구조체 오프셋은 기기의 커널 바이너리를 리버스 엔지니어링하여 도출했습니다.
ADB를 통해 APK를 설치하고(XP3800은 기기 자체에서 APK 설치를 차단함) Install을 누르면 루트가 /system/bin/su에 영구적으로 기록됩니다. 부팅 서비스나 백그라운드 프로세스 없이도 재부팅 후에도 루트가 유지됩니다. 바이너리는 다른 시스템 명령어처럼 그냥 존재할 뿐입니다.
adb install RootManager.apk
부팅 후 su가 처음 호출되면 커널 익스플로잇(약 1.2초)을 실행하고 영구 루트 데몬을 생성합니다. 이후의 모든 su 호출은 데몬에 즉시 연결(약 0.13초)되며 익스플로잇이나 커널 조작이 필요 없습니다. 데몬은 setns()를 통해 PID 1의 마운트 네임스페이스로 진입하므로 /system을 포함한 전체 파일시스템에 접근할 수 있습니다.
익스플로잇은 동시 실행(커널 패닉 유발)을 방지하기 위해 flock()으로 직렬화되며, 실패 시 최대 3회 재시도합니다.
su가 /system/bin에 영구적으로 설치됩니다. tmpfs나 부트 리시버가 없으며, 재부팅과 공장 초기화 후에도 유지됩니다./system은 일반 ext4로, 읽기-쓰기로 자유롭게 다시 마운트할 수 있습니다. 변경 사항은 재부팅 후에도 유지됩니다.com.verizon.mdm.basicphone에서 기기 소유자(device-owner) 상태를 제거하고 비활성화합니다(또는 복원). Verizon MDM 제거 참조. 크레딧: @anonymousfliphonesoom_score_adj = -1000). 데몬 참조.su를 사용하지 못하도록 차단합니다. 사용자/시스템/전체로 필터링하고 이름 또는 패키지로 검색할 수 있습니다.su 바이너리에는 기본 제공 차단 목록이 있습니다. 기본적으로 차단 목록에 없는 앱은 누구나 su를 사용할 수 있습니다. 앱의 메인 화면에서 차단 목록을 관리할 수 있습니다 — 차단하려는 앱 옆의 확인란을 선택하면 됩니다.
Termux와 ADB 셸(uid 2000)은 차단 목록과 관계없이 항상 허용됩니다. com.example.* 같은 와일드카드 항목도 지원됩니다.
대안은 Qualcomm의 EDL 모드와 QFIL을 통해 패치된 부트 이미지를 플래싱하는 것입니다.
중요 사항:
dd를 사용하세요. 인터넷에서 부트 이미지를 다운로드하지 마세요 — 다른 변형이나 펌웨어 버전은 기기와 일치하지 않아 부팅에 실패할 수 있습니다.XP3800에는 dm-verity가 없습니다 — /system 파티션은 무결성 검사가 없는 일반 ext4 파일시스템입니다. 커널 cmdline에 androidboot.veritymode=enforcing 플래그가 설정되어 있지만 완전한 no-op입니다. dm-verity 디바이스 매퍼 장치, vbmeta 파티션, 해시 트리가 전혀 없습니다.
su -c "mount -o remount,rw /system"
# make your changes
su -c "mount -o remount,ro /system"
변경 사항은 재부팅 후에도 유지됩니다. 삭제할 항목에 주의하세요 — 잘못된 시스템 파일을 삭제하면 기기가 부팅 루프에 빠질 수 있습니다.
aapt2, ecj, d8, apksigner, zip 및 ~/.android/{android.jar,framework-res.apk,debug.keystore}가 포함된 Termux가 필요합니다.
./build.sh
출력: RootManager.apk
익스플로잇과 그 구현은 다음 문서에 자세히 설명되어 있습니다:
이 소프트웨어는 보증 없이 있는 그대로 제공됩니다. 저자는 벽돌이 되었거나 고장났거나 그 외 손상된 기기에 대해 어떠한 책임도 지지 않습니다. 사용에 따른 책임은 사용자 본인에게 있습니다.
| 명령어 | 설명 |
|---|
su | 대화형 루트 셸(호출자의 환경 유지) |
su -c 'cmd' | 루트로 명령 실행(시스템 셸과 PATH 사용) |
su cmd | -c와 동일 |
su -p -c 'cmd' | 호출자의 전체 환경을 유지하면서 명령 실행 |
su --preserve-environment -c 'cmd' | -p와 동일 |
su -s bash -c 'cmd' | 셸 지정 |
su --daemon | 루트 데몬을 수동으로 시작(루트 필요) |
su --mount-master | 호환성을 위해 허용됨(no-op — 데몬에 이미 전체 마운트 네임스페이스가 있음) |
su -v | 상세 익스플로잇 출력 |