martedì 1 ottobre 2013

Baseband - La connessione del nostro device



Vi sarete tutti accorti, ormai, della voce Versione baseband nella sezione "Info sul telefono", nel menu impostazioni.
Solitamente potete trovare alcuni caratteri preceduti dal nome in codice del vostro dispositivo. Il mio Samsung Galaxy SII (nome in codice GT-i9100) mostra questa sigla:



Potete distinguere bene la sigla BULP6 ed accanto I9100. Come detto prima, mentre quest'ultima sigla indica il nome del device (utile per riconoscere anche il file che si sta flashando), la prima indicata nasconde il tipo di baseband che si monta.
Innanzitutto una prima panoramica su come funziona una baseband (a grandi linee, una digressione dettagliata sarebbe pressoché inutile per voi e dispendiosa per me).
Il telefono, per effettuare chiamate, per mandare SMS/MMS e per collegarsi ad internet via 2G/3G si aggancia ad una linea che è gestita da due software nel nostro telefono: la baseband (o banda base, ossia l'interfaccia radio del device ed il RIL (Radio Interface Layer), un software che si occupa di far comunicare tra loro il sistema operativo (Android nel nostro caso) e la baseband per l'appunto.
In Italia i maggiori operatori telefonici sono 4: Vodafone, Tim, Wind e H3G (Postemobile si appoggia a Vodafone) e per ogni operatore, esistono dei diversi parametri e dettagli tecnici di gestione delle connessioni (qui siamo fuori dalla mia competenza, per cui accenno genericamente), per cui esistono diverse baseband specifiche per un operatore o per un altro. È possibile, pertanto, cambiare baseband se, per dire, si decide di cambiare scheda SIM e gestore telefonico in modo da avere una ricezione migliore, ma anche una migliore durata della batteria
Come mai anche la batteria viene invischiata in questi processi di linea telefonica? Una baseband brandizzata H3G, ma che appoggia una connessione a Vodafone non ha, ovviamente, le stesse caratteristiche di una baseband Vodafone e quindi, di conseguenza, il segnale risulta intermittente e scarso. Android, o meglio, il kernel, per sopperire a questo disordine di segnale, interpella la CPU che viene in soccorso del baseband e quindi, attivandosi, consuma batteria a seconda di quanto tempo viene interpellata. 
Altro aspetto che, se gestito male, interpella la CPU è la mancata corrispondenza tra RIL e baseband. Difatti entrambi i software devono "parlare" lo stesso linguaggio affinché la comunicazione sia efficiente ed il segnale buono. Un RIL che non corrisponde alla relativa baseband crea una ricezione di segnale scadente ed anche in questo caso, la CPU fa il suo gioco sopperendo alle mancanze dei software, consumando la carica della batteria. 



Dicevamo che diversi operatori hanno le loro baseband dedicate. Questo aspetto è stato notato nei telefoni brandizzati (quelli commercializzati dagli operatori stessi con piani tariffari dedicati ed agevolati) che, a differenza dei device no-brand, avevano una versione di bandabase diversa differente. 
Per quanto riguarda i Samsung Galaxy S2 (faccio riferimento a questo device poiché la mia conoscenza maggiore si riferisce a questo, ma i concetti generali sono gli stessi, cambiano solo i nomi dei baseband) è facile distinguere le varie baseband dalla loro sigla:
- le baseband che iniziano per B sono dedicate a linee Vodafone
- le baseband che iniziano per N sono dedicate a linee H3G
- le baseband che iniziano per X sono no-brand, ossia compatibili genericamente con tutti (Tim in primis).

In linea di massima Tim e Wind possono girare tranquillamente sulle baseband no-brand, mentre Vodafone e H3G utilizzando quelle dedicate (non è raro che i no-brand vadano bene anche per questi ultimi due operatori).

Esistono anche diverse versioni di baseband per ogni operatore ed in genere è sempre meglio flashare l'ultima versione, poiché vengono introdotti miglioramenti e maggiore compatibilità con le ultime versioni di Android. Ma come capire quando cambiare la baseband?

Esistono tre modi, non indipendenti fra loro, anzi, si completano a vicenda: 

  •  attraverso l'indicatore della potenza del segnale (che in genere si trova nella voce "Stato" nella sezione "Info sul telefono" nel menu Impostazioni. Trovate due valori numerici -xx dBm / xx asu, in genere oscillante tra -65 e -130 (sono valori negativi) il primo e 5 e 25 l'altro (valori positivi). Valori più bassi indicano un segnale più scadente (ad esempio -96 dBm / 8 asu), valori più alti indicano un segnale migliore (ad esempio 80 dBm / 15 asu).



In immagine potete vedere i miei valori di dBm / asu.
È il caso di cambiare la baseband quando registrate troppo spesso valori bassi di dBm / asu.
NB. lungi da me fare il professore di matematica ma è una cosa che può sfuggire se si guarda con disattenzione: una cifra alta con segno meno (-) indica un valore più basso, quindi -80 dBm > -110 dBm.


  •  altro metodo complementare per tenere sotto controllo il segnale lo trovate tappando sul grafico che vi appare nella sezione "Batteria" nel menu impostazioni. Lì trovate una barra proprio sotto al grafico massimizzato e solitamente è colorata di verde (se siete fortunati), ma molto più spesso assume tonalità giallastre, verdi e, meno spesso, rosse e nere. Questi colori indicano la potenza del segnale telefonico ed il lasso di tempo che ha mantenuto quella determinata potenza e sono catalogati secondo quest'ordine:

             - nero: connessioni off (modalità aereo)
             - rosso: segnale assente
             - giallo: potenza di segnale minima
             - giallo sporco: leggermente più potente del precedente
             - giallo più sporco: ancora più potente
             - giallo/grigiastro: segnale discretamente potente
             - verde: segnale ottimo

Inutile dire come sia preferibile avere nella barra una prevalenza di segnale verde. Una presenza troppo assidua di segnale rosso e giallo è indice di una cattiva ricezione, per cui è consigliabile cambiare baseband. Inoltre una moltitudine di colori troppo ravvicinata indica un segnale intermittente, cosa che ha influenza sulla batteria (la CPU tenta di tenere vivo il segnale, consumando carica).



Nell'immagine è indicato il mio grafico. Come potete vedere ho una prevalenza di segnale verde, tranne al centro dell'immagine, dove c'è stata una forte intermittenza. In quel momento mi trovavo in auto mentre percorrevo una strada con ricezione scarsissima. In valore assoluto e con condizioni ottimale, se per ipotesi avessimo sezionato quella parte e comparato ad un'altra sezione uguale in termini di tempo, sarebbe emerso un battery drain molto maggiore per il primo caso.


  • il terzo ed ultimo metodo complementare per vedere se la baseband che abbiamo funziona a dovere è da ricercarsi nell'uso dell'app BetterBatteryStats (qui nella versione Donate e qui nella versione gratuita). Una volta installata l'app, avviatela ed accettate le varie finestre di dialogo, dopo di che lasciate scaricare il telefono fino a che arrivate intorno al 30-40% di carica, dopo di che aprite l'app ed impostate i due parametri: partial wakelocks e since charged. Scrollatevi i vari processi e cercate la voce "svnet", "svnet dormancy" e "RILJ". 
Se avete valori superiori all'1%, significa la baseband "sveglia" la CPU dal suo stato di quiete di deep sleep per sollecitarla a migliorere il segnale.


L'unico valore che ho indicato nell'app è RILJ che sta sotto lo 0,1% (non vengono indicati i valori compresi tra 0% e 0,1%) ed in genere è normale. Gli altri due valori, svnet e svnet dormancy non sono presenti tra i wakelocks, il che significa che la CPU non viene interpellata e la baseband è ottimale.

Veniamo al lato pratico: come cambiare baseband al proprio device? Ancora una volta espongo la pratica per il Samsung Galaxy SII, con la promessa di integrare con un altro paio di device più in là col tempo. 
Esistono tre modi per farlo:

  •  tramite CWM (con e senza permessi di root, con la CWM temporanea)
  •  tramite l'app Mobile Odin pro di Chainfire (necessari i permessi di root)


Se volete utilizzare la vostra CWM, è sufficiente scaricare uno dei modem in formato .zip elencati in questa pagina del forum di Androidiani, posizionarli nella memoria interna od esterna del telefono, effettuare un nandroid backup ed un backup della cartella EFS.
Riavviate in recovery, selezionate "install zip from sdcard" e scegliete lo .zip da flashare. Opzionale potete wipare cache e dalvik cache per evitare eventuali problemi (non si perderanno dati). Se non avete i permessi di root per poter flashare da recovery, potete utilizzare la CWM provvisoria.


Se volete utilizzare Mobile Odin pro sarà sufficiente prendere il firmware Samsung (in formato .tar) dal quale volete prendere la baseband, scompattarlo e tirare fuori il file modem.bin, inserirlo nella sd del device, aprire Mobile Odin pro, andare nella sezione modem e selezionare il file modem.bin, dopo di che selezionare "Flash firmware". Lo stesso metodo di estrazione può essere fatto dai file .zip, visto che al loro interno contengono il file modem.bin.

In questo modo avrete cambiato la vostra baseband (potete controllare al solito dalla sezione Stato telefono). Spesso viene indicato di cambiare anche il RIL e per questo la procedura è molto più semplice: difatti è sufficiente scaricare l'app GetRIL e selezionare il RIL corrispondente alla baseband al momento montata. 
ATTENZIONE: tanti utenti, me compreso, hanno avuto problemi con quest'app, in primis la scomparsa dell'IMEI e la perdita di segnale (fortunatamente avevo un backup della cartella EFS tramite l'app GSII_Repair, utilissima che vi straconsiglio di scaricare). Nonostante l'app sia compatibile pienamente con Jelly Bean 4.2.2 è sconsigliato il suo utilizzo su questa versione di Android, l'ho riportato nella guida per conoscenza. Resta il fatto che, comunque, funziona (per cui usatela a vostro rischio).

È tutto, perdonatemi se sono risultato prolisso, ma essendo un argomento importante e da trattare delicatamente, alcuni discorsi erano indispensabili. Vi lascio, come al solito, con i link ai thread di XDA e di Androidiani.com sull'argomento.