Hace unos días compré un Google Pixel 7a para sustituir a mi “viejo” Xiaomi Mi Mix 2S del año 2019, que ya comenzaba a trabarse con algunas aplicaciones.

Aunque la idea inicial era usarlo unos meses con la versión de Android proporcionada por Google, como me conozco y sé que me dará pereza reinstalar el teléfono cuando lo tenga todo bien configurado, voy a instalar directamente GrapheneOS.

GrapheneOS

GrapheneOS es un sistema operativo móvil de código abierto basado en Android, enfocado en la privacidad y seguridad para dispositivos Google Pixel seleccionados.

GrapheneOS se centra en la investigación y desarrollo de tecnología de privacidad y seguridad, incluyendo mejoras sustanciales en el aislamiento de aplicaciones, mitigaciones de explotación y el modelo de permisos.

Algunas de sus características más destacadas son las siguientes:

Característica Descripción
Compatibilidad con apps de Android Permite el uso de aplicaciones de Android manteniendo un enfoque en la privacidad y seguridad
Sandboxed Google Play Posibilidad de instalar servicios de Google en una versión aislada y sandboxed
Navegador Vanadium Un navegador web y WebView basado en Chromium endurecido específicamente para GrapheneOS
Auditor app y servicio de atestiguación Una aplicación basada en hardware para la verificación local y remota de dispositivos
Cámara GrapheneOS Una aplicación de cámara moderna y enfocada en la privacidad/seguridad
Visor de PDF GrapheneOS Un visor de PDF minimalista y enfocado en la seguridad
Backups encriptados Soporte para copias de seguridad encriptadas
Indicador de acceso a datos de ubicación Indicador visual cuando las aplicaciones acceden a los datos de ubicación
Permisos revocables de red y sensores Interruptores de permisos para el acceso a la red y sensores para cada aplicación instalada
Privacidad por defecto Configuraciones predeterminadas que priorizan la privacidad del usuario

Google Pixel

Aunque parezca una contradicción utilizar un teléfono de Google para “aumentar la privacidad”, ésto es debido a que los teléfonos Google Pixel tienen una serie de características de seguridad que no están disponibles en otras teléfonos:

Característica Descripción
Seguridad de hardware sólida Incluye el chip de seguridad Titan M2 y el núcleo de seguridad Tensor para proteger contra ataques físicos y digitales
Soporte de sistema operativo alternativo Permite el uso de claves de firma de usuario y cuenta con Android Verified Boot 2.0 para garantizar la integridad del sistema operativo
Soporte a largo plazo Ofrece actualizaciones de seguridad regulares para mantener el dispositivo protegido a lo largo del tiempo.
Funciones de seguridad de vanguardia Incorpora tecnologías como el etiquetado de memoria para proteger contra vulnerabilidades y ataques
Superficie de ataque estrecha Diseñado con múltiples capas de seguridad para minimizar los riesgos y proteger la privacidad del usuario
Autenticación integrada Funciones de autenticación segura como el desbloqueo facial y el lector de huellas dactilares
Inteligencia en el propio dispositivo Utiliza modelos de aprendizaje automático en el dispositivo para funciones de privacidad y seguridad

A la hora de comprar un teléfono Google Pixel hay que asegurarse de comprar un dispositivo que no esté bloqueado por el operador para funcionar únicamente en su red (es decir, que no sea carrier-locked) y que permita habilitar la opción OEM unlocking para poder instalar otros sistemas operativos (es decir, que no sea bootloader-locked).

Instalación de GrapheneOS

La instalación de GrapheneOS se puede realizar usando la herramienta fastboot desde CLI o, como haré yo, usando el instalador basado en WebUSB que es bastante más sencillo.

Pre-requisitos

Para poder instalar GrapheneOS usando el instalador web es necesario cumplir los siguientes requisitos:

  • 2GB de memoria RAM libre y 32GB de espacio de almacenamiento disponible
  • Teléfono Google Pixel que pueda habilitar el OEM unlocking
  • Cable USB-C para conectarlo al ordenador (en mi caso utilizaré un cable USB-C/USB-A)
  • Sistema operativo del ordenador y navegador completamente actualizados (en mi caso utilizaré Microsoft Edge en Windows 11)
  • Teléfono actualizado a la última versión del firmware

