miércoles, 30 de diciembre de 2015

Instalar VSCode de 64 bits en Debian Jessie


Microsoft se suma a la guerra de editores para el desarrollo web moderno con su propuesta gratuita "VS Code". El cual es un editor multiplataforma (Linux, OS X y Windows) cuyas características pueden ser ampliadas por medios de extensiones. Recién lo instalé y no he alcanzado a evaluarlo. Aquí les dejo la guía de instalación para GNU/Linux Debian Jessie de 64 bits, para que ustedes formen su propia opinión.

Lo primero es descargar VSCode, para la versión de 64 bits puede utilizar el siguiente comando:
$ wget -c https://az764295.vo.msecnd.net/public/0.10.6-release/VSCode-linux64.zip

A continuación debemos crear un directorio para instalar software de Microsoft:
$ sudo mkdir -p /opt/microsoft

Posteriormente se descomprime el archivo descargado en el directorio recién creado:
$ sudo unzip VSCode-linux64.zip -d /opt/microsoft

Ahora creamos un enlace simbólico para que el binario sea accesible desde cualquier ubicación:
$ sudo ln -sf /opt/microsoft/VSCode-linux-x64/Code /usr/bin/vscode

Para terminar hay que crear un lanzador para VSCode (vamos a valernos de uno que ya he preparado para ustedes). Con el siguiente comando se descarga y coloca donde debe ir para que les aparezca en el menú de Gnome:
wget http://mizaqblog.com/downloads/desktop/vscode.desktop && sudo mv vscode.desktop /usr/share/applications/vscode.desktop

Puede obtener más información acerca de este editor el sitio oficial del fabricante: https://www.visualstudio.com/products/code-vs

Instalar PhpStorm 10 en Debian Jessie


Lo primero es descargar el tarball de PhpStorm 10 desde el sitio oficial. Puede hacer ejecutando el siguiente comando desde una terminal:
$ wget -c https://download.jetbrains.com/webide/PhpStorm-10.0.2.tar.gz

A continuación creamos un directorio para los programas de Jetbrains y un subdirectorio para PhpStorm, con el siguiente comando:
$ sudo mkdir -p /opt/jetbrains/phpstorm

Posteriormente vamos a extraer el contenido del archivo descargado en la ruta "/opt/jetbrains/phpstorm" introduciendo el siguiente comando:
$ sudo tar xvfz PhpStorm-10*.tar.gz -C /opt/jetbrains/phpstorm/ --strip 1

Ahora vamos a crear un enlace simbólico a PhpStorm en bin
$ sudo ln -sf /opt/jetbrains/phpstorm/bin/phpstorm.sh /usr/bin/phpstorm

Para terminar hay que crear un lanzador para PhpStorm (vamos a valernos de uno que ya he preparado para ustedes). Con el siguiente comando se descarga y coloca donde debe ir para que les aparezca en el menú de Gnome:
wget http://mizaqblog.com/downloads/desktop/jetbrains-phpstorm.desktop && sudo mv jetbrains-phpstorm.desktop /usr/share/applications/jetbrains-phpstorm.desktop

Durante la ejecución inicial debe introducirse la licencia de uso. Si eres estudiante o profesor, le recomiendo crearse una cuenta gratuita para que le otorguen una licencia sin costo, con fines educativos. En el siguiente enlace puede obtener más información.
https://www.jetbrains.com/student/

Finalmente les recomiendo la siguiente lista de atajos de teclado para mejorar productividad en PhpStorm.
https://www.jetbrains.com/phpstorm/documentation/docs/PhpStorm_ReferenceCard.pdf

Instalar VirtualBox 5 en Debian Jessie


Para instalar VitualBox de Oracle en Debian Jessie, primero se debe agregar el repositorio correspondiente. Lo puede realizar ejecutando el siguiente comando en una terminal:
$ echo "deb http://download.virtualbox.org/virtualbox/debian vivid contrib" | sudo tee -a /etc/apt/sources.list.d/deb-virtualbox.list

Posteriormente se debe agregar la llave publica del repositorio recién agregado. La puede descargar e instalar con el siguiente comando:
$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

Antes de instalar se debe actualizar la lista de paquetes:
$ sudo apt-get update

Finalmente se procede a instalar VirtualBox 5
$ sudo apt-get install virtualbox-5.0

Instalar Brackets.io 1.5 de 64 bits en Debian Jessie


