Robots y modelos

Notas sobre pruebas, modelado y aventuras en Java y Android

Apuntes sobre Ice Cream Sandwich en Samsung Galaxy S i9000

with 26 comments

El jueves y el viernes pasé alrededor de 8 horas peleándome por teléfono (por fijo y con tarifa plana :-D) para meter Ice Cream Sandwich (Android 4.0) en el Galaxy S i9000 de un familiar. Gran parte de esas 8 horas fueron más a resolver meteduras de pata mías que a realizar el proceso final (que no llevó más de 1 hora), así que he pensado dejar una guía aquí con unas instrucciones básicas y algunas observaciones.

Un poco de contexto: el Galaxy S i9000 vino inicialmente con Éclair (2.1) y después se actualizó a Froyo (2.2) y Gingerbread (2.3). Por desgracia, Samsung decidió no actualizarlo oficialmente a 4.0, ya que no disponía de la RAM suficiente para ejecutar TouchWiz (la interfaz propia de Samsung) además de ICS. Si queréis ICS, vuestra única opción es una ROM casera, y muy probablemente sin TouchWiz (ni Kies). Así que toca ensuciarse las manos un poco.

Antes de empezar

Os aviso de un par de cosas:

  • Todo esto es a vuestra cuenta y riesgo: aunque tengáis mucho cuidado, siempre existe la remota posibilidad que paséis a tener un bonito pisapapeles, o el equivalente de un iPod Touch. Ninguna de las dos cosas *deberían* ocurrir, pero no me hago responsable :-).
  • Perderéis la garantía en el primer paso de la guía: si aún estáis metidos en una permanencia y no os sentís aventureros, pensadlo dos veces :-).
  • De nuevo: perderéis la interfaz TouchWiz y todos los retoques que ello conlleva, como Kies. Personalmente, no me gustó nunca Kies, pero pensad si necesitáis algo de ahí.
  • Seguid esta guía con la batería al 100%, y a ser posible con el móvil enchufado al cargador o al ordenador. Si se corta la energía y se queda el teléfono a medias, podríais acabar con un pisapapeles igualmente :-).
  • Es posible que perdáis todo lo que haya en la tarjeta SD interna y/o la externa. Haced copia de seguridad de ambas antes de seguir la guía.
  • Las ROM caseras son actualmente bastante estables y tienen mejor rendimiento y más funcionalidades que las ROM oficiales, pero pueden tener pegas. Si queréis curiosear, en el foro de XDA hay a puñados.
  • Esta guía está pensada para una instalación reciente de Ubuntu Linux. Si usáis Windows, tendréis que adaptar algunas de las instrucciones.
  • Está guía está pensada para un Galaxy S i9000 que ya tiene la versión estándar de Gingerbread. Podéis comprobar qué versión tenéis en Ajustes > Estado del teléfono. Debería empezar por 2.3 para que fuera Gingerbread. Si aún tenéis las versiones estándar de Eclair o Froyo, actualizad normalmente mediante Kies a Gingerbread antes de seguir. Si actualizáis por Kies creo que no os quedáis sin garantía, así que estad tranquilos. Si tenéis alguna otra ROM, supongo que no os hará falta esta guía, pero por si acaso volved a un Gingerbread estándar. Más abajo dejo una guía, por si acaso.
  • No me cabe absolutamente todo aquí: recordad que para muchas dudas y demás el foro «Android Development» para i9000 de XDA es muy, muy útil.

