Magisk

루팅 방법이 자주 바뀌고, 루팅을 탐지하는 방법도 자주 바뀌므로 지속적인 업데이트 필요.

1 개요[ | ]

Magisk
매기스크, 마기스크
Magisk 시스템리스 루팅


  • Magic + Mask의 합성어[1]
  • /system을 건드리지 않은 상태에서 루팅할 수 있는 시스템리스 루팅 프레임워크
  • system 파티션을 건드리지 않고 권한을 얻는 시스템리스 방식이므로 루팅 탐지를 피할 수 있음

2 Magisk 설치법[ | ]

  • Magisk 공식 사이트에서 APK 파일을 받아 설치한다.
  • Magisk Manager 하단의 설치(Download & Install) 버튼을 클릭한다.
  • ZIP이 받아지면, 리커버리 플래싱 프로그램 (삼성의 경우 오딘)을 연결하여 자신의 기기 버전에 맞는 TWRP 리커버리를 플래싱한다.
  • TWRP 진입 후, 먼저 백업을 실행한다. (실패 시 빠른 복원을 위해)
  • 백업 완료 후, 다운받은 Magisk ZIP을 플래싱한다.
  • 플래싱 완료 후 재부팅한다.
  • Magisk Manager에 들어가 성공 여부를 확인한다.
  • 성공하였다면, 성공한 채로 또 TWRP에서 백업을 하는 것을 권장한다.
  • 탐지당하는 것을 막기 위해 Magisk의 패키지 이름을 랜덤하게 바꾸는 옵션(Hide Magisk Manager)을 실행한다.
  • Magisk Hide에서 Show system apps에 체크 후, com.android.vending, com.google.android.gms.* 그리고, 루팅 우회를 원하는 프로그램을 모두 체크.
  • Magisk 매니저의 모듈 다운로드 메뉴에서, SafetyNet을 검색하여 항목이 뜨면 SafetyNet 우회 모듈임. 이것을 설치하면 SafetyNet 우회 성공 확률이 높아짐.
  • (Magisk 매니저에서 모듈 바로 설치가 되지 않는다면, 리커버리에서 설치.)
  • 성공하였다면, 빠른 복원을 위해 리커버리에서 또 백업한다. (용량이 부족할 경우 이전 백업본을 삭제 또는 PC로 이동 후 백업. 스마트폰 스토리지의 TWRP 디렉토리.)
  • 이 방법이 통하지 않는다면, Magisk Core Only Mode 사용 시, 모듈은 모두 비활성화되지만, SafetyNet 우회 성공률이 더 높아짐.
  • 이 방법으로도 SafetyNet 우회가 불가능하거나, SafetyNet을 완벽히 우회한 시스템리스까지 잡아낸다면, 지금은 답이 없다. xda-developers에서 완벽한 우회 수단이 나올 때까지 루팅폰이랑 금융/게임용 노루팅 세컨폰을 들고 다니는 수 밖에 없다.

3 Magisk 문제 해결[ | ]

  • Magisk가 가끔씩 풀려 버림. 설치 인식을 하지 않음.
    • 현재 정식버젼은 20.4이며 베타버젼은 21.1이다. 21.0은 앱이 깨지므로 베타버젼 사용은 권장하지 않는다. (앱은 정상적으로 작동은되지만 버그가 좀 많다.)
    • 시스템 재시작으로 문제 해결.
    • 재시작으로 해결되지 않을 시, Magisk 재설치.
  • 설치 후 벽돌 현상
    • 잘 동작한 백업본을 선택하여 리커버리 백업 복원.
    • (삼성 기기일 경우) 리커버리 백업이 없을 시 오딘으로 순정 롬 덮어씌우기.
  • 리커버리에서는 모듈 설치가 잘 됨. 그러나 Magisk Manager에서 모듈 설치가 되지 않음. (/data/adb/magisk_merge.img mount failed.)
    • F2FS Loopback Bug Workaround 검색 및 다운로드
    • 리커버리에서 설치
    • 설치에 성공하였다면 Magisk Manager에서 원하는 모듈을 받아 설치가 되는 지 테스트.
    • F2FS를 지원하지 않는 기기는 설치 불가. 실험한 갤럭시 노트 4의 경우 F2FS를 지원하지 않음.
  • ViPER4Android 작동하지 않는 증상
    • 키를 잘못 입력했거나 버전이 기기와 호환되지 않는 경우
    • 리커버리에서 설치 시 키 테스트, 프로그램 버전, 드라이버 버전 질문이 나온다.
    • 프로그램 버전과 드라이버 버전을 변경해 가며 재설치 시도
    • 실험한 갤럭시 노트 4 SM-N916S의 경우, 모두 신버전으로 설치하여 성공.
    • 이어폰을 장착하고 음악을 들어가며 바이퍼 설정을 변경하여 테스트한다. 음향이 조금씩 바뀌는 것이 감지되면 성공.
  • Magisk Hide 메뉴에서 강제 종료됨.
    • 다음은 로그캣에서의 에러 로그 중 일부.