Antes de intentar instalar Brackts.io hay que descargar e instalar la librería libgcrypt11, la cuál ya no aparece en los repositorios de Debian Jessie, pero se puede descargar de los paquetes de la versión anterior "squeeze" y funciona sin problema alguno.

Para descargar la librería ejecute el siguiente comando:
$ wget -c http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt11/libgcrypt11_1.4.5-2+squeeze1_amd64.deb

Para instalar la librería ejecute el siguiente comando:
$ sudo dpkg -i libgcrypt11_1.4.5-2+squeeze1_amd64.deb

Ahora se procede a descargar la versión de 64 bits de Brackets.io 1.5, con el siguiente comando:
$ wget -c https://github.com/adobe/brackets/releases/download/release-1.5%2Beb4/Brackets.1.5.Extract.64-bit.deb

Finalmente se instala Brackets.io con el siguiente comando:
$ sudo dpkg -i Brackets.1.5.Extract.64-bit.deb

Instalar el Java 8u65 de Oracle en Debian Jessie


En Debian Jessie los paquetes sun-java-* (Java de Oracle) no están disponibles en los repositorios. Sin embargo, se puede utilizar el paquete "JavaPackage" para generar los paquetes de Debian a partir de los distribuibles del JDK proporcionado por Oracle. En la presente entrada les explico como hacerlo.

Si deseas conocer la versión predeterminada de Java que tienes instalada antes de comenzar, puedes ejecutar el siguiente comando
$ java -version
java version "1.7.0_91" OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-1~deb8u1) OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)

Lo primero que hay que hacer es instalar paquete que luego nos permitirá construir el instalador de Java, en una terminal ejecuta el siguiente comando
$ sudo apt-get install java-package

El paquete que vamos a instalar se llama "oracle-java8-jdk" y lo haremos a partir de un distribuible provisto en el sitio oficial de Oracle. Existe versión para 32 y 64 bits, sigue las instrucciones que corresponda a tu caso particular.

GNU/Linux Debian de 32 bits (i386)

Para descargar la versión de 32 bits, ejecute en una terminal el siguiente comando
$ wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-i586.tar.gz"

Para crear el paquete .deb, ejecute el siguiente comando
$ fakeroot make-jpkg jdk-8u65-linux-i586.tar.gz
Detected Debian build architecture: i386 Detected Debian GNU type: i486-linux-gnu
Detected product: Java(TM) Development Kit (JDK) Standard Edition, Version 1.8.0+update20 Oracle(TM), Inc. Is this correct [Y/n]: Y

GNU/Linux Debian de 64 bits (amd64)

Para descargar la versión de 64 bits, ejecute en una terminal el siguiente comando
wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.tar.gz"

Para crear el paquete .deb, ejecute el siguiente comando
$ fakeroot make-jpkg jdk-8u65-linux-x64.tar.gz
Detected Debian build architecture: amd64 Detected Debian GNU type: x86_64-linux-gnu
Detected product: Java(TM) Development Kit (JDK) Standard Edition, Version 1.8.0+update20 Oracle(TM), Inc. Is this correct [Y/n]: Y

Instalando el paquete generado (independiente de la arquitectura)

Para instalar el paquete recién generado, ejecute el siguiente comando
sudo dpkg -i oracle-java8*.deb

Ahora deberíamos tener más de una versión de Java, para ver las versiones disponibles en nuestro sistema, ejecute el siguiente comando
$ sudo update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64 jdk-8-oracle-x64 318 /usr/lib/jvm/jdk-8-oracle-x64

Para asignar como predeterminada la versión Java de Oracle (en 64 bits), ejecute el siguiente comando (para 32 bits reemplace "jdk-8-oracle-x64" por el que corresponda según la salida del comando anterior)
$ sudo update-java-alternatives -s jdk-8-oracle-x64

Otra forma de seleccionar la versión a predeterminar es por medio del siguiente comando (debe ingresar el número que corresponde a la versión de Java que desea asignar).
sudo update-alternatives --config java
Existen 2 opciones para la alternativa java (que provee /usr/bin/java). Selección Ruta Prioridad Estado ------------------------------------------------------------ * 0 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 modo automático 1 /usr/lib/jvm/j2sdk1.8-oracle/jre/bin/java 319 modo manual 2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 modo manual Pulse para mantener el valor por omisión [*] o pulse un número de selección: 1

