mir.pe (일반/밝은 화면)
최근 수정 시각 : 2024-01-31 15:23:55

Magisk

1. 개요2. 특징3. 기능4. 사용법5. 여담6. 관련 문서


공식 홈페이지[1]
Magisk: The Magic Mask for Android
매지스크: 안드로이드를 위한 마법 마스크

1. 개요

안드로이드 루팅하고 루팅 상태를 관리하기 위한 애플리케이션. 2023년 현재 가장 인지도가 높고 널리 쓰이는 루팅툴이다.

2. 특징

2016년 8월에 처음 공개된 루팅 애플리케이션으로, 안드로이드 5.0(롤리팝) 이상[2]의 기기들을 지원한다. 루팅 뿐만이 아니라 애플리케이션 별 루트 권한 관리[3], Xposed와 같은 모듈 설치 등 각종 부가 기능들을 함께 제공한다.

단순히 시스템 파티션에 su 바이너리를 설치하고 관리용 애플리케이션을 설치하던 과거의 루팅툴과는 달리 작동 방식이 굉장히 복잡하다. 이는 시간이 흐를수록 안드로이드 보안 규정이 대폭 강화되었기 때문인데, 특히 롤리팝에서 SELinux[4] 전면 도입으로 각 서비스별로 사전에 작성된 정책에 따라 수행할 수 있는 작업이 제한되면서 루팅이 매우 까다로워졌다.

이 때문에 매지스크의 작동 방식은 대략 다음과 같다( 출처):
과거에는 루팅을 하는 Magisk 애플리케이션과 루팅 상태를 관리하는 Magisk Manager라는 두 개의 애플리케이션으로 이뤄져 있었으나, v22.0부터 Magisk 애플리케이션으로 통합되었다.

3. 기능

4. 사용법

사용법의 경우 기종별로 어느 정도 차이가 존재하기 때문에 하나로 정리하기는 힘들다. 공식 홈페이지의 설치 방법을 보면 각 기종별로 설치 방법이 설명되어 있으니 참고하면 된다. 대체적으로 공통점을 찾자면, 기기의 부트 파티션(boot.img 혹은 recovery.img)에 Magisk 관련 코드를 심는다. 따라서 매지스크로 루팅하려면 일반적으로는 부트로더를 언락해야 한다. 예외는 아래 항목에 따로 기술한다.

5. 여담

6. 관련 문서