// com.uCs1.WGAR.gcUZPm 는 Hide Magisk Manager를 실행했을 때 랜덤하게 생성되는 패키지 이름.
10-06 18:21:18.224 30528-30831/? E/AndroidRuntime: FATAL EXCEPTION: RxCachedThreadScheduler-8
    Process: com.uCs1.WGAR.gcUZPm, PID: 30528
    a.y71: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.lang.OutOfMemoryError: Failed to allocate a 67108876 byte allocation with 16777216 free bytes and 26MB until OOM
    • java.lang.OutOfMemoryError(메모리 부족 문제)로 보아, 설치되어 있는 앱이 너무 많다는 것을 알 수 있음. 필요없는 앱을 삭제후 재시도. 앱 삭제 후에도 실패한다면... 답이 없다. 앱이 갈수록 고사양화가 되니, 폰을 최신형으로 바꾸자.
  • Magisk Hide가 풀려 버림, Magisk Hide 목록에서 앱 체크 후 새로고침 시 풀려 버림(아예 되지 않음), 또는 Magisk Core Only Mode가 항상 체크됨. 모듈삭제 후 재부팅해도 모듈삭제 안됨.

Magisk 로그 전부.

--------- beginning of system
--------- beginning of main
01-01 01:00:16.700   237   237 I Magisk  : Magisk v20.0(20000) daemon started
01-01 01:00:16.700   237   237 I Magisk  : * Device API level: 23
01-01 01:00:16.780   237   238 I Magisk  : ** post-fs-data mode running
01-01 01:00:16.780   237   238 I Magisk  : * Initializing Magisk environment
01-01 01:00:16.780   237   238 I Magisk  : * Mounting mirrors
01-01 01:00:16.780   237   238 I Magisk  : mount: /sbin/.magisk/mirror/system
01-01 01:00:16.780   237   238 I Magisk  : mount: /sbin/.magisk/mirror/data
01-01 01:00:16.780   237   238 I Magisk  : link: /sbin/.magisk/mirror/vendor
01-01 01:00:16.780   237   238 I Magisk  : * Setting up internal busybox
01-01 01:00:16.820   237   238 I Magisk  : * Running post-fs-data.d scripts
03-09 21:43:55.988   237   503 I Magisk  : ** late_start service mode running
03-09 21:43:55.988   237   503 I Magisk  : * Running service.d scripts
03-09 21:56:26.107   237  4453 I Magisk  : ** boot_complete triggered
03-09 21:56:26.177  4467  4467 I Magisk  : apk_install: /data/magisk.apk 
03-09 21:57:20.412  7730  7730 I Magisk  : apk_install: 	pkg: /data/magisk.apk
03-09 21:57:20.412  7730  7730 I Magisk  : Success
    • 18.x 이하 구버전 설치로 해결되지만, 올바른 해결책은 되지 못한다. 구버전은 탐지가 다 되어 버리고 최신 모듈 지원이 되지 않기 때문. 다른 방법 추가바람.

4 루팅 탐지 우회가 성공하였는가?[ | ]

  • Magisk Manager에서 확인 가능
  • SafetyNet Test에서 확인가능. Magisk Hide에 추가할 것. 모두 success가 나와야 우회 성공.
  • RootBeer Fresh 앱을 설치하여 Magisk Hide로 해당 앱 선택 후, 루팅 탐지 확인을 할 것.

5 루팅 탐지 우회 성공[ | ]

  • 우리은행 원터치알림
  • 신한은행 S알리미 (javax.*** 오류 발생은 일시적인 것임. 다시 실행하여 해결.)

