I diversi costruttori di smartphones, tablets e altri devices Android distribuiscono i loro prodotti con le impoostazioni di funzionamento che nella maggior parte dei casi soddisfa l’uso che l’utente fà di quel dispositivo, e dando a volte anche la possibilità di modificare queste impostazioni in base alle proprie esigenze, ma comunque rimanendo sempre in un ambito di normalità. Scopo di quest’articolo è quello di migliorare, secondo appunto le proprie necessitá, le performance dei propri devices Android spingendosi oltre quel limite di normalità attraverso il modding del kernel Android installato sul nostro device.
Modding del kernel Android, ma cosa modifichiamo?
Andando per gradi cerchiamo di capire perchè e cosa facciamo, prima di tutto il kernel è quella parte di codice, a volte scritto anche usando l’assembler, che è a stretto contatto con l’elettronica del device e il sistema operativo vero e proprio, in parole ancora più semplici è la parte centrale e fondamentale del sistema operativo Android che, non è altro che una distribuzione molto personalizzata di Linux.
Sostanzialmente per raggiungere i nostri scopi possiamo operare su ben 3 diversi gruppi di operativitá del nostro dispositivo, impartendo delle vere e proprie indicazioni su come l’elettronica del device si deve comportare in determinate situazioni.
Quindi le prime direttive che possiamo impostare per migliorare le performance del nostro device riguardano la CPU, ovvero i cosidetti governors. Quest’ultimi, come detto in precedenza, indicano al processore come comportarsi per migliorare non soltanto la velocità ma per esempio come risparmiare sul consumo della batteria per avere una carica di energia prolungata.
Abbiamo 5 diversi tipi di governors ovvero :
- ondemand, la CPU và alla massima frequenza al primo tocco dello schermo per poi tornare alla minima non appena non viene più utilizzato
- conservative, si tende a consumare meno energia con prestazioni della CPU significative in caso di bisogno.
- performance, la velocità della CPU è sempre alla massima frequenza, dispendiosa in termini di consumo della batteria.
- powersave, la CPU è sempre alla minima frequenza per salvaguardare ill consumo di batteria.
- userspace, è il governor che offre la possibilità di settare tutti i parametri manualmente e a nostra scelta.
Altro aspetto su cui è possibile intervenire per ottimizzare le performance del nostro dispositivo è la pianificazione delle varie funzioni di I/O che avvengono sul device. Normalmente il settaggio prefigurato può essere noop o cfq ma diverse sono le alternative che si possono scegliere come deadline, sio, row, vr ognuna con le proprie caratteristiche di funzionamento e con il proprio buffer di memoria.
Infine ma non ultimo, anzi il più delle volte più proficuo, è l’overclocking ovvero aumentare la frequenza di lavoro della CPU a discapito naturalmente della durata della batteria. Questo perchè le CPU vengono costruite con un range di frequenze più ampio di quello di applicazione, quindi un’incremento della frequenza di lavoro è pur sempre leggittimo, anche se il rischio che la CPU non regga spegnendo il vostro device, esiste.
Non ci resta che modificare il kernel Android
Siamo arrivati alla fase finale, ma qui iniziano i problemi. Concretamente dovremo costruire il nostro kernel partendo dai sorgenti, che ripeto sono scritti in C e assembler, e quindi modificare i sorgenti a nostro piacimento, compilare con i vari tools che i programmatori utilizzano ed infine installare la build ottenuta. Un lavoro che richiede un’esperienza notevole in ambito di programmazione e che a noi non interessa e che per fortuna grazie a Google Play Store e alcune sue applicazioni, non faremo. C’è ne sono diverse come Kernel Toolkit, Kernel Tuner e altre ancora che soddisfano le nostre esigenze, naturalmente si installano e funzionano con i permessi di root.