ClockWorkMod Instructions

Navigating through the menus

Different devices have different numbers of physical buttons– power buttons, menu buttons, home buttons, back buttons, volume keys, etc.

Using Physical Keys and Buttons

Typically, the volume keys are used to move up and down the menu and, if available, a home button is used to select the item. If the home button does not exist, the power button is frequently used to make the selection. On devices in which there is a home button, the power button is usually used to go “back a menu”. On devices without a home button, there is usually a “++++Go Back++++” option at the bottom of the list.

Touch options

On newer versions of ClockworkMod recovery, menu items can be selected simply by touching on the item with a finger.

Backup and Restore Your Device

Note:

ClockworkMod’s backup/restore feature will generally only back up the /system, /data, /cache, /sd-ext, and /dalvik-cache areas. Other partitions such as /emmc, /sdcard, and /media won’t be backed up. In fact, the backed up system will typically be saved to the /sdcard/ partition in the /clockworkmod/backup/ directory, which, depending on your device, may or may not be actually located on a physical removable SD card.

Making a backup

Before you begin, ensure you have sufficient space for your backup.

Make sure that you do not have a password or screen lock pin when you backup your data

  1. Boot into Recovery Mode
  2. Select Backup and Restore
  3. Select Backup
  4. Follow on screen directions to complete the backup.

Restoring a backup

  1. Boot into Recovery Mode
  2. Select Backup and Restore
  3. Select Restore (or Advanced restore if you wish to restore only a portion of your device.)
  4. Follow on screen directions to complete the backup.
  5. Select your ‘Device-ID’ from the list (You will most likely only have one device listed)
  6. Select the backup you want to restore (Latest should be last on list)
  7. Follow on screen directions to complete
  8. Wait for it to complete.

Additional Commands

Most commands are fairly self-explanatory. Here are a few, with some definitions.

  • reboot system now — this will reboot the system into its normal boot mode
  • install zip from sdcard — This is used to flash a .zip file, located on the /sdcard partition, which can be used to install new versions of CyanogenMod among other things.
  • apply update from sdcard –Installs the update.zip located in the root of your SD card
  • wipe data/factory reset — Obvious – clears everything (except your SD card, hopefully)
  • wipe cache partition — erases and formats /cache
    • apply /sdcard/update.zip — Installs the update.zip located in the root of your SD card
    • choose zip from sdcard — Lets you browse for and pick the update or installation .zip file
    • toggle signature verification — Turns zip package signature requirement on/off
    • toggle script asserts
    • advanced restore — Allows you to select a backup, as well as select which portions of the backup to restore (such as the /boot, /system, /data, /cache, /sd-ext)
  • mounts and storage — this allows you to mount or unmount the various partitions. Advanced users can access files on mounted partitions through adb.
    • unmount /cache
    • mount /data
    • unmount /sdcard
    • mount /system
    • mount /sd-ext
    • format /cache
    • format /data
    • format /sdcard
    • format /system
    • format /sd-ext
    • mount USB storage
  • advanced — more advanced options
    • reboot recovery — reboot the device back into recovery mode
    • reboot bootloader — reboot the device to the bootloader
    • power off — power down the device
    • wipe dalvik cache — wipe temporary files used by the Dalvik virtual machine. The Dalvik virtual machine is the ‘sandboxed environment’ which runs Android apps written in Java. This is generally safe to perform.
    • report error — copies recovery.log to /sdcard/clockworkmod/. This log can then be submitted to developers using the ROM Manager application.
    • key test — allows you to test your hardware keys on the device
    • show log — outputs the current recovery.log to the screen
    • partition </path> — allows you to create an ext3 or ext4 partition on your SD card. Allowed sizes range from 128M to 4096M.
    • toggle loki support — enables flashing kernels on some Samsung devices
    • wipe battery stats — if you are having misreported battery strength, it may be useful to remove the battery stats history file [this feature was removed beginning with version 6.0.2.0 due to user misunderstanding over its use]
    • fix permissions — resets system permissions back to their default values [this feature was removed beginning with version 6.0.3.5 due to its placebo effect as a cure-all]

Special Notes

Unofficials: Some devices do not have an official ClockworkMod recovery available. If this is the case for your device, you can often find unofficial recoveries on one of the various Android forum websites. Unofficial simply means they are not maintained by CyanogenMod and assistance may not be available by CyanogenMod team members. Aside from ClockworkMod, other unofficial recoveries include, but are not limited to TWRP and Philz-Touch.

Encryption: ClockworkMod does not currently support reading encrypted partitions. It therefore cannot create backups of an encrypted /data partition and will report an error when attempting to perform a full backup. If you would like to keep using ClockworkMod, the only option is to format /data, which will wipe all of your apps and settings. Alternatively, TWRP supports reading from and writing to encrypted /data partitions.

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

Debugging With Logcat

A bit about logcat

So for all of you who don’t know about adb logcat, it’s probably time we talked about it.

When Android is running, it’s generating all kinds of system messages. You see, programmers/developers can optionally output status information (or errors or debugging notes) in real-time to a system log, and Android itself sends all kinds of useful information out that way.

But if there’s a running log going on at all times, how do you see it?

If you’re connected via ADB (via a USB cable or whatever), try typing adb logcat into your computer. The output to your terminal window, which can be interrupted with ^C (control + C), is a real-time look at Android’s operation.

So, let’s say you’re experiencing a boot loop and want to get an idea of what’s going on “under the hood”. It can’t hurt to peek with adb logcat. Even if it just looks like gobbledygook, you can copy and paste the output (usually the errors will be obvious if you sit down and look– stuff like “ERROR!!!!!” may appear) to a site like pastebin.com (although make sure that you’re not pasting personal information such as local network addresses or anything sensitive, which occasionally will appear in the log). That way, you can show people the problem (via a link) for further discussion, debugging, etc.

Anyway, from now on– instead of just saying “Help! I’m bootlooping!“, maybe say “Help! I’m bootlooping, and here’s a link to the logcat!

Note:

Why is it called “logcat”? Here’s my guess. In Unix (and Linux), there’s a command called “cat” (short for “concatenate files and print on the standard output” if you can believe it) that is used to view the contents of multiple files together, but it is often (ab)used to view the contents of a single file. So cat is kind of like a verb, in this context. You can try cat a-file-name.txt from the Terminal of any Unix-like operating system (including Linux and OS X), and it’ll spew out the file’s contents to you. So “logcat” is I guess “spew out (cat) the contents of the log.”

Bonus Command!: If you’re using Linux or OS X and want to view a file from the terminal, but don’t like how cat filename.txt spews the contents at you nonstop, try using more filename.txt instead. (I’ll leave it to you to figure how it works.)

Original Source: http://forum.xda-developers.com/showpost.php?p=21353661&postcount=1570

Advanced usage

Filtering

By priority

adb logcat offers extra functionality to filter logs based on priority. The usage is adb logcat *:# where # is one of the following.

 V    Verbose (show all possibly useless logs, default level)
 D    Debug (show all reasonable debug logs)
 I    Info (show expected logs for regular usage)
 W    Warn (show possible issues that are not yet errors)
 E    Error (show issues that have caused errors)
 F    Fatal (show issues that are fatal to runtime and will often result in rebooting)

All priorities automatically include higher priorities, so adb logcat *:W will show warnings, errors and fatal errors. When an app crashes, for example, you can usually use adb logcat *:E to see the cause of the issue without having to look through irrelevant debug logging. However, when providing logs to developers make sure to include all logging (without any filtering tag) because debugging logs can often explain the error.

By Content

You can also filter by content. Let’s say you want to collect all lines of the log that mention the term “Google”. You can do this:

$ adb logcat | grep Google

This command takes the output of “logcat” (all the junk) and “pipes” it to the grep command, which is used to search for “Google” and will only return lines that include it.

Helpful Tip

Note the pipe “|” character is not the same as a capital “I”, a lowercase “L”, the number “1”, or a random graphical unicode glyph of a vertical line. On US keyboards, the pipe often created by holding down the Shift key and pressing the “\” key. The pipe character is used to take the output of one command and “pipe” it through to the input of the next command. In this case the output of adb logcat becomes the input of grep.

If you want to make your search case-insensitive, you can just add the -i argument:

$ adb logcat | grep -i Google

This will return log lines that have “Google”, “google”, “gOoGlE” and any other combination of upper and lowercase characters.

Color

adb logcat -C can be used to show logs with color to make them easier to read when viewing.

If you are not satified with the -C parameter, other possibilities are using external color logcat scripts or writing your own.

Clearing

If you find your screen is getting spammed with log messages you don’t want, but you still need verbose logging, you can use adb logcat -c to clear the log buffer. This will reset the log and only logs after the reset will be shown.

Logcat for Bugtracker

On device