5.1 SafetyNet 우회에 성공하나 불안정[ | ]

  • Pokémon GO
    • 로그인이 되지 않는 오류
      • 오류 메시지 : This device, OS, or software is not compatible with Pokémon GO.
      • 또는 Failed to Log in.
      • 로그인이 되지 않는 문제. 루팅 탐지 시 발생하는 오류.
      • 애플리케이션 설정에서 포켓몬 고의 데이터를 지운다. (데이터는 전부 서버에 저장되니 걱정하지 않아도 된다.)
      • 로그인 - 실패 시 데이터 삭제 - 로그인을 반복.
      • Do not enter dangerous areas~ 또는 Do not trespass~ 등의 메시지가 나오면 성공.
      • 성공하여도 그 다음날 다시 켜보면 실패하는 경우가 있음. 위의 과정을 반복.
  • ISP 페이북
    • Magisk Hide만 해도 정상작동
  • 신한 쏠(sol)
    • Magisk Hide만 해도 정상작동
  • PASS
    • Magisk Hide만 해도 정상작동 단 EdXposed 활성화 또는 Magisk Hide Props Config 에서 해외 제조사 (Huawei,Sony) 값으로 변경한 경우 작동안됨 단말기값은 상관없다. (SM-N975F 갤럭시 노트10+ 유럽 단말기)
  • Galaxy Store
    • Magisk Hide Props Config 에서 해외 제조사로 변경한 경우 강제종료 (Huawei,Sony) (SM-N975F 갤럭시 노트10+ 유럽 단말기) 단말기값은 상관없다.

6 루팅 탐지 우회 실패[ | ]

Magisk 최신 버전 기준으로 등록한다.

  • RootBeer Fresh 앱을 설치하여 Magisk Hide로 해당 앱 선택 후, 루팅 탐지 확인을 할 것.
  • RootBeer Fresh
    • BUSYBOX BINARY 실패

BUSY BOX 설치위치를 /SBIN로 설치시 해결 매번 재부팅마다 인스톨 다시해줘야함 프로버젼은 자동으로가능 또는 magisk에 있는 busy box를 설치해도 된다. (플레이스토어에서 다운 안하면된다는뜻)

    • MAGISK UDS AND STAT 실패

RMM_Bypass_v3_corsicanu 및 no-verity-opt-encrypt-6.1를 사용하면 감지안됨

    • Build.props 실패

RootBeer Fresh는 DANGEROUS PROPS 라고 명칭한다. https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/releases 공식 홈페이지 Magisk 에서만 사용가능하고 앞에는 MagiskHidePropsConfig 버젼이고 뒤는 Magisk 버젼을 이야기한다. ~2.4.0 v15~v16.7 2.4.1~3.5.2 v17~v18.1 4.0.0~4.0.3 v19+ 5.0.0~ v19.4+ Magisk 다운로드 기능에서 다운을 받고 재부팅하면 Magisk 모듈에 들어가면 추가되어있다. SafetyNet 우회에 도움을 줄수있을뿐 우회를 해주는 툴이아니라고 경고되어있다. 만약 SafetyNet 우회가 안되었다면 한번시도해보는것도 좋다. 설정에서 Magisk 패키지명을 바꾸면 해결되는 경우도있다. BusyBox가 인식이안되는경우나 직접 경로 설정을 하기 어렵다면 Busybox @osm0sis https://github.com/yashdsaraf/bb-bot/releases 에서 받으면된다.

  • AIA Vitality
  • Fate/Grand Order
    • 루팅 탐지로 안드로이드의 보안 취약점을 무단 사용
  • Xposed Systemless
    • 삼성 전용 Xposed 받기
    • Magisk 모듈 목록에 있는 Xposed는 Systemless지만, 삼성 터치위즈 지원을 하지 않음. 삼성 터치위즈 롬에서는 설치 시 무한부팅 벽돌 현상이 발생함.
    • Systemless Xposed를 설치하여도 SafetyNet을 우회할 수 없다고 말함.(Systemless Xposed does not pass SafetyNet!!!)
    • Magisk용 Xposed 모듈을 설치한 경우, Magisk 모듈 메뉴에서 Xposed를 해제한 후 재부팅하면 SafetyNet이 우회된다.

Xposed fails safetynet.png

불가능하다.

글을 읽고 포럼을 검색해 봐도, 이렇게 말하고 있다.

Xposed=SafetyNet 우회 실패.

그러하다.

