htc-one-s.3
Para instalar ROMs personalizadas que puedan actualizar todos los componentes (radio, baseband, ROM, firmware, HBOOT) tenemos que tener la seguridad del dispositivo deshabilitada (S-OFF), pero todavía no se ha encontrado la forma de hacerlo por lo que hay que desbloquear el bootloader. Esto se puede hacer de forma legal desde hace un tiempo gracias a que HTC permitió a desarrolladores una herramienta para hacerlo desde su web  (7).
Con el bootloader desbloqueado podemos cambiar la recovery que viene por defecto por una modificada que nos permita, entre otras cosas, instalar ROMs personalizadas y mas componentes del sistema.


Es importante resaltar que la recovery original es la encargada de instalar actualizaciones del sistema mediante OTA (actualizaciones automáticas por la red, desde Android), por lo que si tenemos una recovery modificada es probable que no podamos usar esta utilidad. En el caso de este terminal, para poder optar a las actualizaciones OTA hay que tener el bootloader desbloqueado y la recovery de fabrica, además de la versión de HBOOT apropiada en algunos casos (la HBOOT 1.14 bloquea algunos componentes terminal impidiendo actualizarlos).

Unbrick / Desbloqueo del HBOOT 1.14              

/********
Actualizacion 15-Junio 2013:
Hay un nuevo metodo compatible con estos firmwares: 3.14.531.11 (T-MOB), 3.16.666.9 (BM), 3.16.111.10 (TMO_DE).
http://forum.xda-developers.com/showthread.php?t=2325590
********/