Actualización firmware

Para actualizar el teléfono se realiza una configuración inicial básica del mismo para conectarlo a la red Wi-Fi y descargar la última actualización del sistema disponible (Android 14 a día de hoy):

  • AjustesSistemaActualización del sistema

Una vez actualizado, es recomendable realizar un restablecimiento al estado de fábrica antes de continuar con la instalación de GrapheneOS:

  • AjustesSistemaOpciones de restablecimientoVolver al estado de fábrica (borrar todo)

Nota: Después de restablecer el teléfono, será necesario volver a realizar una configuración inicial básica para volver a conectarlo a la red Wi-Fi y poder realizar los pasos siguientes.

Habilitar desbloqueo de OEM

Para poder habilitar el desbloqueo de OEM (Original Equipment Manufacturer), que permite desbloquear el bootloader del teléfono y cargar un nuevo sistema operativo, es necesario habilitar las opciones para desarrolladores pulsando repetidas veces sobre el número de compilación:

  • AjustesInformación del teléfonoNúmero de compilación

Una vez activadas, se puede acceder a ellas para habilitar el desbloqueo de OEM:

  • AjustesSistemaOpciones para desarrolladoresDesbloqueo de OEMHabilitar

Nota: Para habilitar esta opción es necesario estar conectado a Internet y aceptar la advertencia sobre los posibles peligros de desbloquear el bootloader.

Iniciar en el modo bootloader

Para iniciar el teléfono en la interfaz de bootloader hay que mantener pulsado el botón Volume Down mientras se enciende el teléfono con el botón Power.

Si todo funciona correctamente, al cabo de unos segundos aparecerá una pantalla negra con un triángulo rojo indicando Fastboot Mode y mostrando información sobre el teléfono:

Product revision: lynx MP1.0 B0
Bootloader version: lynx-14.0-10529422
Baseband version: g5300q-230626-230818-b-10679446
Serial number: **************
Secure boot: PRODUCTION
NOS production: yes
DRAM: 8GB Samsung LPDDR5
UFS: 128GB Micron
Device state: locked
Boot slot: b
Enter reason: vol down pressed
UART: disabled

Nota: El estado del dispositivo se mostrará con el texto locked en color verde para indicar que es el valor correcto para un dispositivo.

Conectar el teléfono

En este momento hay que conectar el teléfono al ordenador con el cable USB-C. Si todo va bien, en el “Administrador de Dispositivos” (devmgmt.msc) de Windows debería aparecer un Pixel 7a en la rama Other devices.

A continuación se procede a descargar e instalar el Google USB Driver para este teléfono:

  • Botón derecho en Pixel 7a
  • Seleccionar la opción Update driver
  • Seleccionar la opción Browse my computer for drivers
  • Seleccionar la opción Search for drivers in this location (escoger el directorio donde esté el fichero android_winusb.inf)
  • En la pregunta Would you like to install this device software?
    • Name: Google, Inc.
    • Publisher: Google LLC
  • Desmarcar la opción Always trust software from "Google LCC"?
  • Pulsar el botón Install

Si la instalación del driver se realiza correctamente, el teléfono debería cambiar a Android Bootloader Interface y aparecer en la rama Android Device.

Desbloquear el bootloader

Para desbloquear el bootloader únicamente hay que pulsar el botón azul Unlock bootloader de la página web de GrapheneOS.

Nota: La primera vez que se pulsa uno de estos botones azules, el navegador solicita permiso para conectar con el dispositivo “Pixel 7a” a través de WebUSB.

A continuación, se usan los botones de volúmen para seleccionar la opción Unlock the bootloader y se pulsa el botón Power para confirmar esta acción en el teléfono.

Si todo funciona correctamente, el estado del dispositivo pasará a ser unlocked y se mostrará el texto en color rojo para indicar que es un valor incorrecto para un dispositivo. ¡Lo sabemos!

Descargar la imagen de fábrica

Después se pulsa el botón azul Download release para descargar la imagen de fábrica de GrapheneOS para mi teléfono. Este proceso puede durar varios minutos dependiendo de la velocidad de la conexión a Internet.

