He decidido hacer esta guía porque recientemente conseguí instalar GrapheneOS en un móvil Pixel 8a. GrapheneOS es un sistema operativo de código abierto. Nació como proyecto sin ánimo de lucro en 2019 de la mano de Daniel Micay. GrapheneOS está basado en Android y desde hace años está especialmente enfocado hacia los dispositivos Pixel. Al estar basado en Android, su manejo es intuitivo y similar a la plataforma original. No obstante, este sistema está enfocado a la privacidad y por eso mismo, prescinde de los servicios de google, logrando exorcizar la típica suite que Android trae por defecto y que nos obliga a depender de la Store oficial. Las mejoras de seguridad también se han podido implementar a través de la eliminación de servicios innecesarios, el uso de cifrado, cortafuegos y el aislamiento de procesos dentro del sistema.
Requisitos generales para esta guía:
En mi caso particular, he hecho uso de un Pixel 8a y un sistema Debian GNU/Linux con acceso a Internet. El cable empleado ha sido un cable adaptador de USB A (3.0) a USB C pero si el ordenador dispone ya de una salida directa USB C, también se puede hacer uso de esta conexión con el cable que viene de serie. Esta entrada sigue los pasos de la guía oficial que podemos encontrar en la web. He decidido hacer uso de la modalidad basada en línea de comandos. Para realizar la instalación desde el propio navegador o desde otro sistema operativo (Windows/Mac), recomiendo visitar la web oficial.
Para preparar el dispositivo tenemos que iniciar el móvil por primera vez. Desgraciadamente, esto nos obliga a entrar dentro de Android y saltarnos el mayor número de configuraciones posibles para acceder al escritorio y al menú. Podemos prescindir del código PIN, de la SIM y de conectar con los servicios de google, pero es más que probable que tengamos que acceder a Internet para poder desbloquear el OEM. Esto, supongo que es por políticas de seguridad ante casos de robo. En este caso opté por crear una wifi temporal para invitados para evitar tener que insertar la contraseña del wifi principal.
Para este primer paso, una vez tengamos el móvil conectado a Internet, vamos a Ajustes/ Información del teléfono. Debemos pinchar varias veces seguidas donde pone «Número de compilación». Tras unas siete pulsaciones nos aparecerá un mensaje. Ahora vamos a Ajustes/Sistemas y ahí veremos un nuevo menú que ahora ha sido desbloqueado denominado «Opciones de desarrolador». Dos son las cosas que tenemos que habilitar dentro de ese nuevo menú.
– Desbloqueo de OEM. Este opción nos permite desbloquear el bootloader (el gestor de arranque) para realizar cambios en el sistema operativo de fábrica. Por defecto está bloqueado para que nadie pueda realizar modificaciones al encender el dispositivo.
– Depuración por USB. Esta opción activa el modo de depuración cuando el móvil se conecta por USB a la computadora. Es necesario para poder realizar la instalación desde el ordenador.
Tras activar estas dos opciones. Reiniciamos el dispositivo. Cuando se apage la pantalla hay que mantener presionado el botón de bajar volumen hasta que la pantalla se encienda. En lugar de Android, lo que nos aparecerá es el cargador de arranque.
El segundo paso consiste en preparar el ordenador para realizar la instalación, esto es, instalar algunos paquetes, descargar archivos y realizar comprobaciones de seguridad. En la instalación de ROMs personalizadas suelen recomendar no hacer uso de las aplicaciones de los repositorios porque pueden estar algo desactualizadas. No obstante, en mi caso, haciendo uso de los repositorios estables de Debian 12, no he tenido ningún problema. Algunos paquetes serán necesarios como curl, openssh-client y android-sdk-platform-tools-common. Es probable que los dos primeros ya estén instalados pero el último es una herramienta especial para interactuar con dispositivos android y usar adb y fastboot. Yo los instalé siguiendo el orden que marca la guía. En el caso de que ya estén instalados no habrá problema, la terminal simplemente nos dirá que el paquete se encuentra instalado en la última versión.
NOTA: Estos programas están disponibles en los repositorios oficiales de Debian 12 Booksworm (Stable versión); en otras distros pueden no estar disponibles o tener otro nombre. La propia web ofrece los comandos de instalación para Arch Linux.
Los pasos aquí están escritos por orden para evitar mayores discrepancias entre la guía oficial en inglés y la entrada en este blog. Si se tiene experiencia en este tipo de operaciones, se puede optar por instalar primero los paquetes, realizar las verificaciones y luego cargar el script.
Paso 1. Preparar una carpeta y abrir una terminal.
Crear una carpeta para agrupar ahí los archivos. Puede ser por ejemplo en el directorio home. En mi caso, una carpeta bautizada como Grapho dentro de Descargas, es decir, en /home/user/Descargas/Grapho. Entramos dentro de la carpeta y abrimos ahí una terminal.
Paso 2. Primeros comandos.
1. Primer comando. Esto requiere, como se puede observar, que el usuario tenga privilegios de administrador, que se encuentre dentro del grupo sudoers. El comando instala el paquete libarchive-tools, luego descarga de la página de google el platform-tools comprimido, lo verifica y lo descomprime en la propia carpeta.
sudo apt install libarchive-tools
curl -O https://dl.google.com/android/repository/platform-tools_r35.0.0-linux.zip
echo '62fc977c1b7622ef8dbd6fe1312987d9b139aa8a0b06e88573c1b60129399d49 platform-tools_r35.0.0-linux.zip' | sha256sum -c
bsdtar xvf platform-tools_r35.0.0-linux.zip
2. Segundo comando. Para simplificar, esto lo que hace es crear una asociación entre el Path genérico del script y la dirección exacta de los archivos dentro del directorio nuevo.
export PATH="$PWD/platform-tools:$PATH"
3. Tercer comando. Aquí nos devolverá un mensaje similar a «Installed as /home/username/platform-tools/fastboot». Nos serve para verificar que el fastboot está disponible en el directorio.
fastboot --version
4. Cuarto comando. Esta orden instala el paquete SDK (Sofware Development Kit) de Android.
sudo apt install android-sdk-platform-tools-common
5. Quinto comando. La web recomienda parar temporalmente este servicio hasta que reiniciemos el sistema. La recomendación se fundamenta en la aparición de algunos bugs que provocan que la conexión USB se interrumpa ya que el servicio actúa de manera automatizada, buscando nuevos dispositivos conectados.
sudo systemctl stop fwupd.service
6. Sexto comando. El siguiente comando lo que hará es desbloquear el cargador de arranque en el móvil. Cuando lancemos la orden, tendremos que confirmar en el dispositivo Pixel.
fastboot flashing unlock
6. Séptimo comando. Esto nos instala el paquete openssh-client (en el caso de no estar instalado).
sudo apt install openssh-client
El siguiente paso es obtener la imagen de GrapheneOS de la web oficial. En este apartado es importante recordar que el móvil debe estar conectado por USB al ordenador y que en la pantalla nos debe indicar que efectivamente estamos dentro del cargador de arranque.
La web nos recomienda descargar la llave pública de las imágenes con el siguiente comando:
curl -O https://releases.grapheneos.org/allowed_signers
El contenido de éste debe ser:
contact@grapheneos.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIUg/m5CoP83b0rfSCzYSVA4cw4ir49io5GPoxbgxdJE
También nos recomienda verificar la clave pública. En este paso la guía de referencia hace uso en el segundo comando de signifiy, pero yo he preferido saltarme el paso e ir directamente a verificar las imágenes de fábrica.
curl -O https://releases.grapheneos.org/allowed_signers.sig
signify -V -m allowed_signers -x allowed_signers.sig -p factory.pub
Los comandos prototipo son los siguientes. Podemos descargar las imágenes directamente desde la web. No obstante, aunque usemos la terminal, debemos entrar en ella para comprobar las variables DEVICE_NAME y VERSION. El primer comando descarga un archivo comprimido que contiene la imagen del sistema operativo; el segundo comando descarga la firma y el tercero, realiza la verificación.
curl -O https://releases.grapheneos.org/DEVICE_NAME-factory-VERSION.zip
curl -O https://releases.grapheneos.org/DEVICE_NAME-factory-VERSION.zip.sig
ssh-keygen -Y verify -f allowed_signers -I contact@grapheneos.org -n "factory images" -s DEVICE_NAME-factory-VERSION.zip.sig < DEVICE_NAME-factory-VERSION.zip
En este caso, hay que tener en cuenta las variables DEVICE_NAME y VERSION. En mi caso, siguiendo la información de la web, los comandos precisos han sido los siguientes. Si todo ha ido bien saldrá un mensaje tal que Good «factory images» signature for contact@grapheneos.org with ED25519 key SHA256:AhgHif0mei+9aNyKLfMZBh2yptHdw/aN7Tlh/j2eFwM.
curl -O https://releases.grapheneos.org/akita-factory-2024051600.zip
curl -O https://releases.grapheneos.org/akita-factory-2024051600.zip.sig
ssh-keygen -Y verify -f allowed_signers -I contact@grapheneos.org -n "factory images" -s akita-factory-2024051600.zip.sig < akita-factory-2024051600.zip
Una vez comprobado el archivo, toca descomprimirlo y ejecutarlo con los siguientes comandos.
Primer comando. De nuevo, comparto la versión prototípica y la versión que en mi caso he tenido que escoger de acuerdo al modelo y la versión de la imagen.
bsdtar xvf DEVICE_NAME-factory-VERSION.zip
bsdtar xvf akita-factory-2024051600.zip
Segundo comando. Sirve para iniciar la instalación. La orden llama a un script que hay dentro de la carpeta descargada. Éste hará todo el proceso por nosotros. Mientras tanto, en la terminal se irán sucediendo toda una serie de comandos y procesos. El móvil se irá reiniciando varias veces durante el proceso así que no debemos preocuparnos por ello.
cd ./akita-factory-2024051600
./flash-all.sh
Tras la instalación, son importante tres cuestiones. La primera es bloquear de nuevo el cargador de arranque. Recordemos que al principio lo habíamos desbloqueado. Para ello, con el móvil todavía encendido y conectado, ponemos en la terminal lo siguiente. Tendremos que usar el móvil para confirmar el bloqueo.
fastboot flashing lock
El siguiente paso es verificar el hash del boot. Cuando reiniciemos el móvil, nos saldrá una advertencia al principio, diciéndonos algo así como que se está ejecutando un sistema que no es el de fábrica. Debajo aparecerá un código alfanumérico como el siguiente.
096b8bd6d44527a24ac1564b308839f67e78202185cbff9cfdcb10e63250bc5e
En la web podemos comprobar cuál debería mostrarnos. Esto nos permite verificar si algo o alguien ha realizado alguna modificación.Este nos seguirá apareciendo así que no debemos preocuparnos. Siempre podremos realizar la verificación. También hay otras apps y herramientas que posteriormente nos permiten analizar la integridad del sistema.
El último paso es cargar el dispositivo como lo haríamos normalmente. Esta vez, si todo ha ido bien, aparecerá el logo de GrapheneOS en lugar del de Android. Al entrar deberemos realizar las configuraciones iniciales del dispositivo. Es importante aquí también acordarnos de volver a cargar las opciones del desarrollador para volver a bloquear el OEM. La depuración de USB aparecerá como desactivada por lo que no deberemos hacer nada salvo reiniciar el dispositivo, comprobar que todo cargue bien y opcionalmente, si es el caso, desactivar las opciones del desarrollador.
Tras la instalación, sólo queda entrar en GrapheneOS y disfrutar de la privacidad. Aunque no tengamos la APP Store instalada, siempre podremos hacer uso de archivos apk verificados y descargados desde las webs oficiales. Una recomendación personal es echarle un vistazo a los repositorios F-droid. En la web principal podremos descargar el archivo apk e instalarlo tras aceptar los permisos que nos pide el dispositivo. Desde la terminal del ordenador podemos descargar también el archivo, la clave pública y la firma OpenPGP (archivo asc). Si necesitamos apps de Google Play pero no queremos hacer uso de este servicio, una alternativa viable es Aurora Store, un cliente del repositorio oficial que nos permite descargar apps y actualizarlas desde una sesión anónima. Desde F-droid podremos descargarnos este cliente.
Por defecto, el sistema trae su propia app para la galería, los archivos, un navegador privado (Vanadium) basado en Chrome y algunas utilidades básicas. Podemos complementar estas herramientas navegando en el repositorio de F-droid para obtener todo tipo de recursos. Recomiendo no instalar aquellas aplicaciones que no se vayan a usar habitualmente y en el caso de hacer uso de servicios con nula garantía de privacidad (entiéndase Youtube), usar algún front-end como NewPipe.
En un futuro seguramente haga una recopilación de apps pero en esta entrada mi objetivo es adelantar sólo algunas herramientas que puedo considerar necesarias para el uso habitual. Como alternativa al Google Maps tenemos dos opciones: OsmAnd y Organic Maps. Para el tiempo atmosférico suelo emplear Forecastie aunque una opción muy completa es Suntimes. Muchos servicios de correo profesionales tienen sus propias apps de correo, pero en este caso contamos con una app muy versátil, K-9 Mail que permite acceder a varias cuentas de correo simultáneamente. Unas aplicaciones para reproducir videos pueden ser VLC y mpv-android; también hay galerías alternativas a la que trae el sistema como Fossify Gallery y Aves Libre, reproductores de música como Fossify Music Player y otros navegadores como Fennec F-Droid aunque el que trae por defecto es más que suficiente.
Richard Sandler (1946), Subway Noir, NYC, 1986 Siguiendo el escurridizo sendero que conduce al mundo… Leer más
Ana María Bustamante, El adiós es un tejido de flores y venas, 2017 Un sistema… Leer más
Under The Waves es un videojuego de aventura narrativa desarrollado por Parallel Studio y editado… Leer más
Jakub Hadrava, St George's Church in the Czech village of Lukova (mod. from Bousure) «Uno… Leer más
Lacrimosa es un grupo musical fundado en Suiza en 1990 por Tilo Wolff. El grupo,… Leer más
Trinity College, Dublin, Ireland Esta guía MLA es una introducción general realizada para una consulta… Leer más
Ver comentarios
Es un trabajo digno de elogio. No uso la terminal pero me parece que sería extraordinario que hubieran personas que acometieran ese encargo de llevarles un Pixel (6 ó 7 u 8 ) y que se le instale Graphene OS. Por mi parte, busco alguien que quisiera intentarlo porque sabe, y así poder acceder a ese sistema operativo. (Si pudieramos contactar sería un motivo de alegria)
Esta guía está indicada para realizar la instalación por terminal desde un dispositivo GNU/Linux. No obstante, no es el método más rápido y tampoco es el más sencillo. He escogido éste debido a que sirve para explicar más detalladamente cada uno de los pasos de la instalación. En la propia web usted puede encontrar una guía que le permite instalar GraphaneOS sin salir del navegador (WebUSB-installer); le animo a echarle un vistazo, es más fácil de lo que parece. Desde la distancia no puedo ayudarle en la instalación pero también le digo que la instalación vía web no tiene pérdida. También hay videotutoriales en youtube que son extremadamente detallados y que se hacen eco de los comentarios de los usuarios.
Desconozco si hay una manera de conseguir GraphaneOS ya instalado en el dispositivo. Como alternativa le puedo hacer mención de CalyxOS y /e/OS. El primero no lo he probado pero también es una rom enfocada en la privacidad. La segunda, /e/OS, es una opción a tener en cuenta. Para algunos usuarios es algo intermedio en temas de seguridad u opinan que simplemente es un Android degoogleado. Si se la menciono es porque sé que algunas empresas como Murena venden sus dispositivos con esta rom personalizada.