Unofficial Ports

This page lists ports of CyanogenMod to devices which are not officially supported. If you have taken the time to port CyanogenMod to your device, feel free to add a link to your release here. CyanogenMod encourages open development, so links to source code are required for every entry.

We suggest the following layout:

'''CyanogenMod 11'''
*[http://forum.url Thread on forum name (developer name)]
*[https://github.com/devname/android_device_manufacturer_model Github device repo]
*[https://github.com/devname/android_kernel_manufacturer_model Github kernel repo]

Contents

Alcatel

Alcatel OneTouch 995 Ultra

CyanogenMod 10.1

Acer

Acer Iconia Tab A500

CyanogenMod 10.2

CyanogenMod 10.1

CyanogenMod 10

Acer Iconia Tab A510/A511

CyanogenMod 11

Acer CloudMobile S500

CyanogenMod 10

Amazon

Kindle Fire HD 7″ (2nd Generation)

CyanogenMod 12

Kindle Fire HD 8.9″ (2nd Generation)

CyanogenMod 12

Kindle Fire HDX 7″ (3rd Generation)

CyanogenMod 12.1

Kindle Fire HDX 8.9″ (3rd Generation)

CyanogenMod 12.1

Fire Phone

CyanogenMod 11

Fire Tablet

CyanogenMod 12.1

Fire TV

CyanogenMod 12

Asus

Asus Transformer TF101

No-name CyanogenMod 10.1

Asus Transformer TF101G

No-name CyanogenMod 10.1

Asus Transformer TF201

CyanogenMod 11

Asus ZenFone 2 Z00A

CyanogenMod 12.1

Asus ZenFone 2 Z008

CyanogenMod 12.1

ASUS Zenfone 5 T00F

CyanogenMod 12.1

ASUS Zenfone 4 T00I

CyanogenMod 12.1

bq

bq Aquaris E5 4G (vegetalte)

CyanogenMod 11

Dell

Dell Streak 7

CyanogenMod 10.1

Google

Google Nexus One

Evervolv — based on CyanogenMod 9

Hisense

Hisense Sero 7 Pro (M470BSA)

CyanogenMod 12

Hewlett-Packard

HP Touchpad

CyanogenMod 11

CyanogenMod 12

HTC

HTC Aria (Liberty / Gratia)

also see: Liberty Info

CyanogenMod 9

CyanogenMod 10

HTC Desire 816

CyanogenMod 11

HTC Desire C (Golf)

CyanogenMod 10

HTC Desire HD / Inspire 4G (Ace)

also see: Ace Info

CyanogenMod 10.1

CyanogenMod 11

CyanogenMod 12

CyanogenMod 12.1

CyanogenMod 13.0

HTC Desire S

CyanogenMod 11

CyanogenMod 12

CyanogenMod 12.1

CyanogenMod 13.0

HTC Desire X (Protou)

CyanogenMod 9

CyanogenMod 10.1

HTC Droid DNA (Monarudo)

CyanogenMod 10

HTC EVO 3D CDMA (shooter)

CyanogenMod 10.1

CyanogenMod 10.2

HTC EVO 3D GSM (shooteru)

also see: Shooteru Info

CyanogenMod 10.1

HTC Explorer/Pico

CyanogenMod 7

CyanogenMod 9

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 10.2

HTC G2 / Desire Z (Vision)

also see: Vision Info

Andromadus Audacity — based on CyanogenMod 9

Andromadus Mimicry James Wilson

Flinny’s Andromadus Test Builds — based on CyanogenMod 10

Andromadus Jelly Belly Beta — based on Cyanogenmod 10

Flinny’s Andromadus Test Builds — based on CyanogenMod 10.1

AlterNdromadusJ — based on CyanogenMod 10.1

HTC Holiday (Vivid and Raider)

CyanogenMod 10.1 – AOSP

CyanogenMod 10.1 – RootBox

CyanogenMod 10.1 – AOKP

CyanogenMod 10.1 – PAC-Man

CyanogenMod 10.2 – AOSP

CyanogenMod 10.2 – PAC-Man

HTC Incredible

Official support ended with CM7/gingerbread.

CyanogenMod 10

CyanogenMod 11

HTC Leo (HD2)

CyanogenMod 7

NexusHD2-ICS-CM9 – based on CyanogenMod 9

NexusHD2-JellyBean-CM10.0 – based on CyanogenMod 10.0

NexusHD2-JellyBean-CM10.1 – based on CyanogenMod 10.1

NexusHD2-JellyBean-CM10.2 – based on CyanogenMod 10.2

NexusHD2-KitKat-CM11.0 – based on CyanogenMod 11.0

GPS HAL Lib

HTC Legend

also see: Legend Info

CyanogenMod 9

CyanogenMod 10

CyanogenMod 10.1

HTC myTouch 3G Slide (Espresso)

also see: Espresso Info

CyanogenMod 9

CyanogenMod 10

HTC One S C2 (VilleC2)

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 10.2

HTC Rezound (Vigor)

CyanogenMod 10.1

CyanogenMod 10.2

HTC Sensation (Pyramid)

also see: Pyramid Info

CyanogenMod 10.1

CyanogenMod 10.2

CyanogenMod 11

CyanogenMod 11 with 3.4 kernel

CyanogenMod 11 and 12

HTC Wildfire S (Marvel)

CyanogenMod 7

CyanogenMod 9

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 11

HTC One V

CyanogenMod 10

Huawei

Huawei U8100/U8110/U8120 (a.k.a. T-Mobile Pulse Mini)

CyanogenMod 7

Huawei U8150 IDEOS (TMobile Comet)

also see: U8150 Info

CyanogenMod 6 & 7 (Ideos Dev Team version)

Huawei U8500 (IDEOS X2)

CyanogenMod 7

Huawei U8800

CyanogenMod 12 / 12.1

Huawei U8815 (Ascend G300)

CyanogenMod 9

CyanogenMod 10

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 10.2

CyanogenMod 11

Huawei u9508 (Ascend G615/Honor 2)

CyanogenMod 10.1

Huawei u8833/u8951 (Ascend Y300/G510)

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 10.2

CyanogenMod 11

Huawei U8850 (Vision)

CyanogenMod 9

MIUI based on CyanogenMod 9

Huawei S7-301u (Mediapad)

CyanogenMod 10

CyanogenMod 10.1

Huawei U8860 (Honor)

CyanogenMod 11

CyanogenMod 12 / 12.1

Huawei U9200 (Ascend P1)

CyanogenMod 10.2

CyanogenMod 11

Huawei C8813Q

CyanogenMod 11

Huawei Honor 4/4X (C8817D/G620S-UL00/G620S-TL00/G620S-L01/Che1-CL20/Che1-CL10)

CyanogenMod 11

CyanogenMod 12.1

Inew

Inew V3

CyanogenMod 12.1

Lenovo

Lenovo Yoga 10″ Blade (b8000)

CyanogenMod 10.1

LG

LG G Pad 8.3 Google Play Edition (V510/Palman)

CyanogenMod 11

LG G2 Mini (D610/D618/D620)

CyanogenMod 12.1

CyanogenMod 13.0

LG GT540 (Optimus)

OpenSwift — based on CyanogenMod 6

LG GW620 (Eve)

OpenEtna — based on CyanogenMod 6

OpenEve — based on CyanogenMod 7

OpenEve — based on CyanogenMod 9

LG Lucid (VS840)

Cyanogenmod 10

LG Optimus C (LW690, Cricket)

CyanogenMod 7

LG Optimus F6 (D500/MS500)

CyanogenMod 11

LG Optimus G Pro (E980, AT&T)

CyanogenMod 10.1

CyanogenMod 10.2

LG Optimus L5 (E610/E612)

CyanogenMod 10.1

CyanogenMod 10.2

CyanogenMod 11

LG Optimus L9 (P760/P765)

CyanogenMod 11

LG Optimus L7 II (P710/P713)

CyanogenMod 11

LG Optimus L9 II (D605)

CyanogenMod 10

CyanogenMod 11

LG Optimus L90 LG-D415

CyanogenMod 11

LG Optimus L70 LG-D325 (D320, D320n)

CyanogenMod 11

CyanogenMod 12

LG Optimus L40 LG-D170

CyanogenMod 11

LG Optimus M (MS690, MetroPCS)

CyanogenMod 7

LG Optimus Мe (P350)

also see: P350 Info

CyanogenMod 6

CyanogenMod 9.1

CyanogenMod 10

CyanogenMod 10.1

LG Optimus Net

Optimus Net (P690), Gelato (P692)

CyanogenMod 10

LG Optimus One GSM Phones

Optimus One (P500), Phoenix (P505), Thrive (P506), Optimus T (P509)
also see: P500 Info

CyanogenMod 9

CyanogenMod 10

LG Optimus S (LS670, Sprint)

CyanogenMod 7

LG Optimus Sol (E730)

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 11

LG Optimus V (VM670, Virgin Mobile)

CyanogenMod 10

CyanogenMod 9

CyanogenMod 7

aospCMod — based on CyanogenMod 7

LG Optimus Slider (VM701, Verizon)

CyanogenMod 7

LG Optimus Vortex (VS660, Verizon)

CyanogenMod 7

LG Prada 3.0 (P940)

CyanogenMod 10.1

CyanogenMod 10

CyanogenMod 9

Micromax

Micromax Canvas MAD (A94) / Wiko Cink Five

CyanogenMod 11

Micromax Canvas energe (A091)

CyanogenMod 11

Motorola

Motorola Atrix 2 (MB865/edison)

CyanogenMod 11

Motorola Atrix 4G (MB860)

Cyanogenmod 11

Motorola Bravo (MB520)

Cyanogenmod 7

Motorola Cliq 2 (MB611)

CyanogenMod 7

Motorola Defy (MB525)/Motorola Defy+ MB526

CyanogenMod 9

CyanogenMod 10

Motorola DROID X (MB810)

CyanogenMod 11

Motorola DROID X2 (MB870)

CyanogenMod 7

CyanogenMod 9

CyanogenMod 10

Motorola Milestone (A853)

CyanogenMod 7

Motorola Milestone 2 (A955)

CyanogenMod 10.2

CyanogenMod 10

CyanogenMod 9

Motorola Moto G (XT1028, XT1032, XT1034)

CyanogenMod 11

Motorola Moto G (XT1028, XT1031)

CyanogenMod 12

Motorola Moto E (XT1021, XT1022, XT1023)

CyanogenMod 11

Motorola Xoom

CyanogenMod 11

Nokia

Nokia X (RM-980)

CyanogenMod 11

Nokia X2 (RM-1013)

CyanogenMod 11

Nvidia

Nvidia Shield Tablet (P1761)

CyanogenMod 12.1

Pantech

Pantech Burst (P9070)

CyanogenMod 11

CyanogenMod 10

Prestigio

CyanogenMod 11

Samsung

Samsung Galaxy Epic 4G (Galaxy S I)

CyanogenMod 10.2

Samsung Galaxy (GT-i7500)

GAOSP — based on CyanogenMod 7

Samsung Galaxy 3 (GT-i5800)

CyanogenMod 7

CyanogenMod 10

Samsung Galaxy 5 (GT-i5500/i5503)

CyanogenMod 10.1

CyanogenMod 10

CyanogenMod 7 & 9

Samsung Galaxy Alpha (SM-G850F)

CyanogenMod 12.1

Samsung Galaxy Ace (GT-S5830i/M/C/5839i)

yajnab CyanogenMod 11

Mardon modded-CyanogenMod 10.2

ankur850 CyanogenMod 10.2

Mardon modded-CyanogenMod 10.1

bieltv.3 CyanogenMod 10.1

bieltv.3 CyanogenMod 9.1

bieltv.3 CyanogenMod 7.2

SpaceCaker AOSP GB 2.3.7

Lopicl.00 CyanMobileX

Samsung Galaxy Ace Plus (GT-S7500)

CyanogenMod 10

CyanogenMod 10

CyanogenMod 10.1

Samsung Galaxy Ace 2 (GT-I8160)

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 10.2

CyanogenMod 11

CyanogenMod 11

CyanogenMod 12/12.1

Samsung Galaxy Ace 2 NFC (GT-I8160P)

CyanogenMod 10.2

CyanogenMod 11

CyanogenMod 12/12.1

Samsung Galaxy Ace 2 x (GT-S7560M)

CyanogenMod 11

Samsung Galaxy Ace 3 (GT-S7275R)

CyanogenMod 11

Samsung Galaxy Callisto / 551 (GT-I5510)

CyanogenMod 10.2

CyanogenMod 10.1

CyanogenMod 10

CyanogenMod 9

CyanogenMod 7

Samsung Galaxy Fame (GT-S6810)

CyanogenMod 10.0

CyanogenMod 11.0

CyanogenMod 12.1

Samsung Galaxy Gio (GT-S5660)

9.0.0 — based on CyanogenMod 9 (and 10)

7.2.0 — based on CyanogenMod 7

7.1.0 — based on CyanogenMod 7

Samsung Galaxy Grand DUOS (GT-I9082/9082L)

CyanogenMod 10.1

CyanogenMod 11

CyanogenMod 12

CyanogenMod 12.1

Samsung Galaxy Grand 2 Duos (SM-G7102)

CyanogenMod 11

CyanogenMod 12/12.1

Samsung Galaxy Note 2 (Galaxy GT-N7100)

CyanogenMod 12.1

Samsung Galaxy Note 10.1 (GT-N8000/GT-N801x)

CyanogenMod 12.1

Samsung Galaxy Note 10.1 WiFi 2014 Edition (SM-P600)

CyanogenMod 11

CyanogenMod 12.1

Samsung Galaxy Pocket plus S5301

CyanogenMod 10

Samsung Galaxy Pop / Mini (Tass) S5570

also see: Tass Info

CyanogenMod 10.2

CyanogenMod 10.1

CyanogenMod 10

Cyanogenmod 9

Samsung Galaxy Pop Plus / Mini (Tassve) S5570i

Rooting and installing ClockworkMod Recovery:

Firmware (incl. various Cyanogen):

Samsung Galaxy Mini 2

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 10.2

CyanogenMod 11

Samsung Galaxy R/Z (GT-I9103)

also see: I9103 Info

CyanogenMod 10

CyanogenMod 10.1

Samsung Galaxy S 4G (SGH-T959V)

CyanogenMod 10.1

CyanogenMod 10

CyanogenMod 9

CyanogenMod 7

Samsung Galaxy S III (GT-I9300)

CyanogenMod 12.1

Samsung Galaxy S III Mini (GT-I8190)

CyanogenMod 12.0

CyanogenMod 11.0

CyanogenMod 10.2

CyanogenMod 10.1

Samsung Galaxy S 5 Mini (SM-G800F)

CyanogenMod 12.1

Samsung Galaxy S Plus (GT-I9001)

CyanogenMod 7

CyanogenMod 9

CyanogenMod 9

CyanogenMod 10

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 10.1

CyanogenMod 10.1

CyanogenMod 10.2

CyanogenMod 11

CyanogenMod 12

Samsung Galaxy S Advance (GT-I9070)

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 11

Samsung Galaxy S Duos (GT-S7562)

CyanogenMod 11

Samsung Galaxy S II G (GT-I9100G)

CyanogenMod 12.1

Samsung Galaxy S II Plus (GT-I9105P)

CyanogenMod 10.1

CyanogenMod 10.2

CyanogenMod 11

CyanogenMod 12

Samsung Galaxy S III Neo (GT-I9301I)

CyanogenMod 12

Samsung Galaxy S4 (GT-I9500)

also see: i9500 Info

CyanogenMod 12

CyanogenMod 11 (GearCM)

CyanogenMod 10.2 (Old)

Samsung Galaxy S4 International LTE (GT-I9505) jfltexx

also see: Jfltexx Info

CyanogenMod 10.1

Samsung Galaxy S4 Value Edition (GT-I9515) jfvelte

CyanogenMod 12.1

Samsung Galaxy S4 Mini (SPH-L520) serranoltespr

Cyanogenmod 11

Samsung Galaxy Player 5.0 / Galaxy S Wifi 5.0 (YP-G70 USA/EU/KOR)

CyanogenMod 12

Samsung Galaxy Player 3.6 / Galaxy S WiFi 3.6 (YP-GS1)

CyanogenMod 10 (Stable)(Recommended)(Supported)

CyanogenMod 7(Outdated)(Stable)(Discontinued/Unsupported)

CyanogenMod 11 (Extremely unstable)(NOT recommended)(Unsupported/Discontinued)

Samsung Galaxy SL (GT-I9003, GT-I9003L)

CyanogenMod 7

CyanogenMod 9

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 10.2

CyanogenMod 11

Kernels

Samsung Galaxy Spica (GT-i5700)

CyanogenMod-Spica — based on CyanogenMod 6

CyanogenMod-Spica — based on CyanogenMod 7

Samsung Galaxy Tab 2 VZW LTE 7″ (I705)

CyanogenMod 12.1

Samsung Galaxy Tab 3 8″ (SM-T310/T311/T315)

CyanogenMod 10.2/11.0

CyanogenMod 12

CyanogenMod 12.1

CyanogenMod 13

Samsung Galaxy Tab Pro 12.2″ (SM-T900)

CyanogenMod 11.0/12.0

Samsung Galaxy Trend Lite (GT-S7390/GT-S7392)

CyanogenMod 10.1

Samsung Galaxy Trend Plus/Samsung Galaxy S Duos 2 (GT-S7580/GT-S7582)

CyanogenMod 12.1

Samsung Galaxy Victory 4G LTE (SPH-L300)

CyanogenMod 10

Samsung Galaxy W (GT-I8150)

CyanogenMod 9

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 11

Samsung Galaxy X Cover 2 (GT-S7710)

CyanogenMod 10.1/10.2

CyanogenMod 11

Samsung Galaxy Y (GT-S5360) (totoro)

CyanogenMod 7

CyanogenMod 7

CyanogenMod 7.2

CyanogenMod 9

CyanogenMod 9

CyanogenMod 9.1

CyanogenMod 11

Samsung Infuse 4G (SGH-i997R)

CyanogenMod 7

Samsung i927 Captivate Glide (SGH-i927)

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 10.2

CyanogenMod 11

Samsung Wave I and II (GT-S8500, GT-S8530)

Cyanogenmod 10

Cyanogenmod 10.1

Samsung Galaxy Express 2 (SM-G3815)

CyanogenMod 11

Samsung Galaxy Exhibit (SGH-T599/SGH-T599N/SGH-T599V)

CyanogenMod 11

CyanogenMod 12

Samsung Dart (SGH-T499)

CyanogenMod 7.2.0

Samsung Galaxy Pocket Neo (GT-S5312)

CyanogenMod 10.1

CyanogenMod 11

CyanogenMod 11

CyanogenMod 12

CyanogenMod 12.1

Samsung Galaxy S5 Mini (G800H)

CyanogenMod 12.1

Sharp

Sharp FX Plus (ADS1)

CyanogenMod 7

Sony

Sony Xperia X10 Mini / X10 Mini Pro / X8

MiniCM: CyanogenMod for the Xperia Mini series

Sony Xperia J (JLo)

CyanogenMod 11

Sony Xperia S (nozomi)

CyanogenMod 10.1

Sony Xperia P

CyanogenMod 11

Sony Xperia U

CyanogenMod 11

2011 Sony Ericsson Xperia Devices

CyanogenMod 10.1 / 10.2 / 11.0 / 12.0 / 12.1

All Sony Xperia Devices

FreeXperia Project

Toshiba

Toshiba AC100/Dynabook AZ

CyanogenMod 9/10

Toshiba Folio 100

CyanogenMod 7

Xiaomi

Xiaomi Mi-2/Mi-2S

CyanogenMod 10

CyanogenMod 10.1

CyanogenMod 10.2

Xiaomi Mi-2A

CyanogenMod 11

Xiaomi Redmi 1S (armani)

CyanogenMod 11

CyanogenMod 12.1

Xiaomi Redmi Note 4G (dior)

CyanogenMod 11

CyanogenMod 12

PAC ROM 5.1 based on CyanogenMod 12.1

Xiaomi Mi4i (ferrari)

CyanogenMod 12.1

Xiaomi Redmi 2 (HM2014811)

CyanogenMod 11

CyanogenMod 12

ZTE

ZTE Blade G Lux And Digicel DL800

also see: Blade Info

KonstaKANG — based on CyanogenMod 12.1

ZTE Open C

KonstaKANG — based on CyanogenMod 11

KonstaKANG — based on CyanogenMod 12

ZTE Blade

also see: Blade Info

KonstaKANG — based on CyanogenMod 10.1

ZTE Blade III

KonstaKANG — based on CyanogenMod 10.1

ZTE Carl/Racer/Freddo

RacerMod — based on CyanogenMod 7

ZTE Optik

CyanogenMod 10

ZTE P752D (Vodafone SmartChat 865)

CyanogenMod 10.2

ZTE Tureis

CyanogenMod 10.1/10.2

ZTE V9

also see: V9 Info

CyanogenMod 11.0

CyanogenMod 10.2

CyanogenMod 10.1

CyanogenMod 10

ZTE Nubia Z9 Max

CyanogenMod 12.1 (dianlujitao)

Files in an unofficial ports installation

See also

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.

Envsetup help

At a glance

Invoking $ source build/envsetup.sh from your shell adds several functions to the build environment. These are listed below with short descriptions. Reference build/envsetup.sh for the most recent list of commands.

mka Builds using SCHED_BATCH on all processors
lunch lunch <vendor_name>_<product_name>-<build_variant>
breakfast breakfast <product_name>
brunch brunch <product_name>
omnom omnom <product_name>
tapas tapas [<App1> <App2> …] [arm|x86|mips] [eng|userdebug|user]
croot Changes directory to the top of the tree
m Makes from the top of the tree
mm Builds all of the modules in the current directory
mmp Builds all of the modules in the current directory and pushes them to the device
mmm Builds all of the modules in the supplied directories
mmmp Builds all of the modules in the supplied directories and pushes them to the device
cgrep Greps on all local C/C++ files
jgrep Greps on all local Java files
resgrep Greps on all local res/*.xml files
godir Go to the directory containing a file
cmremote Add git remote for CM Gerrit Review
cmgerrit A git wrapper that fetches/pushes patch from/to CM Gerrit Review
cmrebase Rebase a Gerrit change and push it again
aospremote Add git remote for matching AOSP repository
mkap Builds the module(s) using mka and pushes them to the device
cmka Cleans and builds using mka
reposync Parallel repo sync using ionice and SCHED_BATCH
repopick Utility to fetch changes from Gerrit.
installboot Installs a boot.img to the connected device
installrecovery Installs a recovery.img to the connected device

Helpful Tip

See also Building Basics

Commands in greater detail

A few important functions that $ source build/envsetup.sh adds to the build environment are detailed below.

mka

mka improves upon make by using sched_tool to make full use of all the CPU threads available on your machine. This is usually equal to the number of cores in your CPU, unless you have HyperThreading, in which case it is twice the number of cores in your processor.

breakfast

Breakfast is used to prepare the build environment for a specific device. You can use it in one of two ways:

$ breakfast [device name]

or

$ breakfast

The first method prepares a device for building. If the device tree is not found locally, roomservice fetches the device tree and its dependencies from CyanogenMod’s GitHub repository (only officially supported CyanogenMod devices, of course). If you do not specify a device, a list of available devices that can be built is output.

brunch

brunch is equivalent to

$ breakfast [device name] && mka bacon

brunch sets up your build environment for a device and commences the build process of a full CyanogenMod (unofficial) release that can be installed through recovery.

lunch

lunch is used like breakfast, except you can specify non-official devices or non-standard builds for your device. If building for an unofficial device, you must already have the device tree and all of its dependencies synced locally. The non-standard builds include special debug versions (e.g. eng) and also allows you to build CyanogenMod for use on the Android Emulator. Unlike breakfast, lunch makes no assumptions with regard to device configuration locations and formats, so it will scan the entire tree for matching options (depending on the number of locally available devices, this may take a significant amount of time). To build after running lunch, simply issue the command mka. No bacon here… sorry.

List of all commands in envsetup.sh

  • addcompletions
  • add_lunch_combo
  • aospremote
  • breakfast
  • brunch
  • cgrep
  • check_product
  • check_variant
  • choosecombo
  • chooseproduct
  • choosetype
  • choosevariant
  • cmgerrit
  • cmka
  • cmrebase
  • cmremote
  • cproj
  • croot
  • dopush
  • eat
  • findmakefile
  • gdbclient
  • get_abs_build_var
  • getbugreports
  • get_build_var
  • getlastscreenshot
  • getprebuilt
  • getscreenshotpath
  • getsdcardpath
  • gettargetarch
  • gettop
  • godir
  • hmm
  • installboot
  • installrecovery
  • isviewserverstarted
  • jgrep
  • key_back
  • key_home
  • key_menu
  • lunch
  • _lunch
  • m
  • makerecipe
  • mka
  • mm
  • mmm
  • omnom
  • pid
  • printconfig
  • print_lunch_menu
  • repodiff
  • repolastsync
  • reposync
  • repopick
  • resgrep
  • runhat
  • runtest
  • set_java_home
  • setpaths
  • set_sequence_number
  • set_stuff_for_environment
  • settitle
  • smoketest
  • startviewserver
  • stopviewserver
  • systemstack
  • tapas
  • tracedmdump

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.

After Build

I’ve built CM Successfully. What’s Next?

In several forums, people have been asking what to do AFTER they’ve completed their builds successfully. What’s next? Once you go from source code to .zip file, how to make improvements, test code, and create your own modifications?

This page is dedicated to this “What’s Next?” question for new developers.

Note:

Note: This page is very much a WORK IN PROGRESS. Feel free to add to this page

Enable Developer Options

Once you boot your shiny new image, as a developer, you may want to have some more information then a regular user. As of Android 4.2.x the DeveloperSettings are now hidden and are required to be enabled again. This is done by Going into Settings -> About Phone/Tablet Scroll down to the build number tag and tap 7 times on it. That reveals the developer settings once more and allows you to start the development tools from the developer settings.

Try out submitted, but as-yet unmerged code

Here’s a quick walkthrough to pulling and trying out code submissions from Gerrit, the source-review system used by CyanogenMod.org.

After you’ve re-built CM with these experimental changes, you can sign up for Gerrit and offer your comments and any coding improvements.

Build with other toolchains

A toolchain refers to the compiler, linker, and other build tools which together are used to compile Android. There are alleged improvements in file size and/or performance from building with non-standard toolchains.

Mix-and-match git repositories

If you, say, have source code for an app that you want to automatically add to the build, or maybe you’d like to try a different kernel. You can add/remove or swap out the source code so that repo sync automatically updates from YOUR custom repositories rather than the official one.

You can learn more about adding your own apps here. Or find more info about using a local_manifest to adjust which source code repositories are synced on your computer.

Add a translation

If you are multi-lingual, you can help the project by translating commands and other verbiage into other languages.

You can find a complete guide about translations here: Doc: Translation Guide

Make Other Original Modifications…

First, familiarize yourself with the various directories in the source code. If you are a programmer (or even if you’re just learning), you can look at the files and experiment, changing files and recompiling to see what happens.

If you make a change to a file, you can generally “revert” by issuing the following command from within the directory of the file you changed:

git reset --hard

This should reset all the file change back to the last time you did a repo sync.

To rebuild only the module which you are changing (ie, the stuff in your current directory), you can usually do this:

mm -B

to rebuild all the files for this module and send the results to $OUT.

Helpful Tip

Be sure to read Building Basics for a list of must-know commands that will save you hours when playing with the source code.

Submit your changes back to CyanogenMod

Once you’ve made some changes that you think will improve the code, you can submit your code back to CM for inclusion in the next version(s). To do so, check out these instructions on submitting code back via Gerrit.

Start a port to a new device!

One of the best way to learn about Android is to get CM running on a new device that has never run CM before. It’s pretty satisfying to see the CM logo boot up on a new device. If you like, you may find it easier to start with a device that has an older version of Android (CM or otherwise) that hasn’t yet been upgraded to the latest. You might be the one to get the newest version working!

See here for a basic outline of how to get a new port started!

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.

The CM source

Each of the main directories has different stuff in it. Here are just a few off the top of my head to get you started. The description is fairly flippant and incomplete and perhaps inaccurate, and I’m going to skip some directories because it’ll get unwieldy (and I don’t know necessarily what every directory does), but it’s just to give you a vague idea of some of the more important folders…

Note:

This is seriously all just typed off the cuff, without really much thought. It’s certainly an incomplete description. The best way to discover what to play with is just to start exploring, changing stuff, and building. The directory names are usually indicative of what you’ll find inside, and the best source of documentation is the code itself.

bionic/

Bionic is the Android mobile-friendly version of libc. You generally don’t need to touch anything in here. Lots of cpu-specific stuff and better not to stick your nose in here, although Linaro did manage to speed up performance on some devices by tweaking various things. If you’re a coding ninja, you can play with this. But on the other hand, if you were a coding ninja you probably aren’t reading this.

build/

The scripts and various files that are used for the actual build process. Take a look in here if you’re curious what steps are taken to make all the parts of Android compile, as well as various “make” commands. (Some of the flags used for compiling have been further enhanced by CyanogenMod for Google non-supported platforms.) Some familiarity with GNU make and the Makefile build system are helpful. There’s also documentation here and here.

bootable/

Among other things, the source for ClockworkMod recovery is in here.

dalvik/

Dalvik is the virtual machine that runs the java apps. It’s how you can write an app and it’ll run on any android machine, regardless of the underlying architecture. In the “Lollipop” 5.0 version of Android, Dalvik was replaced with ART, the Android Run Time.

art/

ART (Android RunTime) is a replacement for Dalvik introduced in Android 4.4 (KitKat). Rather than “just-in-time” compilation, ART pre-compiles every app in advance for faster execution later.

device/

device/ contains part (if not all) of the board support packages and configurations for a ‘particular’ device, and is organized as device/<vendor>/<codename>. So the files for the Nexus 7 tablet are under device/asus/grouper/, the files for Nexus 4 phone are under device/lge/mako/, etc. The device/ folder, therefore, is where to put the customized stuff for EACH particular device running Android. So– if you want to do a port of Android for a particular device that currently has no source, you should probably start by finding a similar device (with a similar underlying platform) and use it as a “base” for modifying for that device. Do take a peek into device/asus/grouper to see the various files that are used to build for the Nexus 7 and compare with other devices.

Note:

Many of the xml files that control Android core functionality and verbiage (strings) can be overridden by new .xml files that you place in the device-specific device/[vendor]/[codename]/overlay folder.

Note:

Just downloading the source code for CyanogenMod does *not* download the device/ directories for every single device that has been ported to CyanogenMod (that would be a LOT of extra folders you probably don’t need or want). To get the device folder for a particular device, use the breakfast command from the root of the source code. So to get the grouper device (and kernel) folders, you’d type breakfast grouper and then repo sync and it should appear.

docs/

Contains the source code for the Android Open Source website.

external/

This is where non-android specific utilities go. Lots of the stuff in here are just regular open source projects that are used by Android (or CyanogenMod) and just have the Android.mk make files to work with the Android build system.

frameworks/

This refers to the core Android frameworks. It’s the stuff that makes Android, Android. The frameworks contain the Android user experience and the abstracted “hooks” that programmers use to build Android apps. So, for example, this folder contains the Java windows-manipulation and activity stuff and java sound support and Android graphics layers and Android media stuff and UI as well as services and basically the Android API in general. There are also some platform-specific optimization here as well that CyanogenMod adds for Qualcomm, OMAP, and other manufacturers to get the best performance out of specific architectures. This folder has many different parts, but if you want to play with the Android platform itself and its basic functionality, this is probably the place to look.

hardware/

Platform/hardware-specific libraries and such go in this folder. For example, the code in hardware/ti is used to support devices using a chipset by Texas Instruments.

kernel/

Like device/, kernel/ directories are organized like kernel/<vendor>/<codename> and inside there you’ll find the source for the kernel. This source may be downloaded “on the fly” by the CyanogenMod build system. See the note in the device/ section above about using the breakfast command to auto-include a particular device’s kernel/ directory when you repo sync to auto-update the codebase.

ndk/

See here. Tools for allowing cross-platform C code to be included in Android apps (as JNI shared libraries, apparently). Used if you’re writing C-based apps, but I’ve never used any of this or even poked my nose in there. See /ndk/docs/OVERVIEW.html for more.

out/

The output of your build will go in here by default. When you type cd $OUT after building, you’re actually getting a shortcut to out/target/product/<devicename>. This is the only folder that should have stuff added to it (or changed) when you’re doing a build. stuff that will become the system folder on your device goes in system. Stuff that will become your ramdisk goes in root. The various stages and temporary scripts used to create your recovery.img and boot.img and your kernel go here as well. The object files get built into the obj directory. And there are generic compiler tools and other build (such as from the ndk) and such that get built in out/ as well. When you do a make clobber, you’re just getting rid of out/.

packages/

packages/apps/ is where Android standalone apps, such as the Settings app, the Browser, the Launcher (in CM10’s case it’s called Trebuchet), and other apps go. Note that many of these apps are integrated directly with functionality within the frameworks/ directory. So the settings changed in the Settings app will correlate to stuff in the frameworks/ folder. Non-app packages such as input methods and wallpapers go here as well.

prebuilt/ (and prebuilts/)

These folders contain prebuilt toolchains for cross-compiling on linux and darwin (MacOS X) and a few tools for Windows. Cross-compiling allows you to build Android for an architecture (such as ARM-based CPU) from another architecture (such as x86_64).

system/

Lower-level linuxy system stuff such as netd, fastboot support, the shell (which you can use to type commands into your device), etc. are here.

vendor/

The /vendor folder contains stuff particular to a vendor build such as CyanogenMod. It’s also the place where proprietary blobs are extracted from the device, again using the same vendor/device codename convention as under device/.

Based On: http://forum.xda-developers.com/showthread.php?p=30802167#post30802167

See also

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.

About Edify

What is “edify”?

edify is a simple scripting language that is used to install CyanogenMod and other software from a .zip file. The edify script does not necessarily need to be used to flash firmware. It can be used to replace/add/delete specific files, or even format partitions. Typically, an edify script is run in recovery mode when the user chooses to “flash a zip”.

Note: Trivia

The edify language is Google’s replacement of another scripting language, called “Amend”. True story.

edify files

There are two primary files for edify. These files are found within the .zip file in the META-INF/com/google/android directory. They are:

  • update-binary — the binary interpreter that is executed when the user selects the .zip to be flashed, typically from recovery mode. This binary loads the updater-script into memory and follows the instructions contained within.
  • updater-script — the installation script, which is a text file.

Learning edify syntax

Play with existing scripts

One way to learn about edify is by examining and modifying existing edify scripts. Unpack a flashable .zip file and pay attention to the directory structure. Examine the script in META-INF/com/google/android; you should be able to figure out it works. Then, try your hand at creating a very minimal installation package, for instance something that installs a small text file to /data/local/tmp/ and test it on your device.

Read the edify source code

Because the source code to edify is open and available, anyone can view how the interpreter works. This gives you a clear understanding of the proper syntax and available commands.

CyanogenMod’s source code is available on Github. Build instructions, including how to download the full source code, is available for official supported devices on the device build guides page.

The main tool used to generate the edify scripts is edify_generator.py and the source for the language interpreter is in the android_bootable_recovery repository.

Note:

An overview of edify’s syntax can be found in the README within the source.

Helpful Tip

Even if you don’t understand how to program, you can probably glean a lot of good information by scanning the source code and reading the comments in the code.

Additional resources

There are a few online resources that discuss the edify language. These may be out of date, however. So the source code (discussed above) should be the final authority about which commands are available to you, and how to use them.

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.

Devs

Though started as a one-man project, CyanogenMod has turned into a community-driven mod with several members providing support and working on various items within (and outside of) the ROM.



Core Team

Steve Kondik

Founder and main developer for the CyanogenMod project. He currently maintains the AT&T & T-Mobile variants of the Samsung Galaxy S III vendors. He has formally maintained the HTC Dream/Magic, HTC Evo 4G, HTC Glacier, HTC Espresso, HTC Vision, LG G2x & Nexus One vendors.

Abhisek Devkota

Head Developer Relations, Public Relations Liaison & Forum Administrator.

Ricardo Cerqueira

Head of RIL & LG Development.

Brint Kriebel

DevOps and Release Manager

Community Staff

PsychoI3oy

Maintains the buglist, occasionally fixes bugs & moderates the forum.

RayWalters

Community Support Engineer – Works with users in the forums, IRC and g+ communities. Also works with PsychoI3oy with the nightly regression project.

bsxtn

Community Engagement, Wiki and Forum Administrator

Maintainers

Shareef Ali

Maintains the Samsung Galaxy S III (D2) devices

Jens Andersen

Maintains the Asus Transformer and Asus Transformer Prime. He also helps with the Danish translations.

attn1

Maintains the HTC Aria, HTC Incredible 2 & HTC Incredible S vendors.

Danny Baumann

Maintains the Motorola Defy and Oppo N3 vendor. He also helps with the German translations and Java core apps.

Adnan Begovic

Maintains the Samsung Epic, Samsung Galaxy SIII(d2spr & d2cri) vendors.

Humberto Borba

Maintains the Samsung Galaxy Tab (Brazil) and Samsung Galaxy Tab (Latin America) vendors.

Martin Brabham

Maintains the Motorola Droid vendor.

Robert Burns

Maintains the Galaxy Nexus (Sprint) & Nexus S 4G vendors.

Ricardo Cerqueira

Maintains the Commtiva Z71, Geeksphone One, Geeksphone Zero & LG Optimus 2X vendors.

Giulio Cervera

Maintains the Sony Xperia T, V, Z, ZL, Tablet Z, Z1, Z Ultra vendors.

Arne Coucheron

Maintains the HTC Tattoo & HTC Wildfire vendors.

Jacob Crawley

Maintains the HTC Wildfire & ZTE Blade vendors.

Simon Davie

Maintains the HTC Desire S vendor.

Rafael Kalim Delgado

Maintains the HTC Click, Samsung Nexus S / Galaxy Nexus (GSM) and Asus Nexus 7.

Chirayu Desai

Contributes and Maintains the Sony XperiaDev and Samsung Galaxy Tab (GSM) vendor.

Austen Dicken

Maintains the Motorola Droid & Motorola Droid X vendors. Formally maintained the Barnes & Noble Nook Color vendor.

Aaron Echols

Maintains Asus Transformer Pad Infinity and LG v909 startablet

fattire

Maintains the Barnes & Noble Nook Color and the Nexus 7 tablets

Diogo Ferreira

Maintains the HTC Desire (CDMA/GSM) vendor.

Shane Francis

Maintains the Advent Vega, Asus Transformer, Asus Transformer Prime & HTC Sensation vendors.

Tom Giordano

Maintains the Huawei U8220 & ZTE Blade vendors.

Nelson Giordano

Maintains the Motorola Cliq vendor.

Hendrik Hagendorn

Maintains the LG G3.

Sean Hewitt

Maintains the Motorola Xoom vendor.

Daniel Hillenbrand

Maintains the International versions of the Samsung Galaxy S II, S III, Tab II, Note II, the Sony Xperia T, V, Z, Tablet Z and the HTC One vendors.

Alexander Hofbauer

Maintains the HTC Legend vendor. He also helps with the German translations.

Pál Zoltán Illés

Maintains the HTC Doubleshot and HTC Endeavoru vendor.

Alin Jerpelea

Maintains all Sony devices.

jt1134

Maintains the Samsung Fascinate, Samsung Galaxy Tab (CDMA), Samsung Mesmerize & Samsung Showcase vendors.

Esa Laukkanen

Maintains the HTC Hero (GSM) vendor.

Tony Layher

Maintains the HTC Incredible vendor and multiple Samsung devices.

Renaud Lepage

Maintains the Motorola Photon 4G vendor.

Emilio López

Maintains the Motorola Atrix 4G & Motorola Cliq XT vendors.

Takazumi Matsumoto

Maintains the Motorola Xoom vendor.

Matt Mower

Maintains the HTC DROID Incredible 4G LTE and HTC One for Verizon.

Sean Neeley

Maintains the Motorola Cliq XT vendor.

Jason Parker

Maintains the HTC Doubleshot vendor.

Dan Pasanen

Maintains the Samsung Galaxy S3 (d2), Samsung Galaxy S4 (jf), HTC Droid DNA (dlx) and HTC One 2014 (m8).

Shane Passmore

Maintains the HTC Vivid 4G (holiday), the HTC One XL (evita), the HTC One Mini (m4), the HTC One (m7) and HTC One 2014 (m8).

Pawit Pornkitprasan

Maintains the Samsung Galaxy S vendor.

Tanguy Pruvot

Maintains the Motorola Defy vendor. He also helps with the French translations, busybox and bootmenu.

Richard Ross

Maintains the HTC Evo 3D (CDMA), HTC Evo 4G & HTC Evo Shift 4G vendors.

Jose Salgado

Maintains the Motorola Cliq vendor.

Nicholas Semendyaev

Maintains the Motorola Defy vendor.

Seth Shelnutt

Maintains the LG Optimus G for Sprint and Att along with LG G2 for Sprint

Jon Stanford

Maintains the Motorola Droid 2 vendor.

Josh Stone

Maintains the HTC Incredible vendor.

Brinly Taylor

Maintains the Xperia SP/T/V and HTC Desire 601 vendor.

Jurica Vukadin

Maintains the HTC One Mini & One Mini 2 vendor.

Bryce Walter

Maintains the B&N Nook Color

Dane Wagner

Maintains the Motorola Cliq vendor.

Michael Webster

Maintains the Motorola Droid vendor.

Jared Wechsler

Maintains the Motorola Backflip vendor.

Thomas Wendt

Maintains the HTC One X (endeavoru) vendor.

Willi Ye

Maintains the HTC Desire 816.

Vaibhav Bhasin

Maintains the HTC Desire 816.

James Zdziebkowski

Maintains the HTC Aria vendor.

Erwan Leboucher

Maintains the LG G4 and the LG V10 (Tmobile).

Andreas Blaesius

Maintains the Samsung Galaxy Tab 2

Dániel Járai

Maintains the Google Galaxy Nexus & Samsung Galaxy Tab 2

General Developers

Danny Baumann

Frameworks developer

Adnan Begovic

Platform SDK Lead and developer

Nathan Grebowiec

General Java developer.

Danesh Mondegarian

Works on development of the CyanogenMod Framework.

Prashant Somashekar

General kernel expertise. He also maintains the Viewsonic G Tablet vendor.

David van Tonder

Works on development of the CyanogenMod Framework.

Björn Lundén

UI/UX team member & drawable designer.

Nebojsa Cvetkovic

UI/UX team member. Main developer of Trebuchet. He also maintains the Samsung Galaxy Note IIand Oppo Find 5.

Translation Team

Michael Bestas

Marco Brohet

Wiki Team

Drew Suarez

Lead maintainer of the wiki.

fattire

Maintains all sections of the CM wiki.

Shawn Alty

Wiki maintainer. Global forum mod.

Amod Mulay

aka White
Helps maintaining Wiki.

Flo Edelmann

aka Flo2154
Helps maintaining the wiki, programmed the Devices page with its filters, redesigned the Main Page, each device’s page and others.

Former Members

Benji Hertel

Retired.

Christopher Lais

Worked on development of kernels & general expertise. He also maintained the HTC Glacier vendor.

Keyan Mobli

Retired.

Jef Oliver

Retired.

Prash

Retired.

Soh Yuan Chin

Worked on development of the Contacts & Browser apps.

Sven Dawitz

General developer. He also developed the Tablet UI overhaul.

cicada

Formally maintained the Barnes & Noble Nook Color vendor.

Brian Crook

Handled the HTC Dream EBI1 kernels.

Cytown

Worked on development of the Phone app.

Laurent Dinclaux

Formally maintained the HTC Hero (GSM) vendor.

Ameer Ghouse

Formerly maintained the HTC Hero (CDMA) vendor.

Markus Guidry

Retired lead editor of the CM Wiki.

Chris Soyars

Retired.

Legacy Contributors

atinm

Maintains the Samsung Captivate & Samsung Galaxy S II vendors.

BertStudio

APP developer and maintains the Nexus devices. He also helps with the spanish translations

Brian Azar

Maintains the Motorola Xoom vendor.

Brandon Bennett

Maintains the Barnes & Noble Nook Color vendor.

{{Twitter|AndroidNemith} }

Daniel Bateman

Maintains the Samsung Vibrant vendor.

Flávio Coutinho da Costa

Maintains the Motorola Backflip vendor.

Andrew Dodd

Maintained the Samsung Galaxy S II (AT&T) and Samsung Galaxy Note vendors.

Dusty Einglett

Maintains the Motorola Droid 2 Global vendor.

Wes Garner

Maintains the HTC Espresso vendor.

David Ferguson

Maintains the Samsung Galaxy II Skyrocket

Justin Goodell

Maintains the Motorola Droid 2 & Motorola Droid 2 Global vendors.

Erik Hardesty

Maintains the Barnes & Noble Nook Color and HP Touchpad.

Andrew Mahone

Maintains the Samsung Captivate & Samsung Galaxy S II vendors.

TheDeanius

Founder of CyanogenMod channel on irc.freenode.net.

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.

Community

The CyanogenMod community

Who we are

Where to ask questions (and meet others)

Yearly events

  • Big Android BBQ – every October, this is a chance for CyanogenMod and other Android enthusiasts to get together and hang out.
  • Google I/O – if you’re lucky enough to get tickets, the Google I/O event is known for amazing developer sessions and usually a free device giveaway

How to contribute

  • CyanogenMod code review (a.k.a “Gerrit”) – Gerrit is a web based code review system for projects using the Git version control system. To learn more about Gerrit and Git, check out the Dev Center.

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.

CM IRC channels

Intro to IRC

IRC stands for Internet Relay Chat. It is a way you can group-chat in real-time with dozens of other CyanogenMod users and developers in online rooms called channels.

There are several IRC networks on the Internet. All CyanogenMod IRC channels are hosted on the Freenode network. The preferred connection to Freenode is through chat.freenode.net, or you can pick a server from their list.

You can connect to the IRC network using a free, dedicated IRC program such as mIRC, X-Chat, HexChat, BitchX, Smuxi, etc. There are many such IRC programs available for OS X, Windows, and Linux.

Additionally, there is a web-interface to IRC that can be accessed using only a web browser via the Freenode Web Chat page.

Some channels require you to register an alias (your username, or handle) before you can enter. This security measure makes sure every participant has a unique name to avoid impersonation. Most channels do not have this requirement.

Register an alias/nick on NickServ

This section is a brief how-to register a nick on NickServ — the nickname (or “nick”) server associated with Freenode. It is necessary to register your nickname to access the #cyanogenmod and #cyanogenmod-dev channels.

To register your nickname:

  1. Click on the following link to connect to irc.freenode.net. Specify a unique nick that you will use permanently.
    Freenode Web Chat
  2. Enter the following command in the message bar:
    /msg NickServ register <password> <email-address>
  3. You should receive an email from NickServ at the email address you provided. Follow the instructions in that email.
  4. For future logins, you can enter the following command to authenticate your registered nick:
    /msg NickServ identify <password>
  5. To join the #cyanogenmod channel, enter this command
    /join #cyanogenmod

CyanogenMod channel list

Note that the name of every channel begins with a # character to help identify it.

#cyanogenmod

This is the main CM support channel. If you need help installing or troubleshooting your device, this is the place to go. This channel requires you to have a registered nick.

#cyanogenmod-dev

This is the main CM developer channel. This channel is for everyone who needs help building CyanogenMod for their device or porting it to a new device. This channel requires you to have a registered nick. This is a developer-only channel. This is NOT for CM installation support.

#cm-wiki

This is the main CM channel for wiki-issues. Users are not required to register a nick to access this channel. This channel is meant only for wiki related topics. No CM support will be offered.

Other channels with ties to CyanogenMod

These channels aren’t maintained by CyanogenMod, but are related to CyanogenMod sub-projects and generally owned by the respective teams.

#teamhacksung-support

This is the support channel for all teamhacksung supported devices. Teamhacksung is a group dedicated to development of CyanogenMod on Samsung devices.

#cm-htc

This is the support channel for currently supported HTC devices running CyanogenMod. This includes the s4 series (evita, fireball, jewel, ville), the m7 series (GSM m7, m7spr, m7vzw), the t6 series (GSM t6, t6spr, t6vzw), m4, m8, memul and zara. There is nobody available to help with older devices that do not receive the latest version of CyanogenMod.

#cyanogenmod-touchpad

This channel supports the HP touchpad (codename: tenderloin).

#nookcolor

As the name suggests, this channel is used to discuss the Nook Color (encore) tablet.

#nook-tablet

Ditto, only for the Nook Tablet.

#twrp

This is the official support channel for TWRP (Team Win Recovery Project).

#android-root

This channel is for non-CyanogenMod specific issues, such as rooting your stock ROM and discussions about custom ROMs.

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.

Release Versioning

CyanogenMod has grown considerably since Cyanogen’s earliest builds in the Android Eclair (Donut even?) days. The release versioning has changed a few times since then. This page covers the two most recent release structures: CyanogenMod 9 – 10.2 and the current CyanogenMod 11 – 13.

What’s in a number?

You’ve probably noticed that CyanogenMod’s version number isn’t the same as Android’s version number. Here’s how CyanogenMod’s versioning relates to Android’s:

CyanogenMod A.B

  • A signifies the major version. These are numerically equivalent to the named Android releases, which are alphabetical. For example, Android Jellybean, with J being the 10th letter of the English alphabet, results in a major version number of 10 for CyanogenMod.
  • B [optional] signifies the minor version. This number is incremented based on the corresponding minor version number of Android. The first release of a new Android name (e.g. Jellybean) gets a major version number with no minor version. If Android subsequently increments their minor version number without changing the name, then CyanogenMod picks up a minor version number. For example, Android 4.1, 4.2, and 4.3 were all called Jellybean, with CM 10 equating to Android 4.1, CM 10.1 to Android 4.2, and CM 10.2 to Android 4.3.

CyanogenMod 9 – 10.2 build tags

CyanogenMod 9 through 10.2 were qualified with tags: Experimental, Nightly, Release Candidate, and Stable. The Snapshot tag was added with the introduction of M builds in CyanogenMod 10.2. These tags were meant to indicate a build’s suitability for general use.

  • Nightly: usually generated every 24 hours, experimental, newest features, unstable
  • Experimental: testing version requested by device maintainers to evaluate specific changes
  • M Snapshot: milestone snapshot, more stable than a nightly but potentially some issues
  • Release Candidate: last builds before stable release, few minor issues, mostly stable, and safe for daily use
  • Stable: most stable version available, all or nearly all issues resolved

The Release Candidate and Stable tags bring with them considerably high expectations from users. For this reason, device maintainers and developers involved with CyanogenMod had one simple rule: No ETAs.

Stable build tags carry additional minor version numbers. Consider CyanogenMod A.B.c.d, where A.B is as described in the What’s in a number? section. Then,

  • c signifies a large number of bugs were fixed for a new stable release. For example, CM 10.2 had two major Stable releases: CM 10.2.0.0 and CM 10.2.1.0.
  • d signifies a bugfix or hotfix version. This number is less often seen, but signals a critical bug fix that was identified as required after a stable release has been issued. Example: CM 10.2.1.1. This version can vary between devices.

CyanogenMod 11 – 13 Community build tags

CyanogenMod 11 – 13 Community releases reduce the number of build tags to just two: Nightly and M Snapshots. The tag names have been retained for historical reasons, but this is really just a basic two channel release system:

  • Development channel: (a.k.a. Nightlies) usually generated every 24 hours, experimental, newest features, unstable
  • Release channel: (a.k.a. Snapshots) generated once every 1-2 months, suitable for daily use, devices signed-off by maintainers for inclusion

The release channel is built from a separate stable branch, cut from the main branch at a point deemed feature-complete and reliable. A small subset of code reviewers have the ability to merge commits into the stable branch after the cut has been made; i.e. everything that goes to the stable branch receives extra scrutiny.

More information on the rationale behind the Development/Release build tags can be found in the CyanogenMod 11.0 M6 Release blog post.

CyanogenMod 11 Installer build tags

The CyanogenMod Installer has its own additional versioning to that described in the What’s in a number? section. The syntax is A.B-InstallerEFGH##I. Here, EFGH##I is a ROT13 formatted version string (non-numerical places rotate 13 characters). This is best explained with a real example:

11.0-InstallerXNPQ09O: XNPQ09O –> KACD09B
  • The first letter signals the Android version: K stands for KitKat
  • The second letter counts, starting from zero, the minor version number: A stands for 0
  • The third letter denotes the type of keys used for signing: C for private keys held by Cyanogen Inc. and T for test-keys (Android’s default debugging keys)
  • The fourth letter signals the build type: U stands for -user, D for -userdebug, and E for -eng
  • The two numbers tell the week of the year: 09 is the 9th week of the year
  • The letter at the end is the day of the week denoted by a letter: B stands for 2, and Monday is the 2nd day of the week

Build types and signing

Most CyanogenMod Community and Installer releases are -userdebug builds, signed with test-keys (Android’s default debugging keys). From the user perspective, this means powerful functionality can be baked right into the ROM. Root, performance settings, debugging utilities, and write access to the /system partition are the notables here. With great power comes great responsibility; it is up to the user to be careful with these utilities and settings.

Devices with CyanogenMod pre-installed have -user builds, signed with private keys held by Cyanogen Inc. These builds are meant for the general public and pass all or very close to all of Android’s CTS requirements. -user builds are required by Google to allow Google applications to be pre-packaged with the device (and even then, only at Google’s discretion). Safety and security is a priority, so root is not available in these builds.

External links

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.

Support

CyanogenMod User Help

We have written several end-user support articles to help you familiarize yourself with CyanogenMod and its operation.

Getting Started

ClockworkMod Recovery

How To Use CM

  • The Profile Manager — A CM 10 feature (in Settings->Profiles) to manage groups of settings.

Reporting Bugs

Your Computer And CyanogenMod

Modifying CM

  • “Bare Bones” Device Guide – If your device has very little internal storage, this (older wiki) guide may help you determine which system apps you can safely delete to preserve space.

Concepts & Vocabulary

  • Concepts: “rooting”, “sideloading”, “jailbreaking”, “flashing”, “unlocking”, “unlocking a bootloader” explained!
  • More concepts: kinds of memory– “RAM”, “Internal storage”, etc. and common Android “partitions”/directories
  • Glossary of Common Terminology

Contributing

Additional Support

Having an issue getting CyanogenMod on your device? Stumped on how to get past a build error? Use the links below to connect with other CyanogenMod users.
Support is provided on official CyanogenMod Stable and Release Candidate builds only.

Even More Help

  • Community – Meet the gang and learn about CM culture, get-togethers, and more.

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.