No todo va a ser malo: Ice Cream Sandwich trae muchas mejoras, y hay aplicaciones (como Google Chrome) que sólo están disponibles a partir de esta versión. Además, la ROM casera que instalaremos (ICS333) tiene unas cuantas características adicionales. Traduzco algunas de las cosas:

  • Directamente compilado del código oficial de Google (versión IMM76L)
  • Botones mejorados de notificaciones: la pulsación larga en un botón te envía a su menú de Ajustes, y el botón de sonido tiene varios estados
  • Indicador de porcentaje de batería (Opcional – puede cambiarse al original en Ajustes > Batería  > (botón Menú) > Change battery style).
  • Control de brillo en barras de estado y notificaciones (Opcional – puede desactivarse en Ajustes > Pantalla > Brightness control slider).
  • Mejor autobrillo: el brillo realmente baja con menos luz (puede desactivarse en Ajustes > Pantalla > Reducción automática). Basado en el enfoque de stratosk pero usando una escala logarítmica, más ajustada al ojo humano.
  • Menú mejorado de apagado con opciones de reinicio normal, a recovery y toma de pantalla.
  • Salida de TV (ve a Ajustes > Pantalla para activarlo).
  • Efectos de vídeo para caras
  • Matar la aplicación actual mediante pulsación larga en botón Atrás (opcional – puede desactivarse en Ajustes > Opciones de desarrollo > Fast application killing).
  • Elección de almacenamiento en la aplicación de Cámara
  • Botón de encendido como disparador en la Cámara
  • Temporizador en la cámara
  • Marcador T9
  • Los ajustes de Galaxy S de CyanogenMod 9 (otra ROM Android) están todos en el menú de Ajustes
  • Retirado indicador «R» de roaming para roaming nacional (típico en Simyo)
  • Root, Busybox and SuperSU
  • Kernel Semaphore 1.2.2s (387 MB RAM libres para ejecutar vuestras aplicaciones)
  • Cambiado el fichero hosts para quitar anuncios en algunas aplicaciones (fuente: http://winhelp2002.mvps.org/hosts.txt)

El kernel que trae tampoco es el estándar (es Semaphore ICS 1.2.2):

  • Permite controlar los voltajes y frecuencias de la CPU.
  • Permite usar la versión gratuita de Voodoo Sound para mejorar notablemente el sonido de los altavoces y los cascos al escuchar música (mi Nexus S también lo lleva, y creo que es el mejor aparato para escuchar con cascos que ahora mismo tengo). Digamos que la circuitería interna de sonido del i9000 es de alta calidad, pero Samsung no le saca todo el partido.
  • BLN: las notificaciones pendientes encienden los botones capacitivos. Muy útil para ver si te han enviado algo sin encender la pantalla.
  • Deep Idle: si se activa desde las opciones, puede ahorrar mucha batería mientras el móvil está en espera.
  • USB OTG (con ciertos matices).
  • Gobernadores de CPU y planificadores de entrada/salida mejorados.
  • Soporte de carga rápida por USB mediante Fastcharge Widget (útil si el móvil cree que nuestro cargador es un PC – le pasa a muchos cargadores de coche).

Si estáis decididos a arriesgaros a cambio de algo de helado en vuestro i9000, comencemos el proceso :-).

Conceptos básicos

Lo primero es que conozcáis un par de conceptos de bajo nivel del i9000. Tenéis que saber entrar en el «recovery mode» y en el «download mode», que son dos modos especiales de funcionamiento para mantenimiento.

«Recovery mode» (modo de recuperación)

Este modo os abrirá un menú de mantenimiento donde podréis realizar copias de seguridad, instalar una ROM distinta, limpiar el teléfono o reformatearlo, entre otras cosas. El recovery de serie de Samsung no es muy potente: de hecho, en esta guía tendremos que cambiarlo por otro, llamado ClockworkMod.

Para entrar en este modo, primero debéis apagar el teléfono por completo. A continuación, mantened pulsado el botón de volumen hacia arriba, el botón «home» central, y el botón de encendido, en ese orden. Cuando se encienda la pantalla, soltad el botón de encendido.

Para salir de este modo, basta con usar las opciones «reboot system now» o «power off» del menú del recovery. Normalmente os movéis por el recovery con los botones de volumen, y seleccionáis las opciones con el botón de encendido.

«Download mode» (modo de descarga)

Es un modo propio de los Galaxy S y otros aparatos de Samsung para mantenimiento de *muy* bajo nivel. La única forma de comunicarse con el teléfono es mediante Kies, Odin (una herramienta interna de Samsung filtrada al público, *MUY INESTABLE*, y requiere Kies) o Heimdall (una reimplementación de código abierto y mucho más estable de Odin). Esto permite reparticionar la memoria interna y hacer cosas mucho más avanzadas.

En particular, usaremos Heimdall 1.3.1, ya que la 1.3.2 parece tener algunos problemas con los Galaxy S. Instalaos los paquetes Debian de la versión 1.3.1 que vienen en el enlace anterior para vuestra arquitectura (x86 para 32 bits o AMD64 para 64 bits). Podéis saber cuál ejecutando «arch» en una terminal: si sale x86 vuestro sistema es de 32 bits, y si sabe x86_64 es de 64 bits (AMD64).

Para entrar en este modo, las instrucciones son casi las mismas del «recovery mode», pero en este caso es el botón de volumen hacia abajo, el «home» y el botón de encendido. Para salir, mantened pulsado el botón de apagado o quitad la batería (*NUNCA* si Heimdall está haciendo algo en ese momento), o dejad que Heimdall reinicie el teléfono automáticamente cuando termine lo suyo.

Cosas del diseño interno de los Galaxy S a tener en cuenta

Tengo una buena noticia, y una mala:

  • La buena es que es muy difícil dejar el teléfono inservible  siempre que el «download mode» funcione. Si la batería está al 100%, no desconectáis los cables USB mientras opera Heimdall (Odin se desayuna un teléfono y dos gatitos al día, así que olvidaos de él) y no hacéis cosas muy raras, el «download mode» debería funcionar siempre.
  • La mala es que en muchos teléfonos Samsung el IMEI y las MAC de WiFi/Bluetooth (entre otras cosas importantes) vienen en una partición especial llamada /efs. Esta partición es única de cada teléfono y los únicos capaces de regenerarla son los técnicos de Samsung. Si vais a meter ROM y trastear con el aparato, es absolutamente indispensable hacer una copia de seguridad (o dos, o tres) de esta partición antes de nada, y guardarla a muy buen recaudo (en mi caso, Dropbox + Gmail + copia local). Si se corrompe /efs y no tenéis una copia de seguridad, pasaréis de tener un teléfono a tener el equivalente de un iPod Touch :-).