Nota: A día de hoy, 8 de diciembre de 2023, se descarga el fichero lynx-factory-2023120701.zip correspondiente a la versión 2023120701 liberada ayer mismo.

“Flashear” la imagen de fábrica

Al pulsar el botón azul Flash release se iniciará la escritura de la imagen de fábrica de GrapheneOS, reemplazando el sistema operativo y borrando todos los datos existentes en el teléfono.

Nota: Durante este proceso, que dura unos minutos, no debemos interactuar con el teléfono o el ordenador por muy nerviosos que estemos ;-)

El “flasheo” de la imagen de fábrica de GrapheneOS se realizará en diferentes fases:

  • Escritura del firmware
  • Reinicio a la interfaz de bootloader
  • Escritura del núcleo del Sistema Operativo
  • Reinicio en el modo fastboot del espacio de usuario
  • Escritura del resto del Sitema Operativo
  • Reinicio a la interfaz bootloader

Bloquear el bootloader

Una vez finalizado el “flasheo” de la imagen, se procede a bloquear de nuevo el bootloader pulsando el botón azul Lock bootloader y confirmando de nuevo la operación en el teléfono.

Si todo funciona correctamente, el estado del dispositivo debería volver a mostrar el texto locked en color verde. Esto significará que lo más “difícil” ya está hecho.

Post-instalación

Boot

Se puede iniciar GrapheneOS seleccionando la opción Start y pulsando el botón Power para reiniciar el teléfono.

Al iniciar GrapheneOS por primera vez, aparece el asistente de configuración que hace las siguientes preguntas:

  • Pulsar el botón Start
  • Seleccionar el idioma: Español (España)
  • Configurar la zona horaria: Amsterdam (GMT+01:00)
  • Revisar que la fecha y la hora sean correctas
  • Saltar la configuración de la Wi-Fi
  • Saltar la configuración de la tarjeta SIM
  • Desactivar los servicios de ubicación para las aplicaciones
  • Omitir la configuración biométrica de la huella digital
  • Omitir la configuración del PIN
  • Omitir la restauración de aplicaciones
  • Pulsar el botón Iniciar

Nota: Se han omitido algunas configuraciones para ir más rápido durante esta toma de contacto con GrapheneOS pero se podrían completar en este momento sin problema.

Deshabilitar desbloqueo de OEM

La primera operación importante a realizar después de haber instalado GrapheneOS es volver a deshabilitar el desbloqueo de OEM desde las opciones para desarrolladores (que también se desactivarán ya que no se utilizará el dispositivo para desarrollo de aplicaciones):

  • AjustesInformación del teléfonoNúmero de compilación (pulsar varias veces)
  • AjustesSistemaOpciones para desarrolladoresDesbloqueo de OEM*Deshabilitar
  • Reiniciar el teléfono
  • AjustesSistemaOpciones para desarrolladoresDeshabilitar
  • Reiniciar el teléfono

Nota: Al cargar un sistema operativo alternativo, el dispositivo muestra un aviso amarillo en el inicio con el ID del sistema operativo alternativo según el SHA256 de la clave pública de inicio verificada.

Uso de GrapheneOS

La guía de uso de GrapheneOS es un buen punto de partida para comenzar a utilizar este sistema operativo (por ejemplo, la navegación mediante gestos).

También es interesante leer la página donde se detallan todas las características de GrapheneOS para sacarle todo el partido al teléfono.

Configuración inicial

Aunque los valores por defecto de GrapheneOS son bastante buenos, no está de más realizar algunos cambios para aumentar la seguridad del teléfono antes de instalar aplicaciones.