This will generate a logcat on your sdcard which you can then attatch to a bug you want to report.

  • Open Console Application of your choice (CM <=11.0 comes with ‘Terminal Emulator’ preinstalled; CM >=12.0 has ‘Terminal’ that you can turn on in Developer Options)
  • Switch to root (type su and confirm root access) (You may have to turn on root access for apps in Developer Options)
  • Type logcat -d -f /sdcard/logcat.log *:V
  • Alternatively the radio buffer can be viewed with logcat -b radio
-d    makes it dump the logcat
-f    tell it where to save the log to
*:V   gets all Logs in Verbose mode

Note:

Run the logcat command after duplicating the issue you want to report.

Note:

Due to changes Google made in the internal APIs of Android starting with CM 10.0/Android 4.1 (Jellybean), you will need root permission for apps on the device to access the full logcat (the apps are now limited to only the logs generated by themselves). To do this with the built-in Terminal Emulator, you just need to type su and hit enter before you run the logcat command.

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

Git Intro

Introduction

What’s a “git“?

CyanogenMod uses a special program for storing, distributing, maintaining, and synchronizing the thousands of source code files that make up Android. The system, known as a version control system, is called git.

git was developed primarily by Linus Torvalds and is used not only by CyanogenMod, but by AOSP (Android Open Source Project– the vanilla Android source code from Google), the Linux Kernel, and countless open source projects around the world.

git allows every developer to have their own full copy (called a “git repository”) of all the source code that is used to build CyanogenMod. The code base can be easily re-synchronized with a single command so that it is always kept up-to-date. Just as important, git allows developers to easily contribute their bug fixes and enhancements back, where it may be accepted to become part of the official repository.

Because git is “decentralized”, a developer can send their changes (known in git terminology as a “commit“) not only back to CyanogenMod, but to any other person’s repository (with their permission, of course). Similarly, they can receive commits from CyanogenMod or from anyone else.

git is extremely powerful. It allows you to track the history of any files or directories over time, create instant “branches” for safely making experimental changes, add or subtract changes made by yourself or others, see where specific lines of code originated, merge your directories with other contributions, and much, much more.

Confused? Great. Keep reading.

What’s “github”?

As git has become extremely popular, several web sites have popped up to make using git super easy. One of the more popular sites, and the one that CyanogenMod uses to host its source code, is called GitHub. Github offers free git repositories for public projects.

Where can I learn how to use git?

There are many, many places online to learn about git. Each is geared to a particular audience. Some people who learn git may have had experience with other version control systems. Due to the power git offers, there are even people using git who aren’t developers; it can be used for any kind of collaborative project where you might need to track files and directories.

If you have used such non-distributed version control systems as cvs or svn, you will be delighted by this video of Linus Torvalds explaining git‘s advantages at the Google campus:

  • Linus Torvalds talks about git at Google – watch this even if you know nothing about versioning systems. You won’t understand everything, but that’s okay. It’s really a must-see if you have the slightest interest in using git

One nice thing about github.com is that they do a terrific job of introducing git-related concepts through some tutorials. So if you’re new to git or github, take a look at this video:

Some more places to learn:

Where are the official CyanogenMod github repositories?

Right here. These directories are the component repositories that come together to form the CyanogenMod source code.

What’s the best way to download all the CyanogenMod source code repositories from github.com to my computer?

Because there are several dozen git repositories that come together to form the full CyanogenMod source code base, there needs to be a way to keep track of all the repositories and make sure they are all in sync. That method is specific to Android, and it is called repo. repo is an Android tool used to manage all the git repositories that form Android and synchronize them (using the repo sync command) to your computer.

Rather than discuss how to use the repo command on this page in any detail, it may be best to refer you to the Build Guides on this wiki, which do walk you through downloading and using repo in the context of building CyanogenMod for your device.

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

Developer Options

Enabling Developer options

Android includes a special Developer options menu with settings relevant to advanced users and developers. Many of the options come from Android and CyanogenMod provides several additions. This menu is hidden by default, but can be activated with the following steps:

  1. From Settings, select About phone (or About tablet).
  2. Tap the Build number entry seven times. On the seventh tap, you will be notified that “You are now a developer.”
  3. Return to Settings. Developer options should now be visible.

Note:

The need to manually enable Developer options before it appears in Settings was introduced by Android 4.1 (CyanogenMod 10.1).

Enable USB debugging

The most common debugging techniques used to diagnose problems on Android are Logcat and kernel logs (dmesg). The first step to using these tools is enabling USB debugging so that you can generate and pull logs from your phone to your computer. USB debugging has a number of other uses as well, see the adb page.

To enable USB debugging:

  1. Enable Developer options by following the instructions in the previous section
  2. Enable System > Developers options > Android debugging

Managing superuser (root)

Beginning with CyanogenMod 12, root options are enabled from the Developer options menu. Look for the option entitled “Root access”. By default, root is disabled for security purposes. Root permissions for apps are handled by Privacy Guard in Settings. Tap an application to enable/disable root access for that application.

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

Using Virtual Machines

Note: This entire guide in its entirety was kanged from user Redflea who gave his permission to a previous editor.
I apologise if this wrong Original link guide.

Follow the instructions below to install VirtualBox and install Ubuntu in a VirtualBox Virtual Machine (VM) on your PC if you do not want to install Ubuntu in a dual boot setup, or standalone on a PC.

If you are installing Ubuntu along-side Windows in dual boot or standalone, you should not use these instructions.
Follow the Set Up Your Build Environment guide on the left to install dual boot or standalone.

Using a VM to do your builds is like creating a second Linux compatible “PC” on your Windows computer that runs Ubuntu in a window.
Doing builds in Ubuntu running in a VM can be much slower than setting up Linux as dual boot on your PC – my build times went from many hours in a VM on an i5 4GB RAM laptop, to 1 hour on an i7 4GB RAM laptop.
The second laptop is faster, but getting out of a VM was the biggest improvement for me.
However, others have gotten faster build times in a VM, so YMMV.

Creating a VM requires disc space, and you don’t want to use up all available space on your hard drive, so assuming you’re going to dedicate approximately 100GB to this activity, make sure you have that amount + more available (assuming you will want to keep using/adding content to your HD when using Windows).

Install VirtualBox

Run the VirtualBox setup, launch it, and configure per below.

  • Name – whatever you want to call the virtual PC…for example, Ubuntu-10.04.3 since that was the version of Ubuntu being installed.
  • Operating system – Linux
  • Version – Ubuntu

Next window:

- Memory: At least 4GB, recommended 8GB; more on a system with more memory.

The more memory you have on your PC the more you can allocate to the virtual PC before you’ll get a warning from VirtualBox that you are taking too much memory away from your Windows side.

Next window:

  • Select “Start-up disk” and “Create new hard disk:

Next window:

Select VMDK – Virtual Machine Disk (improves compatibility with other tools/SW)

Next window:

Select “Fixed size”

Next window:

Location and size – don’t change location.
Set size to at least 100GB, more if you can spare it.
You can change the size later if you want to, but don’t scrimp on space.
Building can take a lot of room, and VirtualBox will allocate space up to what it needs within the limit you set.

Select create to create the disk and go away for 20 to 30 minutes to allow the program to create the virtual PC.
You’ve created your virtual PC onto which you will install and run Ubuntu. Cool.  :)

But first, before starting your new virtual PC, you have to make a change to a couple settings and then install Ubuntu.
Continue below…

Click on the yellow Settings button (shaped like a gear) and select the Network option.
Select the “Attached to” option and choose Bridged.

Now click on the “Storage” option on the right, and then click on the “Choose a virtual CD/DVD disk file”.

Browse to the Ubuntu ISO file you downloaded way back at the beginning of all this and select it.
This tells VirtualBox to mount the Ubuntu install CD image into the virtual CD drive of the “PC” you just created.
So when you launch your virtual PC the Ubuntu install will run and allow you to install Ubuntu to your virtual PC.

Optional: If you want to be able to access files on your Windows PC from the Virtual PC, now select “Shared Folders” and right-click on Machine Folders and select Add.
Browse to the folder you want to be able to access on your computer from the virtual PC you’re creating, select it, and then select auto-mount so it’s available automatically.
Not so sure about “Permanent” setting…

Select OK to save your changes and then either double-click on your new VM, or click on it and click on the green “Start” button.

Ubuntu in VirtualBox

The VM will launch and after a minute or two (or three) you’ll see the Ubuntu install process begin.

