Cómo construir una ROM personalizada desde un proyecto de código abierto de Android

fuente conocido 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 su cámara y GPU no funcionará 'listo para usar' cuando se desarrolle con el AOSP. De hecho, su dispositivo ni siquiera arrancará sin estos binarios de hardware.

Si está desarrollando para un teléfono de la marca Google (Pixel, Nexus, etc.), puede encontrar los archivos binarios de hardware directamente de Google , y esta guía lo guiará para obtenerlos y construirlos en su ROM. Sin embargo, si está desarrollando una ROM para un teléfono de marca (Sony, Samsung, etc.) ... bueno, bendiga su corazón, porque le espera un viaje.



Algunos los fabricantes tienen sus propios proyectos de código abierto o lanzan herramientas de desarrollo para futuros desarrolladores, mientras que otros fabricantes mantienen estrictos sus códigos de propiedad. A continuación, se muestra una breve lista de proyectos de código abierto de los fabricantes más populares:



Centro de versiones de código abierto de Samsung
Sony Developer World
Soporte de Lenovo
Centro de versiones de código abierto de Huawei
Desarrolladores de Motorola



Con eso fuera del camino, continuemos asumiendo que estamos creando una ROM para la experiencia más básica de Android, para un dispositivo Google Pixel. Con este conocimiento en su haber, podrá diversificarse por su cuenta y comenzar a desarrollar versiones personalizadas de ROM 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 amigables para los novatos, mientras que BBQLinux fue desarrollado específicamente con los desarrolladores de Android en mente.
  • Pitón
  • Una computadora robusta (¡compilar código requiere mucha memoria y espacio!)

Configuración de su entorno de construcció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 flashearlo en su dispositivo. Mi favorito personal es Genymotion, así que lo 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ígete al Sitio web de Genymotion , registre una cuenta, verifíquela por correo electrónico y descargue el ejecutable en su escritorio Linux.



Ahora abra una terminal de 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

prensa Y para crear el directorio Genymotion. Ahora escribe en la terminal:

cd genymotion && ./genymotion

Ahora le pedirá que comience el proceso de instalación, así que siga haciendo clic en Siguiente hasta llegar a la ventana Agregar dispositivos virtuales. Seleccione 'Pixel XL' en la opción Modelo de dispositivo y luego 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 la terminal de Linux y escriba los siguientes comandos:

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

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

Esto descargará el archivo 51-android.txt requerido que permite el acceso al dispositivo USB mencionado anteriormente. Abra 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 el usuario root ). Ahora conecte su dispositivo a su computadora a través de USB para que las nuevas reglas entren en vigencia automáticamente.

Descarga de la fuente de Android

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

Primero necesitamos configurar una carpeta / bin en su directorio de inicio. Escriba los siguientes comandos en la terminal de Linux:

$ mkdir ~ / bin
$ RUTA = ~ / bin: $ RUTA

Ahora descargaremos la herramienta Repo, así que escriba en la terminal de Linux:

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

Después de instalar Repo, ahora debemos crear un directorio vacío para guardar sus archivos de trabajo. Así que escribe esto en la terminal de Linux:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

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á utilizar la herramienta de revisión de código Gerrit.

$ git config –global user.name 'Su nombre'
$ git config –global user.email
you@gmail.com

Ahora le diremos a Repo que extraiga el manifiesto maestro más reciente de AOSP de Git:

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

Si lo hace correctamente, recibirá un mensaje de que Repo se ha inicializado en su directorio de trabajo. También encontrará un ' .repo ” directorio dentro del directorio del cliente. Así que ahora descargaremos el árbol de fuentes de Android con:

$ repo sync

Construyendo la fuente de Android

1

Aquí es donde entran en juego los binarios de hardware mencionados al principio de esta guía. Vayamos al Controladores AOSP y descargue los binarios de 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 WORKING_DIRECTORY que creamos anteriormente.

Ahora escribe en tu terminal de Linux:

$ hacer una paliza
$ fuente build / envsetup.sh

Ahora elegiremos el objetivo para construir, así que escriba:

$ lunch aosp_marlin-userdebug
$ setpaths
$ make –j4

Allí, ahora hemos 'construido' una ROM de Android desde la fuente. Así que probémoslo en el emulador, escribiendo en la terminal:

$ emulador

Así que juega un poco en el emulador. Como puede ver, una experiencia de Android puramente básica es bastante mínima, y ​​es por eso que los fabricantes personalizan el AOSP según sus necesidades. Vos tambien podría flashee 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 algo muy aburrido.

Entonces, lo que los fabricantes suelen hacer con el AOSP es bifurcarlo, agregar sus propios binarios patentados, personalizar la interfaz de usuario, agregar un logotipo de arranque, etc. Básicamente, el fabricante solo pinta sobre la ROM de Android original, y ese será su próximo objetivo también. .

¡Estén atentos, ya que la segunda parte de esta guía incluirá la adición de fuentes, temas y una animación de inicio a su ROM!

5 minutos de lectura