Por ello, el primer paso que seguiremos es hacer una copia de seguridad de vuestra partición /efs (basándonos en este proceso). Sin embargo, para poder hacerla tenemos que obtener acceso de superusuario («root») al teléfono, ya que normalmente no se puede acceder a ella.

«Rootear» el teléfono

Para «rootear» el teléfono hay que instalar un kernel nuevo. ¿Qué es el kernel? Es el sistema operativo del teléfono (una versión especial de Linux), que controla todo el acceso al hardware y funciones de bajo nivel. Tenemos que instalar un kernel alternativo al oficial que nos dé acceso a más cosas.

En particular, descargaremos Semaphore 2.7.4, un kernel con root y otras muchas cosas buenas para Gingerbread (no lo confundáis con el otro Semaphore que es para ICS). Descargadlo de aquí y descomprimidlo a un directorio cualquiera. Deberíais obtener un único fichero llamado zImage. Suponiendo que lo dejamos en /home/yo/semaphore/zImage, ahora apagad el teléfono, ponedlo en «download mode», conectadlo a vuestro ordenador y ejecutad la siguiente orden bajo una terminal:

sudo heimdall flash --kernel /home/yo/semaphore/zImage

Os pedirá la contraseña de vuestro usuario. Una vez la introduzcáis, Heimdall se pondrá manos a la obra y cuando termine, os reiniciará el teléfono. Si todo ha ido bien, el teléfono arrancará de forma normal. De lo contrario, tendréis que volver a reinstalar el Gingerbread de vuestro teléfono (algunos apuntes debajo).

Una nota: de 3 usuarios que sé que han seguido esta guía, 2 han usado Semaphore 2.7.4 sin problemas y uno ha tenido que usar CF-Root, el kernel en que está basado a su vez Semaphore. Si al «rootear» con Semaphore tenéis problemas, deberíais probar con CF-Root.

Copias de seguridad de /efs

Una nota: a los usuarios de Windows les podría venir bien esta aplicación para automatizar el proceso.

Con el nuevo kernel instalado, seguiremos una variante de este proceso para hacer dos copias de seguridad de /efs: sacaremos una copia del directorio /efs en sí, y una imagen de la partición /efs. Nunca viene mal hacerla de varias formas, por si acaso :-). El primer paso es instalar adb, la herramienta para acceder a las funciones de depuración de Android (el «Android Debug Bridge»). Para instalarla, descargad la última versión del Android SDK para Linux de aquí y descomprimidla a un directorio. Entrad en el subdirectorio tools y ejecutad «./android». Se os abrirá un gestor de paquetes: marcad las «Platform Tools» y nada más, e iniciad la instalación. Cuando termine, «adb» debería aparecer mágicamente dentro de «platform-tools» en el directorio principal del SDK.

Desde una terminal, id a ese directorio platform-tools y ejecutad esta orden, teniendo el teléfono conectado al ordenador:

./adb devices

Si os sale una salida de este tipo, ADB se puede comunicar bien con vuestro dispositivo:

(identificador con letras y números)     ("device" o algún nombre de aparato)

De lo contrario, tendréis que revisar si las funciones de depuración están activadas en vuestro teléfono (mirad en «Ajustes > Aplicaciones»), y si existen las reglas udev oportunas.

Una vez ADB pueda hablarse con vuestro aparato, podremos seguir. Desde esa terminal, ejecutad esta orden para abrir una terminal dentro del propio teléfono:

./adb shell

Veréis que la terminal cambia a algo del tipo:

blablabla $

El «$» al final indica que sois usuarios normales, así que vamos a pedirle que nos suba a superusuarios:

su

Si es la primera vez que usamos «su», el teléfono nos preguntará si queremos darle acceso de superusuario a la terminal. Le diremos que sí (y yo normalmente le digo que lo permita para siempre). Ahora la terminal debería estar como:

blablabla #

La «#» final indica que somos superusuarios. Atención a las órdenes que mandéis ahora que tenéis todo el poder: puede usarse para el bien, o para el mal :-). Bueno, pues sigamos:

busybox tar czvf /sdcard/efs.tar.gz /efs

Esta orden os creará un fichero llamado efs.tar.gz en vuestra tarjeta SD interna, que contiene una copia de seguridad comprimida de la partición /efs. Por si acaso, también sacaremos una imagen de la partición, pero primero tenemos que conocer su ruta de bajo nivel. Para ello, primero miraremos con:

mount | grep /efs

Debería aparecer una sola línea, con una ruta de la forma «/dev/…». Apuntad esta ruta, y ejecutad:

dd if=/dev/... of=/sdcard/efs.rfs

Si todo va bien, ahora en la tarjeta SD interna tendréis una imagen de esa partición (normalmente ocupa unos 6MB). Para sacar esos ficheros, salid de ADB mediante:

exit
exit