Complete the install (it is much like a Windows install, only shorter/easier, and at the end you’ll restart your PC, referring to, of course, not your “real” PC, but the virtual one on which you’ve just installed Ubuntu.

Ubuntu will boot up and look like this – it will appear in a window in your screen, rather than full screen.
A couple changes to make it available full screen below.

Install Guest Additions to display the VM full-screen

To display the Ubuntu window full screen, you need to install VirtualBox Guest Additions.
Do the following:

At the top of the Ubuntu window, select Devices>Install Guest Additions.

After a few moments a CD icon will appear on your desktop and a dialog box will open (basically, selecting the option on Devices mounted the guest additions install as a virtual CD-ROM).
Select OK to allow the install to complete.

When you’re done, reboot Ubuntu.
Otherwise the changes won’t take effect.
Click on the power button icon in the top right of the window, and your Ubuntu window will display full-screen when you maximize the window.
After you rebooted, right-click on the Guest Additions CD icon and select Eject to remove it from the virtual CD ROM drive.

Now, you have either:

  • Installed VirtualBox, created your VM, and installed Ubuntu in the VM
  • Used the “Set Up Android Build Environment” guide to install Ubuntu in dual boot configuration using an Ubuntu CD you burned from an ISO download.

Next you will setup the Android SDK, install java build tools, create your source code repository and build Android.
Time for the fun stuff… :)

Go to the “Setup Android Build Environment” on the left and start with Step 4.
Download and extract the Android SDK

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

Install And Compile Heimdall

Linux

Fedora

$ su -c 'yum groupinstall "Development Tools"'
$ su -c 'yum install libusb1-devel qt-devel libtool'

After this step, skip to the instructions for generic Linux distributions below.

Debian based

These instructions are for Debian based distributions including Ubuntu and Linux Mint.

With apt-get

$ sudo apt-get install heimdall-flash heimdall-flash-frontend

Compiling from source

$ sudo apt-get install build-essential cmake zlib1g-dev qt5-default libusb-1.0-0-dev libgl1-mesa-glx libgl1-mesa-dev

After this step, skip to the instructions for downloading and compiling below.

Arch Linux

heimdall is available in the official repositories. heimdall-git is available in the AUR for building from source.

Generic Linux Instructions

These are distro-independent instructions.

Installing prerequisites

Use your favourite package manager to install (the development version if your distro has seperate “-dev” packages)of the following pre-requisites:

  1. gcc/g++
  2. make(automake)
  3. libc(glibc)
  4. libusb
  5. qt5
  6. CMake
  7. OpenGL
  8. zlib

Downloading and compiling

