¿Qué es una ROM de Android?

Android es un sistema operativo para teléfonos, tabletas u otros dispositivos (lo podemos encontrar incluso en algunos hornos de cocina).  Como otras sistemas operativos anteriores cumple una serie de funciones básicas y permite trabajar con programas. En ese sentido es lo mismo que hacían Symbian, Windows Phone o iOs. Una diferencia importante frente a estos sistemas es que el código fuente está disponible en mayor o menor medida. ¿De que forma afecta esto a un usuario normal si no quiero compilar el sistema operativo?. Aparentemente esto no es una ventaja práctica respecto a los otros sistemas, como veremos si que nos llega a afectar aunque sea de forma indirecta en forma de ROMs.

Un poco de historia

Seguramente has visto la palabra ROM en cosas relacionadas con Android. Antes de comentar su significado en Android veremos un poco de historia. Cuando empezaba la electrónica programable, los primeros programas que se ponían en los dispositivos se ponían en una memoria que era de solo lectura. De hecho, ROM significa Read Only Memory. Estos primeros dispositivos programables normalmente no requerían una reprogramación y usaban esta memoria ya que era más barata y se programaba en la fabricación. Va pasando el tiempo y el termino ROM empezó a abarcar también a dispositivos que permitían la escritura de la memoria del programa pero para el usuario eran de sólo lectura. Cuando actualizamos un terminal con Android lo que hacemos realmente es escribir en esa memoria protegida y añadir nuevas funciones que no estaban incluidas en el sistema original.

D23128C PROMPROM D23128C en la placa de una Sinclair ZX Spectrum (Autor: Bill Bertram)

El funcionamiento de una ROM

Cuando compramos un terminal viene con una versión concreta de Android. Con suerte podremos instalar varias actualizaciones, pero llegará un momento en el que el fabricante no sacará nuevas versiones y nos quedaremos estancados. Es en este contexto donde aparecen las ROMs de los diferentes “cocineros”. A partir del código fuente que Google publica de Android fabrican (compilan) todo el sistema operativo incluyendo los drivers y los programas básicos. Al tener el código pueden añadir nuevas funciones que están en los nuevos terminales y adaptarlos a terminales antiguos. Tras compilar el sistema operativo generan un archivo ZIP que contiene la ROM.

Como he comentado anteriormente cuando instalamos la ROM se necesita programar una zona especial de la memoria y tenemos que hacerlo en modo recovery (es un modo de recuperación). Después de instalar la ROM reiniciamos el terminal y ya tenemos una nueva versión de Android. ¿Es posible que la ROM se borre al formatear el dispositivo? la respuesta es no. La memoria interna realmente está dividida en dos zonas, una contiene el sistema operativo y no es accesible de forma normal y otra contiene lo que instala el usuario. Esta es la razón de que un terminal que tenga 4 GB de memoria interna no tiene disponible esa cantidad para el usuario, sólo puede usar una parte.

Logo Android

Algunas dudas comunes

Navegando un poco podéis encontrar mucha información de las ROMs que tiene Android y os pueden aparecer algunas dudas:

  • ¿Se puede instalar cualquier ROM en mi terminal?
    • En principio la ROM incluye los drivers para el hardware que lleva cada terminal concreto y no se pueden intercambiar. Si lo hacemos lo más probable es que el dispositivo no funcione y sea necesario instalar una ROM correcta.
  • ¿Una ROM puede mejorar la versión de Android que proporciona el fabricante?
    • Hay que distinguir dos versiones de Android: la versión Vanilla y la que proporcionan los fabricantes. La primera es una versión “limpia” del sistema operativo y no incluye personalizaciones mientras que la segunda si las tiene. Por ejemplo si tenemos un terminal HTC tendremos un estilo en el lanzados de aplicaciones y los widgets, que será diferente si el teléfono es un Samsung. Los cocineros de ROMs utilizan la versión Vanilla por lo que de serie funciona más ligera al quitar todos los extras.
  • ¿El sistema funciona a la misma velocidad con una ROM de Android 2.x y una de 4.x?
    • A medida que Android evoluciona se mejora el rendimiento de la máquina virtual de Java que lleva. En las últimas versiones (sobre todo con la 4.1.2) el rendimiento ha aumentado de forma importante, por lo que la respuesta es no. Las últimas versiones pueden dar mejor rendimiento sobre un mismo dispositivo.
  • ¿Existe una ROM para todos los dispositivos?
    • La existencia de una ROM depende mucho de la fama que tenga un dispositivo. Por ejemplo un teléfono que se haya vendido mucho es posible que tenga una comunidad de usuarios mayores y existan más cocineros que trabajen en ROMs. Los terminales más conocidos si tienen ROMs, los más sencillos es probable que no. Todo depende de cada caso.

Dudas relacionadas con el desarrollo

  • ¿Hay algún lugar en el que me pueda informar más sobre las ROMs?
    • Este lugar es el foro de XDA Developers. Está dividido en dispositivos y puedes ver las ROMs que funcionan con tu terminal.
  • En el artículo aparece el término “cocinero”, ¿por alguna razón?
    • De forma coloquial las personas que compilan una ROM y la preparan para que funcione de forma correcta en un dispositivo reciben el nombre de cocineros al tener que mezclar muchas cosas de forma correcta para que todo funcione de forma correcta.
  • ¿Cualquiera puede compilar su propia ROM?
    • Aunque no es un proceso demasiado complejo si que conviene tener unos conocimientos. Si queremos portar una versión reciente de Android a un dispositivo antiguo hay que hacer cambios en el código. No es tan directo como pulsar un botón y funciona todo a la primera. Aparte, el equipo de compilación tiene que ser potente puesto que la compilación es un proceso costoso en tiempo.
  • ¿Es posible ampliar las preguntas del artículo?
    • Si dejaís la pregunta en lso comentarios puedo añadirla junto con la respuesta al artículo.
0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.