Es probable que algunos programas busquen a Java en la ruta donde solía instalarse la versión "sun-java", para evitar inconvenientes vamos a crear un par de enlaces simbólicos, ejecutando los siguientes comandos
$ sudo ln -s /usr/lib/jvm/j2sdk1.8-oracle/ /usr/lib/jvm/java-6-sun $ sudo ln -s /usr/lib/jvm/j2sdk1.8-oracle/ /usr/lib/jvm/java-7-sun $ sudo ln -s /usr/lib/jvm/j2sdk1.8-oracle/ /usr/lib/jvm/java-8-oracle

Finalmente comprobamos que la versión de Java de Oracle se encuentra correctamente asignada, con el siguiente comando
$ java -version
java version "1.8.0_20" Java(TM) SE Runtime Environment (build 1.8.0_20-b26) Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

domingo, 3 de mayo de 2015

¿Como remover el fondo de las opciones de un cuestionario en Moodle?

Tengo un sitio Moodle que utilizo para apoyar las clases que imparto en la universidad, y mientras me encontraba probando unas preguntas que recién había creado para un quiz/cuestionario, no pude dejar de notar un horrible fondo blanco que aparecía en cada unas de las opciones de respuesta.


Cuando traté de determinar de cual hoja de estilo en cascada (css) se estaba aplicando la propiedad background-color: #FFF, sobre una etiqueta span, llegué a la conclusión que de ninguna. La etiqueta, su contenido y sus propiedades de estilo son generadas en tiempo de ejecución.
Estuve buscando en la red para ver si alguien había dado con la solución y me encontré con esto: How to remove background colour in quiz, donde hablan exactamente de mi problema y a la vez plantean un solución a medias que consiste en cambiar el fondo del área de pregunta a color blanco, de manera que el fondo blanco de las opciones de respuesta ya no se ve, pero sigue ahí.


No conforme con esa solución, le hice un poquito de mente y me llegó la solución: sobrescribir la malvada propiedad background-color: #FFF, a partir del elemento "answer", que es un "div" que contiene todas las posibles respuestas. Para hacerlo, conectado como admnistrador en Moodle, fui a la sección de personalización de la plantilla y en el apartado de "CUSMTOM CSS" agregué el siguiente texto de estilo (la magia la hace la declaración !important):
.answer span{ background-color: transparent!important; }
.rightanswer span{ background-color: transparent!important; }

