Cómo crear una ROM Personalizada a partir de un Proyecto de Código Abierto de Android

Si está familiarizado con el enraizamiento de su teléfono Android o la descarga de ROM personalizadas, como el popular CyanogenMod o su sucesor Lineage OS, es posible que se haya preguntado: ¿cómo se crean estas ROM? ¿Cuánto trabajo se necesita exactamente para desarrollar una ROM personalizada?

Esta guía le guiará a través de los conceptos básicos para desarrollar su propia ROM de Android personalizada. Debe tenerse en cuenta que esta es una empresa masiva: si no tiene experiencia en codificación o en jugar en terminales Linux, es posible que desee obtener algunos conocimientos antes de sumergirse en este extremo profundo. Pero si tienes al menos una idea básica de esas cosas, trataré de explicarlas de la manera más sencilla posible, para que puedas seguirlas.

Básicamente lo que estamos haciendo es descargar el código fuente sin procesar de Android (AOSP) y modificarlo a nuestro gusto. Debido a que hay tantas fuentes para elegir para diferentes dispositivos, esta guía simplemente hará referencia a la fuente maestra conocida como AOSP (Proyecto de Código abierto de Android).

Ahora lo que pasa con el AOSP es que el código fuente puro no incluye propiedades de hardware específicas del dispositivo. En términos sencillos, el hardware, como la cámara y la GPU, no funcionará «fuera de la caja» al desarrollar con el AOSP. De hecho, su dispositivo ni siquiera arrancará sin estos binarios de hardware.

Si está desarrollando para un teléfono con la marca Google (Pixel, Nexus, etc.), puede encontrar los binarios de hardware directamente desde Google, y esta guía lo guiará a través de la obtención y construcción de ellos en su ROM. Sin embargo, si está desarrollando una ROM para un teléfono de marca (Sony, Samsung, etc.) bless bueno, bendito sea su corazón, porque le espera un paseo.

Algunos fabricantes tienen sus propios proyectos de código abierto o herramientas de desarrollo de versiones para futuros desarrolladores, mientras que otros fabricantes mantienen una tapa cerrada sobre sus códigos propietarios. Aquí hay una breve lista de proyectos de código abierto de los fabricantes más populares:

Samsung Open Source Release Center
Sony Developer World
Lenovo Support
Huawei Open Source Release Center
Motorola Developers

Con eso fuera del camino, continuemos asumiendo que estamos construyendo una ROM para la experiencia Android más básica, vainilla, para un dispositivo Google Pixel. Con este conocimiento en su haber, podrá diversificarse por su cuenta y comenzar a desarrollar versiones personalizadas de ROMs de fabricantes específicos.

Requisitos para esta Guía:

  • Proyecto de Código abierto de Android
  • Teléfono Pixel XL o un emulador de Android para Linux
  • Sistema Operativo Linux de 64 bits: Ubuntu o Linux Mint son las distribuciones más fáciles de usar para los novatos, mientras que BBQLinux se desarrolló específicamente pensando en los desarrolladores de Android.
  • Python
  • Una computadora robusta (¡compilar código requiere mucha memoria y espacio!)

Configuración de su entorno de compilación

Comencemos por configurar el emulador de Android en su máquina Linux. Ya sea que tenga o no un dispositivo Google Pixel XL, siempre es más seguro probar su nueva ROM en un emulador de Android antes de parpadearla en su dispositivo. Mi favorito personal es Genymotion, así que te guiaré a través de la instalación de ese emulador en particular. Sin embargo, también puede consultar esta guía «Los mejores emuladores de Android», ya que la mayoría de ellos también tienen compatibilidad con Linux.

Diríjase al sitio web de Genymotion, registre una cuenta, verifíquela por correo electrónico y descargue el ejecutable en su escritorio Linux.

Ahora abra un terminal Linux y escriba:

Chmod + x genymotion-xxxxx.bin (reemplace xxxx con el número de versión en el nombre del archivo)
./ genymotion-xxxxxx.bin

Pulse Y para crear el directorio Genymotion. Ahora escriba el terminal:

cd genymotion & &./ genymotion

