Introduzione
Dopo averla provata a fondo per un paio di giorni, voglio oggi presentarvi CrossBreeder, una mod introdotta da fivefour, che migliora le prestazioni del device, migliorando la responsività e la durata della batteria.
Voglio innanzitutto chiarire che tratta argomenti abbastanza complessi ed io, pur avendo una conoscenza base discreta (non eccellente, ovvio) dei sistemi Linux ed Android, ho fatto fatica a capire per bene e tutt'ora ho diversi vuoti che sto colmando con lunghe letture del caso.
La mod mi è stata posta sotto l'occhio da un utente in un thread nella sezione Nexus 4 di questo forum ed ho deciso di testarla e condividerla con voi.
Ho testato la mod su 3 device:
- Samsung Galaxy SII, ROM SlimLinaro, 4.4.2
- Samsung Galaxy S+, ROM SlimKAT, 4.4.2
- Asus Nexus 7 2012 WiFi, ROM SlimLinaro, 4.4.2
ma essendo in sezione SII, posterò dati relativi solo al nostro device.
È compatibile con tutte le versioni di Android a partire da 2.3.x.
Hanno testato per noi la CrossBreeder su:
Android 4.2.2 AOSP, lello83.
Android 4.1.2 Samsung, sbirrosquared e nessuno10.
Android 4.4.2 AOSP, S4rr4cino e marsalasub, nonché il sottoscritto.
Che cos'è CrossBreeder?
CrossBreeder è un tool che migliora l'esperienza android riducendo i lag dell'interfaccia grafica (GUI) migliorandola in diversi parametri. Non consumerà la vostra batteria, poiché non è un apk che va in background, ma velocizzerà sensibilmente il sistema.
Tutto ciò che vi occorre sarà una custom recovery e un device android (uno qualunque, perché agisce sulle cartelle di sistema condivise da tutti i device android, punto di forza che ho apprezzato tantissimo).
La mod agisce su 5 punti per migliorare l'esperienza d'uso:
1. La prima, la più grande feature è il DNS caching, il parallelismo e l'accelerazione tether. Un sacco di lag delle app sono dovuti, sì, ai lag della UI, ma anche al tempo di interrogazione infinito dei DNS, in maniera particolare nel network mobile (2G, 3G, 4G).
CrossBreeder adesso fa uso della caching e del parallelismo dei client DNS sul device. Per cui, la maggior parte delle interrogazioni al DNS saranno velocizzate grazie al caching di essi, ma, anche se non venissero trovati, l'interrogazione non sarà svolta ad un solo DNS per volta, ma a diversi contemporaneamente, inclusi ai due server DNS di Google (8.8.8.8 e 8.8.4.4, ndr), ai due server DNS L3 e ai due server DNS del fornitore della linea ed il più veloce, risponderà per primo.
Piccola nota: un sunto velocissimo sui DNS. Questi sono dei server che fungono da interpreti tra l'input scritto del sito web da visitare e le loro coordinate numeriche (proprio come 127.0.0.1, il vostro localhost).
Tutto ciò velocizza l'accesso al network ad app come il browser, l'app di Androidiani, Tapatalk, i client email e tanti altri. Ovviamente non vi aspettate una banda in download o in upload maggiore, elimina solo dei tempi di servizio inutili, velocizzando l'esperienza internet.
Altro grosso punto a favore di CrossBreeder è la velocizzazione della connessione tethering, sia di riflesso al miglioramento del collegamento con i DNS, sia perché rimuoverà i blocchi imposti dai fornitori della linea telefonica sul tethering (Vodafone ne è l'esempio in Italia).
CrossBreeder, inoltre, funge da Adblock, inserendo un file corposo di hosts in /etc che blocca i siti malevoli e portatori di ads, facendo sparire magicamente i bannerini pubblicitari da app e siti internet.
Nota bene: se questo è un vostro limite morale, esiste un workaround: prima di installare la mod, recatevi in /etc e copiatevi il file hosts in una cartella nella vostra SD interna.
Flashate la mod e, dopo di che, con un root explorer, prendete il file hosts che vi siete salvati e sostituitelo al nuovo file hosts che trovate in /etc. Settategli tutti i permessi e riavviate.
2. La seconda feature di CrossBreeder, quella che personalmente ho fatto fatica a comprendere, è la modulazione dei livelli di entropia del sistema per ridurre i lag. Ricordate l'app Seeder? Suscitò qualche polemica tempo fa perché prometteva di gestire l'entropia del sistema e ridurre i lag. Alcuni developer esperti analizzarono il codice sorgente e scoprirono che non faceva altro che settare un governor performante ed un treshold_down molto alto, in modo da non avere lag, ma era un effetto placebo! Da allora diventai abbastanza diffidente quando si parla di entropia, ma questa mod sa il fatto suo.
L'intero sistema operativo legge sia /dev/random che /dev/urandom ed entrambi necessitano di entropia. Questa mod usa un diverso generatore numerico random chiamato algoritmo Havege. È stato creato per rimediare alla bassa entropia in certi dispositivi di fascia bassa Linux che può avvenire sotto sforzo (al secondo post una prova tangibile).
Quello che Havege fa, in soldoni, è tenere il device scattante e pronto, senza consumare batteria.
3. La terza feature è il cambiamento ad alcuni parametri del kernel, in maniera particolare wakeup_threshold, ossia la soglia di frequenza alla quale si sveglia la CPU, cosi che questa si svegli ed istantaneamente scriver.
4. La quarta feature, altra che non ho compreso a fondo, è quella di rimuovere /dev/random come blocco collegando /dev/urandom come non bloccante (???). Siccome /dev/random blocca ed è architettato per proteggerci dai crittografi alieni con certezza matematica (sto traducendo alla lettera dal thread di XDA, non mi son fumato niente di strano) e urandom non blocca alcunché che la maggior parte dei sistemi operativi usa comunque, è comunque sicuro in qualsiasi maniera visto che è davvero difficile svuotare il bacino di entropia più velocemente di quanto Havege riesca a riempirlo. Nei device pre 4.0.x, questa modifica si sentiva molto in positivo, ma anche nei 4.0.x+ è efficace.
5. La quinta ed ultima feature, il supporto frandom (opzionale). CrossBreeder supporta il collegamento sia ai device random (i sopra citati /dev/random e /dev/urandom) sia all'alternativa estremamente veloce Frandom. Questo modulo è dalle 10 alle 50 volte più veloce degli standard device sopra citati. Il device erandom installato da Frandom non usa il sistema di entropia al massimo della velocità: sarà necessario chiedere al dev della tua ROM di buildarlo come modulo all'interno del kernel della ROM. CrossBreeder lo caricherà e se riuscirà, farà tutti i necessari aggiustamenti dei settaggi, così che sia /dev/random che /dev/urandom punteranno rispettivamente a /dev/frandom e /dev/erandom.
Gli utenti avanzati possono anche provare e caricare il modulo frandom costruito per altri kernel se loro non ne hanno uno disponibile per il loro, usando la Punchmod utility.
Struttura e gerarchia di CrossBreeder
I file flashati con CrossBreeder si andranno a disporre in tale maniera:
- /system/etc/CrossBreeder
- /system/bin/dnsmasq
- /system/bin/dnsmasq_dhcp
- /system/xbin/haveged
- /system/etc/hosts
- /system/bin/debuggerd
- /system/xbin/debuggerd
- /data/rngd.pid
Download ed installazione
- Scaricate CrossBreeder dal fondo di questa pagina (non linko qui per dare i giusti crediti al thread e per tenere la lista sempre aggiornata, senza stravolgere questo thread).
- Eseguite un nandroid backup (non necessario, ma ultraconsigliato sempre e comunque).
- Flashate lo zip da custom recovery (CWM o TWRP, è indifferente).
Per disinstallarlo, flashate il secondo file con la dicitura uninstall al suo interno.
Thread originale su XDA.
Sorgenti di CrossBreeder su Github.
Tutti i credits vanno ai creatori della mod, io mi son prestato solo a provarla per voi e a tradurre il thread, interpretando al meglio delle mie capacità i contenuti.