[1] 구글 등에서 검색시 공식 홈페이지를 자청하는 수많은 페이지들이 같이 뜨는데, Magisk의 공식 홈페이지는 Github 저장소 하나뿐이다. 즉 나머지는 모두 가짜 사이트들이다. [2] 구버전은 4.2 젤리빈까지 지원하며 꼭 필요하다면 아직 설치해서 사용할 수는 있다. 그러나 Magisk 23.0부터는 롤리팝 이전 버전과의 호환성이 완전히 제거되었다. [3] 사실 이 기능은 안드로이드 초창기의 Superuser 앱부터 지원한 기능이다. [4] 미국 NSA에서 처음 개발한 리눅스 보안 강화 솔루션이다. [5] 23.0 버전 업데이트 이후 기능 제거로 새롭게 등장한 Zygisk가 대체할 것으로 보인다. [6] 현재는 지원하지 않는 기능이다. [7] 매지스크의 공식 개발 지침에 따르면, 앱 내부에서 배포되는 모듈들은 대부분의 기종들에서 작동될 수 있어야 한다는 조건이 붙어 있으며 특정 기기만을 위한 모듈은 등재가 거부된다. 다만 루팅 관련 행위들이 늘 그렇듯 벽돌의 위험이 항상 뒤따르니 주의를 기울이는 것이 좋다. 특히 공식 등재되지 않은 모듈을 설치할 때는 해당 모듈이 정확히 어떤 모듈인지, 그리고 본인의 기기와 호환되는지를 정확히 확인한 후 설치하도록 하자. [8] 이 기능도 현재는 지원하지 않는다. [9] 안드로이드 12 기준 갤럭시 S20 이상 기종은 컴퓨터랑 연결을 하지 않고 음량 아래+음량 위를 계속 누르고 있는 상태에서 컴퓨터랑 연결한다. [10] 이동 통신을 지원하지 않는 기기(태블릿 등)에는 없을 수도 있다. [11] USERDATA도 있지만 굳이 넣을 필요가 없다. [12] 이마저도 루팅 작업을 시작하기 전에 TWRP로 백업을 한번 진행하면 순정펌을 구할 필요 없이 백업 파일 내부에서 확보할 수 있다. 해당 파일명은 주로 boot.emmc.win [13] MT67xx, MT816x, MT817x, MT6580 한정 [14] 8 이상에서도 가능한 경우가 종종 있으나 드물다. [15] 롬파일 없이 AVB 해제가 불가능한 모델은 이 방법을 쓸 수 없다. [16] Unisoc 계열 칩셋은 대부분 부트로더를 언락할 시 시스템 파티션에 대한 검증을 하지 않도록 되어 있으므로 따로 AVB를 해제하지 않아도 된다. [17] 부트로더를 언락하면 자동으로 시스템 파티션을 풀어주는 Unisoc 계열이 아닌 한 대부분 vbmeta 파티션을 덮어씌워야 AVB를 해제할 수 있다. [18] 보통 /system/bin/, /system/xbin/, /system/etc/ 경로 내의 파일들을 백업하는 것으로 충분하다. 단 파티션 자체를 복사할 수는 없다. [19] 통상 이런 짓을 하면 시스템 부팅이 불가능해지고 오직 리커버리 진입만 가능한 상태가 되지만 매지스크로 패치된 리커버리일 경우 정상적으로 시스템 부팅이 가능하다. [20] 이 키는 부트로더 언락 단계에서도 필요하다. 즉 키가 없으면 말 그대로 아무것도 시도할 수가 없다. 다행히도 가장 널리 쓰이는 키는 유출되어 있지만 만약 제조사가 고유의 키를 사용하면 부트로더 언락부터가 불가능하다. [21] 삼성, 소니, LG처럼 자체적인 프리로더를 사용하는 회사에서 출시된 모델이 아니라면 부트로더 언락 여부와 상관없이 플래시/덤프가 가능한 툴이 칩셋별로 존재하는 것이 보통이다. 예를 들면, 퀄컴은 QFIL 혹은 Sugar QCT, 미디어텍은 SP Flash Tool, 스프레드트럼 및 Unisoc은 SPD Research Tool이 주로 사용된다. [22] USB 박스나 동글을 사용하는 안드로이드 범용 서비스 툴을 사용할 수도 있다. 장점은 공개 툴을 사용한 플래시/덤프를 제조사에서 막아 놓았더라도 이를 우회할 가능성이 상당히 높다는 점, 부트로더 언락이 불가능한 모델을 강제 언락하거나 하는 등의 부가 기능이 많다는 점, 삼성, 소니, LG 등 자체적인 플래시 툴을 사용하는 회사의 모델도 지원하는 경우가 많다는 점, 지속적인 업데이트와 정보가 제공된다는 점 등이다. 단점은 옵션에 따라 연간 50USD에서 200USD 정도 되는 구독 비용이다. [23] boot, system, vendor, product 등 유저 데이터가 아닌 롬에 해당하는 파티션은 read/write로 마운트하는 것조차 시도해서는 안 된다. GSI 롬을 비롯한 커스텀 롬 설치 또한 당연히 불가능하다. [24] 일례로 안드로이드 9 TV박스인 Beelink GT-King은 fastboot 액세스나 부트로더 언락이 불가능한 대신 AVB가 비활성화되어 있고 스톡 펌웨어가 su 바이너리를 포함하며 shell 에뮬레이터를 통해 boot나 recovery 등의 주요 파티션을 플래시하거나 덤프할 수 있다.