CyanogenMod

(Cyanogen OS에서 넘어옴)

1 개요

로고
이름CyanogenMod
발표일2009년 7월 1일
기반안드로이드
개발자Cyanogen Inc.
공식 사이트Cyanogen 홈페이지,
CyanogenMod 홈페이지,
다운로드 페이지
2024-03-30 00:40:05 기준 최신 버전CM 13.0.0
CM 12.1.0

안드로이드의 대표적인 커스텀 펌웨어 중 하나.
Cyanogen (Steve Kondik) 이 주로 제작하며 xda-developers 커뮤니티에서 엄청난 도움을 받는다. 대개는 줄여서 CM+버전번호로 불린다(예를들어 프로요 기반 버전은 CM6, 진저브레드 기반은 CM7, 아이스크림 샌드위치 기반은 CM9[1], 젤리빈(4.1) 기반은 CM10[2], 젤리빈(4.2) 기반은 CM10.1, 젤리빈(4.3)기반은 CM10.2, 킷캣(4.4)기반은 CM11, 롤리팝(5.0)기반은 CM12, 롤리팝(5.1)기반은 CM12.1, 마시멜로(6.0)기반은 CM13, 누가(7.0)기반은 CM14로 표기한다.

읽는 방법은 "sigh-AN-oh-jen-mod"[3], 즉 cyanogen이라는 단어의 영어식 발음과 (거의) 같다고 보면 된다(한글로 표기하면 '사이애노젠모드' 내지는 '사이아노젠모드'가 될 것이다). cyanogen이라는 단어는 일반 명사이고, 어느 나라의 말로 쓰였는지에 따라 당연히 읽는 방법도 달라지겠지만, CyanogenMod라는 안드로이드의 커스텀 펌웨어는 그렇지 않다. 이는 고유 명사이며 그 개발진 당사자들이 어떻게 발음하면 된다고 명시해놓기까지 했으므로 읽는 방법에 대해 왈가왈부할 이유가 전혀 없다.

마스코트는 원래 일반 안드로이드 마스코트에 파란색과 스케이트를 추가한 Andy라는 캐릭터였으나 2012년부터 Cid (CyanogenMod ID의 줄임말) 라는 캐릭터로 교체되었다.



위쪽 Andy, 아랫쪽 Cid

2 특징

많은 롬의 기본이 되는 커스텀 롬이다.
인터페이스가 제조사의 수정이 가해지지 않은 구글 넥서스와 흡사하며, 지원하는 모델 종류도 많고, 사용자가 많아 순정 펌웨어와 함께 호환성의 기준이 된다. 홈런쳐는 CM7까지는 구글 순정이 아닌 ADWLauncher를 내장했고, CM9 이후부터는 CyanogenMod 팀에서 구글 순정 런처를 개조해서 여러 옵션을 지정할 수 있게 한 Trebuchet[4]이라는 런처를 내장하고 있다.

CM 이전의 롬이란 것은 각 하드웨어 제조사들이 내놓은 순정 롬을 마개조(...)해서 만들어지는 게 보통이었으나 CM은 AOSP[5]를 직접 주물러서 각 스마트폰에 맞게 롬을 만든다. 각종 스마트폰 제조업체 역시 자사 제품에 들어가는 순정 펌웨어를 이런 식으로 만든다. 이러한 방식의 장점으로는 제조사 펌웨어에 얽매이지 않기 때문에 자유롭게 자신들만의 색을 가진 롬이나 최신 버전 안드로이드 기반 롬을 만들어 낼 수 있으며,[6][7] 단점으로는 완전한 서드파티 롬이다 보니 예상치 못한 안정성 문제가 발생할 수 있다는 것이다. 최근에는 커널 까지도 CM기반의 소스로 독립.

원래는 마켓 등 구글 앱을 내장하고 있었으나 특허 관련 소송을 우려해서 CM7부터는 해당 앱들만 따로 구글 앱스라는 명칭으로 묶여서 배포된다. 줄여서 갭스 G-Apps라고도 한다. 구글 앱들의 종류와 용량이 커지다 보니, 넣을것을 넣고, 뺄 것은 빼서 여러 버전의 갭스들이 나와있다. 자신이 구글앱을 많이 사용하지 않거나 필요한 것만 마켓에서 따로 받아서 사용하고 싶다면, 플레이 스토어 구동과 구글 싱크를 위한 최소한의 기능만 들어있는 Pico나 Micro 버전의 갭스를 다운받자.

사용자가 성능이나 UI를 조절하기 쉽다. 상태바나 앱 아이콘 등을 바꾸는 테마 기능을 비롯하여 순정에서는 볼 수 없는 CPU 클럭 조정부터 상태바 배터리 표시와 퀵패널 순서 변경 등 공돌이가 실험하기 좋은 기능들이 많이 있다.[8]CM7까지는 설정-CyanogenMod 설정, CM9 이후로는 분산되어 설정 앱 내에 잠금 화면, 테마, 시스템 등의 메뉴와 함께 CPU클럭이나 가버너 등은 설정-Performance에서 찾아볼 수 있다.

같은 안드로이드 커스텀 롬인 Omni, MIUI와 비교해서 훨씬 가볍다 요즘 MIUI는 더욱 버벅... 이들은 퍼포먼스 위주의 롬이라기보단 실용성과 디자인에 중심을 두고 있기 때문이다. 외국판 디바이스 기준으로 인기 있는 기종은 최적화가 잘 되고[9] 인기 없는 폰 (특히 비싼 폰)들은 발적화는 물론이고 롬이 없는 경우도 있다 (...)[10]

허니콤이 나오기 전 진저브레드 버전인 CM7에서부터 이미 타블렛형 기기를 정식으로 지원했는데, 후술할 Advent Vega나 B&N Nook Color, 그리고 HP 터치패드같이 물리버튼이 부족한 타블렛 기기를 위해서 상태바가 허니컴 버전처럼 휴대폰에서의 상단이 아닌 하단에 나타나고 허니컴 버전같은 소프트웨어 터치 버튼을 상태바에 붙일 수 있으며, 또한 이 상태에서 타 애플리케이션 실행시 전체화면 모드에서도 상태바가 숨지 않는 기능까지 제공하고 있다. [11]

또 하나의 전설적인 이야기는 소스가 없는 부분도 어찌어찌 마개조해서 작동하게 만들어 버린다. 일례로 넥서스원의 하드웨어는 FM라디오 작동에 필요한 모든 하드웨어가 있지만 AOSP기반의 순정에서는 라디오 기능이 없었는데 CM에서는 직접 커널을 개조하여 라디오 기능을 작동하게 만들었다. 이 외에 제조사의 커스텀 기능이라서 소스가 제공되지 않는 아트릭스의 지문인식의 지원. OS가 전혀 다른 HP 터치패드의 안드로이드 OS로 교체 등.

3 설치

모든 설치 가이드에 나와 있겠지만 설치 중에 발생하는 모든 피해는 본인의 책임이다.
심한 경우는 벽돌이 되기도 하고 당분간 기기를 못쓰게 되는 상황이 될 수 있으므로 신중함이 필요하다.하다보면 막굴리는데 뭘. 벽돌이 되면 어 벽돌이네 하고 순정펌을 올린 뒤 다시 롬질을 하게 된다(...)하드브릭은 어쩌고;;요즘은 하드브릭 고치는 방법도 꽤 많다!
그리고 루팅-리커버리 선에서 무상 A/S 등의 서비스를 보장받지 못하는 경우가 많다.[12]

공장롬[13]이라 불리는 원래의 기본롬으로 돌아갈 수 있는지도 미리 알아보자. 설치된 앱은 확실히 사라지고 SD카드와 내장메모리에 든 파일들도 설치중 사라질 수 있으므로 미리미리 백업해놓자.

설치하는 법은 가지각색이기 때문에 "(기기의 모델명 혹은 이름) CM"으로 검색해서 xda의 영어로 된 스레드나 블로그를 우선으로 따라하는게 좋다. 기본적으로 CM이 공식적으로 지원하는 기기는 해당 기기의 CM 위키가 개설되어 있고, 기본적인 설치법이 기술되어 있다.[14]

대부분의 CM롬은 md5같은 펌웨어 파일이 아니라, 그저 zip파일로 되어있다. 오딘같은 툴로는 롬 자체는 설치를 하지 못한다는 뜻이다. CM롬을 위한 커스텀 리커버리를 오딘을 통해 깔아준 뒤, SD카드, OTG USB 등을 사용하여 파일을 인식할 수 있게 하던가, 전원을 킨 상태에서 공유 기능을 통해 넣어둔 상태로 깔자. 아래 내용은 이해가 안되거나 문제가 생겼을 때 참고용으로 보자.

대게 커스텀롬의 설치는 커스텀 리커버리 설치 후 롬과 GApps[15]를 플래싱하는 순서로 이루어진다.

커스텀 리커버리는 제조사에서 만든 기본 복구 모드를 대체하는 것으로 터치가 지원되는 TWRP나 CM 개발진이 만든 CWM이 유명하다. 리커버리 설치는 기본적으로 시스템 파티션을 조작하는 방법이기 때문에 최소 루팅, 기기 제조사나 통신사에 따라 부르로더[16] 언락[17][18]이 필요하다.

롬 자체는 공식 지원되는 기기의 경우 여기에서 받을 수 있다. 비공식적으로 만들어지는 롬은 직접 찾아서 받아야한다. 빌드 버전에 따라 성능이 저하되는 경우도 있고 통화나 카메라 등이 작동되지 않기도 하기 때문에 주의를 필요로한다. 미주나 유럽에 출시된 경우 그 유명한 XDA에서 해당 기기의 포럼을 찾으면 된다. CM이 아닌 개인이 포팅한 경우 대부분 해당 롬의 스레드명에 UNOFFICIAL(비공식)이라는 명칭이 들어간다.

플래싱에는 컴퓨터에 연결해서 하는 방법과 리커버리에서 하는 방법이 있다.[19]

컴퓨터에서 플래싱하기 위해선 장치의 드라이버가 필요하다.[20] 드라이버 설치에 문제가 있는 경우 제조사에서 제공하는 프로그램[21]을 설치하거나 안드로이드 SDK를 설치해보자. 컴퓨터와 Fastboot 모드로 연결돼야 하는데 기기마다 다르지만 꺼진 상태에서 전원 키와 볼륨 아래 키를 같이 누르는 경우가 많다.

리커버리에서 플래싱할 때 핸드폰에 롬과 GApps의 ZIP 압축파일을 넣어놔야한다.[22][23] 안드로이드 4.4 이후의 Gapps는 이제부터 OpenGApps라는 오픈소스 프로젝트에서 편하게 받을 수 있다. 보통 새로운 롬이라면 초기화(wipe data 또는 Factory Reset)를 한 뒤에 해야 문제가 생기지 않는다. SD카드의 내용은 없어지지 않지만 설치된 앱과 구글 계정 등 시스템이 초기화 된다. 다만 순정롬 리커버리의 그것은 아예 SD카드를 초기화 시키기도 하니 주의해야 한다.

3.1 커스텀 리커버리 설치

커스텀롬을 설치하려면 가장 기본적으로 필요한게 커스텀 리커버리이다. 순정 리커버리는 update.zip이라는 형식의 OTA 업데이트 설치와 공장초기화 정도밖에 제공되지 않으나, 커스텀 리커버리는 커스텀롬, 커스텀커널 설치와 더불어 부분적 초기화[24], 낸드로이드 백업[25]과 더불어 자체 내장된 파일 매니저를 이용해 리커버리에서 시스템 파일을 수정할수도 있다.

Clockworkmod(cwm이라고 줄여쓰기도 한다.)는 역사가 가장 오래된 커스텀 리커버리인데, CyanogenMod와 가장 밀접하게 연관된 커스텀 리커버리이다. 앱을 통해 설치할 롬을 선택해서 설치할 수 있다.
게다가 앱 내에 롬 디렉토리도 있다. Superuser.apk랑 Superuser 바이너리, 위에 나온 Google Apps, 오리지널 CyanogenMod 그리고 마지막으로 계약한 개발자 롬 한정으로 그 외 커스텀 롬이 제공되고 있다. 단점으로는 일부 기능[26]이 유료라는게 흠. [27]
다른 커스텀 리커버리인 TWRP는 최근 중국에서 만들어진 커스텀 리커버리이다. 테마설정을 할 수 있으며, cwm보다 안정성이 높다는 평을 받으며 인기를 끌고 있다. 배터리도 표시해주고 버튼은 터치하기 쉽게 커다랗게 있다. UI가 cwm과는 비교도 할 수 없을 만큼 알아보기 쉽다!

CyanogenMod 12.0 부터는 예전에 쓰던 ClockWorkMod가 아닌 Cyanogen Simple Recovery로 바뀌었다. 이유는 ClockWorkMod의 바이너리들의 버전이 너무 오래되었으며, ClockWorkMod를 개발하던 개발자가 더이상 개발을 진행하지 않고 있어서라고 한다.

옛날에는 커스텀 펌웨어를 올릴려면 수동 adb로 직접 리커버리 올리고 커펌 올려야 했는데 요즘은 아무나 한다... 덕분에 롬 내놓으라고 소리치는 찌질이가 xda에 많이 늘었다. CyanogenMod 및 다른 롬 만드는 사람도 보통 금전 이익을 목적으로 하지 않은 무보수 개발이 대부분이기 때문에 제발 요구하지 말자.

4 버전

안드로이드 1.5 컵케이크부터 지원한 유서깊은 커스텀 펌웨어다. 2009년부터 제작을 시작했다. 자세한 버전은 아래와 같다.

CM 버전안드로이드 버전코드 네임지원 여부Stagefright 보안 패치 여부
CM 3.6.8.11.5Cupcake지원 종료X
CM 3.9.3X
CM 4.1.41.6X
CM 4.2.15.1X
CM 5.0.82.0 ~ 2.1Eclair지원 종료X
CM 6.0.02.2.xFroyo지원 종료X
CM 6.1.3X
CM 7.0.32.3.xGinger Bread지원 종료X
CM 7.1.0X
CM 7.2.0X
CM 8.0.03.xHoneycomb미지원 (소스 비공개)X
CM 9.1.04.0.xIce Cream Sandwich지원 종료X
CM 10.0.04.1.xJelly Bean지원 종료X
CM 10.1.34.2.xX
CM 10.2.14.3.xX
CM 11.0.04.4.xKitKat지원 종료O
CM 12.0.05.0.xLollipop지원 종료O
CM 12.1.05.1.x장기 지원중O
CM 13.0.06.0.xMarshmallow지원중 [28]O
CM 14.0.07.0.xNougat미지원 (7.1 공개로 인한 개발 중단)O
CM 14.1.07.1.x미정 [29]O

4.1 빌드 버전

CyanogenMod에는 버그나 추가된 기능에 따라 여러 버전이 있다.

1. Nightly
개발중인 버전을 하루에 한 번 씩 밤중에 컴파일러가 자동으로 생성해서 올리는 테스트 버전이다. 공식 버전에서의 버그가 수정되었을 수도 있지만, 사람이 직접 생성하는 게 아니기 때문에 현재까지 작업 상황에 따라 예기치 못한 문제가 생길 수도 있다.(통신이 안된다던가, 조도센서가 먹통이라던가. 가끔 통신이 완전히 나가버리는 일이 터지기도 한다.) 공식 지원 기종의 경우 Nightly 빌드를 올리면 하루에 한 번씩(!) OTA로 업그레이드가 된다. CyanogenMod의 그 다음 안정화 버전이 나올 때까지. 가끔 새로운 기능이 추가되었다가 없어지기도 한다.

2. Experiments
Release 버전을 뽑기 전에 확인하는 버전 비슷한 의미의 버전이다.

3. Release
예전의 Milestone, Snapshot, Stable버전과 같은 의미이다. 버그가 없는 안정한 버전이다. 현재 Release 버전에서는 Snapshot이라는 이름으로 배포되는 중이다.

4.2 업데이트 내역

업데이트 내역은 아래의 링크에서 확인이 가능하다. CyanogenMod는 매일 소스코드가 업데이트 되며, 나이틀리 빌드는 항상 업데이트된 제일 최신의 불안정 소스를 사용하여 빌드를 한다.

CyanogenMod 13.0의 업데이트 내역

CyanogenMod 12.1의 업데이트 내역

5 지원 기종

5.1 공식 지원 기종

해당 문서 참고.

5.2 비공식 지원 기종

해당 문서 참고.

6 기타

6.1 제조사와의 관계

삼성전자에서 CM팀에게 개발용으로 갤럭시S2를 제공했다. 하지만 갤럭시S2 공식 출시 이후로 차기 S시리즈에 대한 커널소스 한줄 조차 넘겨 주지 않은 것으로 알려져 있다 (엑시노스 한정). 자사 핸드폰을 개조 못하게 꼭꼭 걸어잠그는 추세인 LG전자, 팬택 등과는 대조적. HTC도 2011년부터 부트로더를 걸어잠그는 등 폐쇄적인 정책으로 나가다가[30] 요즘은 한번 거하게 까이고 나서 부트로더도 언락하고 센스용 SDK를 배포하는등 나름대로 개발 친화적인 환경을 조성하려 노력하고 있다. 소니에릭슨의 경우 자사 기종을 무상 제공하고 카메라 모듈 코드 등의 개발에 필요한 것을 지원했다.

이후 밝혀진 바에 따르면, Cyanogen(Steve Kondik)이 삼성전자 모바일 개발자로 고용되었다고 페이스북에 남겼다. 대신 자신이 하고있는 CM 롬 개발도 병행한다고. 덕업일치

하지만 2013년에 삼성전자를 그만두었다고 한다.* 삼성전자에 불만이 있는건 아니고 자신이 새로 하고 싶은 일이 있어서 그만 둔다고 한다.

그러나 이렇게 삼성과 좋은 관계를 유지하던 CM팀이 삼모바일 소식에 의하면 갤럭시 S4는 지원하지 않는다고 한다* CPU버전이 나뉘는 것과 삼성의 부진한 소스공개가 원인인 듯. . 하지만 해외에서는 스냅드래곤 버전만 출시되었으니 국내판은.... 알아서 포팅하세요[31]

6.2 Cyanogen Inc 창립, 그러나...

2013년 9월, CyanogenMod의 제작자들이 모여 Cyanogen Inc라는 이름의 회사를 창립했다. HTC와 중국의 스마트폰 제조사 OPPO 전설의 짝퉁 인분폰의 원조와 협력하여 CM폰을 만든다고 공식으로 발표했고, 수많은 XDA의 개발자들이 상당한 기대를 하고 있는 중이었다. 그러나 CM에 들어가는 카메라 앱 Focal을 개발하던 개발자가 앱을 마켓에서 내리면서 구글 플러스에 그 이유를 밝혔는데, 앞으로 CyanogenMod의 소스는 Core(핵심)부분을 제외한 모든 부분을 Closed(비공개)할 예정이라는 충격적인 내용이 담겨있었다. 자세한 내용은 여기에. 여기도 이 때문에 XDA와 CM의 개발자들 사이에 헬게이트가 열린 것은 당연지사. 그 동안 코드를 커밋해오던 기여자들의 노고를 날로 먹는 행위(소스 먹튀)이기 때문. 그로인해 XDA에서는 CM을 대신할 커스텀롬인 OMNI를 밀어주고 있다.[32]

6.3 커스텀롬 개발자들의 문제

CyanogenMod는 엄연히 GPL라이센스하에 배포되고있는데 국내와 해외(물론 XDA포함)의 CyanogenMod를 이용해서 커스텀롬을 만드는 개발자들은 소스를 공개하지 않는 경우가 대부분이다. 요즘은 Apache 2.0 라이센스로 바뀌어서 비공개 하여도 상관 없다는 소리가 많다.

6.4 CyanogenMod 빌드

해당 문서 참고.
  1. CM8이 없는 이유는 CM8에 해당하는 것은 허니컴인데 당시 허니컴은 오픈소스가 아니었다가, ICS 소스와 함께 같이 공개되었기 때문이다. 허니컴 흑역사 인증까지는 아니고, HC자체가 태블릿OS이기에 이를 일반 스마트폰에 포팅하는 일을 막고자 잠시 막아두었던 일로 상위버전인 ICS를 공개하면서 같이 공개.
  2. 8월 18일 넥서스S와 갤럭시 넥서스용 나이틀리가 나오면서 본격적으로 시작한듯 하다.
  3. 출처: CyanogenMod 공식홈페이지 'About' 항목. 이 'About' 항목의 본문은 영어로 작성되어있음.
  4. 트레뷰셋이라 읽는다.공성병기
  5. Android Open Source Project; 즉 안드로이드 기본 소스
  6. 제조사가 최신버전의 안드로이드를 지원하지 않는 디바이스더라도 제조사 펌웨어에 얽매이지 않으므로 얼마든지 최신버전으로 제작 가능하다.
  7. 물론 이 방법도 하드웨어, 특히 커널과 깊은 관련이 있는 AP제조사가 지원을 끊거나 소스를 공개하지 않으면 힘들다.
  8. 오히려 요즘은 CM이 이 쪽으로 많이 빈약한 편인데 CM의 파생 롬들이 빵빵히 지원하니 잘 찾아보자.
  9. 특히 옵티머스 원이나 모토로라 디파이
  10. Xoom 이외의 허니콤 타블렛이 특히 더한다. 허니컴 소스가 없어서 커널 개발이 주를 이룬다(...) 안습. 대신 ICS가 출동하면 어떨까?
  11. CyanogenMod 팀이 HP 터치패드에 내기 걸린 (3000불+) 안드로이드 올리기 시합에 참가하자 마자 저 기능들이 빠르게 발전했다(...)
  12. 소니의 경우 언락을 지원하지만 무상 워런티는 끝난다.
  13. factory 또는 stock 롬
  14. 해당 기기의 다운로드 페이지에 공식 위키로 가는 링크가 있으니 잘 찾아보자
  15. 유튜브, 플레이 스토어 등 구글이 제공하는 기본 앱들. 법적인 문제로 사전 설치 앱에서 제외됐다. 여기에서 버전에 맞는 것을 받으면 된다.
  16. PC에서의 바이오스와 같은 역할을 한다.
  17. HTC 기기에서 S-OFF
  18. 통신사의 네트워크 사용의 심 언락과 다름에 주의
  19. Flashfy와 같은 앱을 이용하는 방법도 있다. 대부분 이 방법도 리커버리로 자동으로 넘어가서 설치하기에 뭔가 리커버리를 직접 조작하지 않는다는 것만 빼면 동일하게 작동한다.
  20. 일부기종의 경우에는 Odin(갤럭시 일부), Flashtool(소니 엑스페리아 일부) 같은 프로그램이 있기도 하다.
  21. 갤럭시의 경우 Kies
  22. SD카드가 꼭 필요한 경우도 있다.
  23. 기기에서 직접 파일을 받는것도 당연히 가능하다.
  24. 시스템만 초기화 한다든가 cache, sdcard 쪽 파티션만 초기화 한다든가
  25. 스마트폰이나 태블릿에 설치된 운영체제 통째로 백업하는 기능. 물론 복원해도 내외장메모리에 저장되어있었던 데이터나 음악, 사진 등은 지워지니 유의하자. 물론 부분적인 백업이나 복구도 가능하다 가끔 오류도 일으킨다 이럴땐 딮빡
  26. 업데이트 체크, 일부 개발자 롬 다운로드
  27. 요즘은 CWM기반으로 한 phliz touch도 꽤나 인기가 있는 편이라고 한다.cwm 지원 종료되고 망했어요
  28. 한국 기준 2015년 11월 24일 부터 나이틀리가 릴리즈
  29. 개발 진행중
  30. 사실 예전부터 폐쇄적이였다. 디자이어 부터 NAND lock을 걸었고 당시 모토로라의 RSA 2048bit 다음으로 가장 센 보안이였다. S-OFF 하는것도 힘든데 여기에 추가적인 보안을 걸어서 S-OFF 툴을 만들기 힘들어지자 욕을 먹었다.
  31. 그나마 AP가 같은 I9500 버전은 통신과 사운드가 달라서 그냥 올릴 수 없다.
  32. [1]