martes, 20 de diciembre de 2011

Instalando Android SDK y Rooteando HTC Inspier 4G

bueno desde que tengo un celular Neo FreeRunner e estado algo metido en eso de flashear celulares, probar distros para cel, etc,etc.
y ahora que me compre un HTC Inspire 4G, no pude quedarme con las ganas y le metí mano. Por lo cual e decidido hacer este tutorial para aquellos que les interese toda esta onda.
Pues bueno como este celular trae el Sistema Operativo Android ( froyo de caja, actalizable a gingerbread, por medios convencionales ) me di a la tarea de investigar un poco mas acerca de este SO, y llegue a la conclusión de que no se puede hacer nada sin tener la SDK de android, en realidad no necesita instalación, basta simplemente con descargarlo, y ejecutarlo después de descomprimirlo, lo malo es que de esta manera los comandos de la SDK solo son accesibles desde el directorio donde lo tengamos descomprimido, para poder tener los comandos desde cualquier directorio es necesario agregar la ruta de los scripts de la SDK al path.
Para esto y dependiendo de la distro ay que agregar unas lineas al archivo .bashrc ( en la mayoria de las distros) o en el caso de openSUSE, que es la distro que yo utilizo ay que agregarlas ar archivo /etc/profile.local ( y crearlo si no existe ). Para esto abrimos el archivo con un editor de texto ( puedes ser gedit,kwrite, o bien vi o nano si te gusta por linea de comandos ) y agregar las siguientes lineas.


PATH=$PATH:/home/darkspark/android-sdk/platform-tools/
export PATH

claro esta, sustitullendo la primer linea con la ruta completa en donde tenemos la SDK.
y listo, solo queda reiniciar la PC. Para ver si funciona basta con abrir una terminal y escribir el comando

adb

si todo sale bien deveriamos ver algo como esto.

darkspark@darkspark:~> adb
Android Debug Bridge version 1.0.29

 -d                            - directs command to the only connected USB device
                                 returns an error if more than one USB device is present.
 -e                            - directs command to the only running emulator.
                                 returns an error if more than one emulator is running.
 -s             - directs command to the USB device or emulator with
                                 the given serial number. Overrides ANDROID_SERIAL
                                 environment variable.
 -p      - simple product name like 'sooner', or
                                 a relative/absolute path to a product
                                 out directory like 'out/target/product/sooner'.
                                 If -p is not specified, the ANDROID_PRODUCT_OUT
                                 environment variable is used, which must
                                 be an absolute path.
 devices                       - list all connected devices
 connect [:]       - connect to a device via TCP/IP
                                 Port 5555 is used by default if no port number is specified.
 disconnect [[:]]  - disconnect from a TCP/IP device.
                                 Port 5555 is used by default if no port number is specified.
                                 Using this command with no additional arguments
                                 will disconnect from all connected TCP/IP devices.

device commands:
  adb push     - copy file/dir to device
  adb pull []  - copy file/dir from device
  adb sync [ ]     - copy host->device only if changed
                                 (-l means list but don't copy)
                                 (see 'adb help all')
  adb shell                    - run remote shell interactively
  adb shell           - run remote shell command
  adb emu             - run emulator console command
  adb logcat [ ] - View device log
  adb forward - forward socket connections
                                 forward specs are one of:
                                   tcp:
                                   localabstract:
                                   localreserved:
                                   localfilesystem:
                                   dev:                                                                                                                     
                                   jdwp: (remote only)                                                                                                                
  adb jdwp                     - list PIDs of processes hosting a JDWP transport                                                                                                   
  adb install [-l] [-r] [-s] - push this package file to the device and install it                                                                                          
                                 ('-l' means forward-lock the app)                                                                                                                 
                                 ('-r' means reinstall the app, keeping its data)                                                                                                  
                                 ('-s' means install on SD card instead of internal storage)                                                                                       
  adb uninstall [-k] - remove this app package from the device                                                                                                           
                                 ('-k' means keep the data and cache directories)                                                                                                  
  adb bugreport                - return all information from the device
                                 that should be included in a bug report.

  adb backup [-f ] [-apk|-noapk] [-shared|-noshared] [-all] [-system|-nosystem] []
                               - write an archive of the device's data to .
                                 If no -f option is supplied then the data is written
                                 to "backup.ab" in the current directory.
                                 (-apk|-noapk enable/disable backup of the .apks themselves
                                    in the archive; the default is noapk.)
                                 (-shared|-noshared enable/disable backup of the device's
                                    shared storage / SD card contents; the default is noshared.)
                                 (-all means to back up all installed applications)
                                 (-system|-nosystem toggles whether -all automatically includes
                                    system applications; the default is to include system apps)
                                 ( is the list of applications to be backed up.  If
                                    the -all or -shared flags are passed, then the package
                                    list is optional.  Applications explicitly given on the
                                    command line will be included even if -nosystem would
                                    ordinarily cause them to be omitted.)

  adb restore            - restore device contents from the backup archive

  adb help                     - show this help message
  adb version                  - show version num

scripting:
  adb wait-for-device          - block until device is online
  adb start-server             - ensure that there is a server running
  adb kill-server              - kill the server if it is running
  adb get-state                - prints: offline | bootloader | device
  adb get-serialno             - prints:
  adb status-window            - continuously print device status for a specified device
  adb remount                  - remounts the /system partition on the device read-write
  adb reboot [bootloader|recovery] - reboots the device, optionally into the bootloader or recovery program
  adb reboot-bootloader        - reboots the device into the bootloader
  adb root                     - restarts the adbd daemon with root permissions
  adb usb                      - restarts the adbd daemon listening on USB
  adb tcpip              - restarts the adbd daemon listening on TCP on the specified port
networking:
  adb ppp [parameters]   - Run PPP over USB.
 Note: you should not automatically start a PPP connection.
  refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
 [parameters] - Eg. defaultroute debug dump local notty usepeerdns

adb sync notes: adb sync [ ]
  can be interpreted in several ways:

  - If is not specified, both /system and /data partitions will be updated.

  - If it is "system" or "data", only the corresponding partition
    is updated.

environmental variables:
  ADB_TRACE                    - Print debug information. A comma separated list of the following values
                                 1 or all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp
  ANDROID_SERIAL               - The serial number to connect to. -s takes priority over this if given.
  ANDROID_LOG_TAGS             - When used with the logcat option, only these debug tags are printed.
darkspark@darkspark:~>
eso quiere decir que logramos introducirla al path correctamente y ya podemos utilizar el SDK desde cualquier directorio o ubicación.

Bien ahora viene la parte "complicada" el rooteo, para los que no sepan, que significa rootear, pues simplemente es convertirse en usuario root ( recuerden que android es basicamente un linux ).
Existen muchos métodos para esto y todo depende de el celular que estemos tratando de rootear, en mi caso con el inspire 4G. necesite de bajar este util hack kit descomprimirlo y ejecutarlo desde la terminal ( funciona en windows también ) solo es nesesario tener añadido el SDK de android al path y seguir las instrucciones. Y en cosa de 15 minutos ya tenemos el cel rooteado.
Bueno pues espero que esto les sea de utilidad. y si no saben como rootear su cel, les recomiendo se den una vuelta por este foro ( en ingles ) para averiguar como.
Que por cierto es el mejor foro que en encontrado relacionado a celulares windows mobile, iOS, android, etc,etc. saludos y suerte con su cel ;)