Nota: Algunos de estos valores se explican en el vídeo “Make your Phone more private” y la guía “GrapheneOS - Next steps”.

  • Redes e Internet
    • SIMs
      • Elegir la SIM y desactivar 2G
    • (Opcional) Modo Avión
    • DNS privado: Automático → Nombre de host del proveedor de DNS privado: Quad9
  • Aplicaciones
    • (Opcional) Aplicaciones predeterminadas
  • Notificaciones
    • Notificaciones en pantalla de bloqueo: Oculta conversaciones y notificacioens silenciosas → No mostrar ninguna notificación
  • Pantalla
    • Pantalla de bloqueo
      • Activar pantalla si hay notificaciones: Deshabilitar
    • Tiempo de espera de la pantalla: 15 segundos → 1 minuto
    • (Opcional) Increase touch sensitivy
  • Seguridad
    • Auto reboot: 72 horas → 12 horas
    • USB peripherals: Allow new USB peripherals when unlocked → Disallow new USB peripherals
    • Secure app spawning
    • Native code debugging > Block for third-party apps by default: Habilitar
    • Scramble PIN input layout: Habilitar
  • Privacidad
    • (Opcional) Gestor de permisos
    • Allow Sensors permission to apps by default: Deshabilitar
  • Sistema
    • Fecha y hora
      • Establecer hora automáticamente: Deshabilitar
      • Zona horaria
        • Definir automáticamente: Deshabilitar
        • Región: España
        • Zona horaria: Madrid (GMT+01:00)

Tiendas de aplicaciones

GrapheneOS, al contrario que otras versiones de Android, se proporciona con un mínimo de aplicaciones instaladas:

  • Apps (su “tienda” de aplicaciones)
  • Auditor
  • Camera
  • PDF Viewer
  • Vanadium

Desde Apps también se puede instalar Google Play services, la capa software que permite a Google añadir características a Android sin actualizar el sistema operativo y que es necesaria para utilizar la tienda Google Play.

Ahora bien, como no está claro qué tipo de telemetría o tracking realiza Google con esta aplicación, hay quien usa otras tiendas alternativas como F-Droid.

F-Droid es un catálogo instalable de aplicaciones FOSS (software gratuito y de código abierto) para la plataforma Android. El cliente de F-Droid facilita la navegación, la instalación y el seguimiento de las actualizaciones en los dispositivos.

Para instalar algunas aplicaciones que únicamente están en Google Play, se suele instalar Aurora Store desde F-Droid. Aurora Store es un frontend de Google Play que respeta la privacidad y permite descargar los APKs de las aplicaciones que se necesiten.

Nota: Aunque se puede utilizar Aurora Store utilizando una cuenta anónima, es necesario utilizar una cuenta de Google para descargar aplicaciones que se hayan pagado.

Aplicaciones

Algunas de las aplicaciones recomendadas por Naomi Brockwell para ser utilizadas con GrapheneOS son las siguientes:

Aplicación Tienda Descripción
Signal Oficial Mensajería privada y segura con cifrado de extremo a extremo
Organic Maps F-Droid Navegación sin conexión para senderismo y ciclismo con mapas detallados
OSmAnd+ F-Droid Mapas y navegación fuera de línea con énfasis en la privacidad del usuario
DuckDuckGo Privacy Browser F-Droid Navegador que bloquea rastreadores y proporciona búsquedas privadas
Tor Browser Oficial Navegador enfocado en la privacidad que permite el acceso a la red Tor
Try LBRY F-Droid Plataforma de contenido digital abierta y gratuita con énfasis en la privacidad
NewPipe F-Droid Cliente de YouTube ligero y sin anuncios con reproducción en segundo plano
AntennaPod F-Droid Reproductor de podcasts de código abierto y sin anuncios
Mullvad VPN F-Droid VPN que protege la privacidad y permite navegar de forma segura y privada
ProtonVPN F-Droid VPN segura y privada con una política estricta de no registros
Aegis Authenticator F-Droid Autenticador de dos factores seguro y de código abierto
andOTP Google Play Autenticador de dos factores de código abierto con copias de seguridad encriptadas
Unstoppable Wallet F-Droid Cartera de criptomonedas descentralizada y segura
PilferShush Jammer F-Droid Bloqueador de micrófono para proteger contra la escucha no autorizada
UntrackMe F-Droid Transforma URLs de seguimiento en URLs limpias para proteger la privacidad
Scrambled Exif F-Droid Herramienta para eliminar metadatos de imágenes y proteger la privacidad
Shelter F-Droid Crea perfiles de usuario separados para aislar aplicaciones y datos

Referencias

Herramientas