It only passes ctsprofile.png

이 모듈(Xposed)은 "기기 체크"이다. CTSProfile는 우회되지만, BasicIntegrity는 우회에 실패한다.

Virtual Xposed가 새로 나왔다. 안에서 가상 머신을 실행하여, 루팅 우회 성공률이 100%다.

7 Magisk 시스템리스 루팅 추천앱 또는 모듈[ | ]

Greenify + ForceDoze
  • 강제로 Doze 모드를 활성화하여 배터리 절약 효율이 극대화된다.
  • Greenify에서는 앱 종료 시 루팅 상태에서는 바로 전부 종료가 가능하다. (비루팅 상태에서는 전부 꺼짐 버튼이 눌릴 때까지 기다려야 한다. 비루팅에서 이 옵션을 켤 시 배터리 역효과가 날 수 있다.)
  • Greenify 유료 버전 + Xposed를 적용할 경우, GCM(FCM) 푸시 허용, 시스템 앱 추가, WakeUp 타이머 병합 등의 강력한 기능을 사용할 수 있다.
  • 네이티브로 Doze를 지원하는 안드로이드 6.0 MarshMallow 이상에서 가장 효과가 있다.
  • DCMProvider는 갤러리에서 사진 분류 역할을 한다. 서드 파티 갤러리를 쓴다면 필요없다. Doze 방해 주범이다.
티타늄 백업
  • 시스템 앱 중 하는 일도 없으면서 메모리를 점유하거나 Doze를 방해하는 앱을 찾아 삭제 또는 비활성화할 수 있다.
  • 없을 시 나중에 오류를 일으킬 수 있는 시스템 앱은 나중에 다시 활성화할 수 있도록 삭제하지 말고 비활성화하자.
  • 티타늄 백업으로 필요없는 시스템 앱을 삭제(비활성화)하고 위 Greenify + ForceDoze와 같이 사용하면 Doze가 지원되는 기기에서는, 사용하지 않는 경우 거의 피처폰 수준의 배터리 절약 효과를 기대할 수 있다.
  • NFC는 기기에 Wakelock을 일으켜 배터리를 소모하게 하는 주범중 하나다. 일부 마시멜로 사용 기종에서는 정상적인 방법으로 NFC가 종료되지 않을 때가 있다. 이 때 티타늄 백업에서 NFC를 비활성화하면 된다.
Wakelock Detector
  • Doze를 방해하는 앱을 찾아, Greenify와 연동시켜 Doze를 방해하지 않도록 종료시킬 수 있다.
ViPER4Android
  • 모든 앱의 음향 효과를 극대화할 수 있다.
  • 다른 노루팅 이퀄라이저와 비교하여 배터리 효율이 증가하고 품질 역시 증가한다.
  • 이퀄라이저를 지원하지 않는 앱(SoundCloud, YouTube)에서 음향 효과를 줄 수 있다.
  • 블루투스, USB, 아날로그잭, 폰 스피커 등 따로 설정이 가능하다.
  • 제조사에서 제한한 음량 이상으로 출력이 가능하다.
  • 이전 버전은 SELinux 허용적(Permissive) 상태에서만 작동하였지만, 최신 버전은 강화(Enforced) 상태와도 호환된다.
  • 모듈에서 제공된 정보없음 다운로드에서 업데이트있음 으로 무한재설치 루프하는경우 ViPER4Android 폴데에 들어가서 apk를 수동설치해주면된다. (재부팅필요) v2.7.1.6기준
YouTube Vanced
  • 백그라운드에서 유튜브를 실행가능
  • 광고 제거
RAM Management fixes
  • 램 관련 트윅
  • 빨라지는 기종도 있지만 오히려 심하게 느려지는 기종도 있음. 느려질 시 모듈 체크 해제 후 재부팅
Emoji One
  • 업데이트 지원을 하고 있는 현역 폰이 아닌, 기술 지원이 끝난 구형 폰에 추천
  • 유니코드 DB 업데이트에 따라, 유니코드 신버전에서 새로 추가된 이모지를 업데이트해 줌
Magic Charging Switch
  • 최대 충전 용량에 제한을 두어 배터리 수명을 늘리는 모듈
  • 일체형 배터리거나, 착탈식이라도 한 개만 쓰는 경우 추천.
  • 일체형 배터리에 부품이 단종된 모델(예: 갤럭시 노트 프로 12.2) 이라면 필수 모듈이다.
  • 모듈 설치 후 터미널에서 조작
  • su로 # 권한을 얻고 mcs 85 80 : 배터리를 85%[2]까지 충전하고 충전 중단, 80%까지 내려가면 충전 재개.
