Si te estás planteando cambiar Android por Sailfish OS en tu Sony Xperia, aquí vas a encontrar una guía completa en castellano, pensada para España, con todo lo que necesitas saber antes de lanzarte: móviles compatibles, limitaciones reales, pasos de instalación y hasta cómo compilar tus propias imágenes para los modelos más modernos.
El objetivo es que puedas instalar Sailfish OS en un Xperia X, Xperia 10, 10 IV o 10 V sin sorpresas raras, entendiendo bien qué va a funcionar y qué no, cómo preparar el PC y el teléfono, y qué hacer si algo salga mal. Verás tanto el método «rápido» de flashear imágenes oficiales o preparadas como el enfoque avanzado de ports comunitarios usando el HADK de Jolla.
Modelos Sony Xperia compatibles y madurez de Sailfish OS
La familia Xperia es, a día de hoy, la opción más recomendable si quieres usar Sailfish OS, porque Jolla, como recoge el artículo sobre el regreso del móvil Linux europeo, ha trabajado mano a mano con Sony dentro del programa Open Devices y, además, la comunidad ha creado adaptaciones muy pulidas para varios modelos.
En esta guía vamos a centrarnos en los Xperia X, Xperia 10, Xperia 10 IV y Xperia 10 V, que son los que cuentan con instrucciones oficiales o casi oficiales, imágenes listas para flashear y un estado de soporte documentado por Jolla.
En el caso del Sony Xperia 10 V, existe ya un soporte oficial en forma de versión de prueba incluida en Sailfish OS 5.0.0.71: es funcional para el día a día, pero todavía presenta fallos importantes como la cámara desactivada debido a problemas con drivers de Sony y un bug por el que el porcentaje de batería puede quedarse congelado durante el uso.
Algo parecido ocurre con el Xperia 10 IV: según el estado de adaptación de Jolla, la conectividad general está bastante bien cubierta, ya que funcionan el módem, los datos móviles, el GPS, el Bluetooth, la WiFi, el tethering, los sensores y la parte multimedia, pero siguen pendientes dos piezas clave: la cámara no está operativa y el lector de huellas tampoco.
Si nos vamos a modelos algo más veteranos, como Xperia 10 (base Android 9, familia ganges) y Xperia X (Android 6/7 sobre plataforma loire), la película cambia por completo: aquí el soporte es muy maduro, con telefonía, datos, cámara, sensores y actualizaciones OTA funcionando de forma bastante estable, aunque todavía se citan pequeños detalles por pulir, como el comportamiento de la brújula, algún gesto puntual o consumos de batería mejorables en ciertos builds.
En cualquier caso, Jolla mantiene una sección de Adaptation Status donde se listan, para cada modelo Xperia soportado, los componentes que funcionan bien y los que todavía fallan. Conviene revisarla antes de lanzarse a flashear, especialmente en dispositivos recientes como Xperia 10 IV y 10 V donde la cámara y la huella aún están en el aire.
Requisitos previos generales: bootloader, PC y herramientas
Antes de tocar nada en el móvil, es fundamental asegurarse de que tu Xperia permite desbloquear el bootloader y de que tu ordenador está preparado con Fastboot, ADB y, si vas a compilar, con el entorno de desarrollo necesario.
Comprobar si el bootloader se puede desbloquear
Tanto en los Xperia más modernos como en los antiguos el proceso es parecido: abre la app de teléfono y marca el código de servicio *#*#7378423#*#*. Verás el menú interno de Sony donde tendrás que entrar en Service info > Configuration > Rooting Status.
Si en esa pantalla aparece “Bootloader unlock allowed: Yes”, estás de enhorabuena: el dispositivo acepta desbloqueo y podrás instalar Sailfish OS. Si pone “No” o esa línea ni siquiera aparece, no podrás liberar el bootloader y olvídate de Sailfish OS en ese terminal.
Para los modelos cubiertos por Sailfish X (Xperia X, Xperia 10 y otros de la gama compatible), Sony ofrece además la sección Open Devices en su web de desarrolladores, donde puedes comprobar la compatibilidad, obtener el código de desbloqueo usando el IMEI y confirmar si tu variante concreta entra dentro del programa.
Preparar el ordenador: Fastboot, ADB y entorno de compilación
Para flashear Sailfish lo habitual es usar un PC con GNU/Linux, donde vas a necesitar como mínimo Fastboot y ADB correctamente instalados. En sistemas basados en Debian o Ubuntu, bastan los paquetes estándar:
sudo apt-get install android-tools-fastboot android-tools-adbEn Fedora y otras distribuciones basadas en RPM, se suelen utilizar los paquetes:
sudo dnf install android-toolsSi tu idea va más allá de flashear una imagen oficial y quieres compilar tus propias builds de Sailfish OS para Xperia 10, 10 IV o 10 V, tendrás que montar un entorno de compilación AOSP completo siguiendo las recomendaciones de Google en cuanto a memoria, CPU, sistema de ficheros y demás, y además instalar la Platform SDK y el HADK de Sailfish OS.
En los ports recientes basados en Android 11 y 13, se recomienda reservar entre 200 y 300 GB de espacio en disco para código fuente y productos de compilación, y tener como mínimo unos 50 GB de descarga disponibles, además de una conexión de banda ancha decente.
Desactivar la autosuspensión de USB en Linux para evitar errores
Un problema recurrente al flashear desde algunos Linux modernos con puertos USB 3.0 es que el kernel puede «dormir» el dispositivo en mitad del proceso, dando errores del tipo “Requested download size is more than max allowed” o desconexiones repentinas mientras Fastboot está escribiendo particiones críticas.
Para curarte en salud es buena idea desactivar la autosuspensión de USB antes de empezar con los flashes importantes ejecutando:
echo -1 | sudo tee /sys/module/usbcore/parameters/autosuspendCon este sencillo ajuste evitas que el sistema entre en suspensión selectiva del dispositivo USB en pleno flasheo, lo que podría dejar el teléfono en un estado intermedio y obligarte a repetir toda la operación desde Android.
Preparación del Xperia: modo desarrollador y Fastboot
Confirmada la compatibilidad del móvil y con las herramientas listas en el PC, el siguiente paso es preparar el propio Xperia activando las opciones de desarrollador, el desbloqueo OEM y la depuración USB, además de aprender a entrar en Fastboot y Fastbootd.
Activar opciones de desarrollador, depuración USB y desbloqueo OEM
En todos los Xperia el flujo es similar: abre Ajustes > Información del teléfono y pulsa repetidamente sobre el número de compilación hasta que Android te diga que ya eres desarrollador. Luego vuelve atrás y entra en Opciones de desarrollador (a veces dentro de “Sistema > Opciones de desarrollador”).
Dentro de ese menú debes habilitar al menos dos interruptores clave: Desbloqueo OEM y Depuración USB. Es importante que el móvil tenga conexión a Internet mientras activas el desbloqueo OEM porque Android comprueba con los servidores de Google/Sony si esa acción está permitida para tu dispositivo.
Entrar en modo Fastboot y Fastbootd
Para liberar el bootloader y flashear Sailfish OS necesitarás manejar con soltura el modo Fastboot (y en los modelos A/B modernos también Fastbootd). El método clásico consiste en:
- Apagar el teléfono por completo.
- Conectar el cable USB al ordenador, dejando el extremo del móvil todavía desconectado.
- Mantener pulsada la tecla de subir volumen mientras enchufas el cable al Xperia.
Si lo has hecho bien, el LED de notificaciones del móvil se encenderá en color azul, lo que indica que está en modo Fastboot. También puedes reiniciar desde Android con:
adb reboot bootloaderEn los Xperia recientes, los propios scripts oficiales de Jolla pueden reiniciar automáticamente del Fastboot clásico a Fastbootd, un modo extendido usado para flashear particiones lógicas bajo el esquema de Android moderno.
Desbloqueo del bootloader en Sony Xperia
El desbloqueo del bootloader es un paso crítico: borra absolutamente todos los datos del teléfono y puede afectar a la garantía con Sony. Antes de hacerlo conviene usar Android un rato y verificar que llamadas, cámara, datos móviles, sonido y micrófono funcionan, porque si algo viene defectuoso de fábrica te será más fácil tramitar la garantía con el sistema original.
Conseguir el código de desbloqueo en la web de Sony
Para los modelos del programa Open Devices (como Xperia X y Xperia 10 en sus variantes), tendrás que ir a la página de desarrolladores de Sony, entrar en la sección de desbloqueo y seleccionar tu modelo concreto. Allí se solicita el IMEI del dispositivo y una dirección de correo.
Una vez enviado el formulario, la propia web te mostrará (y/o te enviará por email) un código de desbloqueo único, que más tarde utilizarás con Fastboot. Recuerda que a la hora de ejecutar el comando tendrás que añadir el prefijo 0x delante del código y normalmente invocar Fastboot con el identificador USB de Sony.
Ejecutar el comando de desbloqueo con Fastboot
Con el móvil en Fastboot (LED azul) y un terminal abierto en el directorio de trabajo donde tengas las herramientas, el comando típico para desbloquear un Xperia X o similar desde Linux es:
sudo fastboot -i 0x0fce oem unlock 0xTU_CODIGO_DE_DESBLOQUEOSi todo va bien, verás una respuesta del estilo “OKAY” con el tiempo de ejecución, y el teléfono quedará con el bootloader liberado. A partir de ese momento el dispositivo estará listo para flashear imágenes de Sailfish OS o cualquier otra ROM AOSP compatible, sabiendo siempre que el borrado de datos es total.
Instalar una imagen oficial o preparada de Sailfish OS
Para la mayoría de usuarios es más que suficiente con flashear una imagen oficial de Sailfish X o un ZIP preparado por Jolla, sin meterse en fábricas de código. Es el método recomendado para Xperia X, Xperia 10 y también para los Xperia 10 IV/V cuando Jolla publica los paquetes correspondientes.
Descargar y extraer el ZIP de Sailfish OS
Lo primero es comprar la licencia en la Tienda de Jolla (Jolla Shop) con tu cuenta, lo que te dará acceso al apartado de descargas. Desde ahí podrás bajar la imagen de Sailfish OS que corresponde a tu modelo generando un archivo ZIP cuyo nombre incluye el número de versión, el identificador del dispositivo y un sufijo interno, por ejemplo:
Sailfish_OS-Jolla-4.5.0.18-f5121-1.0.0.9.zippara el Xperia X F5121.Sailfish_OS-Jolla-4.5.0.18-f5122-1.0.0.9.zippara el Xperia X F5122.
Una vez descargado el archivo, cópialo a un directorio de trabajo y descomprímelo. Encontrarás los scripts de flasheo (como
flash.sh), los fragmentos de imagen (sailfish.img001, etc.), ficheros de integridad (por ejemplo md5.lst) y, en algunos casos, herramientas específicas para Windows, Linux y Mac.Integrar los binarios propietarios de Sony (vendor blobs)
Además del paquete Sailfish, necesitas los binarios AOSP que Sony publica para cada familia de dispositivos, ya que Sailfish se apoya en ellos para drivers y componentes cerrados. Estos vienen en ZIPs que contienen un archivo .img, y su nombre indica la base de Android y el nombre en clave de la plataforma.
Por ejemplo, para Xperia X se usa un ZIP del tipo SW_binaries_for_Xperia_AOSP_M_MR1_3.10_v13_loire.zip, mientras que para generaciones recientes basadas en Android 11 o 13 puedes encontrar nombres como SW_binaries_for_Xperia_Android_11_4.19_v9a_lena.img o SW_binaries_for_Xperia_Android_14_5.4_v3a_murray.img y …_zambezi.img según la familia hardware.
El procedimiento es similar en todos los casos: descargas el ZIP de la web de desarrolladores de Sony, lo descomprimes y copias el .img resultante a la misma carpeta donde está la imagen de Sailfish descomprimida. Es crucial que el nombre del archivo coincida con lo que espera el script de flasheo; si no, flash.sh se quejará de que no encuentra el fichero.
Si necesitas usar una versión de binarios distinta a la esperada, tendrás que editar tanto el script flash.sh o flash-config.sh como el archivo de checksums (por ejemplo
md5.lst) para ajustar el nombre y el hash del nuevo .img. Si no se tocan estos detalles, el proceso se abortará al detectar una discrepancia de integridad.Flashear con flash.sh en Linux
Con el bootloader desbloqueado, la imagen de Sailfish OS descomprimida y el .img de Sony en el mismo directorio, el flasheo estándar desde GNU/Linux se reduce a abrir un terminal en esa carpeta y lanzar:
sudo bash ./flash.shEl script te irá guiando por consola, pidiéndote que pongas el Xperia en modo Fastboot cuando lo necesite y reiniciándolo automáticamente entre Fastboot y Fastbootd para ir grabando todas las particiones necesarias (system, vendor, userdata, dtbo, boot_a/boot_b, etc.).
Durante este proceso no debes desconectar el cable ni tocar el teléfono, y es recomendable no usar el PC para nada crítico hasta que veas un mensaje del tipo «Flashing completed. Remove the USB cable and boot up the device by pressing power key» o similar.
Si topas con errores como “Requested download size is more than max allowed”, en algunos equipos ayuda forzar un tamaño de bloque menor con Fastboot usando la opción
-S, por ejemplo -S 512K. Esto requiere editar el script flash.sh o repetir manualmente los comandos problemáticos con esa bandera.Primer arranque de Sailfish OS y activación de la licencia
Una vez el script confirma que ha terminado y desconectas el cable, basta con mantener pulsado el botón de encendido para que el Xperia arranque. Primero verás el aviso de bootloader desbloqueado, después el logotipo de Sony y, finalmente, la animación de arranque de Sailfish OS.
En el primer inicio se ejecuta el asistente de bienvenida (Startup Wizard), donde deberás elegir el idioma, aceptar los términos de uso, definir el código de bloqueo del dispositivo, configurar fecha y hora, conectarte a una red y iniciar sesión con tu cuenta de Jolla.
Ese login es el que activa los componentes licenciados: Android AppSupport, textos predictivos en español, compatibilidad con Microsoft Exchange y acceso completo a Jolla Store. Durante este asistente también podrás instalar Aptoide como tienda de apps Android, aunque muchos usuarios prefieren alternativas como F-Droid, Aurora Store o UpToDown descargadas e instaladas aparte.
Compilar tu propia imagen de Sailfish OS (HADK y ports comunitarios)
Si te va la marcha y prefieres construir imágenes a medida, Jolla ofrece el HADK (Hardware Adaptation Development Kit), un manual bastante extenso que explica cómo levantar un entorno AOSP y generar una imagen de Sailfish OS para distintos dispositivos del programa Sony Open Devices.
Descargar el HADK y requisitos del host
El primer paso es conseguir la versión más reciente del documento HADK y leerse con calma el disclaimer inicial y los capítulos 1 y 2, donde se explica el flujo de trabajo, el uso de la Platform SDK y los conceptos básicos: droid-hal, droid-config, droid-system, etc.
Aunque el propio documento marca unos mínimos, en la práctica para dispositivos modernos (sobre todo los basados en Android 13 como Xperia 10 IV y 10 V) se recomienda ir sobrado de recursos, con hasta 300 GB de espacio en disco y buena RAM, ya que la sincronización de fuentes AOSP y las compilaciones de kernel y frameworks son bastante pesadas.
También tendrás que instalar la Platform SDK de Sailfish OS y definir variables de entorno en
~/.hadk.env para indicar fabricante, dispositivo, familia hardware y versión base de Android sobre la que se construye la adaptación.Variables de entorno para Xperia 10 IV y 10 V (AOSP 13)
En los Xperia 10 IV y 10 V la base es AOSP 13 y se usan ramas específicas de mer-hybris. Un ejemplo de configuración del entorno para Xperia 10 IV (modelo comercial XQ-CC54, identificador interno pdx225, familia murray) podría ser:
Código:
export VENDOR=sony
export DEVICE=xqcc54
export HABUILD_DEVICE=pdx225
export FAMILY=murray
export ANDROID_VERSION_MAJOR=13
export HAVERSION="sony-aosp-"$ANDROID_VERSION_MAJOR
En el Xperia 10 V el patrón es similar, cambiando DEVICE y HABUILD_DEVICE por los valores correctos para la familia zambezi (por ejemplo, pdx235). A partir de aquí el HADK aconseja seguir los capítulos 3 y 4 para configurar el entorno AOSP y saltar el capítulo 5, sustituyéndolo por la secuencia de scripts específicos que clonan los repositorios correctos y aplican los parches de mer-hybris.
Sincronizar AOSP, aplicar parches y compilar hybris-hal
Con el entorno listo, tendrás que asegurarte de tener el comando
repo instalado para gestionar los manifests de AOSP. El flujo simplificado incluye pasos como:- Clonar el repositorio droid-hal-sony-<familia> con todos sus submódulos de forma recursiva.
- Inicializar
repoapuntando al manifest de mer-hybris para la rama $HAVERSION y sincronizar todo conrepo sync. - Clonar droid-src-sony y aplicar los parches propios mediante scripts tipo
droid-src/apply-patches.sh --mb. - Ejecutar
./setup-sources.sh --mbpara preparar el árbol de fuentes de compilación. - Cargar
build/envsetup.sh, activar ccache y seleccionar el objetivo conlunch aosp_$DEVICE-user.
En las plataformas modernas de Sony con kernel común 5.4 suele ser necesario compilar el kernel usando scripts tipo
build-kernels-clang.sh y asegurarse de que la imagen dtbo resultante se copia a la carpeta de producto adecuada. Después se clona droidmedia y se compilan hybris-hal y droidmedia con un make -j$(nproc --all), lo que puede llevar bastante tiempo según la máquina.Generar paquetes droid-hal, middleware y syspart
Una vez listas las imágenes de arranque (hybris-boot, recovery) y los módulos base, pasas a la Platform SDK y sigues el capítulo 6 del HADK, donde se explica cómo integrar droid-hal y generar RPMs usando el script
rpm/dhd/helpers/build_packages.sh con diferentes banderas como –droid-hal, –gg (gráficos) o –mw (middleware).En paralelo, se construyen los paquetes de droid-system y, en algunos casos, droid-vendor, montando las imágenes
system.img y vendor.img generadas por AOSP en directorios temporales y usando scripts de copia (por ejemplo copy_tree.sh, copy_vendor.sh) que rellenan las plantillas RPM (droid-system-sony-template, droid-vendor-sony-template).Es relativamente normal encontrarse conflictos menores de parches en archivos como init.wod.rc o ld.config.28/29.txt, que el propio HADK indica que se pueden ignorar o resolver de forma trivial, ya que afectan a ajustes finos. Lo importante es acabar con los RPMs clave: droid-hal, droid-hal-img-boot, droid-hal-version, droid-system y compañía.
Crear la imagen flashable con MIC
Cuando la parte de hardware y middleware está resuelta, toca generar la imagen final instalable. Desde la Platform SDK se instalan herramientas como lvm2, atruncate, pigz y android-tools y se vuelve a ejecutar
build_packages.sh --mic con las variables RELEASE (versión de Sailfish) y EXTRA_NAME (sufijo de build) definidas.Esto produce una imagen flashable en ZIP que suele quedar en un directorio del estilo:
$ANDROID_ROOT/SailfishOS-release-<version>-<device>-my1/Dentro encontrarás un archivo parecido a
SailfishOS--my1-<version>-<device>-<hw-version>.zip que luego puedes flashear siguiendo las mismas guías oficiales que Jolla publica para los Xperia 10 IV/V y demás modelos soportados.Caso especial: Xperia 10 (Android 9) y Xperia X
Aunque la lógica general del HADK se mantiene, los dispositivos basados en Android 9 (Xperia 10, familia ganges) y en Android 6/7 (Xperia X, plataforma loire) tienen matices importantes: cambian las ramas de AOSP, los manifests, los paquetes plantilla y algunos detalles del vendor.
Xperia 10: familia ganges sobre Android 9 (pie)
El Xperia 10 se apoya en la familia de hardware ganges y en una base AOSP 9 (pie). Un grupo típico de variables de entorno podría ser:
Código:
export VENDOR=sony
export DEVICE=i4113
export HABUILD_DEVICE=kirin
export FAMILY=ganges
export ANDROID_FLAVOUR=pie
export HAVERSION="sony-"$FAMILY"-aosp-"$ANDROID_FLAVOUR
En estos dispositivos se clonan proyectos como droid-hal-sony-ganges-pie y droid-config correspondientes, se ajustan los patterns para incluir patterns-sailfish-consumer-generic y sailfish-porter-tools, y se crean RPMs usando plantillas específicas como droid-system-sony-pie-template y droid-vendor-sony-pie-template.
El resultado final es de nuevo un ZIP flashable que se instala con las instrucciones oficiales de Jolla para Xperia 10, teniendo en cuenta pequeños detalles como sustituir
@DEVICES@ por el valor correcto en mayúsculas (por ejemplo I4113) y recalcular checksums si tocas los scripts.Xperia X: soporte veterano y muy pulido
El Xperia X (F5121/F5122) fue el primer gran objetivo de Sailfish X y tiene una adaptación muy pulida. La compilación parte de ramas AOSP acordes a las versiones de firmware soportadas por Sony para este modelo, con builds 6.0.1 o 7.x identificadas por números de versión como 34.3.A.x.yyy o 34.4.A.x.yyy.
Es muy importante asegurarse de que el build number de Android es uno de esos antes de desbloquear el bootloader y flashear Sailfish. Si el terminal ha recibido una actualización superior (por ejemplo 34.5.A.q.zzz o 35.x.A.q.zzz), conviene hacer downgrade usando la herramienta Emma en Windows para volver a un build soportado.
La guía oficial de Jolla para instalar Sailfish X en Xperia X usando Linux detalla paso a paso: comprobar el bootloader, instalar Fastboot, descargar y extraer el ZIP adecuado, obtener los binarios SW_binaries_for_Xperia_AOSP_M_MR1_3.10_v13_loire.img, copiarlo al mismo directorio que la imagen y lanzar
sudo bash ./flash.sh con el móvil en modo Fastboot.En este dispositivo también se habla de un sistema de syspart separado y RPMs específicos para droid-system-f5121/f5122, pero a efectos prácticos de usuario final, basta con seguir la guía oficial y asegurarse de usar el build de Android y la combinación de binarios recomendada por Jolla.
Estado de soporte, problemas típicos y cómo pedir ayuda
Jolla mantiene documentación actualizada sobre qué modelos están oficialmente soportados, qué dispositivos han dejado de recibir soporte y cuáles tienen ports comunitarios sin respaldo oficial. Es importante distinguir entre las imágenes con licencia disponibles en Jolla Shop y los ports de la comunidad, que puedes encontrar en la tabla de Community Hardware Adaptations.
Si durante la instalación o compilación te topas con errores raros (fallos de dependencias, mensajes de
build_packages.sh que hablan de suites de test inexistentes, errores de Fastboot por el USB o problemas de red), una referencia útil es el canal #sailfishos-porters en la red OFTC, donde desarrolladores y usuarios avanzados comparten soluciones a estos casos.Jolla también insiste en que cualquier mejora que se haga sobre la base AOSP de Sony repercute directamente en la calidad de Sailfish OS, de ahí que remitan a la guía oficial de Sony para compilar AOSP 13 en dispositivos Open Devices y ofrezcan scripts específicos para flashear AOSP completo con fastboot flashall, desactivando verity y verificaciones en vbmeta y vbmeta_system cuando es necesario.
Si en algún momento necesitas volver atrás porque la conectividad móvil se ha quedado tocada o algo no va fino, la recomendación es revertir a Android usando Emma, comprobar de nuevo que el móvil funciona bien con el sistema original (llamadas, datos, cámara, GPS, WiFi, audio, táctil), y solo entonces reinstalar la última imagen de Sailfish OS siguiendo las instrucciones oficiales para tu modelo.
En definitiva, si entiendes bien el estado de soporte de tu Xperia, respetas las versiones de Android de partida, cuidas el tema del bootloader y sigues los pasos oficiales para integrar los binarios de Sony y flashear las imágenes, instalar Sailfish OS en un Sony Xperia es bastante más accesible de lo que parece al principio, tanto si escoges la ruta sencilla con imágenes oficiales como si te animas a compilar tus propias builds con el HADK y contribuir a los ports comunitarios. Comparte la guía y otras personas conocerán del tema.
Continúar leyendo...