Ahora le pedirá que inicie el proceso de instalación, así que siga haciendo clic en Siguiente hasta que llegue a la ventana Agregar dispositivos virtuales. Seleccione «Pixel XL» en la opción Modelo de dispositivo y, a continuación, complete la instalación. Puede probar el dispositivo virtual si lo desea, básicamente será como tener un teléfono Pixel XL en su escritorio.

Ahora configuremos Python:

$ apt-get install python

Ahora necesitamos configurar el Kit de desarrollo de Java en su máquina Linux. Abra el terminal Linux y escriba los siguientes comandos:

Now sudo apt-get update
Now sudo apt-get install openjdk-8-jdk

Ahora tendrá que configurar el sistema Linux para permitir el acceso a dispositivos USB. Ejecute el siguiente código en la terminal Linux:

Esto descargará el 51-android requerido.archivo txt que permite el acceso al dispositivo USB mencionado anteriormente. Abre el .archivo txt y modifíquelo para incluir su nombre de usuario de Linux, luego coloque el .archivo txt en la siguiente ubicación: (como usuario root). Ahora conecta tu dispositivo al ordenador a través de USB para que las nuevas reglas entren en vigor automáticamente.

Descargar el código Fuente de Android

El AOSP está alojado en Git, por lo que vamos a usar una herramienta llamada Repo para comunicarnos con Git.

Primero necesitamos configurar una carpeta / bin en su directorio personal. Escriba los siguientes comandos en el terminal Linux:

$ mkdir ~ / bin
PATH PATH = ~ / bin:$PATH

Ahora descargaremos la herramienta Repo, por lo que escribiremos en el terminal Linux:

cur curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
ch chmod a+x ~/bin/repo

Después de instalar Repo, ahora debemos crear un directorio vacío para guardar sus archivos de trabajo. Por lo tanto, escriba esto en el terminal Linux:

Now mkdir DIRECTORIO DE TRABAJO
cd directorio DE TRABAJO DE cd

Ahora configuraremos Git con su nombre y dirección de correo electrónico: use una dirección de Gmail que verifique regularmente, de lo contrario no podrá usar la herramienta de revisión de código de Gerrit.

git git config-usuario global.nombre «Tu nombre»
git git config-usuario global.correo electrónico [email protected]

Ahora le diremos a Repo que extraiga el último manifiesto maestro de AOSP de Git:

in repo init-u https://android.googlesource.com/platform/manifest

Si se realiza correctamente, recibirá un mensaje que indica que el Repo se ha inicializado en su directorio de trabajo. También encontrarás un».directorio repo » dentro del directorio del cliente. Así que ahora descargaremos el árbol de código fuente de Android con:

sync repo sync

Creando el código fuente de Android

Aquí es donde entran en juego los binarios de hardware mencionados al principio de esta guía. Vayamos a la página de controladores de AOSP y descarguemos los binarios Pixel XL para Android 7.1.0 (NDE63P). Desea descargar tanto la imagen del proveedor como los componentes de hardware. Estos vienen como archivos comprimidos, así que extráigalos a su escritorio y ejecute el script autoextraíble desde la carpeta raíz. Elija instalar los binarios en la raíz del DIRECTORIO DE TRABAJO que creamos anteriormente.

Ahora escriba en su terminal Linux:

make make clobber
source source build/envsetup.sh

Ahora elegiremos el destino a compilar, así que escriba:

lunch lunch aosp_marlin-userdebug
set setpaths
make make-j4

Allí ,ahora hemos «construido» una ROM de Android desde el código fuente. Así que vamos a probarlo en el emulador, escribiendo en el terminal:

em emulator

Así que juega un poco en el emulador. Como puedes ver, una experiencia de Android puramente vainilla es bastante mínima, y es por eso que los fabricantes personalizan el AOSP a sus necesidades. Para que pueda flashear esta ROM que acabamos de construir en su dispositivo si lo desea, pero sin agregar ninguna mejora, una experiencia de Android puramente vainilla sería una cosa muy aburrida.

Así que lo que normalmente hacen los fabricantes con el AOSP es bifurcarlo, agregar sus propios binarios propietarios,personalizar la interfaz de usuario, agregar un logotipo de arranque, etc. Básicamente, el fabricante solo pinta sobre la ROM de Android de stock, y ese será tu próximo objetivo también.

Manténgase atento, ya que la segunda parte de esta guía irá a través de la adición de fuentes, temas y una animación de arranque a su ROM.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.