Da Windows a Linux fino ad arrivare ad Android, tutti i sistemi operativi per PC, server e smartphone impiegano una componente detta kernel (quello di Android, in particolare, è una versione modificata di quello di Linux). Si tratta della parte centrale dell'architettura software, ovvero quella che gestisce compiti di basso livello quali la comunicazione con le periferiche hardware, l'allocazione di memoria e cicli di CPU ai singoli processi e via dicendo. Le applicazioni si interfacciano poi con il kernel per accedere alle risorse necessarie, mentre l'interfaccia utente (UI) maschera tutta la complessità dietro a grandi pulsanti colorati. Ebbene: l'architettura modulare di Android consente di rimuovere il kernel fornito in dotazione alla ROM e sostituirlo con qualcosa d'altro. Fortunatamente per noi utenti, installare un nuovo kernel su Android è facilissimo. Vediamo quali sono i benefici ottenibili e come procedere concretamente

Guida completa: come perché installare nuovo kernel smartphone Android (cosa significa Governor, Hotplug Scheduler) - android kernel spotlight

Perché installare un nuovo kernel

Installare un nuovo kernel sullo smartphone Android può portare tre vantaggi principali:

  • maggiori prestazioni
  • maggior durata della batteria
  • nuove funzionalità

Generalmente, i primi due sono mutuamente esclusivi: alcuni kernel insistono sull'ottimizzazione delle prestazioni, mentre altri lavorano sull'autonomia.

Il focus sulle performance prevede l'uso di compilatori ottimizzati per l'hardware specifico ma anche, in alcuni casi, l'abilitazione di un overclock che fa lavorare la CPU ad una manciata di megahertz in più del valore nominale.

I kernel che prediligono la conservazione della carica usano l'approccio opposto: rallentare ai minimi termini la velocità del processore quando non è in uso per poi accelerare lentamente, e, in generale, tenere a freno l'elaborazione multicore. Alcuni consentono persino di ridurre la carica di corrente fornita alla CPU (undervolt)

Guida completa: come perché installare nuovo kernel smartphone Android (cosa significa Governor, Hotplug Scheduler) - Screenshot_20161228-230342

Alcuni kernel veicolano anche funzionalità aggiuntive. Una delle più quotate è DT2W, acronimo di double-tap to wake: installando uno di questi kernel, diviene possibile fare "tap tap" a schermo spento per risvegliare il device. Un'altra interessante è USB Fast Charge: si tratta di una sorta di "carica rapida" (anche se non all'altezza dell'implementazione nativa di Qualcomm Quick Charge).

Governor, Hotplug e Scheduler

Realizzare un kernel che prediliga performance o autonomia passa dall'uso di taluni governor rispetto ad altri. Si tratta di algoritmi, implementati nel kernel stesso, che stabiliscono quando e come variare la velocità della CPU dal livello prestazionale minimo (più parsimonioso della batteria), fino a salire per raggiungere il massimo quando le circostanze lo richiedono. Questa pagina presenta gli oltre 110 governor Android attualmente disponibili.

La preferenza circa il governor da utilizzare ed i suoi parametri sono poi impostabili tramite un app come Kernel Adiutor

Guida completa: come perché installare nuovo kernel smartphone Android (cosa significa Governor, Hotplug Scheduler) - Screenshot_20161228-230326

Alcuni governor supportano l'hotplugging, ovvero la capacità di spegnere completamente i core inutilizzati per risparmiare batteria. Quando e come farlo viene stabilito da un secondo algoritmo, chiamato Hotplug Driver: anche in questo caso, le scelte sono oltre 20.

Un discorso analogo vale per la GPU: anch'essa è gestita da un proprio governor che ne modifica la frequenza di funzionamento in base al carico.

Un altro elemento da conoscere è l'I/O Scheduler: si tratta della strategia impiegata dal kernel per l'accesso ai dati su memoria persistente. In questo caso la nostra scelta è un pochino più semplice poiché, in ogni circostanza, l'impatto dell'I/O Scheduler sulla durata della batteria è sempre minimo: di conseguenza, possiamo limitarci a studiarne alcuni e provare i più promettenti, per poi adottare quello che risulta più efficace sul nostro device.

Quale kernel scegliere?

