====== Samsung Nexus S Android phone ======
Caratteristiche:
* Schermo 480 x 800 pixels, 4.0 inches
* CPU 1 GHz Cortex-A8
* Memoria: 16 Gb storage, 512 Mb RAM (no card slot)
* Sistema Operativo Android 2.3.4
* Modello **GT-I9023**, Super Clear LCD per l'Europa. Altro modello GT-I9020 con display Super AMOLED.
* [[http://www.gsmarena.com/samsung_google_nexus_s-3620.php|www.gsmarena.com]]
* [[wp>Nexus_S]]
{{.:nexus:nexus_i9023_jack_ok.jpg?100|}}
{{.:nexus:nexus_s_jack_wrong.jpg?100|}}
===== Applicazioni da installare subito =====
Questo l'elenco delle applicazioni installate dal Market Android:
* **[[http://www.navit-project.org/|Navit]]** off-line map and routing.
* **[[https://play.google.com/store/apps/details?id=net.osmand&hl=en|OsmAnd]]** off-line map and on-line routing.
* **[[http://mendhak.github.com/gpslogger/|GPS Logger for Android]]** GPS logger, distance tracking disabled due [[https://github.com/mendhak/gpslogger/issues/57|#57 bug]].
* **[[http://code.google.com/p/open-gpstracker/|Open GPS Tracker]]**
* **[[https://market.android.com/details?id=me.guillaumin.android.osmtracker|OSMTracker for Android]]** Mapper tagging (photo, voice, text, preset, etc.) companion.
* **[[http://code.google.com/p/connectbot/|ConnectBot]]** client SSH
* **[[https://market.android.com/details?id=org.pocketworkstation.pckeyboard|Hacker's Keyboard]]** In modalità orizzontale presenta una tastiera completa di tasti freccia, funzione, ecc. Richiede accesso root.
* **[[https://market.android.com/details?id=jackpal.androidterm|Android Terminal Emulator]]**, per la verità non molto utile senza un server SSH (es. ''dropbear'') e qualche tool tipo ''busybox''. Vedere [[http://www.droidforums.net/forum/droid-hacks/9038-ssh-daemon-dropbear-android-2-0-a.html|questo articolo]].
* **[[https://market.android.com/details?id=stericson.busybox|BusyBox]]** (non-free). In realtà si tratta solo di un installer che consente di scegliere la versione di **''[[wp>BusyBox|busybox]]''** (software libero) da installare. Richiede permessi di root.
* **[[http://code.google.com/p/zxing/|Barcode Scanner]]** legge codici a barre e QR
* **[[https://market.android.com/details?id=com.fsck.k9|K-9 Mail]]** email reader un po' ostico da configurare. Vedere la [[..:android:start|struttura dei menu]] e l'articolo [[https://github.com/k9mail/k-9/wiki/WorkingWithClasses|Working With Classes]].
* **[[https://market.android.com/details?id=net.tedstein.AndroSS|AndroSS]]** Cattura schermata, a scuotimento.
* **[[http://www.viber.com/|Viber]]** telefonate VoIP e SMS (non-free)
* **[[http://www.appbrain.com/app/androsensor/com.fivasim.androsensor|AndroSensor]]** mostra lo stato dei sensori (non-free, adware)
* **[[https://play.google.com/store/apps/details?id=com.estrongs.android.pop|ES File Explorer]]** (non-free) ha la funzione Root Explorer nella versione gratuita.
* **[[https://play.google.com/store/apps/details?id=xcxin.filexpert|File Expert]]** (non-free). La funzione //Root Explorer// è diventata a pagamento nella versione 4.2.2.
* **[[https://play.google.com/store/apps/details?id=com.nexes.manager|Open Manager]]** e **[[https://play.google.com/store/apps/details?id=org.openintents.filemanager|OI Gestore File]]**, alternative libere a File Expert e ES File Explorer, ma non hanno la funzione Root Explorer.
* **[[http://f-droid.org/|F-Droid]]** market alternativo di app libere.
* **[[https://play.google.com/store/apps/details?id=com.koushikdutta.rommanager|ROM Manager]]** installa o aggiorna recovery custom ClockworkMod. Ha bisogno di permessi root.
* **[[https://play.google.com/store/apps/details?id=org.jtb.alogcat|aLogcat]]** (non-free), per vedere il log del sistema operativo.
* **[[https://play.google.com/store/apps/details?id=com.beem.project.beem|Beem]]** client chat XMPP
* **[[https://play.google.com/store/apps/details?id=jackpal.androidterm|Emulatore terminale]]** un emulatore terminale, senza aver installato busybox serve a poco!
* **[[http://www.androidzoom.com/android_applications/tools/external-ip_ilua.html|External IP]]** mostra l'indirizzo IP privato e pubblico.
* **[[https://play.google.com/store/apps/details?id=jp.sblo.pandora.jota|Jota text editor]]** editor di testi.
* **[[https://play.google.com/store/apps/details?id=com.devuni.flashlight|Torcia]]** (non-free).
* **[[https://play.google.com/store/apps/details?id=com.coffeebeanventures.easyvoicerecorder&hl=en|Easy Voice Recorder Free]]** (non-free), registratore di suoni, no ads, senza limiti di tempo e anche in background.
===== Operazioni speciali =====
**Spengimento**
Tenere premuto il pulsante di accensione fino alla comparsa del menu //Silent mode//, //Airplane mode//, //Power off//.
**boot-loader mode**
Dopo aver spento il telefono, tenere premuto Volume up mentre si preme il tasto di accensione.
**USB debuggging**
Da //Settings//, //Applications//, //Development//.
===== Installazione applicazioni non dal Market =====
Occorre installare un file manager (ad es. //Astro// o //File Expert// vanno bene, ma non è software libero) e abilitare //Impostazioni// -> //Applicazioni// -> //Origini sconosciute// (//Applications// -> //Unknown sources//).
Dal PC si carica il file **''.apk''** via cavetto USB (modalità USB-storage) ad esempio nella cartella ''ReceivedFiles'' della memoria SD. Anche nel Nexus S la memoria "saldata" viene comunque vista come scheda SD.
Quindi dal file manager selezionando il file .apk è possibile procedere all'installazione.
In alternativa vedere l'articolo [[http://news.softpedia.com/news/How-to-Manually-Install-APK-Files-on-Android-Smartphones-150487.shtml|How to Manually Install .APK Files on Android Smartphones]] che spiega come utilzzare il comando **''adb install file.apk''** fornito dal SDK Android.
===== Installazione SDK e debug USB =====
**NOTA:** La piattaforma ufficiale per lo sviluppo Android è adesso (ottobre 2016) **Android Studio**, per istruzioni aggiornate vedere gli [[..:android:#android_studio_e_i_platform_tools|appunti Android]], quello che segue è da considerarsi **obsoleto**. Ad esempio sembra che non sia più possibile scaricare l'**SDK** o i **Platform Tools** come archivi separati.
L'Android SDK è indispensabile per diverse operazioni, ad esempio per sbloccare il boot loader (per guadagnare l'accesso root) oppure per catturare le schermate con l'utility **''ddms''**
Dal sito [[http://developer.android.com/sdk/|SDK Android]], scaricare l'**Android SDK starter package**: ''[[http://dl.google.com/android/android-sdk_r16-linux.tgz|android-sdk_r16-linux.tgz]]''. Lo si può scompattare direttamente nella propria home directory, ad esempio **''$HOME/android/''**.
Dal sito [[http://developer.android.com/sdk/|SDK Android]], scaricare l'**ADT (Android Developer Tools) Boundle**: ''[[http://dl.google.com/android/adt/adt-bundle-linux-x86-20130717.zip|adt-bundle-linux-x86-20130717.zip]]''. Lo si può scompattare direttamente nella propria home directory, creando nel nostro caso **''$HOME/adt-bundle-linux-x86-20130717/''**.
Eseguire i comandi dell'SDK entrando in **''$HOME/adt-bundle-linux-x86-20130717/sdk/''**.
Si esegue **''tools/android''** e si installano gli //Android SDK Platform-tools// (richiede la connessione internet). Questa procedura scarica nella stessa directory i tool appropriati alla propria piattafroma. Tra gli eseguibuili che verranno scaricati ci sono **''fastboot''**, **''adb''**, ecc.
Sul telefoninio si attiva: //Impostazioni// -> //Applicazioni// -> //Sviluppo// -> //Debug USB//, quindi si collega il cavetto USB. Sul PC si prende nota dell'ID USB:
lsusb
Bus 001 Device 006: ID 18d1:4e22 Google Inc. Nexus S (debug)
Conviene aggiungere una regola ''udev'', così quando il telefonino è collegato alla porta USB viene creato il device con i permessi giusti. Si crea un file **''/etc/udev/rules.d/z90-local.rules''**:
# Android phone: Google Inc. Nexus S (debug)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e22", MODE="0666"
Infine si esegue **''/etc/init.d/udev reload''**.
===== Accesso root =====
In generale i passaggi effettuati per avere il maggior controllo possibile del proprio telefonino Android sono i seguenti:
- **Sblocco del boot loader**. Questa operazione consente di installare sulla memoria flash delle immagini non ufficiali, in generale infatti il boot loader consente di flashare solo immagini firmate dal produttore. In generale le immagini flashabili sono quella del kernel (//boot//), quella del filesystem di root (//system//) e quella della modalità Recovery (//recovery//). A noi interessa installare una Recovery con funzioni speciali, non offerte da quella predefinita. Sul telefonino **Nexus S** sbloccare il boot loader è semplice e previsto dal produttore Google.
- **Installazione di una modalità Recovery con funzioni evolute**. In particolare il programma [[http://www.clockworkmod.com/rommanager|ClockWorkMod Recovery]] consente di installare dei file .zip prima di avviare il sistema operativo, useremo questa funzione per installare il programma Superuser.
- **Installazione del programma ''su'' (Superuser)**. Questo consente di eseguire dei programmi con i privilegi di root. Android infatti nella sua versione predefinita non consente di eseguire programmi con tali privilegi.
Riferimenti
* [[wp>Rooting (Android_OS)]]
* [[http://www.androidpolice.com/2010/12/16/how-to-root-and-install-clockworkmod-recovery-on-your-nexus-s-instructions/|Root And Install ClockworkMod Recovery On Your Nexus S]]
* [[http://www.addictivetips.com/mobile/what-is-clockworkmod-recovery-and-how-to-use-it-on-android-complete-guide/|What Is ClockworkMod Recovery And How To Use It On Android]]
* [[http://developer.android.com/guide/developing/tools/adb.html|Android Debug Bridge (adb)]]
Software
* **{{.:android:recovery-clockwork-5.0.2.0-crespo.img.gz|}}** ClockworkMod 5.0.2.0: ROM modificata per Recovery Mode (de-zippare prima di usare)
* **{{.:android:recovery-clockwork-6.0.1.0-crespo.img.gz|}}** ClockworkMod 6.0.1.0: ROM modificata per Recovery Mode (de-zippare prima di usare)
* **{{.:android:superuser-3.0.7-efghi-signed.zip|}}** Superuser, programma per aggiungere la funzione **''su''** al sistema operativo.
==== Sbloccare il boot loader ====
{{.:android:nexus_s_root_01_bootloader.jpg?direct&100|Fastboot Bootloader}}
{{.:android:nexus_s_root_02_bootloader_usb.jpg?direct&100|Bootloader with USB connected}}
{{.:android:nexus_s_root_03_unlock_confirm.jpg?direct&100|Bootloader unlock confirm}}
{{.:android:nexus_s_root_04_unlocked_boot.jpg?direct&100|Unlocked boot}}
{{.:android:nexus_s_root_05_recovery_default.jpg?direct&100|Default Recovery Mode}}
{{.:android:nexus_s_root_06_recovery_clockwork.jpg?direct&100|ClockworkMod Recovery Mode}}
{{.:android:nexus_s_root_07_su_confirm.png?direct&100|Program requesting superuser privileges}}
:!: Attenzione! La procedura di sblocco del boot loader **cancella tutti i dati personali** dal telefono, fare un backup dei dati della memoria SD, annotarsi le impostazioni fatte e le applicazioni installate. Se sono attive le opzioni //Impostazioni// -> //Privacy// -> //Backup dei miei dati// -> //Ripristino automatico// e //Impostazioni// -> //Account e sincronizzazione//, allora alcune impostazioni vengono recuperate automaticamente quando si reinstalla un'applicazione, ma la procedura è tutt'altro che completa e chiara.
- Sul PC installare l'Android SDK e scaricare gli //Android SDK Platform-tools// (vedi sopra).
- Sul telefonino entrare nella schermata del boot loader: spengere il telefono e accenderlo tenendo premuto contemporaneamente Volume-Up e Power. Se compare la scritta **''LOCK STATE - LOCKED''** il boot loader deve essere sbloccato.
- Collegare il cavetto USB tra telefono e PC (compare la scritta ''STANDARD_SET_CONFIGURATION''), sul PC eseguire come root il comando: platform-tools/fastboot devices
Se il telefono risulta collegato, è possibile eseguire sempre come root platform-tools/fastboot oem unlock
Viene chiesta conferma tramite tasti Volume e Power.
=== Backup Google ===
Cosa viene recuperato in automatico dal backup di Google:
* Contatti
* Calendario
* Password di accesso WiFi
Cosa non viene recuperato:
* Dati (foto, musica, ecc.)
* Programmi installati
* Impostazioni dei vari programmi
==== Installare un recovery mode modificato: ClockworkMod ====
Scaricare il file **[[http://download2.clockworkmod.com/recoveries/recovery-clockwork-6.0.1.0-crespo.img|recovery-clockwork-6.0.1.0-crespo.img]]**, un'immagine per il recovery mode alternativo all'originale, specifico per il Nexus S.
FIXME Come salvare la recovery predefinita, quella con il triangolo e il punto esclamativo?
Sul telefonino entrare nella schermata del boot loader accendendolo con i tasti **Volume Up** e **Power**. Sul PC eseguire come root:
fastboot flash recovery recovery-clockwork-6.0.1.0-crespo.img
D'ora in poi - scegliendo l'opzione ''RECOVERY'' del boot loader - si attiva la schermata del **ClockworkMod Recovery**:
ClockworkMod Recovery v.2.5.1.8
- reboot system now
- apply sdcard:update.zip
- wipe data/factory reset
- wipe cache partition
- install zip from sdcard
- backup and restore
- mounts and storage
- advanced
- +++++Go Back+++++
==== Installare il programma Superuser ====
**ATTENZIONE!** Vedere avanti la versione aggiornata 3.2!
Scaricare il file **[[https://github.com/ChainsDD/Superuser/blob/gh-pages/download/Superuser-3.0.7-efghi-signed.zip|Superuser-3.0.7-efghi-signed.zip]]** e copiarlo nella SD memory del telefonino. Riavviare il telefonino nella ClockworkMod Recovery e scegliere **install zip from sdcard**.
Dopo aver riavviato il telefonino, ogni applicativo che ha bisogno di accesso privilegiato presenterà la schermata di richiesta autorizzazioni, vede ad esempio in figura la richiesta di File Expert. La risposta viene salvata in modo da essere utilizzata in futuro.
Arrivati all'aggiornamento **Android 4.1.1 Jelly Bean** avevamo ancora l'eseguibile **''/system/bin/su''** versione **3.0.3.2** che pare non vada più bene. Infatti alcune applicazioni risultavano registrate e autorizzate, ottenendo i privilegi di root automaticamente, altre invece fallivano silenziosamente senza presentare il prompt di richiesta autorizzazione.
Anche nella finestra dell'Emulatore terminale si aveva questo comportamento anomalo, senza che venisse presentata la finestra con la richiesta di autorizzazione:
$ su -c id root
Permission denied
mentre funzionava senza prompt (quindi evidentemente l'operazione era stata autorizzata in precedenza):
$ su
# id
uid=0(root) god=0(root)
Il problema si è risolto aggiornando l'eseguibile **''su''** con il pacchetto **{{.:android:superuser-3.2-arm-signed.zip|Superuser-3.2-arm-signed.zip}}**. È necessario riavviare in modalità recovery e installare da file .zip. Da questo momento in poi l'applicazione Superuser è tornata funzionante, e - avendo impostato l'opzione //Sicurezza// -> //Risposta automatica// -> //Chiedi// - ogni volta che un programma ha bisogno dei privilegi di root viene presentato il dialog box di autorizzazione.
==== Vedere i file di sistema ====
**ATTENZIONE:** la funzione //Root Explorer// è stata rimossa dalla versione gratuita di File Expert (certamente nella versione 4.2.2), adesso è necessario acquistare la //Pro Key//.
Ad esempio con **File Expert** si imposta la funzione //Menu// -> //Altro// -> //Configura// -> //Impostazioni della navigazione// -> **//Root Explorer//**. In questo modo - se all'applicazione viene concesso il permesso su - sarà possibile vedere il contenuto di alcune directory di sistema, altrimenti inaccessibili.
Un esempio è l'accesso ai file di Navit (bookmark, ecc.), basta sfogliare la directory ''/data/data/org.navitproject.navit/home/'' della memoria interna, che altrimenti risulta inaccessibile.
Con **ES File Explorer** attivare le seguenti opzioni:
* //Menu// -> //Impostazioni// -> //Impostazioni File// -> //Mostra file nascosti//
* //Menu// -> //Impostazioni// -> //Vai alla radice//
* //Menu// -> //Impostazioni// -> //Sfoglia come root//
===== Ottenere una shell via SDK =====
Avendo installato l'SDK sul PC ed avendo abilitato il debug USB è possibile ottenere una shell sul telefonino:
./platform-tools/adb shell
$ su
# id
uid=0(root) gid=0(root) groups=1003(graphics),1004(input),1007(log),...
# cat /proc/cpuinfo
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 99.40
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x2
CPU part : 0xc08
CPU revision : 2
Hardware : herring
Revision : 0034
Serial : 38353d90950e00ec
===== Problema DNS con busybox =====
Dopo aver installato busybox si scopre che **la risoluzione dei nomi DNS non funziona**, ad esempio con ''wget'':
wget http://www.rigacci.org
wget: bad address 'www.rigacci.org'
Questo perché le librerie utilizzate da Android per la risoluzione dei nomi non sono le stesse utilizzate da ''busybox''.
Per fortuna è sufficiente creare il file **''/etc/resolv.conf''** per abilitare il tradizionale resolver. Dopo essere entrati con la ''adb shell'' ed aver guadagnato i privilegi di root, si vede che **''/etc''** è un link a **''/system/etc''**, montata read-only. Dopo aver verificato con ''mount'' il nome del device, è possibile ottenere accesso in lettura/scrittura:
mount -o rw,remount /dev/block/platform/s3c-sdhci.0/by-name/system /system
Nel file ''/etc/resolv.conf'' si possono indicare due DNS liberi di Google:
nameserver 8.8.8.8
nameserver 8.8.4.4
Ripristinare il filesystem in sola lettura al termine dell'operazione.
===== Aggiornamento Android da 2.3.4 a 2.3.6 =====
Una mattina il telefono mi avverte che è disponibile l'aggiornamento alla versione 2.3.6, in effetti so che esiste anche l'aggiornamento alla versione 4, ma suppongo che si debba fare un passo per volta. Il file di 17 mega è arrivato //OTA// (On The Air), ma non si sa in quale directory è stato salvato. Accetto l'installazione.
Il telefono si riavvia e compare l'icona di una scatolina che si apre, una barra di avanzamento fa capire che il processo è in corso. Dopo pochi istanti si blocca tutto e compare un'icona triangolare con punto esclamativo: mi tocca rimuovere la batteria.
Al boot successivo nessuna traccia dell'aggiornamento, anche dal menu //Impostazioni//, //Info sul telefono//, //Aggiornamento sistema// risulta aggiornato, sebbene la versione sia sempre la 2.3.4.
Dopo qualche giorno l'aggiornamento OTA ci riprova, ma con lo stesso risultato negativo. Probabilmente il fallimento è dovuto al fatto che il mio telefono ha il boot loader sbloccato oppure al fatto che ho sostituito la recovery originale con la ClockworkMod.
Googolando un po' trovo il **[[http://v16.lscache6.c.android.clients.google.com/packages/data/ota/google_crespo/7d11404284c0.signed-soju-GRK39F-from-GRJ22.7d114042.zip|file .zip]]** con l'aggiornamento specifico per il mio Nexus S, lo scarico e lo salvo nella radice della sdcard con il nome **''update.zip''**. Spengo il telefono e lo riaccendo con i tasti Vol-up e Power, dal boot menu entro nella recovery ClockworkMod. Qui scelgo l'opzione di installare la ''update.zip'' e finalmente l'aggiornamento va a buon fine.
Ecco una copia salvata dell'**{{.:android:7d11404284c0.signed-soju-grk39f-from-grj22.7d114042.zip|update.zip}}**.
Ci sono però **due inconvenienti**: la recovery **ClockworkMod** è stata cancellata (sovrascritta dalla recovery originale Android) e il comando **''su''** ha smesso di funzionare (non ha più i permessi SETUID e SETGID). Anzi la situazione è ancora peggiore: se installiamo una recovery alternativa (es. ClockworkMod), questa viene sostituita dall'originale ad ogni reboot, per colpa dello script **''/etc/install-recovery.sh''**.
Per venire a capo della situazione questa è la ricetta:
- Copiare l'archivio **Superuser-3.0.7-efghi-signed.zip** nella sdcard.
- Entrare in modalità fastboot e con il tool ''fastboot'' dell'SDK flashare la recovery ClockworkMod (vedi sopra).
- Senza riavviare, entrare in modalità recovery ClockworkMod e installare Superuser dalla sdcard.
- Riavviare il telefono.
Al termine di questa operazione avremo **''su''** funzionante, ma la recovery ripristinata originale. Bisogna **disattivare** lo script **''/etc/install-recovery.sh''**. Aprire una shell eseguento l'applicazione **Emulatore terminale** oppure **''adb shell''** dall'SDK, guadagnare i privilegi di root, montare il filesystem in lettura/scrittura e rinominare ''install-recovery.sh'':
$ su
# mount -o remount,rw /dev/block/platform/s3c-sdhci.0/by-name/system /system
# mv /etc/install-recovery.sh /etc/install-recovery.sh.bak
# mount -o remount,ro /dev/block/platform/s3c-sdhci.0/by-name/system /system
A questo punto potremmo finalmente installare la nostra recovery ClockworkMod in modo permanente. Possiamo usare il metodo tradizionale con ''fastboot'' (vedi sopra) oppure utilizzare l'applicativo **ROM Manager** che si occupa di trovare la versione più aggiornata disponibile (nel mio caso la 5.0.2.0). Il programma ROM Manager chiede conferma del modello di telefono, nel mio caso ho indicato **Google Nexus S**.
Volendo salvare l'immagine ClockworkMod scaricata da ROM Manager (ad esempio per poterla flashare in futuro da PC con il tool Android ''fastboot'' come indicato sopra), basta andare a cercare il file nella directory **''/sdcard/clockworkmod/download''**. Dovrebbe essere un file di circa 4 Mb. Ecco un modo per portarlo sul PC con il tool Android **''adb''**:
./platform-tools/adb pull /sdcard/clockworkmod/download/1467945360 recovery-clockwork-5.0.2.0-crespo.img
===== Aggiornamento Android da 2.3.6 a 4.0.4 =====
Una mattina il telefono mi avverte che è disponibile l'aggiornamento alla versione 4.0.4 (Ice Cream Sandwitch). Il file di circa 128 Mb è arrivato //OTA// (On The Air) ed è stato salvato nel file **''/cache/fL9fwa99.zip''**. Viene proposta l'installazione, ma questa non va a buon fine, probabilmente perchè ho la recovery ClockworkMod invece di quella originale Android.
Per effettuare l'installazione copio il file **''fL9fwa99.zip''** nella directory **''/sdcard/''**, spengo il telefono e lo riaccendo con i tasti Vol-up e Power, dal boot menu entro nella recovery ClockworkMod e qui scelgo l'opzione //install zip from sdcard//. Tutto pare procedere correttamente.
Ovviamente dopo l'aggiornamento si è perso il privilegio di root e la recovery ClockworkMod non funziona più (compare l'icona di un robottino Android morto con triangolo rosso e tocca rimuovere la batteria). Per ripristinare accesso root e ClockworkMod si esegue la procedura di 4 passaggi più uno indicata nel paragrafo precedente.
Nell'aggiornamento viene mantenuto il file ''/etc/resolv.conf'' personalizzato (vedi sopra riguardo ''busybox'').
==== Problemi riscontrati con la nuova versione ====
* La luminosità automatica del display non funziona: viene lasciato al minimo senza alcuna variazione in base al fotometro. Vedere il [[http://code.google.com/p/android/issues/detail?id=23095|bug 23095]].
* Sono spariti i controlli //zoom +// e //zoom -// che comparivano quando si scorreva una pagina nel browser.
* Se in una finestra terminale si esegue la shell **''ash''** ad ogni comando compare il messaggio di errore ''ash: precmd: not found''.
===== Aggiornamento Android da 4.0.4 a 4.1.1 (Jelly Bean) =====
L'aggiornamento sul telefonino Nexus S è stato proposto automaticamente //On The Air//, scaricato nottetempo via connessione 3G (115 Mb). L'installazione automatica non è stata provata, probabilmente sarebbe fallita a causa dell'installazione della Recovery non originale ClockWorkMod. Quella che segue è la procedura manuale di aggiornamento, necessaria a mantenere la [[#accesso_root|Recovery ClockWorkMod e i permessi di Superuser]].
Accertarsi di avere installato sul PC l'SDK Android ed avere sul PC l'immagine della recovery ClockWorkMod. In pratica sul PC occorre avere i seguenti file:
* **''platform-tools/fastboot''**
* **''recovery-clockwork-5.0.2.0-crespo.img''**
Copiare nella sdcard i seguenti file:
* **''9ZGgDXDi.zip''**, il file viene scaricato //On The Air// automaticamente in **''/cache/''**, bisogna copiarlo in **''/sdcard/''**
* **''Superuser-3.0.7-efghi-signed.zip''** pare funzionare correttamente anche sulla versione **''j''** (4.1.1, Jelly Bean).
Conviene aver installato sul telefonino anche il programma **ROM Manager** dal Play Store di Google.
- **Installazione dell'aggiornamento.** Riavviare in modalità Fastboot e quindi entrare in modalità Recovery (noi avevamo già installato la recovery ClockWorkMod in precedenza): spengere il telefono e riaccendenderlo con i tasti ''Vol-up''+''Power''. Con i tasti ''Vol'' si sceglie ''RECOVERY'' e si conferma con ''Power'', si sceglie //install zip from sdacard//, quindi si indica il file ''9ZGgDXDi.zip''. Al termine fare un reboot del telefono e far completare l'aggiornamento.
- **Ripristinare la recovery ClockWorkMod**. La recovery personalizzata viene corrotta dall'aggiornamento, se si tenta di avviarla compare il robottino morto con il triangolo rosso e dopo qualche minuto si riavvia normalmente. Per reinstallare la ClockWorkMod spengere il telefono e riavviarlo in modalità Fastboot con ''Vol-up''+''Power'', quindi dal PC collegato via USB lanciare ./platform-tools/fastboot flash recovery recovery-clockwork-5.0.2.0-crespo.img
Servono i privilegi di root o comunque i permessi sul device USB.
- **Ripristinare Superuser**. Anche il programma **''su''** installato per poter eseguire i programmi con privilegi di amministratore è andato perso con l'aggiornamento. Senza neanche riavviare il telefono, entrare nella modalità Recovery appena ripristinata e scegliere //install zip from sdcard//, quindi indicare il file ''Superuser-3.0.7-efghi-signed.zip''. Al termine riavviare il telefonino.
- **Disabilitare la funzione che ripristina la recovery ad ogni reboot**. Il sistema Android elimina la ClockWorkMod Recovery ad ogni reboot tramite lo script ''**/etc/install-recovery.sh**''. Un sistema per disabilitare questa funzione è illustrato sopra, altrimenti usando il programma **ROM Manager** i passaggi sono questi:
- Avviare ROM Manager, **installare la ClockWorkMod 6.0.1.0** via WiFi oppure da sdcard, ma ha funzionato anche via connessione 3G.
- Sempreda ROM Manager riavvare in modalità Recovery.
- Dalla modalità Recovery selezionare reboot, quindi attivare l'opzione **//Disable recovery flash//**.
==== Problemi riscontrati con la nuova versione ====
* **Viber** non funziona più. Problema riconosciuto con Viber 2.2.
===== Aggiornamento a 4.1.2 =====
Arrivato //On The Air// l'aggiornamento di 15 Mb circa: **''9U4MCfNt.zip''**. Bisogna spostarlo dalla directory ''/cache/'' a ''/sdcard/''.
Con la recovery ClockworkMod 6 è possibile fare l'installazione senza perdere la recovery e l'accesso root.
In pratica si entra in modalità recovery e si installa il file ''9U4MCfNt.zip'' dalla sdcard. Quando si sceglie di riavviare il telefono, ClockworkMod 6 chiede se preservare la recovery attuale (cioè viene disabilitata la funzione di ripristino della recovery ad ogni reboot di Android) e riabilitare i permessi di **''su''** (accesso root).
In caso qualcosa andasse storto (recovery, accesso root) è necessario recuperare i seguenti file ed eseguire la procedura descritta sopra per l'aggiornamento a 4.1.1:
* **''9U4MCfNt.zip''**
* **''Superuser-3.2-arm-signed.zip''**
* **''platform-tools/fastboot''**
* **''recovery-clockwork-6.0.1.0-crespo.img''**