Riru-Core
  • 예전에 사용하던 Xprivacy를 사용할수있는 프로그램이다.
  • 시스템 파일을 하나를 재배치 하면 사용할수 있는데 시스템을 재배치 하면 시스템 변조가 걸리기 떄문에 후킹을 이용해서 시스템 파일을 중간에 바꿔서 감지를 못하게 하는 방법이다.
  • EdXposed이며 종류는 2가지가 있다. YAHFA,SandHook이며 어느거를 사용해도 상관없고 후킹방식이 다른거이며 둘다 설치되어있는경우는 SandHook가 활성화된다. 둘이 동시에 업데이트한 경우 YAHFA가 활성화 된다. SandHook는 삭제되며 YAHFA가 2개로 인식된다. 삭제 후 재설치시 해결 비활성화시 2개 다 체크가사라진다 1번 YAHFA자리 비활성화시 2번 자리 비활성화시는 잘모름 (0.4.6.2 기준)
  • YAHFA는 SandHook 보다 안정적이고 만들어진지 오래되었다. 다만 최근 개발자도 SandHook를 사용하고 만지고 있으며 기능이 더욱 추가되어있지만 일반 사용자면 안정버젼인 YAHFA를 사용하는거를 추천한다. SandHook는 전문가용이다.
  • 만약 활성화후 SafetyNet이 깨진다면 EdXposed Manager 들어가서 Settings 들어간후 Framework에 항목에 Pass SafetyNet 를 켜주면 SafetyNet이 안꺠진다. 안드로이드 10 커스텀롬에서 일부 깨지는 경우가 있다고 한다.
  • SafetyNet이 깨져도 사용하는데 불이익 구글앱 사용불가능등은 없다. 그래서 기본으로 비활성화가 되어있는거지만 루팅감지를 하는앱에서는 SafetyNet이 깨져있는경우 차단을 하는경우 사용하면될거같다.
  • 0.4.6.2 버젼 부터 Safetynet우회기능이 사용이불가능하다 구글 업데이트로 막혔다고한다. 구버젼은 우회가능한지 여부모름 2020년 4월 6일 기준
  • 0.4.6.2 버젼 부터 YAHFA,Sandhook을 삭제하거나 비활성화해도 SafetyNet깨지는경우 download폴더에서 .zip파일을 삭제하면 된다. 파일탐색기 나 iShredder(유료)를 쓰면된다. Sdmaid등 최적화어플은 삭제를 하지않으니 걍 수동으로 지워주는게 제일좋다.
  • 0.4.6.2 버젼 부터 YAHFA,Sandhook를 동시 사용시 출동이 일어나는거같다.

Sandhook는 비활성화,삭제를 해도 깨지는 방면 YAHFA는 비활성화시는 깨지지않는다. 하나만 사용하는것을 추천한다. Sandhook,YAHFA 모두 Riru-core를 비활성화시 문제는 해결되지만 동시사용은 비추한다.

  • 0.4.6.3 2020년 5월 16일 업데이트서버가 해킹당해 악성코드가 유포되었다. 0.4.6.3 (4549)-kihnewnj 0.4.6.3 (4549)-noofbiwx 0.4.6.3 (4549)-blhuwpqu 0.4.6.3 (4549)-vqpyeeje 0.4.6.3 (4549)-fexbxflm

해당버젼은 악성코드 이니 당장삭제하고 0.4.6.2를 재설치하거나 순정펌웨어를 재설치하기를 바란다. 백업이있으면 백업을 설치해도 좋다.

  • 5월 17일 기준 감염 피혜 사례는 3가지이다. 랜섬웨어,폰 데이터삭제(시스템 삭제여부는 모름),폰 몰래 촬영,녹음 (사진인지,동영상인지 모름) 연락처에 저장된 사람에게 갤러리 포함 몰래전송이다.

8 같이 보기[ | ]

9 참고[ | ]

  1. [1] A Magic Mask to Alter Android System Systemless-ly
  2. 신형 삼성 노트북의 배터리 수명 연장 기능 사용 시의 충전 제한값은 85%.
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}