# CyanogenMod

CyanogenMod (IPA: /saɪ.'æn.oʊ.dʒɛn.mɒd/) è stato un firmware disponibile per oltre trecento modelli di cellulari e tablet basati sul sistema operativo open source Android.
Lo sviluppo di CyanogenMod è cessato nel dicembre 2016 a causa di problemi dell'azienda costituita per sponsorizzarne lo sviluppo e detentrice del nome. Gli stessi sviluppatori hanno creato il fork LineageOS come continuazione del progetto.
Offriva funzionalità e opzioni non disponibili sui firmware ufficiali, basati su Android, dei produttori di questi dispositivi, incluso un supporto nativo per i temi (conosciuto anche come "T-Mobile Theme Engine"), un codec per il Free Lossless Audio Codec (FLAC), cache compressa (compcache), un'estesa lista di APN, un client OpenVPN, un menu di reboot, supporto per Wi-Fi, Bluetooth e tethering USB, miglioramenti allo schedulatore del kernel e profili di overclock, pulsanti software (soft-button) e altre migliorie per i tablet, tasti di attivazione nella schermata delle notifiche (come Wi-Fi, Bluetooth, GPS e molti altri) e altre migliorie di interfaccia. CyanogenMod sosteneva di aumentare performance ed affidabilità paragonato ai firmware ufficiali.
Sebbene solo una parte degli utenti di CyanogenMod decida di segnalare l'utilizzo del firmware, al 20 gennaio 2014, CyanogenMod ha registrato oltre 5 milioni di installazioni attive su una moltitudine di dispositivi.

## Storia e sviluppo

Poco tempo dopo l'introduzione del telefono cellulare HTC Dream (conosciuto come "T-Mobile G1" negli Stati Uniti) nel settembre 2008, fu scoperto un sistema per ottenere un controllo di amministrazione (conosciuto come "accesso root") al sistema Linux sul quale si basa Android. Avere i permessi di root, combinati alla natura open source del sistema operativo Android, ha permesso al firmware originale del telefono di essere modificato e re-installato sul telefono stesso.
Negli anni successivi molti firmware modificati furono sviluppati e distribuiti da appassionati di Android. Uno, mantenuto da uno sviluppatore chiamato JesusFreke, presto diventò popolare tra i possessori del Dream. Nell'agosto 2009 JesusFreke smise di lavorare al suo firmware e suggerì agli utenti di passare a una versione della sua ROM che era stata ulteriormente migliorata dallo sviluppatore Cyanogen (Steve Kondik), chiamata "CyanogenMod". Dal luglio 2012 nel Core Team del CyanogenMod Team c'è uno sviluppatore italiano di sedici anni, Aldo Jr, conosciuto con lo pseudonimo di westcrip o AMJr.
La popolarità di CyanogenMod crebbe rapidamente e una piccola comunità di sviluppatori, conosciuta come CyanogenMod Team (e in maniera informale come "Team Douche"), contribuì al progetto. Nel giro di pochi mesi il numero di dispositivi e di funzionalità supportate da CyanogenMod aumentò e CyanogenMod diventò in poco tempo una delle distribuzioni di firmware Android più popolari. A inizio 2014 CyanogenMod annuncia lo sviluppo di un dispositivo in collaborazione con OnePlus con il firmware modificato preinstallato nativamente.
Il 23 dicembre 2016, a causa della chiusura dei server di Cyanogen Inc. e della compagnia stessa, la comunità ha deciso di terminare lo sviluppo della custom ROM. I dispositivi che montano Cyanogenmod non riceveranno più aggiornamenti a partire dal 31 dicembre. Sempre in quella data, il link per scaricare le nightly build diventerà inaccessibile. In seguito, il team di Cyanogenmod crea un nuovo progetto che riparte dai sorgenti di CM, chiamata LineageOS.

### CyanogenMod 1

La versione 1 non è mai stata distribuita perché era una versione Alpha iniziale: è quindi solo servita agli sviluppatori per iniziare a dare forma alla rom.

### CyanogenMod 2

La versione 2 non è mai stata distribuita all'utenza finale perché presentava ancora molti bug ed imperfezioni.

### CyanogenMod 3

La versione 3 è basata su Android 1.5 Cupcake.

### CyanogenMod 4

La versione 4 è basata su Android 1.6 Donut.

### CyanogenMod 5

La versione 5 è basata su Android 2.1 Eclair.

### CyanogenMod 6

Steve Kondik pubblicò CyanogenMod 6, basata su Android 2.2 Froyo, per il Nexus One, Dream, Magic, Droid, Aria, Legend, Desire, Evo 4G, Hero, Wildfire, Incredible e myTouch 3G Slide. Una versione preliminare di CyanogenMod 6 fu resa disponibile l'11 luglio 2010 e la versione stabile fu pubblicata il 28 agosto 2010.

### CyanogenMod 7

Il firmware CyanogenMod 7 è basato su Android 2.3 Gingerbread con codice aggiuntivo personalizzato da parte del CyanogenMod Team. Le porzioni personalizzate di CyanogenMod sono preliminarmente scritte da Cyanogen (Steve Kondik), ma includono contributi dalla comunità xda-developers (come una barra di lancio, un compositore telefonico e un browser migliorato), così come codice proveniente da progetti open source consolidati (come per l'inclusione di BusyBox nella shell).
Lo sviluppo di CyanogenMod 7 iniziò dopo la pubblicazione del codice sorgente di Android 2.3 (Gingerbread) da parte di Google. Il 15 febbraio 2011 fu pubblicata la prima versione preliminare di CyanogenMod 7 per molti dei dispositivi supportati. La quarta versione preliminare fu pubblicata il 30 marzo 2011 e portò un maggiore supporto per il Nook Color e altri sistemi simili e molte correzioni. L'11 aprile 2011, la versione pubblica di CyanogenMod 7.0 fu distribuita, basata su Android 2.3.3. L'ultima versione stabile, CyanogenMod 7.2, fu pubblicata il 16 giugno 2012, basata su Android 2.3.7.

### CyanogenMod 8

La versione 8 di CyanogenMod si prevedeva basata su Android 3.0 Honeycomb; tuttavia, il codice sorgente non fu mai distribuito da Google. Per questo motivo la versione 8 non fu mai realizzata.

### CyanogenMod 9

CyanogenMod 9 è basato su Android 4.0 Ice Cream Sandwich. Steve Kondik e il suo team hanno annunciato di aver avviato i lavori per la nuova versione dopo che Google ha reso disponibile il codice sorgente di Android 4.0.1. Lo sviluppo di questa versione ha richiesto più tempo che con le versioni precedenti, a causa della rilevanza delle modifiche tra Android 2.3 "Gingerbread" e 4.0 "Ice Cream Sandwich". Così la squadra ha colto l'occasione per mostrare una nuova visione della ROM e ripensare alle modifiche che non erano più necessarie a causa dei miglioramenti Android.
Negli ultimi giorni del novembre 2011, alcune versioni Alpha sono state distribuite, in particolare per i dispositivi Samsung Nexus S e Galaxy S. Il 9 agosto 2012, dopo varie Beta e Release Candidate, CyanogenMod ha pubblicato la versione finale di CyanogenMod 9. Considerando che la versione di Android 4.1 "Jelly Bean", era stata pubblicata proprio in quei giorni, lo sviluppo venne trasferito rapidamente a CyanogenMod 10. Il 29 agosto 2012, CyanogenMod ha pubblicato un piccolo aggiornamento, CyanogenMod 9.1.0, portando correzioni e un'applicazione chiamata SimplyTapp per i pagamenti NFC.
Il 4 aprile 2012, durante lo sviluppo, CyanogenMod ha presentato "Cid" (pronunciato / sɪd /), la nuova mascotte CyanogenMod, che ha sostituito la mascotte precedente, Andy lo skateboard "bugdroid". CID è l'abbreviazione di "CyanogenMod ID".

### CyanogenMod 10

Il 9 luglio 2012, il team CyanogenMod ha annunciato, tramite l'account Google+, che CyanogenMod 10 sarebbe stata basata su Android 4.1 Jelly Bean. La Nightly di CyanogenMod 10 è stata messa a disposizione per molti dispositivi supportati da CyanogenMod 9. Dal settembre 2012 con lo sviluppo della prima milestone, il team CyanogenMod ha cominciato la "M Snapshot", cioè delle uscite mensili. All'inizio di ogni mese, il team CyanogenMod quando ritiene una build abbastanza stabile per un uso quotidiano, viene pubblicato come serie "M Snapshot".
Il 13 novembre 2012, è stata pubblicata una versione finale stabile per diversi dispositivi.

### CyanogenMod 10.1

CyanogenMod 10.1 è basato su Android 4.2 Jelly Bean. Le versioni nightly sono attualmente disponibili per una vasta gamma di dispositivi, come M Snapshots. Dal 24 giugno 2013, lo stato delle ROM CyanogenMod 10.1 (basato su Android 4.2.2) è stato dichiarato "stabile", con nuovi dispositivi attualmente supportati che hanno ricevuto la stabilità lo stesso giorno. Gli sviluppatori di CyanogenMod hanno dichiarato che sarebbe continuato il programma M Snapshot che integra nuove funzionalità ogni mese. Purtroppo, molti dispositivi che utilizzano Samsung Exynos e Nvidia Tegra 2 SoC non facevano parte della prima release.

### CyanogenMod 10.2

Il rilascio della prima nightly di CyanogenMod 10.2, che si basa su Android 4.3 Jelly Bean, ha iniziato a rotazione a selezionare i dispositivi compatibili il 14 agosto 2013. Esso porta alcuni nuovi miglioramenti al sistema, come ad esempio il Bluetooth Low Energy, il supporto con OpenGL ES 3.0, l'applicazione del telefono rinnovata, il supporto con la risoluzione 4K (3840*2160) e molti miglioramenti della sicurezza e della stabilità.

### CyanogenMod 11

Il 6 novembre 2013, il team CyanogenMod ha iniziato a pubblicare il codice di CyanogenMod 11, basato su Android 4.4 KitKat, su GitHub. Le prime nightly di CyanogenMod 11.0 sono iniziate a rotazione per un numero selezionato di dispositivi, il 5 dicembre 2013. Da allora, le M-Snapshot sono state distribuite ogni mese per i dispositivi supportati, offrendo un'esperienza più stabile. Con la Milestone 6 è stato chiarito che CyanogenMod non sarebbe più stata dichiarata "stabile", ma invece sarebbero continuate le M Snapshot che rappresentano un canale stabile. Il 25 giugno 2015 il team annuncia la fine dello sviluppo su KitKat distribuendo l'ultima Snapshot.

### CyanogenMod 12

CyanogenMod 12 è basato su Android 5.0 "Lollipop". Nel corso del novembre 2014, Aldo Jr ha pubblicato la prima release ufficiale della dodicesima versione che è stata resa disponibile sotto forma di sorgenti compilabili dagli sviluppatori. La prima nightly ufficiale è arrivata il 6 gennaio 2015. Il 25 giugno 2015 il team annuncia la fine dello sviluppo distribuendo l'ultima Snapshot.

### CyanogenMod 12.1

CyanogenMod 12.1 è basato su Android 5.1 "Lollipop". Disponibile dal 25 aprile 2015 e tuttora in sviluppo.

### CyanogenMod 13

CyanogenMod 13 è basato su Android 6 "Marshmallow". Disponibile da novembre 2015 e per la maggior parte dei dispositivi

### CyanogenMod 14

CyanogenMod 14 sarebbe dovuta essere basata su Android 7 "Nougat". Non verrà sviluppata a favore della 14.1. Disponibile solo in alcune building non ufficiali.

### CyanogenMod 14.1

CyanogenMod 14.1 è basata su Android 7.1.1 Nougat. Le prime nightly sono uscite l'11 novembre 2016. Questa sarà anche l'ultima release di tale ROM, infatti dal 31 dicembre 2016, in seguito alla decisione di Cyngn Inc. di interrompere tutte le strutture dalle quali dipendeva lo sviluppo di tale ROM (builder, hosting ecc.) il progetto sarà abbandonato.

### Nightly build e M-builds

Oltre alle versioni stabili di cui si è parlato prima, CyanogenMod è anche disponibile per molti dei dispositivi supportati sotto forma di nightly build, conosciute in modo informale come nightly. Le nightly build sono versioni installabili di CyanogenMod create con gli ultimi sorgenti disponibili, approssimativamente ogni 24 ore. Siccome il codice di CyanogenMod è aggiornato continuamente dagli sviluppatori, le nightly build permettono agli utenti di provare le modifiche più recenti. Sebbene però diano accesso ai non-sviluppatori alle ultimissime correzioni, le nightly build possono anche contenere nuovi bug in quanto generate da un server. Le nighlty build di CyanogenMod sono disponibili su molti siti web, che nel loro insieme costituiscono una rete di mirror.. Da settembre 2012 il team CyanogenMod ha annunciato di voler distribuire ogni mese, per device specifici, delle M-Builds, ovvero delle nightly che subiscono verso la fine di ogni mese una stabilizzazione rispetto a quelle classiche, riducendo quindi il numero di bug presenti. Queste ultime sono state poi sostituite da release "stabili" rilasciate a cadenza generalmente mensile.

## Versioni CyanogenMod

Vedi Anche: Versioni Android
| Versioni CyanogenMod | Versioni Android | Versioni ultime o maggiori | Data pubblicazione | Changelog (novità rispetto alle versioni precedenti) |
| 3 | Android 1.5 (Cupcake) | 3.6.8.1 | 1º luglio 2009 | 3.6.8 basato su Android 1.5r3 |
| 3 | Android 1.5 (Cupcake) | 3.9.3 | 22 luglio 2009 | 3.9.3 aggiunto supporto formato audio FLAC |
| 4 | Android 1.5/1.6 (Cupcake/Donut) | 4.1.4 | 30 agosto 2009 | 4.1.4 è basato su Android 1.6 (Donut); QuickOffice è stato rimosso. |
| 4 | Android 1.5/1.6 (Cupcake/Donut) | 4.2.15.1 | 24 ottobre 2009 | 4.2.3 ha poi supportato il tethering USB; dalla versione 4.2.6 CyanogenMod è basato su Android 1.6r2; dalla versione 4.2.11 è stato integrato lo zoom avanti per Browser, ed il pinch to zoom per scorrere nella Galleria. |
| 5 | Android 2.0/2.1 (Eclair) | 5.0.8 | 19 luglio 2010 | ADW.Launcher è stato impostato come launcher di default. |
| 6 | Android 2.2.x (Froyo) | 6.0.0 | 28 agosto 2010 | Introdotta la doppia fotocamera e il supporto Wi-Fi Hotspot. Compilatore Just-in-time (JIT) per maggiori prestazioni. |
| 6 | Android 2.2.x (Froyo) | 6.1.3 | 6 dicembre 2010 | 6.1.0 è basato su Android 2.2.1 |
| 7 | Android 2.3.x (Gingerbread) | 7.0.3 | 10 aprile 2011 | 7.0.0 è basato su Android 2.3.3 |
| 7 | Android 2.3.x (Gingerbread) | 7.1.0 | 10 ottobre 2011 | 7.1.0 è basato su Android 2.3.7 |
| 7 | Android 2.3.x (Gingerbread) | 7.2.0 | 16 giugno 2012 | I nuovi dispositivi hanno traduzioni aggiornate, applicazione telefonica predittiva, la capacità di controllare i feedback tattili nelle ore di sonno, aggiornamenti nel lockscreen, animazione ICS, possibilità di configurare l'icona della batteria nella barra di stato, molte correzioni di bug. |
| 8 | Android 3.x (Honeycomb) | N/A | N/A | Google non ha mai pubblicato il codice sorgente di Android 3.0 Honeycomb. |
| 9 | Android 4.0.x (Ice Cream Sandwich) | 9.1 | 29 agosto 2012 | Sicurezza avanzata, root usage disattivato di default. Aggiunto il supporto per SimplyTapp. |
| 10 | Android 4.1.x (Jelly Bean) | 10.0.0 | 13 novembre 2012 | Modalità Desktop Espandibile, CM File Manager con permessi di root. |
| 10 | Android 4.2.x (Jelly Bean) | 10.1.3 | 24 giugno 2013 | |
| 10 | Android 4.3.x (Jelly Bean) | 10.2.1 | 31 gennaio 2014 | Opzione Blacklist aggiunta all'applicazione telefonica. |
| 11 | Android 4.4.x (KitKat) | 11.0 M1 | 5 dicembre 2013 | WhisperPush: Integrazione del protocollo di messaggistica sicura di TextSecure come un'opzione in funzione. Consente l'invio di messaggi SMS cifrati ad altri utenti di CM o TextSecure. |
| 11 | Android 4.4.4 (KitKat) | 11.0 M12 | 12 novembre 2014 | Compatibiltà del Galaxy S4 Active, Galaxy S5 GSM, Galaxy S4 SK I-9506, Galaxy Tab 10. e del Galaxy Player 4.0, molti aggiornamenti al framework. |
| 12 | Android 5.0.x (Lollipop) | 12.0 | 6 gennaio 2015 | Il file manager, il browser e le varie app Cyanogenmod diventano Material Design. |
| 12 | Android 5.1 (Lollipop) | 12.1 | Aprile 2015 | Correzioni di bug e miglioramenti delle prestazioni varie che affliggevano le precedenti versioni di Lollipop, tra cui la chiusura improvvisa di alcune app. |
| 13 | Android 6.0.x (Marshmallow) | 13.0 | Novembre 2015 | |
| 14 | Android 7.0.x (Nougat) | N/A | N/A | Non venne sviluppata a favore della 14.1 |
| 14 | Android 7.1 (Nougat) | 14.1 | 9 novembre 2016 | |
Vecchia versione
Vecchia versione, ancora supportata
Ultima versione stabile
Ultima versione di anteprima

## Strumenti

Il repository del codice sorgente di CyanogenMod contiene anche la ClockworkMod Recovery, una "immagine di ripristino", mantenuta da Koushik "Koush" Dutta, utilizzata per installare CyanogenMod e altri aggiornamenti personalizzati. Un'immagine di ripristino è una modalità speciale di boot utilizzata per fare il backup e il ripristino dei supporti di memorizzazione del dispositivo o per riparare/aggiornare il software di sistema. ClockworkMod Recovery può essere installata automaticamente su molti dispositivi supportati da CyanogenMod sui quali sia stato ottenuto l'accesso root usando un'applicazione di Dutta chiamata "Rom Manager", disponibile su Google Play.

## Reazioni dell'industria

La risposta dei produttori di smartphone e tablet e degli operatori mobili è stata generalmente poco favorevole allo sviluppo di firmware di terze parti: i produttori avevano espresso preoccupazione per un cattivo funzionamento del dispositivo che facesse uso di versioni non ufficiali del software e per i relativi costi di supporto. Inoltre, i firmware come CyanogenMod, a volte, offrono funzioni per le quali gli operatori applicano un sovrapprezzo (es. Tethering). Come risultato, in molti dispositivi era comune l'introduzione di ostacoli tecnici, come il blocco del bootloader e l'accesso limitato ai permessi di root.
Tuttavia, la popolarità del software sviluppato dalla comunità è cresciuta e, a seguito alle norme emanate dalla Biblioteca del Congresso che consentono lo sbloccaggio dei dispositivi mobili, produttori e operatori hanno moderato la loro posizione riguardo CyanogenMod e altri firmware non ufficiali. Tra questi, HTC, Motorola e Sony Ericsson sono arrivati a fornire supporto e incoraggiarne lo sviluppo. LG Italia ha inoltre rilasciato un comunicato secondo cui i loro dispositivi sono coperti da garanzia anche con firmware modificati e firmware originali con permessi root.
Nel 2011, la necessità di aggirare le restrizioni hardware all'installazione di firmware non ufficiali è diminuita grazie al crescente numero di dispositivi venduti con un bootloader già sbloccato o facilmente sbloccabile, in maniera simile alla serie di telefoni Nexus. Il produttore HTC ha annunciato il supporto per lo sviluppo di firmware non ufficiali rendendo sbloccabile il bootloader di tutti i nuovi dispositivi, e Samsung ha inviato diversi telefoni Galaxy S II al team di CyanogenMod con l'esplicito scopo di renderlo disponibile per quel dispositivo. L'operatore mobile T-Mobile ha espresso il suo supporto per il progetto CyanogenMod con un messaggio su twitter: "CM7 is great!".