$ git clone git://github.com/Benjamin-Dobell/Heimdall.git
$ mkdir -p Heimdall/build
$ cd Heimdall/build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make
$ sudo cp bin/* /usr/local/bin

Start Heimdall by issuing either heimdall or heimdall-frontend in a terminal.

OSX

Installing prerequisites

  • First make sure you have installed XCode and pkgconfig.
    • There are several different ways you can install pkgconfig, the simplest option is to use Homebrew.
$ brew install pkgconfig
  • Open a terminal and navigate to the directory you downloaded, or extracted, Heimdall to.
  • Install libusb >= 1.0:
    • The simplest option is to use Homebrew.
$ brew install libusb
  • Enter the following commands to compile libpit.
$ cd libpit
$ ./configure
$ make
$ cd ..
    • NOTE: There is no need to run “sudo make install”.

Installing heimdall

  • Enter the following commands to compile and install Heimdall:
$ cd heimdall
$ export CC=/usr/bin/clang CXX=/usr/bin/clang++
$ ./configure
$ make
$ sudo make install
$ cd ..
    • NOTE: The export line is needed to overcome a compile error with 1.4RC and will hopefully be unnecessary soon.
    • NOTE: Do not be alarmed if the sudo make install ends with: make[2]: Nothing to be done for `install-data-hook'
  • If you haven’t installed the driver before, enter the following:
$ cd OSX
$ sudo ./install-kext.sh

Installing the Frontend

  • First make sure you have installed XCode from your OS X install DVD.
  • You’ll also need Qt 4.7 or later, available from: http://qt.nokia.com/downloads/
  • Open a terminal and navigate to the directory you extracted Heimdall to.
  • Enter the following commands to compile and install Heimdall Frontend:
$ cd heimdall-frontend
$ qmake heimdall-frontend.pro
  • Open Finder and navigate to the heimdall-frontend sub-directory. Open the newly created XCode project.
  • From the menu bar select Build -> Build. This outputs heimdall-frontend to /Applications

Windows

Prebuilt package

Heimdall is available for download at http://glassechidna.com.au/heimdall/. However, to get the latest version, you must follow the instructions below to compile from source.

Compile with CMake

Download and install MSYS2 to set up a MinGW-W64 build environment. After installing, a terminal will launch. Issue the following commands:

$ pacman -Syu
$ pacman -S mingw-w64-x86_64 mingw-w64-x86_64-clang mingw-w64-x86_64-cmake mingw-w64-x86_64-libusb mingw-w64-x86_64-qt5-static make git
$ export PATH="/mingw64/bin:$PATH"
$ git clone git://github.com/Benjamin-Dobell/Heimdall.git
$ mkdir -p Heimdall/build
$ cd Heimdall/build
$ cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DQt5Widgets_DIR=/mingw64/qt5-static/lib/cmake/Qt5Widgets ..
$ make

After compiling, open a command prompt/Explorer window and navigate to %msys64%\home\%username%\Heimdall\build\bin (where “%msys64%” is the directory you installed MSYS2 to, C:\msys64 by default). There should now be two executable files in that folder: heimdall.exe and heimdall-frontend.exe. You can run them from that directory or move them to a more suitable location. Navigate to %msys64%\home\%username%\Heimdall\Win32\Drivers for the Zadig (driver) executable.

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

Testimonials

Why do YOU use CM?

MotoEguy shouts

I recently got my new Moto e LTE 2015 and I was fed up with the limited customisability available, then I discovered CyanogenMod! To begin with I was scared that I was going to brick my phone! But in reality it was pretty easy and safe! My favourite features are themes, the launcher and app privacy management! I strongly recommend this!

Great job!

DatGuyUnknown says

Switching to a Custom ROM can be scary at first, scared about bricking your phone and such and blah blah blah. That’s how I felt. I’ve been having Battery issue’s on my Galaxy S5 (4.4.2) and was messing around with my old Nook Tablet that has CM7 on it (I have actually upgraded to a Nook Tablet HD+) and I thought why not install CyanogenMod on my phone. Of course you have to face the risks and such, but once you look on YouTube it encourages you. After many failed attempts (On my end, I was doing a simple step wrong) and waiting countless times waiting at the boot screen it worked! I’ve had CM12 installed for several days and I LOVE IT! So many customization’s it’s perfect. Right now I am a bit sad because I did have to Flash the original Stock ROM (Lollipop) and I miss CM12 already, not as many opinions, and such. It’s actually boring and dull compared to CM12. (The reason I installed Stock again was because I have to send my phone back to T-Mobile, and when I receive my new S5. I’m installing CM12 Again) Otherwise, I would say install CyanogenMod because it’s worth it!

Merk(Rehan) states

been using since I had a samsung galaxy s and lg optimus 3d flawed cm9 initially on the s and since then never looked back. Whether its a new or an old phone of mine its having cm installed on it. Cyanogenmod and koush’s works inspired me to develop for android and dump iOS

In an whole cyanogen is my Inspiration for the career or the venture I am about to start.

SafinWasi verifies

CyanogenMod 10.1 breathed new life into my Amazon 7″ Kindle Fire HD (codename:tate). I have been using it ever since. And now,there are official nightlies of CM 11!!! Yay!!!

Awesome ProBro knows

Just “Awesome”

Andrew says

I installed CM on my phone and I got 100% off! (let’s not say too much)

Aditya “Fat Indian Geek” Ghosh storytells

Whenever I pull out my Samsung Galaxy Note N7000 with CM 10.1, my friends/family members/stranger I just met always ask me, “Why do you use a custom ROM? Won’t it lag/break your device/make it potentially unsafe?”

I used to give them a big speech about how it is faster, slimmer, more frequently updated etc. than the stock device’s firmware, but now, I just tell them ONE simple thing,
“Why do you wake up every morning? Why do you like video games? Why do you read books, listen to music, watch TV? Because it’s human instinct. And this is my instinct, because I am not afraid of exploring a new world, unlike you pessimistic punes.”

Think about that.

Felix exclaims

I had an HTC Wildfire that was destined to death, the carrier decided to drop updates for it, even though I later discovered that GB was a breeze. It’s the high of doing something you’re not really meant to do combined with something so elegant. On the buzz I flicked between a very unstable CM 10 and a nice CM 7. I settles on CM 7 before the screen was destroyed, but I missed the high. I later decided to try to get it on my Samsung Galaxy Tab 10.1 (another device that was dropped/the update was a long way away) and was a lot more careful with it. I’ve been through good times and bad times (http://forum.xda-developers.com/showthread.php?t=2352184) but since it’s been officially supported I’ve been flashing a nightly every day with ROM Manager. I’ve never run into any trouble on an official rom.

SferaDev said

CyanogenMod is the perfect ROM made ​​by developers for developers, with a perfect combination of stability and customization. Plus a pure AOSP feeling.

Ryan Norris explains that

CyanogenMod allows me to take control of my device, and break away from my carrier’s bloatware. It allows me to get the newest version of Android long after my carrier drops support, and it’s opensource of course.

Chris H. said

CyanogenMod gives me the chance to run the bleeding edge features of the latest from Google long before my carrier has them ready. On top of that, they pack in even more features and tweaks that enhance stock Android well beyond its already awesome abilities. I can tailor my phone to my exact taste through all of the options and customizations available, getting exactly what I want. I choose the Nexus line of devices to get the pure Android experience, and CyanogenMod to enhance that experience in all the right places.

pbaxter thinks that

CyanogenMod has many useful tweaks that other ROM cookers copy from CM source. but in cyanogenmod you find *all* the tweaks and verything is just fine.

Allen R. said

CyanogenMod has proven itself to be much more appealing than OEM versions of Android, and the fact this doesn’t run TouchWiz, Sense or Moto Blur makes this ROM as simplistic and lightweight as can be. Regardless of whether your device is high-end or not, CyanogenMod shouldn’t open up many problems for your device depending on the build, hell, I’ve got CyanogenMod 10 running on my old HTC Desire, Galaxy S II and Nexus S and my current handset, the HTC One X, so what are you waiting for?

Kevin P. said

After using many ROMS including AOKP on my GNexus, I have kept coming back to CyanogenMod for a simple reason – stability. Sure, AOKP tends to have some more cutting edge features, but I have personally found that CyanogenMod Nightlies are more stable than AOKP major releases. Maybe it’s just me, but CyanogenMod is the perfect blend of Features, Speed, and Stability for me. There’s a reason why it’s the most popular ROM out there.

David Li said

Why CyanogenMod? It offers a stock, AOSP-based experience – the Android experience as envisioned by Google, with useful addons like status bar toggles and themes. The experience is smooth, stable, and simple. I got a Galaxy S3 and the first thing I did was install this ROM, which does its best to support devices well and provide an enjoyable experience. You can’t go wrong with CyanogenMod.

Leo H. said

CyanogenMod is one of several organizations that stands for giving the people what they want. It’s my device, and I have the freedom to use it how I please. CyanogenMod believes in FOSS, and unlike the carriers and manufacturers where I live, CM wants to enable users to do what they like. It’s stable and only adds intuitive and useful tweaks to Stock Android

savy91 said

I love cyanogenmod look and feel, it is damn faster than stock Samsung roms, includes many useful personalisation, it drains less battery and is always up to date!

Parabola had this to say

I started using CyanogenMod and I saved 25% on my car insurance!

Smithchipz stated

I started using CyanogenMod and lost 40kg’s!

Fattire asseverated

I installed CM to an SD card, planted it next to some jellybeans, and gave it a half pail of filtered water. When I awoke the next morn, that little kernel had taken root, and an incredible USB cable rose from the cracked earth, twisting upward into the cyan sky. I launched to my bare feet, fastbooted up, and ascended the git-branched cable. Above, the heavens darkened as the Cloud rolled in from the east. I climbed undaunted, launching forward until at last, I emerged through the haze, stepping unsteadily into the wondrous Land of CyanogenMod. I met several forum trolls, an interactive governor named Cid, an adorable logcat who’d just spawned kittens, and finally a koush who laid golden apps. He even had his own yacht! After many adventures, it was at last time for me to return $HOME. As I returned to the ivy bridge, I heard a LAWL! T’was a gang of wild kangers, out on the prowl for donations. A quick race condition down, lest I be manifestly made clobbered! When I reached the root, I pulled the cable with all my might. But the nexus wouldn’t untether! Taking stock, I ran inside in a flash. I opened a Terminal and, quick as clockwork, typed adb connect 127.0.0.1. I immediately went wireless, so the cable detached and rose upward, returning forever to its heavenly repository with those twrps in tow. What a recovery! And I also lost 40kgs and saved 25% on my car insurance.

roger_n said

Thank you Cyanogenmod you have unleashed the true power of my phone!!!

stephen Castro proclaimed

Cyanogenmod feels like a pure Android experience. sadly all the major companies seem to fall short when it comes to cooking an efficient android Rom. The Cyanogenmod team never seem to disappoint.

PhaseBurn mentioned

I’ve used CyanogenMod since the very early days (Cupcake), and I did it because it was a HUGE speed increase over the stock ROM. It also added features I grew to appreciate over the stock ROM, not to mention a certain “thrill” factor of flashing new firmware on a semi-monthly basis.

Fastfoward several devices and years later, and I find the reasons for running CM have mostly changed.

CM is still faster than stock, but not by anything really noticeable on modern hardware. The copious amounts of RAM, multicore CPUs, and better code in Android 4.2 are enough to cope with most of the differences between stock Android and CM. Back in the days of my G1, this wasn’t the case, but today is a different story. So why am I still with CM all these years later? Because of the features that CM has added over the years, that I’ve grown to love.

CM is stock Android that’s been thrown through the community wringer. The developers fix, reimplement, reengineer, and reinvent the things Google got wrong with it. The changes that are made to the UX alone are what keeps me coming back for more. I also have to admit it’s easier to deal with than stock Android in terms of providing root access. I need root for some of the things I do, from backing up apps and syncing data across multiple devices (Damn you, Angry Birds!), to tethering other devices with out my carrier complaining (I’m of the opinion that data service is like an internet service provider connection – a single device, or a router running NAT, the carrier has no say in what I’m running beyond their CPE device). I also enjoy tweaking system settings from time to time not available to unrooted phones. Rather than having to re-root every time my phone received an OTA upgrade (and that is, assuming the OTA was applied properly in the first place), it’s frankly just easier to keep a CM build on the phone in the first place, which provides root out of the box.

Lastly, the community is more active. The official help forums for the Nexus 4 are not nearly as technical, in-depth, or active as the Cyanogenmod forums/IRC/XDA threads. The level of technical expertise found in the CM community is superior to that found in the Nexus 4 official forums (not specific to any person, just the number of people possessing a clue on average).

In summation, I came for the speed, stayed for the features above and beyond stock Android, got a friendly helping of controlled root access, and found the community inviting, supportive, and intriguing enough to stay. That is why I run CyanogenMod.

x1101 adds

I use Cyanogenmod because my carrier (Verizon US) had decided that their phones don’t need updates, and that even though I paid for the device, they get to install crapware on it. Cyanogenmod fixed both of these issues, first for my Moto Droid, and now my Galaxy Nexus. Thanks team!

laulau says

I started uising CM7.1 on my SGS1, which had bogus officials ROM, and complexe update process (no OTA, just Kies). The power and the beauty of pure Android experience was great on this phone, which alos had CM7.2 and CM9.

I now use CM10 on my GNex, just because OTA update fails on rooted phones. CM new update process is great, and addons over pure android are great too.
Finally, I use CM on my HP Touchpad because I wanted Android, and the beta ROM works prety great on it !
Thanks for all your work !

mglraimundo states

I heard there was some kind of bacon in it that geeks just love.

Phil K said

To me it’s a great rom on my Samsung Vibrant. One of the only few I’ve found with bluetooth tethering. eep up the great work.

Paul Julian Gould said

I use a cooked Cyanogen Mod 7. as it gives me the flexibility to get the most out of a device (Huawei Ascend 2) that only cost 100 dollars US. out of the box, it’s a nice phone. with CM 7. it’s a mobile laptop, in effect.

John Judy said

For me it’s slimmer than stock ROM, more up to date and can be configured so that it is faster or uses less battery life. Compared to other ROMs it’s more stable and better at keeping up to date.

Felix Dürrwald said

I use CM10 on two older generation devices. The Motorola Defy and Nook Color. It runs great, saves battery and enhances performance on both and I would only have Android 2.1 zsp 2.2 on these devices without it.

Bradlei Taylor said

Cyanogenmod pushes some of the best features around and is the king of stability. No other rom compares for me.

Conway Riley said

I use CyanogenMod 10 on my first gen Nook Color. It not only free’s me from the B&N store but I can read digital comics from Marvel and Comixology apps as well.

Jonathan Carter said

For me it brings back new life to my aging Atrix 4G that my carrier isn’t bothered supporting!

Sébastien Débia said

for the toggle buttons in the notification bar, and, well, I haven’t used stock android in such a long time I probably don’t realize what I’d be missing ;)

Andre Luiz Barbieri said

More stable than stock version.

Nagy Balázs András said

Speed, efficiency, extra features, support, tons of new features. I have a Galaxy S and an old NookColor on CM10. It is a huge improvement over the original firmwares in all aforementioned things. s someone said, once you go CM, you don’t go back.

Scott Shockey said

because of the stability and speed. Although the Gnex has this from the start, CM allows so much more usability than any stock rom. Features, look, feel. Everything is great about it.

Jesse Roberts said

Fine tuned control over my notification LED (Nexus 4) and quick toggles.

Sina Taheri said

When compared to stock CM is far more functional and up-to-date, it’s fresh, and a sign of advancement in technology.

Tist Verdonck said

My LG Optimus Black feels so much better with cm10, than with the brand new official ICS upgrade?

Kyle Corroo said

I love trying and testing new features in the nightlies everyday :D

Marcin Juszkiewicz said

2 years ago I bought Nexus S (9020T) because I wonder to switch to Android and it had to have best possible support from Google. Some time later I installed CM7-nightly on it, played and got hooked. Amount of tweaks, addons was amazing. witches in notification area which did things not possible with Widgetoids I used before. I was able to remove some apps just because they got not needed – system already provided same functionality or even better. nd it was more up-to-date than stock. Then CM9 appeared. Holo was awesome change. You guys cleaned addons/tweaks so they got more sense. And again I had latest-and-greatest stuff before Google even though about providing update. CM10 shown that JellyBean is doable on 2 years old phone. But CM10. told me: you have to finally upgrade.

And I do not want to use phone without CyanogenMod on it. Can not compare with other “”roms”” cause I did not used such – were only on CM and stock.

Diogo Passadouro said

I use CyanogenMod because the rich in features, the awesome speed! Makes my phone update to the latest Android release and I can count on a large community to help in anyway to make a better, faster, more beautiful ROM available! In simple words, make my phone to the next level of awesomeness!

Martin Zemek said

Newest Android on my SGS without TouchWiz.

Chibi Sun said

Coming from touchwiz, CM is a great boost in speed, I like the AOSP feel but the stock aosp rom lacks some features. Usually CM has pretty much all I need. Besides that, it’s quite stable, even if I’m using nightlies, the things that I found not to work are very few and they get fixed eventually.

Richard Harper said

To get the Stock Android experience without any carrier/manufacturer bloatware.

Rob Owen said

I had CM7. and then early CM10 roms on my moto defy & it made it into the phone it should have been in the first place. asy to customize, build for speed and great info available for new tinkerers to get going with. Now on Nexus 4 with CM10, and it rocks. Really like the switching between notifications & quick settings, everything you need within a swipe!

Manuel Schneider said

Android is good but you guys just make it better. Especially the lockscreen, launcher, notification bar, touch clock in notification bar, flashlight in notification bar, OTA update, speed, OC, efficiency. Really shouldnt you ask for things we dont like??

Jeremy Martin said

I wanted a custom rom that had what I needed. Other custom ROM’s seem to credit CyanogenMod for the work so I figured why not just use CM? Also CyanogenMod is faster at releasing updates than Verizon Wireless on my Galaxy Nexus :)

Aaron Huffman said

the main aspect of why I use cyanogenmod is the constant updates, device support and definately the DSP manager, it is boss!

Navjot Batra said

CM got me laid. Bravo, developers.

Selim Çangir said

Newest Android software, stable, fast, customisable, new features and open source of course :)

Etienne Fortin said

First and foremost because I can be up to date with the latest Android release. Instead of waiting forever to get an update from my phone manufacturer / service provider, if at all. Also because of the performance and quality of the product.

Claudio Canella said

I use CM because I got used to some of the features, which I wouldn’t have on stock android. And there are also features which are good in stock android, but the CM team improved them.

Thomas Favaloro said

Most stable rom that gives an AOSP experience with some nice add-ons that allow upgrading to the newest android versions well before carriers push them

Sean Kelly said

“because I can”. That’s 2/3 of the fun for me. That, and I couldn’t stand TouchWiz.

Chris Pugh said

CM updates are far more frequent (and actually up to date) than any OEM’s, including Google (yes, at least one Nexus generally gets it before the code’s in CM, but I see no stock Nexus nighlies.

CM brings the stock Android interface while carrying its own improvements with it. Thankfully I’ve never had to endure TouchWiz.

My girlfriend’s Sony Ericsson U20i had an awful build of Eclair, brought back to life with (unofficial) CM builds. My ol’ U8150 was improved infinitely by CM6 (unofficially) and 7, even after Huawei’s stock Froyo build. I think the main feature that keeps me coming back, despite all I have said (even when the stock build is a joy to use) is volume-rocker music controls. So simple.

P Diddy said

Without CM, I would have returned my Galaxy Tab 10. within the first hour of owning it.

Ryan R said

Probably the same reason many others do, its better than the stock software on my phone’s.

Ghislain Séguin said

1. Notification/Ring volume separation
2. Quiet hours
3. Custom LED notification built-in
4. Chronus widget
5. Being able to run a nightly build with the latest and greatest is made very easy.

Luca Duci said

This is a great ROM for nexus devices because it’s faster than stock and it let you make more things with your devices quicker. QUICK SETTINGS WITH CYANOGEN ARE GREAT.

Juan Ruiz said

I use CM because it gives my phone a pure Android style with many great futures. t’s constantly updated and available for many phones even if they’re not the newest in the market.

Grayson Chaumontet said

I’ve used CM since Froyo. ooks better than stock, runs faster than stock, just all around better really

Ted Roth said

I’ve tried many ROMs, and most were very good. In the end, I decided to stick with CyanogenMod because, to me, their ROMs have the best balance of performance, features, and stability. Plus, the CM team is an awesome group in every way. Having a team like them behind the ROMs is icing on the cake. Lastly, the community that uses and helps to support CM is a great resource.

Andrea Malchiodi said

For me Cyanogenmod represents the real spirit of Android: free ROM, produced by people that uses Android and wants to make it better, a ROM with full customization capability, pure Android feeling, improved in all aspects! ! Nevertheless you were able to give birth to something incredibly better than what Google came up with for each Android version, from CM6 to CM10, that IMHO is the best ROM everyone should have on a smartphone! ! Thank you very much

Navjot Batra said

Another thing, Google dropped the Nexus S, but CM continued to show love for the device. y power button has also failed and using the volume buttons to wake the device has been a life saver :)

Alucard Romero said

I use CM because it is lightweight compared to a lot of overbloated stock ROMs and customized GUI overlays (HTC, Samsung, etc). CM, to me, is Android with tweaks that SHOULD be on every phone. It’s MY phone, so why do I have to use my device the way the manufacturer wants me to when there’s a constantly updated third-part ROM that works even better? Kudos to CM for that vision, even if it was unintended.

Sava DUBROVSKAYA said

it’s pure, it’s fast and, dare i say, it’s even poetic :) and i adore the community behind it. nd the perseverance of its developers. And omg you have no idea how much i like Cid ;)

and yeah, koush stealing yachts is like an icing on the cake!

Clint Pedersen said

Honestly? It just works. And works very well. Not to mention the speed. It is an incredible fast ROM.

Doug DeJulio said

I use it because I can keep a library of different CM versions on microSD cards and boot my Nook Color off of them without modifying the device itself. This lets me use one piece of hardware to test against multiple versions of Android. (I’m a developer)

Mark Pinsk said

CM is like having the official stock Android on your device (i.e fast, stable, vanilla), but with additional enhancements that should have been included by Google.

Jakub Kozlowski said

I use CM because Sony thinks my phone can handle only 2.1, but it works pretty well with 4.2 as well!

Herm Vasquez said

Been using cm since the early days. Started off with the sapphire (mytouch/magic) and never looked back. I could go on and on about cm but in a nutshell it comes down to stability across the board, long term support that the OEM’s can’t offer, and bleeding edge features. Keep up the awesome devvin guys.

Tabrays Nawab said

Because I don’t like limitations/borders.

Giovanni Gomez said

Because Touchwizz is hideous??

Patrick Bosworth said

I use CM because I know that my device will almost always have a version that’s the more up to date compared to the stock firmware. enjoy the increased battery life, the customization, and the fact that it’s stock Android.

Parker Morris said

To get away from touchwiz!

David Kleiner said

Been using CM since G1, the device’s usable lifespan increased by at least a year, proceeded with CM on G2 (wink, wink, nudge, nudge), now on CM@GNEX. It’s been stable, feature-rich and fluff-free.

Blake McMullin said

It gives my G Nexus an edge. I get the latest and greatest in features before Verizon deems me worthy. M in particular gives me great stability. scent was great, and came out quickly, but it just wasn’t as stable/reliable on my phone. eep up the excellent work!

Nick Lipscomb said

It’s the ultimate android experience for me. Superb stability, has introduced features I’ve found myself being unable to live without, allows me to stay up to date with the latest and greatest from Google easily and has boosted the longevity of my otherwise manufacturer-abandoned devices ten-fold. can’t thank you enough in all honesty!

Ryan Burg said

Closest thing to a pure Google phone (without actually buying one) out there! Gets rid of all the bloatware and unnecessary animations too!

Claus Scheiblauer said

I use it on a Nexus 4 because I can enable “National data roaming” (I have no idea why this option is not available in the stock ROM), and customization of the navigation bar and the LED. Very convenient is also the “Quick pulldown”. On my previous Galaxy S CM showed whats actually possible, performance wise, and how awefully bad Touchwiz really was!

dank moo said

I started using CyanogenMod and got a girlfriend!

Jimmie Deveraux said

Snice you are doing refinements, could you add in a Voicemail app? I really like CM 10 but there is no voicemail app and I have had far too many issues with Google Voice. ould definitely use CM 10 if you add it in.

Dominik Loeffler said

I use it on an Xperia Ray because A) it gives me an update to JellyBean (which will never be released by the manufacturer), B) I can use Link2SD to relieve myself from the “insufficient storage” messages after installing a number of apps (Link2SD needs root privileges), C) I get a clean Android install, D) the original design and no bloatware.

Jordan VanCampen said

My question is, when is Google going to hire some of the guys from your team to build android? CM is how stock android should come on the nexus devices. M may not be for everyone, but it damn sure is for me!

Noam Gal said

I really like the fact that CM have taken a good OS, and just made tons of little improvements to it to make it better. The new swipe keyboard on 4.2, for example, does not work in Hebrew on stock. Just works on CM10.1. The Quick Settings Quick Pulldown option is another example of a small improvement, and I think the Power Bar in the notification area is much better than the Quick Settings anyway. CM File Manager is a clean and powerful app, and I also really like the Chronus app. All in all – a lot of small improvements made me flash CM10.1 without even trying out the stock on my new device. Great work.

Szeregowy Pingwin says

I use the Samsung Galaxy S3 mini, and I am great happy because I have a system without an application from Google. I would recommend !!!

Giorgos K said

I enjoy using CM because: (a) It is very close to stock Android, (b) It bundles interesting features that extend Android in good ways (e.g. the updater, a file manager, etc.) and (c) It release updates to a wide range of devices much faster than some of the so called ‘vendors’ out there.

David M said

Cyanogenmod 6 was the second non-stock rom I ever flashed. I started with a near-stock rom by JesusFreke that basically just added root to my G1. After he stopped releasing it, I had to search for a replacement, and Cyanogenmod was there, in easy reach, with a full tutorial on how to flash it.

Why do I use CM? Because I love the vanilla Android look with all the extra features the devs pack into this rom. I have never liked the carrier and manufacturer interfaces, but they have a lot of neat features that stock Android doesn’t have. Cyanogenmod solves the problem by adding all those features and more in an easy to use, easy to flash package.

Finally, Cyanogenmod is actively developed, and always one of the first AOSP roms to merge the new versions of Android as they’re released, and they support most phones well after Google drops support for them.

Simply stated: I use CM because it has all the features I want, great support, and long life on many devices.

Greg Hinson said

I’m using CM10 on a Galaxy Nexus and Motorola Xoom tablet. While the Nexus is Google based, the Motorola Xoom came preinstalled with a bunch of apps from the Motorola/Verizon partnership that I really didn’t care for, and rooting with a custom ROM seemed to be the best option for removing the bloatware and streamlining the operating system. I chose CyanogenMod as the ROM because it has proven to be the fastest and most reliable of all the custom ROM’s I’ve tried. I compare the concept of rooting/installing a custom ROM to installing a new versioon of Windows7/8 on a newly purchased laptop or server. Microsoft has the same partnership with the hardware companies, it seems. They justify a free operating system with computer purchase by installing a bunch of trial software I don’t care about. All I want is the computer and the OS, let me choose what applications I wish to install. I have the same opinion regarding phones and tablets.

GCKUAN states/констатує

English: CyanogenMod. It is bigger than just very good ROM or Firmware (it is). It`s a big family, where everyone can create and improve creations, where is not important fromwhere and who you are, where people just do what they like and you might download/see/taste it! So, what are you waiting for? ;)

Українська: CyanogenMod. Це більше ніж просто дуже добре зроблений ROM чи Дистрибутив (хоча він таким і є). Це велика сім’я, де кожен може творити і покращувати творіння, де не важливо звідки чи хто ти, де люди просто роблять те, що їм подобається і ви можете завантажити/побачити/спробувати це! То чого ж ви чекаєте? ;)

Thanks for all, CM!

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

Why Mod?


Should I modify (“mod”) my device?

When making the decision on whether or not to modify the software on your device, several factors come into play. Your Android device is pretty much a full computer (and if it’s a phone it has additional mobile functions), so it may help to think of it in the same way as you would consider modifying your laptop or desktop computer from its stock installation.

Pros

Common reasons to modify your device’s operating system include:

  • Remove unwanted programs (“bloatware”) installed by your carrier
  • Receive more frequent security updates
  • Have access to the current version of Android – most carriers take months to update devices on their network to the latest version of Android, if ever. Taking control of your OS allows you to update regularly, when you feel like it’s time.
  • Better performance
  • Extra features

Cons

Common concerns include the following:

  • Some device manufacturers or mobile providers may offer a limited or voided warranty after modifying
  • It is possible that by installing a rooted operating system, you introduce new security risks. For instance, you need to be smart about the permissions you grant applications.
  • Non-stock firmware could contain malicious code – which is a good argument for making sure you download custom ROMs from trusted sources, or even better, learn to build it yourself!
  • Stability issues may arise when using an experimental operating system. However, for many people, CyanogenMod has proven to be more stable than many official ROMs.

Other Discussions/Articles

To read more about the pros and cons of rooting and installing custom roms, check out this article from Android Authority. For a good overview of CyanogenMod specifically, check out this article from Addictive Tips.

Why use CyanogenMod?

What’s a list of ‘why’ without some compelling reasons to entice you?

The core ideas are the same throughout our releases:

  • Secure
  • Light footprint
  • Bloat-free
  • Customizable
  • Open

This translates into an abundance of features that let you truly own your phone.

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

CyanogenMod Installer

WARNING:

With the vulnerabilities disclosed in Stagefright, we are working towards revised builds for affected users. Until then, we have opted to disable further downloads of the installer.

Users currently on installer releases are advised to disable automatic MMS downloads (this will not stop the issue, but does help address the most impacted attack vector).

To fully protect yourself immediately, we encourage you to flash the community releases of 11.0 and 12.0 (if available) made on August 31st through September 2nd, 2015. Do note that this upgrade to community releases will require a data wipe and separate installation of Google applications.

Common questions

  • Why flash CyanogenMod?
    • There are many reasons to consider for flashing your device. Check out our Why Mod? page for more info!
  • Do I need to root my phone before installing?
    • No. You can have a rooted phone, or not. The installer doesn’t care. However, to be in a supported configuration, you need to be running a stock ROM.
  • Do I need to unlock my bootloader first?
    • No, you don’t. If your bootloader is locked, we’ll unlock it for you.
  • Can I install if I’m running a custom ROM?
    • Provided the installer can identify your phone correctly, it doesn’t matter which ROM you’re running. Again, to be in a fully supported configuration, you should be running a stock ROM. If you’re already running a custom ROM, you probably know what you’re doing.
  • What build type of CyanogenMod is installed with the installer?
    • The installer uses a stable snapshot build unique to the installer. These are stable builds designed to provide all core features and functionality of the device.
  • How do I get updates?
    • Updates are done via Settings > About phone > System Updates. When a new snapshot build is avaialable, your will also receive a notification. Devices flashed via the installer will only get updates when a new stable snapshot build is available.
  • Can I update to a nightly build?
    • If you are feeling adventurous, sure. You will need to go to device page and download the zip file for your device. Save the zip to your SDCARD and you can install via Recovery. You may need to wipe cache and data after installing via recovery.
  • How do I get back to stock?
    • You may perform a full backup from recovery, after flashing recovery (you will have to do this manually, at the moment) and then copy it off the device, if you don’t have an external sdcard. If you’ve already run the installer, you will have to find stock images and flash them using fastboot or Odin.

Before you start

  • Back up your data!
  • Back up your data. Did I say this already? Backups made in recovery are not safe unless they are made to a true external sdcard. If you want to go back to stock, make preparations for doing so before running the installer.
  • Use a high-quality USB cable. A cable that works for charging won’t necessarily work reliably for data transfer. The OEM cable that came with your phone should be a good choice, but if the connector has been stressed often enough almost any cable can become unreliable.
  • Don’t move your phone while installing. After you click ‘Install’, unless you need to unlock your bootloader or interact with the phone for some reason, leave it on a level surface with as little strain on the USB cable as possible until the install is complete.
  • Charge your battery. Don’t attempt the install with a partially drained battery.
  • Don’t use a USB hub. Plug your cable directly into a port on the workstation.
  • Disable any anti-virus software for the duration of the install.

Supported Devices

Code Name Device Windows Mac Latest installer build
crespo Google Nexus S Yes Yes 11.0-InstallerXNPQ08Q
crespo4g Google Nexus S 4G Yes Yes 10.1-InstallerBeta3
d2att Samsung Galaxy S III (AT&T) Yes Yes 11.0-InstallerXNPQ09Q
d2can Samsung Galaxy S III (Canadian) Yes No 11.0-InstallerXNPQ09Q
d2spr Samsung Galaxy S III (Sprint) Yes Yes 11.0-InstallerXNPQ09O
d2tmo Samsung Galaxy S III (T-Mobile) Yes Yes 11.0-InstallerXNPQ09O
d2usc Samsung Galaxy S III (US Cellular) Yes Yes 11.0-InstallerXNPQ09O
d2cri Samsung Galaxy S III (Cricket) Yes Yes 11.0-InstallerXNPQ09O
deb Google Nexus 7 2013 (LTE) Yes Yes 11.0-InstallerXNPQ25S
flo Google Nexus 7 2013 (WiFi) Yes Yes 11.0-InstallerXNPQ25S
grouper Google Nexus 7 (WiFi) Yes Yes 11.0-InstallerXNPQ25S
hammerhead Google Nexus 5 No Yes 11.0-InstallerXNPQ25S
hercules Samsung Galaxy S II Hercules Yes No 10.2-InstallerWPPQ50S
i9100 Samsung Galaxy S II (Intl) Yes Yes 10.2-InstallerWPPQ50S
i9300 Samsung Galaxy S III (Intl) Yes Yes 11.0-InstallerXNPQ08Q
jfltecan Samsung Galaxy S4 (Canada) Yes Yes 11.0-InstallerXNPQ09O
jfltecri Samsung Galaxy S4 (Cricket) Yes Yes 11.0-InstallerXNPQ09O
jfltecsp Samsung Galaxy S4 (C Spire) Yes Yes 11.0-InstallerXNPQ09O
jfltespr Samsung Galaxy S4 (Sprint) Yes Yes 11.0-InstallerXNPQ09O
jfltetmo Samsung Galaxy S4 (T-Mobile) Yes Yes 11.0-InstallerXNPQ09O
jflteusc Samsung Galaxy S4 (US Cellular) Yes Yes 11.0-InstallerXNPQ09O
jfltexx Samsung Galaxy S4 (Intl) Yes Yes 11.0-InstallerXNPQ09O
l900 Samsung Galaxy Note II (Sprint) Yes Yes 10.2-InstallerWPPQ50S
m7att HTC One (AT&T) Yes Yes 11.0-InstallerXNPQ08Q
m7spr HTC One (Sprint) Yes Yes 11.0-InstallerXNPQ08Q
m7tmo HTC One (T-Mobile) Yes Yes 11.0-InstallerXNPQ08Q
m7ul HTC One (Unlocked) Yes Yes 11.0-InstallerXNPQ08Q
maguro Google Galaxy Nexus (GSM) Yes Yes 11.0-InstallerXNPQ25S
mako Google Nexus 4 Yes Yes 11.0-InstallerXNPQ25S
manta Google Nexus 10 Yes Yes 11.0-InstallerXNPQ25S
n7000 Samsung Galaxy Note (Intl) Yes Yes 10.2-InstallerWPPQ50S
n7100 Samsung Galaxy Note II (GSM) Yes Yes 10.2-InstallerWPPQ50S
quincyatt Samsung Galaxy Note (AT&T) Yes No 10.1-InstallerBeta3
quincytmo Samsung Galaxy Note (T-Mobile) Yes No 10.1-InstallerBeta3
skyrocket Samsung Galaxy S II Skyrocket Yes No 10.2-InstallerWPPQ50S
t0lte Samsung Galaxy Note II (GSM LTE) Yes Yes 11.0-InstallerXNPQ08Q
t0lteatt Samsung Galaxy Note II (AT&T) Yes Yes 10.2-InstallerWPPQ50S
t0ltetmo Samsung Galaxy Note II (T-Mobile) Yes Yes 10.2-InstallerWPPQ50S
t769 Samsung Galaxy S II (T-Mobile) Yes No 10.2-InstallerWPPQ50S
tilapia Google Nexus 7 (GSM) Yes Yes 10.2-InstallerWPPQ50S
toro Google Galaxy Nexus (Verizon) Yes Yes 11.0-InstallerXNPQ25S
toroplus Google Galaxy Nexus (Sprint) Yes Yes 11.0-InstallerXNPQ25S

as of 2014-03-05

The full list of supported ro.product.device values:
crespo
crespo4g
d2att
d2can
d2cri
d2spr
d2tmo
d2usc
deb
flo
grouper
GT-I9100
GT-I9100M
GT-I9100P
GT-I9100T
GT-I9300
GT-N7000
hammerhead
hercules
i9100
i9300
jflte
jfltecan
jfltecri
jfltecsp
jfltespr
jfltetmo
jflteusc
jfltexx
jgedlte
m0
m7
m7att
m7spr
m7tmo
m7ul
m7wls
maguro
mako
manta
n7000
n7100
quincyatt
SGH-I717
SGH-I727
SGH-T769
SGH-T879
SGH-T989
t03g
t0lte
t0lteatt
t0ltecan
t0ltespr
t0ltetmo
tilapia
toro
toroplus

If your device is not on this list, you will see an ‘unsupported device’ message.

Having trouble?

General troubleshooting

Device gets stuck booting at spinning CM logo animation, won’t boot all the way

  • The installer lost communication during the install, usually due to a faulty USB cable or intermittent connection. You need to power down the phone, then boot it into recovery mode – different phones have different key combinations to boot into recovery. Search for “recovery mode + your phone model”, or find the manual installation instructions for your device on this wiki. Once you’re in recovery mode, you can either:
  1. Perform a factory reset / data wipe manually from the recovery menu, and then reboot the phone, which will allow you to boot successfully.
  2. Plug in your phone while it’s in recovery and restart the installer from the beginning and let it run through the install process again. Consider using a new USB cable.

Device not detected

  • Is your device supported? Refer to the supported devices list above.
  • Have you installed and run the Android app? It will prepare your device for installation. Run the Android app and follow the instructions.
  • Try unplugging your device and plugging it into a different port. Windows will sometimes fail to recognize a device until it’s unplugged and replugged.
  • Your USB cable may not be up to par.

‘We couldn’t talk to your phone’

  • Disable your anti-virus. No, really, disable your anti-virus. It interferes with the tools we use to write your recovery partition, among other things. Make sure to disable it for long enough that the installer can complete the full installation.
  • Plugging the phone into a different USB port and clicking ‘Try Again’ is often sufficient to proceed.
  • If you have a USB hub or a docking station, try the installation without it. Unplug from the hub or docking station completely.
  • If you get this repeatedly at different stages of the install, you almost certainly have a bad USB cable.
  • If the installer doesn’t detect your device after a reboot, and it’s stuck in download mode, it’s generally safe to hold down power or remove the battery (if the phone allows it) to power the phone off. You may attempt the installation again, it may be successful.
  • Disable the USB selective suspend setting in the Control Panel. It’s found under Power Options > Advanced Settings > USB settings.

USB not connecting after running the installer

  • Some users are unable to see their device connected to their PC after installing CyanogenMod. This is most likely due to drivers not picking up the connected device in Windows.
  • Plug your device in to the PC and open Device Manager on your PC.
  • Look for unrecognized hardware (yellow triangle) and right click on the device. ‘Select Update driver software…’
  • Next select ‘Browse my computer for driver software’
  • select ‘Let me pick from a list of device drivers’
  • Select ‘Android Device’ from the ‘Select your device’s type from the list below’ (if Android Device doesn’t work, you can also try ADB Interface)
  • Select the driver you wish to try and click Next. This will attempt to install the driver.
  • Click Finish to complete and check to see if your device is recognized by your PC.
  • If these attempts fail, you may want to go to the manufactures website and download any driver utilities they have for your device.

Advanced troubleshooting

‘We couldn’t talk to your phone’ – Samsung devices ONLY

  • If you have Kies installed, uninstall it. Reboot, and run the installer again.
    • On a Mac, even after reboot some Samsung kernel extensions may still be loaded. Open a terminal and find them with kextstat | grep -i samsung, then unload with sudo kextunload -b com.whatever.whatever.
  • Make sure the USB connection uses PTP mode, not MTP
  • If your Samsung device is still unable to communicate after using the general tips above, you can try to manually install the Download Mode driver.
  1. Download the zadig file needed to install additional drivers from http://zadig.akeo.ie/
  2. Once you have the file, place your phone in Download Mode. This can be achieved by one of the following methods:
    • ADB command (if you use the Android SDK) – adb reboot download
    • Using hardware key buttons. Power device down and use hard key combos to boot up (they vary by Samsung model): Volume Down + Home Button (depends on model) + Power Button. At the Warning!! screen hit the Volume up arrow. If this does not work for your model or you do not have a home button, Google is your friend.
    • Using the installer. The installer usually gives the error message and leaves the device in Download Mode. Leave the device in Download Mode and proceed to follow these instructions
  3. With the Samsung device in Download Mode, plug it in to the PC.
  4. Run the zadig executable file you downloaded from http://zadig.akeo.ie/
  5. In zadig, select Options > List All Devices
  6. From the drop down, look for your device to show as ‘Gadget Serial’ or ‘MSM8x60’ and select it.
  7. In the drop down next to the green arrow are 3 options: WinUSB, libusbK, and libusb-win32. Try the first option, WinUSB, and click the Replace/Reinstall Driver button.
  8. Open Device Manager in Windows. Look under ‘Universal Serial Bus devices’ and see if your device is now recognized by Windows. If not, repeat the previous step trying the one of the other two driver alternatives – libusbK and libusb-win32
  9. Once you have a driver installed from zadig, you can reboot the Samsung device. Try the installer again. Now that you have manually applied the driver needed by the CyanogenMod Installer, it should recognize the device and no longer present the ‘We couldn’t talk to your phone’ error message.
  • The last resort is to delete any drivers from Device Manager and start fresh. So with your device in download mode, and plugged in to USB, check Device Manager. Look through the USB devices to find your device (it will show up as ‘Gadget Serial’ or ‘MSM8x60’), right click on it and select the Uninstall device driver option to remove the driver. Reboot. Either simply run the installer again, or use Zadig to install the device driver and then run the installer.

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

Basic Concepts

“rooting”

First, see the discussion on wikipedia for the basics.

To make things confusing, the term “root” can mean several different things in the computing world, depending on the context:

  • Rooting is the process of acquiring root (or administrator) privileges on the device. (“I rooted my phone.”) This is the context described in the Wikipedia link above.
  • root” is also the actual name for the administrator user in many UNIX-based systems such as Linux. (“I logged into the root account so I could delete some system-level files that an ordinary user can’t delete.”)
  • Similarly, to have root access also means having administrator-level privilages. (“I realized to delete those files, I’d need root access.”)
  • The root directory is ALSO the “top” (or first) branch in a directory tree. In other words, it is / in Linux or C:/ in Windows. (“Those files I deleted were in the root directory.”)

“jailbreaking”

Jailbreaking is a term that originated in the walled-garden world of Apple that does not have a single clear analog in the Android world. Because Apple has created so many tight restrictions over what software can be run on an iDevice such as iPhone and iPod, special steps must be taken to do a variety of operations ranging from:

  • enabling the iDevice’s bootloader to allow unofficial software to be loaded
  • giving apps and the user escalated privileges to do operations that an app can normally not do in the standard environment (aka “rooting”)
  • installing apps without the App Store’s involvement (aka “side-loading”)
  • allowing extensions, theming, and other modifications to iOS’ look, feel, and behavior
  • permit booting into multiple operating systems such as Linux or even Android in addition to iOS
  • etc.

The activities, each of which is technically distinct, appear to have fallen under the general category of “jailbreaking”, which combine a number of different facets and goals to cover the general notion of overcoming Apple’s inherent iOS restrictions.

Although the term is sometimes used by those who do not appreciate the technical distinctions as a general “catch all”, Android and CyanogenMod users typically do not use the term “jailbreaking” due to this vagueness, preferring terms that are more descriptive, distinct, and appropriately specific such as “rooting”, “side-loading”, etc.

Android, being open source, does not inherently restrict end users’ access to their device (though vendors may choose to do so until the devices are rooted). Additionally, many “benefits” of a Jailbroken iDevice such as the ability to side-load are already commonplace and even expected of standard Android phones and tablets.

For more on “jailbreaking” in the iOS world, see this comprehensive history on Techcrunch.

“side-loading”

In the world of Apple’s iOS operating system, iPads and iPhones are generally unable to normally load apps from any source except the official App Store. Android works differently. Google’s Play Store is a source for many hundreds of thousands of apps that can be downloaded and installed automatically. However, the process of “side-loading” allows you to directly install an app from your computer or via any non-Play Store source, such as directly from a web site or even another device.

This process of loading an app that didn’t originate from a store is very common in the Android world and is simply a matter of checking a box in the Settings to enable it.

With Apple’s tighter control of the user experience, steps such as “jailbreaking” must be taken to enable side-loading. Not so for Android. Generally speaking, you can load anything you want.

(Exceptions to this include severely-restricted incarnations of Android that appear on some phones and tablets. CyanogenMod may be an option to remove this restriction.)

“flashing”

Flashing is a general-purpose term used to describe the process of loading software onto your mobile device. On a computer, the equivalent might be something like “reinstalling”, although not all flashing processes require a reformatting to occur.

There are typically two types of ways to “flash” a device:

The first uses a program called fastboot that is run on your computer when it is attached (typically via USB cable) to your device. You boot the device into “fastboot” mode, then use the program to “push” the new software over the cable to the device, where it is installed.

The second common flashing method uses the recovery mode of the device itself, without using a computer. The way it works usually is that a file containing the update to be flashed (usually ending in .zip) is downloaded directly to the device. Then the device is rebooted into recovery mode, at which point the recovery flashes the new software to the device.

That’s it!

“unlocking a phone”

AKA “Subsidy Unlock” — AKA “Sim Unlock” AKA “Network Unlock” AKA “Use a foreign SIM Card”

SIM-unlocking your phone will offer the benefit of allowing you to use your phone with other carriers.

In many markets, when you buy a phone (or mobile-enabled tablet), it can be “locked” so that it will only work with a particular carrier in a particular market. The process of “unlocking” a phone typically means that the device can be used with any compatible carrier in any market. The phone effectively becomes a “universal” or “international” device that can be used with a new regional carrier when travelling, for example.

Note that unlocking the phone may violate the terms of your agreement with your carrier, although some US carriers such as T-Mobile are known to send you “unlock codes” if you contact them before travelling. On the other hand, in some countries it is not permitted to lock the phone at all.

It is also important to understand that an unlocked phone still must meet the mobile network requirements for the new carrier– it must use a compatible system (such as GSM or CDMA) and support the frequencies of the new carrier as well.

“superCID”

CID is short for “Carrier IDentification”. It is a special number in the phone that restricts which firmware can be installed on a carrier’s variant of a device. The CID determines for example, that only an officially signed T-Mobile radio image can be installed on a T-Mobile phone. And it’s why you can’t flash a Vodafone ROM onto a Bell Desire Z, two devices which are otherwise very similar.

It may be helpful to think of the CID as a kind of “region coding” like you find on DVDs, where a North American DVD can’t be played in a European player. But if you hack your DVD player, you could switch it from a European player to a North American one. Or you might even hack it to play both DVDS.

You can do the same with phones. SuperCID is, as the name implies, a universal CID where the phone will accept any kind of firmware image.

“unlocking a bootloader”

Note:

Unlocking a bootloader and unlocking a phone are two entirely different things.

The “bootloader” is the name of the program that first loads when you press the “on” button (or power button) on your device. Its responsibilities include initializing hardware and then starting the next few steps of the boot process by first loading and then running subsequent stages of the boot. These next stages load even further stages, until the operating system as a whole is loaded and you can start to use the device.

A “locked bootloader” typically has some kind of restriction on what it will load, based on a digital signature provided by an authority (such as the manufacturer of the device). Devices, which have locked bootloaders, are therefore limited in the operating system that they can load.

Many developers of free and open general-purpose computers look at locked bootloaders as a kind of “system bug” or design flaw, because they restrict the freedom of the owner of the device to replace the operating system with one which may be newer, better, faster, more secure, etc. For that reason, many otherwise “locked” bootloaders have been given a “bugfix” to removes this flaw and allow the user to replace the operating system with one that she or he prefers.

Some devices, such as Google Nexus devices, are sold with a bootloader that is locked by default and therefore only load vendor-provided updates. This is done for security purposes, as it is very easy to power off a phone, even with lock-screen security, and load custom recovery and operating system images that may allow an attacker to gain access to user data. Unlocking the bootloader is possible through the use of the fastboot tool, available for free via the android sdk, and causes an immediate wipe of user data, to prevent an attacker from using this same tool to gain access to user data.

S-OFF (Security OFF) Mode

Some bootloaders include a “Security ON” (AKA “S-ON”) mode, whereby certain operational restrictions are imposed on the boot. On some devices (such as the T-Mobile G2), the S-ON bootloader may put the operating system partition in a “read-only” mode. For others, S-ON may cause the device to adopt behavior similar to a fully-locked bootloader.
Switching the bootloader to S-OFF mode is therefore a prerequisite on some devices to allow the operating system to be modified or replaced.
Note that S-OFF does not imply that a device is rooted.

More Terminology & Concepts

See the Concepts and Vocabulary section of this wiki for discussions of additional terms such as “rooting”, “sideloading”, “jailbreaking”, “flashing”, “unlocking”, “unlocking a bootloader”, kinds of memory– “RAM”, “Internal storage”, etc. and common Android “partitions”/directories. There’s even a glossary.

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