[procedimiento extraido del manual  "[TUT] Downgrade/Unbrick Ville S4" (8) hecho por el miembro de XDA absolutelygrim ]
Este procedimiento es para recuperar terminales muertos (no arranca el menú fastboot ni recovery ni nada, y si nos conectamos al ordenador este lo reconoce como "Qualcomm. Inc. Gobi Wireless Modem (QDL mode)” o solo “QDL mode”) y los recupera instalándoles el HBOOT 1.06.
Para ello se comunica con el teléfono en modo QDL, por lo que si el teléfono esta bien tenemos que matarlo (xD) para que el sector de arranque este corrupto y podamos comunicarnos con el. Por tanto, de este modo podemos hacer downgrade de HBOOT 1.14.
Si el teléfono enciende hay que hacer los primeros pasos hasta que lo matemos.

Vamos a usar fastboot en el ordenador por lo que necesitamos ser superuser (tener privilegios root) para invocar comandos que modifiquen el sistema de ficheros interno, para ello necesitamos flashear el archivo (superuserzip) en la recovery, y para poder instalar la recovery necesitamos desbloquear el bootloader.

Unlock bootloader (Windows, “HTC One S All-in-One Toolkit” )

Captura
Para desbloquear el bootloader e instalar una recovery vamos a usar una herramienta llamada “HTC One S All-in-One Toolkit” (1) .
Primero instalamos los drivers de HTC, luego nos registramos en HTCdev, pulsamos en “Get Token ID”, lo copiamos (arriba de la ventana de CMD a la izquierda, pinchamos en el icono, “edición”, “copiar” (Hay veces que no lo hace bien, volver a intentarlo) y damos a “submit token ID”, en la pagina que aparece (estando ya logueados, sino loguearse y hacerlo otra vez) pegar el código de forma que quede como el ejemplo que aparece en la parte superior de la pagina.
En mi caso al copiarlo aparecía “(bootloader)” antes de cada línea y lo borre.
 

Flash recovery (Windows, “HTC One S All-in-One Toolkit” )

Para instalar la recovery TWRP también utilizaremos “HTC One S All-in-One Toolkit”. Esto se hace desde la ventana de la derecha, pero hay que tener en cuenta que los archivos a instalar son diferentes según la versión del procesador de que dispongamos en el teléfono. Mi HTC One S tiene procesador S4.

Flash superuser

Reiniciamos en modo fastboot (volumen–, power) y seleccionamos “recovery”.
Desde la recovery seleccionamos “mount USB storage” y copiamos el archivo superuser (2) . Seleccionamos “unmount”, "e”Install from zip” y seleccionamos nuestro archivo .zip de superuser.
Instalado esto ya tenemos acceso root.

Copiar archivo kill

Desde CMD, estando en la carpeta donde este nuestro fastboot (cd c:\fastboot u otro) escribimos:

  1: adb shell
  2: su
  3: dd if=/dev/block/mmcblk0p4 of=/sdcard/bakp4
  4: dd if=/sdcard/killp4 of=/dev/block/mmcblk0p4

Después de esto reiniciar. El teléfono intentara iniciarse pero no podrá: el teléfono a muerto xD

Instalación de Linux

Yo he usado un LiveUSB creado con UnetBootin (3) de la distribucion de linux Ubuntu (4) .

Linux

Vamos a utilizar tres ventanas de terminal (el terminal se encuentra en "applications". Se puede abrir escribiendo "terminal" desde el "dash home" primer icono de la barra izquierda).

En una ventana (1) ponemos

  1: watch -n 1 lsusb

para ver los dispositivos USB actualmente reconocidos por linux. Se actualiza cada segundo.
Aparecerá nuestro teléfono como "Qualcomm. Inc. " o similar.

En otra ventana (2) escribimos:

  1: ls /dev/sd*

para ver los directorios reconocidos por linux.

Lo actualizamos manualmente (escribiéndolo otra vez: botón ↑ del teclado) cada vez que queramos ver si se reconocen los directorios del móvil.
Lo que vamos a hacer modifica los archivos que se encuentran en estos directorios, por tanto, tienen que ser accesibles para poder trabajar.

Creadas estas dos ventanas, presionamos el botón de power entre 10 y 30 segundos (en mi caso unos 10), y el texto de "Qualcomm. Inc. " que aparecía en la ventana de dispositivos (2) desaparecerá. Entonces dejar de presionar power y actualizar la ventana de directorios (1) (cada cuarto de segundo…).
Deberían aparecer muchos directorios llamados /dev/sd**, en especial /dev/sd*4 y /dev/sd*12 
como al segundo de dejar de presionar power. Dejar de actualizar.
En mi caso mis directorios son /dev/sdb, pero podrían ser /dev/sdc o /dev/sdd. Fijarse en /dev/sd*4/dev/sd*12.
Por tanto, en los comandos que haga referencia a esto cambiar la tercera letra si no es la misma.

Reconocido nuestro teléfono procedemos a ejecutar los comandos en una nueva ventana (3):

  1: sudo dmesg | grep "qcserial"

Se tendría que ver "Qualcomm USB modem converter detected" en la ultima línea. Sino desconectar el cable y conectarlo otra vez.

 
Escribir para recargar el driver:
  1: sudo modprobe qcserial

Reset del driver:

  1: sudo modprobe -r qcserial


Crear el archivo del dispositivo (usamos “mknod” porque no esta presente):

  1: sudo mknod /dev/ttyUSB0 c 188 0

Configuramos esta ventana para que trabaje en el directorio donde tenemos la carpeta “ville” descomprimida. En mi caso esta en el escritorio:

  1: cd Desktop/ville
  2: chmod +x emmc_recover

Ahora restauramos el HBOOT. (acordarse de reemplazar la tercera letra de “/sdc12” si no es la misma como vimos antes.

  1: sudo ./emmc_recover -f ./hboot.nb0 -d /dev/sdc12 -c 24576


Presionar enter para aceptar todo. Si pone "Waiting for /dev/sdc12”, presionar power 10 segundos (igual que antes) o hasta ver que "Qualcomm. Inc. Gobi Wireless Modem (QDL mode)” desaparece de la pantalla, entonces soltar. Unos segundos después de hacer esto, empezara el proceso.  Flashear el HBOOT tarda varios minutos (carga la informacion en bloques de unos 23Kb y despues resetea el telefono).
SI Y SOLO SI el telefono no sale del “QDL mode” despues de terminar esto, escribir:

  1: sudo ./emmc_recover -r

Resetear el driver qcserial:

  1: sudo modprobe -r qcserial

Crear el archivo del dispositivo, otra vez:

  1: sudo mknod /dev/ttyUSB0 c 188 0


Restaurar el archivo original “mmcblk0p4” que guardamos como  as "bakp4"

  1: sudo ./emmc_recover -f ./bakp4 -d /dev/sdc4 -c 24576


Si no empieza (pone que no se detecta), presionar otra vez el boton power 10 segundos (y soltar al desaparecer “qualcomm…” …). Y entonces ejecutar el comando cuando se vea el listado de directorios en la pantalla (2) (rápido)
El archivo tardara poco en flashearse (solo es 1Kb) y una vez hecho se encenderá el led de carga y desaparecera "Qualcomm, Inc." o "Qualcomm, Inc. Gobi Wireless modem (QDL mode)” de la ventana (1).
  
NOTA: Lo he hecho varias veces y en ocasiones a la primera no arranca el teléfono (no enciende el led ni se puede encender), he hecho todo el proceso otra vez y entonces el ultimo comando ( sudo ./emmc_recover -f ./bakp4 -d /dev/sdc4 -c 24576) no he podido ponerlo porque ya reconocía el teléfono como "HTC" en vez de "Qualcomm. Inc. ".

Como faltaba el ultimo paso (restaurar el nandroid backup) y ya podía acceder a fastboot, lo he hecho con Windows:

  1: adb push mmcblk0p4 /sdcard/mmcblk0p4
  2: adb shell
  3: su
  4: dd if=/sdcard/mmcblk0p4 of=/dev/block/mmcblk0p4


Hecho todo esto el teléfono tendría que arrancar en fastboot.

Instalar una recovery modificada y una ROM, o ejecutar un archivo RUU, que es un archivo de instalación de ROM de HTC. El problema de esto ultimo es que algunas modifican el HBOOT así que hay que tener cuidado para no tener que repetir el proceso de unbrick otra vez.
 

SOFF

[No formateado]

Siguiendo el procedimiento descrito por beaups en xda :
Descomprimimos el archivo soffbin3.zip y posteriormente copiamos el archivo PJ4010000-OneS.zip en la carpeta donde tengamos adb y procedemos a ejecutar los siguientes comandos en una ventana de cmd abierta con permisos de administrador:
     adb shell getprop ro.aa.modelid
y tendríamos que ver el modelo de nuestro teléfono  En mi caso, tenia primero una ROM con 4.2 que no ejecutaba este comando (no pasaba nada) y luego daba error "uknown 99" con lo que esto no funcionaba y seguia S-ON.
Con la ROM viper 2.0 si me mostraba modelid, si realizaba todo correctamente y finalmente conseguía S-OFF.
Esto se debe (desconozco si algo mas puede provocar este error) a que al realizar este procedimiento se copia el zip en un directorio interno que no todas las ROM tienen.
     adb reboot bootloader
     fastboot oem rebootRUU
Ahora tendria que aparecer una pantalla negra con el logo de HTC
     fastboot flash zip PJ4010000-OneS.zip
En la ventana de comandos, después de varios errores tendríamos que ver al final: “FAILED (remote: 92 supercid! please flush image again immediately)”.
Si aparece "error 99 unknown" o algo similar, probar con otra ROM.
     fastboot oem boot
Ahora se iniciara Android desprotegido con lo que podremos ejecutar estos comandos:
     adb push soffbin3 /data/local/tmp/
     adb shell chmod 744 /data/local/tmp/soffbin3
     adb shell su -c "/data/local/tmp/soffbin3"
El ultimo puede tardar varios segundos (10-20) hasta completarse. No muestra nada pero no aparece la siguiente linea para escribir. Cuando termine ya estaría S-OFF.
Reiniciamos en fastboot:
     adb reboot bootloader
Y deberíamos ver S-OFF
 

Anexo                                                                                             

Instalación de un archivo de radio actualizado

Instalar “radio selector” (que tiene aroma installer) (4) desde la recovery e instalar una ROM.  Yo he instalado la 1.11 EU.

Instalación de una ROM modificada

Yo he instalado la ROM TrickDroid (5) : Descargar 9.0.0, actualización incremental 9.1.0 y boot.img de ambos.
Flashear el zip (desde recovery).
Flashear boot (desde fastboot)
Iniciar Android.
Reiniciar y flashear la version 9.1.
Flashear boot (desde fastboot) 
Iniciar Android.

Instalar boot.img desde Fastboot

  1: fastboot flash boot boot.img
  2: fastboot erase cache

Reiniciar el modo fastboot

Desde android con opcion de depuracion usb habilitada:

  1: adb reboot bootloader

Boot recovery (sin flashearla definitivamente)

Teniendo el archivo de recovery (“openrecovery-twrp-2.3.1.0-ville.img”) en la carpeta de fastboot
  1: fastbootbootopenrecovery-twrp-2.3.1.0-ville.img

Cambiar CID

Este procedimiento se realiza con el telefono encendido (en Android) con el modo de depuracion habilitado.
Abrimos una ventana de CMD en la ubicacion donde tengamos ADB:

  1: adb shell 
  2: su 
  3: dd if=/dev/block/mmcblk0p4 of=/sdcard/mmcblk0p4 
  4: exit 
  5: exit 
  6: adb pull /sdcard/mmcblk0p4 


Abrimos el archivo "mmcblk0p4" que nos hemos descargado en la carpeta donde tenemos el ADB con un editor hexadecimal. Usar “HxD” (6).
Buscamos la posición 00000210 y a la derecha del todo tenemos el CID actual seguido de nuestro IMEI.
En este caso, vamos a poner el CID superCID: 11111111, que es el de desarrolladores y permite instalar cualquier ROM. 
Cambiamos el CID actual por 11111111 (ocho unos)y lo guardamos como "mmcblk0p4MOD".
Volvemos a nuestra ventana de CMD:

  1: adb push mmcblk0p4MOD /sdcard/mmcblk0p4MOD 
  2: adb shell 
  3: su 
  4: dd if=/sdcard/mmcblk0p4MOD of=/dev/block/mmcblk0p4 
  5: exit 
  6: exit 


Podemos comprobar nuestro CID actual escribiendo en la ventana de CMD:

  1: fastboot oem readcid 


estando con el telefono en el bootloader.
Si estamos en Android escribimos antes:

  1: adb reboot bootloader 

para reiniciar en este modo.

chips

qualcomm pm8921: power management IC

thquint tqm7m5013:
Quad-Band GSM / GPRS / EDGE-Linear Power Amplifier Module
avago a5501
5502
5504
5505
atmel mxt224e Atmel® maXTouch™
samsung k3pe7e700d-xgc2 8gb ddr2 module
rtr8600 Qualcomm RTR8600 Multi-band/mode RF transceiver
simg 924480

 

Links

(1) http://forum.xda-developers.com/showthread.php?t=1604677
(2) http://forum.xda-developers.com/showthread.php?t=1538053 
Hay aplicacion apk y zip. En nuestro caso es el zip lo que utilizaremos.
(3) http://unetbootin.sourceforge.net/
(4) http://forum.xda-developers.com/showthread.php?t=1998270
(5) http://forum.xda-developers.com/showthread.php?t=1637102
(6) http://mh-nexus.de/en/hxd/
(7) http://www.htcdev.com
(8) http://forum.xda-developers.com/showthread.php?t=1990043
 

Bibliografía                                                                       

Cambiar modelid http://forum.xda-developers.com/showthread.php?t=1868858
Flash radio http://forum.xda-developers.com/showthread.php?t=1684477
Download radio http://ville.giev.de/?page_id=42
Varias ruu para descargar http://www.filefactory.com/f/cf061f69b5bf7878/
Jellybam ROM http://www.igio90.net/download-jellybam/releases/
http://get.jellybam.com/?device=ville
Instalar inverted Gapps gapps_22_sep_2012_jelly bean.zip http://d-h.st/yYU
Liberar SIM http://androtalk.es/2012/06/libera-gratis-el-htc-one-s-gracias-xda-y-este-root-exploit/
Sim unlock http://forum.xda-developers.com/showthread.php?t=1693491
XDA android HTC One S development http://forum.xda-developers.com/forumdisplay.php?f=1531
Unbrick htcones s4 http://forum.xda-developers.com/showthread.php?t=1990043
Flash boot img http://forum.xda-developers.com/showthread.php?t=1752270
[Tutorial]Root, Unlock, Recovery and flashing a Custom ROM http://forum.xda-developers.com/showthread.php?t=1583427
Flash radio hboot1.13 http://forum.xda-developers.com/showthread.php?p=30688862#post30688862

superboot http://www.modaco.com/topic/352493-how-to-root-your-htc-one-s-for-windows-mac-and-linux/