El primer «exit» os sacará del modo superusuario, y el segundo os sacará del terminal de ADB. Ahora que estamos de vuelva en la terminal normal, vamos a sacar esos ficheros de la tarjeta SD interna mediante:

./adb pull /sdcard/efs.tar.gz ~/efs.tar.gz
./adb pull /sdcard/efs.rfs ~/efs.rfs

Las copias de seguridad estarán directamente bajo vuestro directorio personal. Ponedlas a buen recaudo, que nunca sabéis cuándo os harán falta :-).

Instalación de ICS333

Ahora vamos a dar el paso grande. Antes de eso, comprobad estas cosas:

  • Deberíais estar corriendo Gingerbread estándar en vuestro Galaxy S i9000.
  • Deberíais tener acceso root a vuestro teléfono y el recovery de ClockworkMod (el kernel que pusimos antes lo instaló de paso).
  • Deberíais tener una copia de seguridad de vuestra partición /efs, guardada a muy buen recaudo. Vuestro ordenador no es «buen recaudo»: deberíais tener por lo menos una copia en algún soporte externo y otra en algún servicio online, que después fallan los discos duros y toca llorar :-P.
  • Deberíais tener una copia de seguridad de vuestras aplicaciones, SMS y demás. Para ello, Titanium Backup es ideal (exige permisos de superusuario, pero si habéis seguido esta guía ya los tenéis). Y compraos la versión Pro: los mejores 4,99€ que os habréis gastado en mucho tiempo si os gusta trastear ;-).
  • Tras hacer la copia de seguridad de Titanium Backup, deberíais hacer copia de seguridad de las tarjetas SD interna y externa a otra máquina: vuestro ordenador, por ejemplo.

¿Todo hecho? Pues vamos a seguir una adaptación de esta guía.

Descargad este fichero (es la ROM en sí) y este otro (son las aplicaciones de Google: por cuestiones legales no se pueden integrar en la ROM), y meted ambos en la tarjeta SD externa del teléfono. Podríais usar el almacenamiento USB de toda la vida, o emplear adb de nuevo:

./adb push (ruta a ICS333-2.0.1-signed.zip) /mnt/sdcard/
./adb push (ruta a gapps-ics-20120429-signed.zip)  /mnt/sdcard/

Ahora apagad el teléfono, y reiniciadlo en modo recovery con las instrucciones de arriba. Ejecutad las órdenes «Wipe data/factory reset» y «Wipe cache»,  y seleccionad «install zip from sdcard > choose zip from sdcard». Seleccionad ICS333-2.0.1-signed.zip y confirmad que queréis aplicar sus cambios. Cuando lleve un poco, se os reiniciará el teléfono debido a que el kernel ha cambiado, y se quedará parado en el logotipo de Semaphore. Esperad un poco, y si veis que no responde (es normal) apagadlo manteniendo pulsado el botón de apagado, o a unas malas quitando la batería. Encendedlo de nuevo en modo recovery y aplicad de nuevo ICS333-2.0.1-signed.zip: esta vez llegará al final, y os devolverá al menú principal.

Volved a «choose zip from sdcard», pero esta vez aplicad gapps-ics-20120429-signed.zip. Por si acaso, haced otro «Wipe data/factory reset» y «Wipe cache» de nuevo, y reiniciad el sistema mediante «reboot system now».

Una vez se reinicie el sistema, ya podréis disfrutar de Ice Cream Sandwich. ¡Que aproveche!

Posibles problemas

El sistema arranca bien, pero no tengo servicio en el teléfono, y/o no tengo IMEI

Es hora de aprovechar esa copia de seguridad que hicisteis de /efs, porque ¿la hicisteis, verdad? De lo contrario, llevadlo al SAT de Samsung: nadie más lo va a poder reparar.

Coged el efs.tar.gz que generamos en su momento y extraed el nv_data.bin de ahí. No necesitamos nada más, en principio. Colocadlo en vuestra tarjeta externa, y con el móvil encendido en el sistema normal y conectado al ordenador, id al directorio platform-tools (donde está «adb») y ejecutad:

./adb shell
su
cp /emmc/nv_data.bin /efs/nv_data.bin
busybox rm - f /efs/nv_data.bin.md5
chown radio /efs/nv_data.bin
chgrp radio /efs/nv_data.bin
chmod 644 /efs/nv_data.bin
reboot

Ahora se os reiniciará el teléfono, y ya deberíais tener servicio de teléfono. Si aún no, tendréis que probar otras guías para recuperar el servicio a partir del /efs, o volver a un estado consistente mediante las instrucciones de la siguiente sección.

El sistema no arranca, pero el «download mode» sí

En este caso, probad a hacer un wipe y reinstalar la ROM y gapps. Si eso no sirve, puede que el teléfono haya quedado en un estado inconsistente que le impida arrancar bien. Vamos a limpiar el teléfono completamente (tarjeta SD interna incluida) para dejarlo justo como sale de fábrica, con Gingerbread 2.3.6.