Ogni kernel Android viene pesantemente personalizzato per un determinato smartphone. Alcuni progetti portano avanti lo sviluppo di molteplici file, ma la lista è sempre piuttosto ridotta.

Il punto di partenza per trovare il nuovo kernel Android è la sezione su xda-developers.com dedicata allo specifico device in nostro possesso. Le discussioni da consultare sono quelle che riportano [Kernel] nell'oggetto.

Il primo filtro deve essere relativo alla versione di Android sulla quale si basa la ROM presente sul telefono: i kernel per Nougat (7.0) non sono compatibili con la generazione precedente (6.0). Potrebbero invece funzionare con iterazioni minori dello stesso ramo (7.1.1, ad esempio): è dunque necessario verificare puntualmente questo aspetto leggendo la presentazione del file

Guida completa: come perché installare nuovo kernel smartphone Android (cosa significa Governor, Hotplug Scheduler)

Chi prediliga kernel orientati alle prestazioni vorrà cercarne uno che impieghi questi governor:

  • Interactive/InteractiveX
  • Intelliactive
  • Performance
  • ElementalX
  • HYPER
  • Lionheart/LionheartX
  • Blu_active

Performance non è consigliabile poiché blocca la CPU sul livello prestazionale massimo, indipendentemente dal carico di lavoro. Questo comporta una drastica riduzione dell'autonomia e la tendenza a scaldare parecchio.

Per la massima durata della batteria, i governor da ricercare sono:

  • Ondemand
  • Conservative
  • Perfomance may cry (PMC)
  • Powersave
  • Smartmax
  • Intellimm
  • Alucard

Ciò detto, non vi sono altri elementi oggettivi "forti" per scegliere un kernel rispetto ad un altro. Il modo migliore è leggere per intero le discussioni e farsi un'idea di massima tramite le esperienze riportate dagli altri. I kernel con un buon numero di utenti che confermano di averlo provato con successo sono generalmente i candidati migliori, sopratutto se il file è disponibile già da qualche settimana: un tempo sufficiente per far emergere eventuali problemi macroscopici.

Ad ogni modo: preparatevi a svolgere parecchie prove, ripristini da backup e reinstallazioni prima di trovare qualcosa di davvero soddisfacente: installare un nuovo kernel è un lavoro per chi ha pazienza e voglia di sperimentare!

Come installare un nuovo kernel su Android

La procedura di installazione di un nuovo kernel su Android ricalca al 100% quella vista per il flashing di una ROM alternativa. In particolare, dobbiamo sbloccare il bootloader, quindi creare un backup completo (Nandroid) dello stato attuale. Procederemo poi a copiare sullo smartphone il nuovo kernel per poi installarlo tramite TWRP. Per la guida passo passo:

» Leggi: Come installare / flashare LineageOS, OmniROM, Resurrection Remix ed altre custom ROM sullo smartphone Android: guida completa in italiano

Nello svolgere l'operazione, ricordate che non è indispensabile eseguire la Pulizia (Passo 6 della guida): basta disattivare l'opzione Riavvia dopo che l'installazione è completata e toccare Pulisci cache/Dalvik alla fine dell'installazione

Guida completa: come perché installare nuovo kernel smartphone Android (cosa significa Governor, Hotplug Scheduler) - Screenshot_2016-12-27-15-00-50

Sottolineo di nuovo l'importanza di creare un backup Nandroid prima di installare il kernel Android scelto: ricordate infatti che, una volta svolto il flash, non non è più possibile "disinstallare" in modo automatico.

In caso di problemi

Se il nuovo kernel non funziona correttamente, potete togliervi facilmente d'impaccio ripristinando il backup Nandroid:

» Leggi: Come disinstallare LineageOS, OmniROM, Resurrection Remix ecc. e ripristinare la versione originale di Android dal backup Nandroid creato con TWRP

Guida completa: come perché installare nuovo kernel smartphone Android (cosa significa Governor, Hotplug Scheduler) - android tablet schermo rotto

Se invece lo smartphone non si accende più (soft-brick) oppure si riavvia di continuo (bootloop), la guida da consultare è la seguente:

» Leggi: [risolto] Aiuto! il mio smartphone Android non si accende più / si riavvia continuamente!! Come risolvere un soft-brick/bootloop?