Desde la sección "CUSTOM CSS" tambien se puede cambiar el fondo de toda el área de la pregunta.
.que .formulation { background: none repeat scroll 0 0 #E7FCC7; }

En la siguiente imagen muestro el resultado final:


En la siguiente imagen muestro el resultado final, tras haber respondido erróneamente la pregunta:

domingo, 12 de abril de 2015

FATAL: la autentificación Peer falló para el usuario «postgres»

Error de autentificación Peer en Psql

De manera predeterminada PostgreSQL en GNU/Linux Debian, deja habilitado el mecanismo de autentificación PEER para conexiones locales, por lo tanto si intenta conectarse desde la sesión de un usuario del sistema operativo, que no es usuario de base de datos, obtendrá un error de autentificación. (psql: FATAL:  la autentificación Peer falló para el usuario «postgres»), porque psql está obteniendo el nombre del usuario desde el propio Kernel para luego usarlo con nombre de usuario de base de datos al momento de intentar la autentificación.


Primer forma de arreglarlo

La primer solución no requiere cambiar nada. Solo consiste en utilizar la autentificación correctamente, iniciando sesión con postgres a nivel de sistema operativo y luego intentar autenticarse en psql.

usuario@laptop:~$ su postgres Contraseña: usuario@laptop:/home/usuario$ psql -d mi_basedatos psql (9.4.0) Digite «help» para obtener ayuda. mi_basedatos=#

La segunda forma de arreglarlo

La otra posibilidad es cambiar la configuración de autentificación, cambiándola de PEER a MD5, en el archivo de configuración de PostgreSQL.

Es muy recomendable hacer una copia del archivo de configuración antes de modificarlo, para hacer la copia introduzca el siguiente comando:
$ sudo cp /etc/postgresql/9.4/main/pg_hba.conf /etc/postgresql/9.4/main/pg_hba.conf_bk

Con el siguiente comando se hace la modificación automáticamente, pero tiene que copiar y pegar el comando con todos los espacios en blanco, tal y cómo está a continuación:
$ sed -i -e 's/local all postgres peer/local all postgres md5/g' /etc/postgresql/9.4/main/pg_hba.conf

Para comprobar que el cambio se aplicó correctamente introduzca el siguiente comando:
$ sudo diff /etc/postgresql/9.4/main/pg_hba.conf /etc/postgresql/9.4/main/pg_hba.conf_bk 85c85 < local all postgres md5 --- > local all postgres peer

Si el cambio no se hizo correctamente debe editar el archivo manualmente cambiando "peer" por "md5" en la linea que contiene el siguiente texto:
# Database administrative login by Unix domain socket local all postgres peer

Debería quedar así:
# Database administrative login by Unix domain socket local all postgres md5

Para editar el archivo introduzca el siguiente comando:
$ sudo gedit /etc/postgresql/9.4/main/pg_hba.conf

Finalmente, ya sea que haya hecho el cambio automáticamente o editando el archivo de configuración manualmente, deberá reiniciar el servicio de postgres para que los cambios surtan efectos, para hacerlo introduzca el siguiente comando:
$ sudo /etc/init.d/postgresql restart [sudo] password for usuario: [ ok ] Restarting postgresql (via systemctl): postgresql.service.

Ahora si podrá autentificarse en psql aunque el usuario del sistema operativo no sea usuario de base de datos. Tome en cuenta que siempre deberá indicar el usuario con el que intentará iniciar sesión, con el parámetro -U
usuario@laptop:~$ psql -U postgres -d mi_basedatos Contraseña para usuario postgres: psql (9.4.0) Digite «help» para obtener ayuda. mi_basedatos=#

viernes, 3 de abril de 2015

Galaxy S3 se queda pegado en el logo de Samsung


El presente artículo es una guía para solucionar el problema que describe el titulo, la misma está orientada a usuarios del GNU/Linux Debian (o similar), y se requiere algo de conocimiento previo en la interfaz de linea de comandos (Shell).

Al parecer un es un problema muy común en los terminales Samsung Galaxy S3, probablemente se deba a un error introducido por alguna actualización, realmente no indagué mucho la causa. En mi caso particular tengo instalada una distribución alternativa denominada CyanogenMod (basada en Android), específicamente la versión cm-10.2.0-i9300.zip.

Empezar por lo más sencillo

Lo primero que se puede intentar es "restaurar el teléfono al estado de fábrica". Este proceso también borrará la partición del datos del usuario, así que todos los datos se van a perder. Hay formas de respaldar los datos pero se escapan del alcance de esta guía.

Restaurar al estado de fábrica
Como el teléfono no carga el sistema operativo habrá que reiniciarlo en modo "recovery". Para hacerlo, reinicie o encienda el teléfono presionando simultáneamente los botones de: Volumen arriba + Encendido + Inicio, debe mantener los tres botones presionados hasta que vea el logo de Samsung, en ese momento los libera.


Si logró iniciar correctamente al "recovery mode" (modo de recuperación), debería ver un menú similar al que se muestra en la siguiente captura de pantalla. Para moverse entre las opciones utilice los botones volumen arriba y volumen abajo, para seleccionar una opción utilice el botón de encendido.

Para completar correctamente la restauración al modo de fábrica, seleccione y ejecute cada unas de las siguientes opciones, en el orden en que las enumero.
  1. Wipe cache partition
  2. Wipe data/factory reset
  3. Reboot system now
Con la tercera opción se reiniciará el teléfono y si esto funcionó ya debería iniciar el sistema operativo correctamente. Si no tuvo suerte debe continuar con un proceso un poco más complicado que se describe a continuación.

Reinstalar una ROM de fábrica

Si no funcionó el procedimiento anterior probablemente algo se estropeó con la imagen de recuperación de su smartphone. Por lo que procede ahora es intentar reinstalando una ROM de fábrica.

Descargar la ROM original de Samsung
Debe descargar la una versión reciente para su dispositivo, si no tiene una a mano a continuación dejo un enlace con el "Android 4.3 Jelly Bean" para el Galaxy S3 I9300.

I9300XXEMC2_I9300OXAEMC2_BTU.zip

Formatear particiones problemáticas
Para este propósito se necesita el "adb" (Android Debug Bridge), que permitirá manipular el dispositivo desde la PC, por medio de cable de datos USB, a través de una linea de comandos.

Para instalar el "adb" en GNU/Linux Debian, desde una terminal ejecute el siguiente comando.
$ sudo apt-get install android-tools-adb

Una vez instalado el "adb" debe arrancar el smartphone en modo "recovery", conectar el cable USB y desde una terminal en GNU/Linux ejecutar los siguientes comandos. Lo que está en este color no se digita, es parte del símbolo del sistema.
$ adb shell ~ # parted /dev/block/mmcblk0
(parted) print

Lo que debería arrojar la siguiente salida:
print Model: MMC VTU00M (sd/mmc) Disk /dev/block/mmcblk0: 15.8GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 4194kB 8389kB 4194kB BOTA0 2 8389kB 12.6MB 4194kB BOTA1 3 12.6MB 33.6MB 21.0MB ext4 EFS 4 33.6MB 41.9MB 8389kB PARAM 5 41.9MB 50.3MB 8389kB BOOT 6 50.3MB 58.7MB 8389kB RECOVERY 7 58.7MB 92.3MB 33.6MB RADIO 8 92.3MB 1166MB 1074MB ext4 CACHE 9 1166MB 2777MB 1611MB ext4 SYSTEM 10 2777MB 3364MB 587MB ext4 HIDDEN 11 3364MB 3372MB 8389kB OTA 12 3372MB 15.8GB 12.4GB ext4 USERDATA (parted)

De esa salida se obtienen los datos que se necesitan para formatear las particiones "CACHE", "SYSTEM", "HIDDEN" y "USERDATA". Para salir de "parted", introduzca el comando "quit".
(parted) quit

Antes de formatear se debe intentar desmontar las particiones, si el comando retorna el error "Invalid argument", no hay de que preocuparse, solamente es porque la partición no estaba montada.
~ # umount /dev/block/mmcblk0p8
~ # umount /dev/block/mmcblk0p9 umount: can't umount /dev/block/mmcblk0p9: Invalid argument
~ # umount /dev/block/mmcblk0p10 umount: can't umount /dev/block/mmcblk0p10: Invalid argument
~ # umount /dev/block/mmcblk0p11 umount: can't umount /dev/block/mmcblk0p11: Invalid argument
~ # umount /dev/block/mmcblk0p12 umount: can't umount /dev/block/mmcblk0p12: Invalid argument

Para formatear la partición "CACHE" introduzca el siguiente comando
~ # mke2fs -t ext4 /dev/block/mmcblk0p8

El proceso de formateo arrojará la siguiente salida
mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 35 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.

Para formatear las particiones "SYSTEM", "HIDDEN" y "USERDATA" introduzca los siguientes comandos, uno a la vez. (omitiré la salida de cada comando, es muy parecida a la obtenida al formatear la partición "CACHE").
~ # mke2fs -t ext4 /dev/block/mmcblk0p9 ~ # mke2fs -t ext4 /dev/block/mmcblk0p10 ~ # mke2fs -t ext4 /dev/block/mmcblk0p12

Con esto se habrá terminado el proceso de formateo de las particiones problemáticas. Para salir de "adb", introduzca el comando "exit".
~ # exit


Descargar e instalar Heimdall
Para poder "flashear" (actualizar el firmware) en el dispositivo Samsung Galaxy S3, se necesita un programa, existe uno que es mejor que el popular Odin, sobre todo porque es multiplataforma, lo que permitirá realizar el proceso desde nuestro GNU/Linux Debian, estoy hablando de Heimdall, el cual se puede descargar desde bitbucket.


Para descargar la versión para GNU/Linux Debian de 32bits, utilice el siguiente vinculo
debian7-heimdall_1.4.0-0_i386.deb

Para descargar la versión para GNU/Linux Debian de 64bits, utilice el siguiente vinculo
debian7-heimdall_1.4.0-0_amd64.deb

Para instalar Heimdall, abra una terminal, cámbiese al directorio donde hizo la descarga y ejecute el siguiente comando.
$ sudo dpkg -i debian7-heimdall_1.4.0-0*.deb


Arrancar el smartphone en modo "download"
Para instalar la ROM original que se descargó en unos de los pasos anteriores, se debe iniciar el dispositivo en modo de descarga. Para hacerlo, reinicie o encienda el teléfono presionando simultáneamente los botones de: Volumen abajo + Encendido + Inicio, debe mantener los tres botones presionados hasta que vea el logo de Samsung, en ese momento los libera.


Si logró iniciar correctamente al "download mode" (modo de descarga), debería ver algo similar a lo que se muestra en la siguiente captura de pantalla. Para confirmar el modo de descarga presione el botón volumen arriba.


Reinstalando la ROM original con Heimdall
El "flasheo" de la ROM con Heindall se hace en partes. Normalmente para este proceso se ocupa un archivo .pit, que es como un descriptor de la particiones, pero para no complicar más esta guía voy a omitir el cómo generarlo. Ustedes no lo van a necesitar porque yo les daré el nombre exacto de las particiones a sobre escribir.

Lo primero es descomprimir el archivo con ROM original de Samsung.
$ unzip I9300XXEMC2_I9300OXAEMC2_BTU.zip Archive: I9300XXEMC2_I9300OXAEMC2_BTU.zip inflating: KIES_HOME_I9300XXEMC2_I9300OXAEMC2_1042335_REV00_user_low_ship.tar.md5 inflating: SS_DL.dll 

Se cambia el nombre al archivo, eliminando la extensión el ".md5" para posteriormente desempaquetarlo.
$ mv KIES_HOME_I9300XXEMC2_I9300OXAEMC2_1042335_REV00_user_low_ship.tar.md5 KIES_HOME_I9300XXEMC2_I9300OXAEMC2_1042335_REV00_user_low_ship.tar

Finalmente se desempaqueta el archivo ".tar", para extraer los archivos recovery.img, system.img, modem.bin, cache.img, hidden.img, sboot.bin, tz.img, con los que se hará la reinstalación.
$ tar xvf KIES_HOME_I9300XXEMC2_I9300OXAEMC2_1042335_REV00_user_low_ship.tar boot.img recovery.img system.img modem.bin cache.img hidden.img sboot.bin tz.img

Ahora lo que procede es "flashear" cada uno de estos archivos. Para prevenir daños permanentes en el dispositivo, siga las siguientes instrucciones.
  • Asegúrese de que la batería del dispositivo tenga al menos un 80% de la carga
  • Es deseable que la PC tenga respaldo eléctrico (UPS), si es una portátil conéctela al toma corriente 
  • Conecte el smartphone a la PC con el cable USB
  • Inicie el smartphone en modo descarga como se indicó en el paso previo
  • Nunca desconecte el dispositivo mientras se ejecuta una actualización

Desde una terminal, permaneciendo en el directorio donde se desempaquetaron los archivos ejecute los siguientes comandos.
$ sudo heimdall flash --BOOT boot.img --no-reboot

Este proceso arrojará la siguiente salida.
Heimdall v1.4.0 Copyright (c) 2010-2013, Benjamin Dobell, Glass Echidna http://www.glassechidna.com.au/ This software is provided free of charge. Copying and redistribution is encouraged. If you appreciate this software and you would like to support future development please consider donating: http://www.glassechidna.com.au/donate/ Initialising connection... Detecting device... Claiming interface... Attempt failed. Detaching driver... Claiming interface again... Setting up interface... Initialising protocol... Protocol initialisation successful. Beginning session... Some devices may take up to 2 minutes to respond. Please be patient! Session begun. Downloading device's PIT file... PIT file download successful. Uploading BOOT 100% BOOT upload successful Ending session... Rebooting device... Releasing device interface... Re-attaching kernel driver...

Continúe el proceso ejecutando los siguientes comandos (debe reiniciar manualmente en modo "download" luego de hacer cada carga, omitiré la salida por ser prácticamente igual a la descrita al flashear "boot").
$ sudo heimdall flash --CACHE cache.img --no-reboot //Debe reiniciar el dispositivo en modo "download" //antes de ejecutar el siguiente comando $ sudo heimdall flash --HIDDEN hidden.img --no-reboot //Debe reiniciar el dispositivo en modo "download" //antes de ejecutar el siguiente comando $ sudo heimdall flash --RADIO modem.bin --no-reboot //Debe reiniciar el dispositivo en modo "download" //antes de ejecutar el siguiente comando $ sudo heimdall flash --RECOVERY recovery.img --no-reboot //Debe reiniciar el dispositivo en modo "download" //antes de ejecutar el siguiente comando $ sudo heimdall flash --BOOTLOADER sboot.bin --no-reboot //Debe reiniciar el dispositivo en modo "download" //antes de ejecutar el siguiente comando $ sudo heimdall flash --SYSTEM system.img --no-reboot //Debe reiniciar el dispositivo en modo "download" //antes de ejecutar el siguiente comando $ sudo heimdall flash --TZSW tz.img

Luego de esto, puede reiniciar su smartphone de manera normal y el mismo debería iniciar el sistema operativo original satisfactoriamente. Luego de eso puede proceder a reinstalar su distro CyanogenMod de la manera habitual e igualmente el teléfono seguirá arrancando de manera normal.
Mizaq's Blog

Entradas populares