Para ello, en este hilo hay una imagen limpia preempaquetada para Heimdall: en particular, queremos la XXJVU (enlace). Descargad el fichero a vuestro ordenador y no lo descomprimáis.

Ahora encended el teléfono en «download mode» y conectadlo al ordenador. En una terminal, ejecutad la siguiente orden:

sudo heimdall-frontend

Se os abrirá una ventana con el interfaz gráfica de Heimdall, la herramienta que antes usamos para «rootear» el teléfono. Bajo la pestaña «Load Package», pulsad «Browse» y seleccionad el fichero XXJVU_Heimdall.tar.gz que antes descargasteis. Heimdall descomprimirá el fichero y hará una serie de comprobaciones. Cuando termine, veréis que indica que la ROM sólo es usable con i9000, y os listará unas cuantas entradas en «Package Files». Pulsad en «Load / Customise», y os pasará a «Flash».

Bajo la pestaña «Flash», pulsad en «Add» y aseguraos de que en Partition diga «EFS». Pulsad en Browse y seleccionad el fichero efs.rfs que antes creamos. Ahora pulsad en Start, y dejad que Heimdall haga lo suyo. El teléfono se reiniciará automáticamente, y tendréis vuestro Galaxy S de vuelta en Gingerbread funcionando normalmente. Es posible que no sea exactamente el de vuestra operadora, pero por lo general funcionará bien y os dará servicio. Sois libres de reintentar las instrucciones de esta guía llegados a este punto. Si queréis, podríais probar otra ROM ;-). Me han comentado por Facebook que las versiones recientes de CyanogenMod 9 van bastante bien.

El sistema no arranca, y tampoco el «download mode»

Lamento decir que en este caso, sólo queda llevarlo al SAT de Samsung. La única forma de acceder al dispositivo será mediante unos puntos de contacto en la propia placa base del aparato en este caso, y los únicos que tienen ese tipo de equipamiento y el software correspondiente son los técnicos de Samsung, me temo.

Written by bluezio

14 de julio de 2012 a 16:57

Publicado en Android

Tagged with , , , , , ,

26 respuestas

Subscribe to comments with RSS.

  1. Hola,

    perdona, pero es que tengo un problemilla con mi SGS que no consigo solucionar. Hace un par de días lo subí a Ice Cream Sandwich. La cuestión es que no sé cómo hacer que la cámara guarde las imágenes y los vídeos en la sdcard de 16Gb que tengo. Lo hace por defecto en la sdinterna. No sé dónde cambiar la preferencia de almacenaje, y mientras tanto no puedo hacer fotos porque me dice que espacio de almacenamiento USB está casi lleno.

    Muchas gracias.

    Noah

    Akula

    20 de julio de 2012 at 11:53

    • Es una limitación de la aplicación Cámara que viene con ICS, me temo. No sé qué ROM tienes, pero es posible que CyanogenMod 9 tenga una versión mejorada que te deje escoger el destino de las fotos.

      De todos modos, lo más fácil es usar otra app para las fotos. Puedes probar Camera Zoom FX , que tiene una opción para cambiar la carpeta a la que van las fotos. Mándalas a un subdirectorio de /emmc o /mnt/emmc y listo :-).

      bluezio

      20 de julio de 2012 at 12:34

      • Muchas gracias por tu respuesta. He leído por ahí, que es posible que formateando a sd interna el problema se subsane. Voy a hacer backups varios y a ir probando diferentes posibles soluciones, a ver si hay suerte.

        Soy bastante lega en la materia. ROMS, kernels, parches… Todo lo que puedo hacer es decirte que mi versión de Android es la 4.0.4, la versión de banda base I9000XXJVU y el kernel 3.1.10 (skorpion_s2) #2.

        ¿Dónde pordría encontrar ROMs interesantes?

        Gracias de nuevo.

        Noah

        Akula

        21 de julio de 2012 at 14:41

      • El Galaxy S no era mío, así que no sé si eso te funcionará o no. Ánimo de todos modos :-).

        En cuanto a dónde conseguir ROM, kernels y demás, lo mejor es el foro de XDA. Hay gente muy buena ahí, y es de donde siempre saco todas mis cosas:

        http://forum.xda-developers.com/forumdisplay.php?f=665

        bluezio

        21 de julio de 2012 at 15:23

  2. Gracias de nuevo. 😉

    Akula

    21 de julio de 2012 at 15:25

  3. Hola,

    Felicidades por el artículo. He seguido todos los pasos de forma escrupulosa y todo me ha funcionado perfectamente.

    Gracias

    Quería hacer un apunte.

    Si por algún problema necesitamos volver a la versión 2.3.6 con la imagen para Heimdall que indicas, luego necesitamos hacernos root en el teléfono para hacer más pruebas 😉

    El paquete de Heimdall funciona perfectamente, pero si como yo hice intentas hacerte root con el kernel Semaphore que indicas al principio puedes tener problemas de que no inicie el teléfono.

    En mi caso me funcionó el kernel CF-Root-XX_OXA_JVU_2.3.6-v4.3-CWM3RFS , que se puede descargar desde:
    http://download.chainfire.eu/132/CF-Root/SGS/

    Las instrucciones serían las que para el otro kernel

    Un saludo

    JMiguel

    24 de julio de 2012 at 16:14

    • Gracias por el aviso :-). He añadido un comentario en la sección de «rooteado» al respecto.

      bluezio

      24 de julio de 2012 at 18:45

  4. Hola a todos

    Alguien sabe:

    – si al actualizarse aplicaciones del sistema empiezan a fallar otros (como me ha ocurrido con ROMS de cyanogen) hasta que tienes que reinstalar la imagen cada día

    – si es posible tener una radio FM con esta ROM

    Gracias

    Carlos

    12 de septiembre de 2012 at 12:37

    • Hola Carlos,

      Ten en cuenta que muchas ROM se basan en versiones inestables de CyanogenMod que no están del todo pulidas. Si quieres un teléfono estable, quizás lo mejor sea limitarte a las versiones estables de CyanogenMod o a ROM basadas en AOSP (el código oficial de Google) con ligeros retoques. También es importante que limpies el teléfono a fondo entre instalación e instalación, o si no el teléfono se quedará en un estado inconsistente y empezará a hacer cosas raras. De todos modos, ahora existen versiones estables de CyanogenMod 9, así que te recomiendo que pruebes alguna de ellas.

      No he mirado lo de la radio FM, pero parece que hay cosas. Buscando un poco he encontrado esto, a ver si te sirve:

      http://forum.xda-developers.com/showthread.php?p=13380058

      De nada y un saludo :-).

      bluezio

      12 de septiembre de 2012 at 13:10

  5. Tengo el siguiente problema:

    Logre hacer la instalacion sin ningun problema, pero, se da el caso, que los MHZ de banda que mas se utilizan aca en El Salvador, son los 850Mhz que corresponde a TIGO…

    Ya probe instalando todo como lo manifiesta el tutorial y al final todo bien (CON LA RED CLARO Y MOVISTAR) no asi con TIGO, luego me recomendario instalar una version del MODEN que contara con la apertura de la frecuencia 850Mhz, y lo que logre fue, dejar el telefono completamente COLGADO sin señal TIGO, y ahora se le sumaban las de CLARO Y MOVISTAR… Ahora, hay alguna manera de poder lograr aperturar esa banda??

    LA INSTALACION DEL ARCHIVO MODEM lo hize con el ODIN, instala, no da error.. pero, al arrancar el Movil, no levanta señal alguna…

    Alguna recomendacion???

    Por su atencion..y respuesta desde ya muuchas gracias!

    MELQUISEDEC TORRES

    10 de diciembre de 2012 at 21:55

    • La verdad es que no puedo ayudarte en eso: estoy acostumbrado a trabajar con las bandas españolas y el firmware que viene con estas ROM funcionaba bien. Es muy probable que en otros mercados se utilicen firmware de módem distintos para utilizar otras bandas.

      Además, tienes que tener cuidado con la variante de Galaxy S que tienes. En España se vende el i9000, pero tengo entendido que hay variantes distintas en Canadá, Brasil, EEUU y otros sitios. Es muy probable que si pones una ROM de un teléfono distinto no vaya.

      Por lo pronto, para sacarte del problema, recomiendo que averigües qué variante exacta de i9000 estás usando y vuelvas a una ROM estándar de Gingerbread mientras buscas una ROM compatible. Te recomiendo esta página, que tiene volcados estándar de todas las variantes de i9000:

      http://www.sammobile.com/firmware

      bluezio

      10 de diciembre de 2012 at 23:17

  6. Tengo instalada la ICS333 y me gustaria me indicaras como puedo cambiar el vold.fstab para que detecte la memoria interna como externa y viceversa al objeto de ampliar la memoria.
    te dejo mi vold.fstab
    Vold.fstab
    Original:
    # Sdcard interna
    dev_mount sdcard /mnt/sdcard 1 /devices/platform/s3c-sdhci.0/mmc_host/mmc0
    # Sdcard externa
    dev_mount emmc /mnt/emmc auto /devices/platform/s3c-sdhci.2/mmc_host/mmc2

    rafael

    18 de febrero de 2013 at 14:59

    • Antes de seguir: ¿has mirado en XDA? Aquí hay un hilo de gente que lo ha hecho:

      http://forum.xda-developers.com/showthread.php?t=1301384

      Dicho eso, y sin tener un Galaxy S físico en que probarlo (el de este mensaje no era mío), supongo que quedaría así:

      # Sdcard interna
      dev_mount sdcard /mnt/sdcard 1 /devices/platform/s3c-sdhci.2/mmc_host/mmc2
      # Sdcard externa
      dev_mount emmc /mnt/emmc auto /devices/platform/s3c-sdhci.0/mmc_host/mmc0

      Es decir, intercambias los dispositivos y ya está. De todos modos, antes de hacer esto yo tú hacía copia de seguridad de todo. Por supuesto, hazlo bajo tu propia responsabilidad ;-).

      bluezio

      18 de febrero de 2013 at 15:08

      • Gracias Bluezio por responder tan pronto.
        Me dices que cambie solo los dispositivos para intercambiar memorias pero depues de mucho buscar y buscar, veo que unos intercambian nombre de las memorias (la interna por la externa) dejando los mismos dispositivos, la verdad es que realmente no se lo que estoy tocando dentro del vold.fstab, puesto que no encuentro ninún manual que explique realmente que es lo que hay que cambiar, y si todas las memorias se cambian de la misma manera ( tanto en ICS como no ) te dejo un ejemplo de los que he visto y en el cual solo cambian memorias:
        mia:
        # Sdcard interna
        dev_mount sdcard /mnt/sdcard 1 /devices/platform/s3c-sdhci.0/mmc_host/mmc0
        # Sdcard externa
        dev_mount emmc /mnt/emmc auto /devices/platform/s3c-sdhci.2/mmc_host/mmc2

        cambiar por:
        # Sdcard interna
        dev_mount emmc/mnt/emmc 1 /devices/platform/s3c-sdhci.0/mmc_host/mmc0
        # Sdcard externa
        dev_mount sdcard/mnt/sdcard auto /devices/platform/s3c-sdhci.2/mmc_host/mmc2

        Bien de todas formas gracias.

        rafael

        19 de febrero de 2013 at 8:21

      • Sí, es posible que sea mejor como has enseñado, ya que el tercer campo de cada línea indica el tipo de sistema de ficheros, y ese «1» seguramente signifique algo especial de ese dispositivo. En cuanto al formato de los fstab, es muy conocido en Linux (la base de Android):

        https://wiki.archlinux.org/index.php/Fstab_(Espa%C3%B1ol)

        bluezio

        19 de febrero de 2013 at 12:13

  7. Nuevamente gracias bluezio por contestar a mis dudas.
    Efectivamente me arriesgare y probare nuevamente realizando el ultimo cambio indicado ( previamente salvare todo realizando un onandroid ).
    Bien ya te indicare los resultados para aclarar dudas si se plantearan en otro usuario.
    Saludos

    rafael

    20 de febrero de 2013 at 13:37

  8. Hola:
    Nuevamente he probado, a montar la memoria interna como externa cambiando el fichero vold.fstab, de acuerdo con el razonamiento anterior ( cambiando nombre de las memorias ) dejandolo una vez cambiado de la siguiente forma:

    # Sdcard interna
    dev_mount emmc/mnt/emmc 1 /devices/platform/s3c-sdhci.0/mmc_host/mmc0
    # Sdcard externa
    dev_mount sdcard/mnt/sdcard auto /devices/platform/s3c-sdhci.2/mmc_host/mmc2

    y por segunda vez me he encontrado al realizar el arranque de mi Galaxsy S GT I9000 ROM ICS333 Kernel Semaphore, en un bucle continuo sin poder arrancar. Volviendo un paso atras al restaurar por recovery desde una salvaguarda anterior realizada por onandroid.
    Bien, nuevamentee solicito tu ayuda para poder solucionarlo pues es la forma de poder aprovechar la tarjeta micro de 16 GB que tengo.
    Perdona por mi insistencia, puesto que ya casi estoy tomandolo como algo personal..

    rafael

    25 de febrero de 2013 at 8:31

    • Hola Rafael,

      Bueno, como no tengo un Galaxy S a mano, tendremos que ir probando distintas cosas. Lo primero: no tenemos suficiente información. ¿Has sacado un registro de ese bucle continuo («bootloop»)?

      Mira estas instrucciones, a ver si te sirven para sacar el registro:

      http://wiki.cyanogenmod.org/w/Doc:_debugging_with_logcat

      Antonio

      25 de febrero de 2013 at 23:51

      • Hola Antonio.
        Te agradezco mucho tu interes y con ello me abres una luz para poder resolver este asunto que tanto y tanto tiempo llevo detras de ello.
        Te ruego tengas paciencia conmigo ya que estoy algo pez en lo referente a sistema operativo Android, por lo que me cuesta mucho mas entender y recopilar datos.
        Voy a estudiar el debug para poder hacerte llegar el logcat que me pides y que puedas estudiarlo.

        Rafael

        26 de febrero de 2013 at 13:23

  9. Hola nuevamente.
    Intentado hacer el log desde arranque me encuentro que conectado al pc con el telefono apagado y lanzando desde pc como terminal (cmd) adb logcat -d > logcat.txt
    no puedo iniciarlo, desconecto el telefono y cuando empieza el arranque lo conecto. Me encuentro que en el lgcat.txt dice que no tengo activado el logger de semaphore para que pueda recoger el log.
    Probare nuevamente una vez activado el logger del kernel para que pueda recoger el log del arranque.
    Es correcto?
    Tengo que desconectar y volver a conectar para el arranque?.
    Saludos

    rafael

    28 de febrero de 2013 at 8:37

    • Me imagino que así será. Pon el log que te salga en pastebin.com y pasa el enlace :-).

      Antonio

      28 de febrero de 2013 at 15:21

      • Hola Antonio, perdona que haya tardaddo tanto es como te dije algo nuevo para mi pero creo que he podido mandarte lo que me pides.
        http://pastebin.com/1zhXmpvc logcat1 telefono apagado y conectado pc .Una vez arrancado termina el logcat sin arrancar

        Este logcat lo he tenido que dividir en 2 porque no me admitia mas de 500 kb

        http://pastebin.com/CTDUrpg5 logcat2-1 telefono iniciado e inmediatamente ejecurtado el logcat terminando este antes de entrar en bucle.
        http://pastebin.com/2ArM4CAg logcat2-2 telefono iniciado e inmediatamente ejecurtado el logcat terminando este antes de entrar en bucle.

        http://pastebin.com/saH1VBRf logcat3 Iniciado una vez entra en bucle de arranque

        Espero tus noticias.

        rafael

        4 de marzo de 2013 at 13:43

      • Mirando el primer enlace, parece que hay algún problema en la línea 4 de tu vold.fstab:

        --------- beginning of /dev/log/system
        I/Vold ( 150): Vold 2.1 (the revenge) firing up
        E/Vold ( 150): Error parsing label
        E/Vold ( 150): Syntax error on config line 4
        E/Vold ( 150): Error reading configuration (Unknown error: -22)... continuing anyways

        ¿Has mirado la documentación de Android al respecto?

        https://android.googlesource.com/platform/docs/source.android.com/+/master/src/tech/storage/index.md#

        bluezio

        4 de marzo de 2013 at 17:16

  10. Bueno leido la documentacion que me comentas, y no siendo un experto al respecto no veo ninguna cosa fuera de lo normal, aunque para tu comprobacion te remito el contenido completo del vold.fstab una vez modificado y el original con el cual no tengo ningun problema en el arranque.
    Gracias por tu interes.
    Vold.fstab modificado y no arranca
    ## Vold 2.0 Generic fstab
    ## – San Mehat (san@android.com)
    ##

    #######################
    ## Regular device mount
    ##
    ## Format: dev_mount
    ## label – Label for the volume
    ## mount_point – Where the volume will be mounted
    ## part – Partition # (1 based), or ‘auto’ for first usable partition.
    ## – List of sysfs paths to source devices
    ######################

    # internal sdcard
    dev_mount emmc /mnt/emmc auto /devices/platform/s3c-sdhci.0/mmc_host/mmc0

    # external sdcard
    dev_mount sdcard /mnt/sdcard 1 /devices/platform/s3c-sdhci.2/mmc_host/mmc2

    ———————————————————————————
    Vold.fstab original y si arranca

    ## Vold 2.0 Generic fstab
    ## – San Mehat (san@android.com)
    ##

    #######################
    ## Regular device mount
    ##
    ## Format: dev_mount
    ## label – Label for the volume
    ## mount_point – Where the volume will be mounted
    ## part – Partition # (1 based), or ‘auto’ for first usable partition.
    ## – List of sysfs paths to source devices
    ######################

    # internal sdcard
    dev_mount sdcard /mnt/sdcard 1 /devices/platform/s3c-sdhci.0/mmc_host/mmc0

    # external sdcard
    dev_mount emmc /mnt/emmc auto /devices/platform/s3c-sdhci.2/mmc_host/mmc2

    rafael

    4 de marzo de 2013 at 19:41

    • Hola Rafael,

      Prueba a cambiar sólo las etiquetas y los puntos de montaje, sin cambiar nada más:

      # internal sdcard
      dev_mount emmc /mnt/emmc 1 /devices/platform/s3c-sdhci.0/mmc_host/mmc0

      # external sdcard
      dev_mount sdcard /mnt/sdcard auto /devices/platform/s3c-sdhci.2/mmc_host/mmc2

      Creo que lo de «1» y «auto» va emparejado con el dispositivo (es el número de partición), así que esa parte no se puede intercambiar. En mi primera versión te dije que cambiáramos los dispositivos, y quizás eso no fue buena idea precisamente por eso.

      Un saludo.
      Antonio

      Antonio

      4 de marzo de 2013 at 19:54

      • Hola Antonio.
        Acabo de realizar el cambio que me dices y ahora mismo tengo el telefono en un bucle de arranque como tantas y tantas veces me ha ocurrido al tocar el vold.fstab.
        Por lo que mi fustracion aumenta cada dia mas.
        Te agradezco mucho tu preocupacion por poder solucionar este dichoso tema, aunque para mi creo que ya es mas bien personal que otra cosa puesto que cambiando de rom creo se solucionaria, pero como te digo es ya esa espinita clavada….
        Muchas gracias a todos por vuestro apoyo. Si veis alguna luz por favor contarmelo. estoy atento a robots y modelos por si sale algo.
        Gracias nuevamente

        rafael

        4 de marzo de 2013 at 22:34


Deja un comentario