Compilando LineageOS Android: Una guía paso a paso

Android LineageOS on ODROID

Esta guía te enseñará como descargar y compilar el kernel de Android para ODROID-XU3/XU4. Si todavía no has compilado Android en tu ordenador de escritorio, echa un vistazo a la guía oficial de Google sobre cómo configurar un entorno de desarrollo para Android en http://bit.ly/1Hd3Z3P. Revísala cuidadosamente antes de continuar, de lo contrario puede que te encuetes con errores inesperados y necesites recurrir a los extensos y complejos registros log para localizar el problema.

Nosotros hemos utilizado Ubuntu 14.04 de 64 bits con 8 GB de RAM, las versiones más recientes de Ubuntu han dado algunos problemas a la hora de compilar el sistema operativo Android. http://bit.ly/2yGT5Tw. Si quieres compilar todo el código fuente de Android, no descargue y compiles código fuente del kernel por separado. Una compilación independiente de Kernel podría interrumpir el proceso global de compilación de Android.

Instalar openjdk-8-jdk

Si tu entorno de desarrollo es Ubuntu 14.04 o 12.40, introduce lo siguiente:

$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
Y puedes instalar openjdk-8-jdk usando apt:
$ sudo apt-get install openjdk-8-jdk
$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
Si tienes más de una versión de Java instalada, puedes cambiar la versión:
$ sudo update-alternatives --config java
$ sudo update alternatives --config javac
Ten en cuenta que distribuimos el kernel de Linux en diferentes sub-ramas para Android y otras distribuciones Linux.

Plataforma Android y Kernel

El repositorio para la descarga está disponible en http://bit.ly/1Syr1sf. El tamaño de todo el código fuente de Android es de alrededor de unos 70GB, así que asegúrese de preparar suficiente espacio antes de empezar a desarrollar la plataforma Android:

$ mkdir
$ cd
$ repo init -u https://github.com/voodik/android.git -b cm-14.1_5422
$ repo sync

Opengapps (opcional)

Para incluir Opengapps en la imagen de destino, crea el archivo "opengapps.xml" en la carpeta /.repo/local_manifests con este contenido:

< manifest>
< remote name="opengapps" fetch="https://github.com/opengapps/" />
< project path="vendor/opengapps/build" name="aosp_build" revision="master" remote="opengapps" />
< project path="vendor/opengapps/sources/all" name="all" clone-depth="1" revision="master" remote="opengapps" />
< project path="vendor/opengapps/sources/arm" clone-depth="1" revision="master" remote="opengapps" />
</ manifest>
A continuación, ejecuta los siguientes comandos:
$ cd
$ repo sync --force-sync
Antes de compilar, debes configurar el ODROID-XU3 con los siguientes comandos.
$ ./build.sh odroidxu3
Una vez completado el largo proceso de compilación, puedes localizar los archivos img en el directorio "/tmp/odroidxu3/". Para usar ADB a través de una conexión TCP/IP, consulta http://bit.ly/2gtWzAo.

Instalación para ODROID-XU3/XU3-Lite

Las instrucciones para instalar una imagen del kernel Linux para Android y Linux son diferentes. Como Android carga desde una partición del kernel, tenemos que usar fastboot para instalarlo en la partición dedicada. Antes de empezar, consulta la tabla de particiones en http://bit.ly/2irbjnC. En cambio, Linux arranca teniendo en cuenta los parámetros incluidos en boot.ini en la primera partición FAT.

En primer lugar, instala la imagen kernel zImage-dtb, en la tabla de arranque:

$ sudo fastboot flash kernel <path/of/your/zImage-dtb>
Después, instala los archivos de la plataforma android system.img, userdata.img y cache.img:
$ sudo fastboot flash system <path/of/your/system.img> $ sudo fastboot flash userdata <path/of/your/userdata.img> $ sudo fastboot flash cache <path/of/your/cache.img>
Finalmente, activa la partición FAT:
$ sudo fastboot erase fat

Instalación para XU4

Puedes evitar el tema de usar fastboot en un ODROID-XU4, ya que éste no dispone de ningún puerto USB OTG. Primero, configura una conexión ADB o copia una imagen a la partición FAT:

$ adb push xxxx.img /sdcard/
$ adb reboot
Echa un vistazo a los registros log del U-Boot conectándote al ODROID-XU4 con un kit USB-UART:
U-Boot 2017.05-12209-g43745f3 (Aug 17 2017 - 09:37:39 +0900) for ODROID-XU4

CPU: Exynos5422 @ 800 MHz
 Model: Odroid XU4 based on EXYNOS5422
 Board: Odroid XU4 based on EXYNOS5422
 Type: xu3
 DRAM: 2 GiB
 MMC: EXYNOS DWMMC: 0, EXYNOS DWMMC: 1
 MMC Device 0 (eMMC): 14.7 GiB
 Info eMMC rst_n_func status = enabled
 MMC Device 1 ( SD ): 7.4 GiB

*** Warning - bad CRC, using default environment

In: serial
 Out: serial
 Err: serial
 Net: No ethernet found.
 Press quickly 'Enter' twice to stop autoboot: 0
Escribe los siguientes comandos tras presionar "Intro" dos veces para pausar el proceso de arranque:
Exynos5422 # ext4load mmc 0:3 40000000 media/0/system.img
379342968 bytes read in 13284 ms (27.2 MiB/s)
Exynos5422 # fastboot flash system 40000000 0

*** Partition Information for Android ***
Control Device ID : 0
pNo     Start Block     Block Count     pName
 0             1              30        fwbl1 (15 KB)
 1            31              32        bl2 (16 KB)
 2            63            1440        bootloader (720 KB)
 3          1503             512        tzsw (256 KB)
 4          2015              32        env (16 KB)
 5          2047           16384        kernel (8192 KB)
 6       2752512          204800        fat (102400 KB)
 7        131072         2097152        system (1048576 KB)
 8       2957312        27688960        userdata (13844480 KB)
 9       2228224          524288        cache (262144 KB)

Erasing partition(system)...  blk_st = 131072, blk_cnt = 2097152
*** erase block start 0x20000, cnt 0x200000 ***
write_compressed_ext4 : total chunk = 1373 
mmc write dev 0, blk = 0x00020008, size = 0x00000008, remain chunks = 1372
mmc write dev 0, blk = 0x00020010, size = 0x00000008, remain chunks = 1371

...

mmc write dev 0, blk = 0x00160010, size = 0x00000008, remain chunks = 10
none chunk 
mmc write dev 0, blk = 0x00160208, size = 0x000001f8, remain chunks = 9
mmc write dev 0, blk = 0x00160218, size = 0x00000010, remain chunks = 8
none chunk 
mmc write dev 0, blk = 0x001a0000, size = 0x0003fde8, remain chunks = 7
mmc write dev 0, blk = 0x001a0010, size = 0x00000010, remain chunks = 6
none chunk 
mmc write dev 0, blk = 0x001e0000, size = 0x0003fff0, remain chunks = 5
mmc write dev 0, blk = 0x001e0008, size = 0x00000008, remain chunks = 4
mmc write dev 0, blk = 0x001e0010, size = 0x00000008, remain chunks = 3
none chunk 
mmc write dev 0, blk = 0x001e0208, size = 0x000001f8, remain chunks = 2
mmc write dev 0, blk = 0x001e0218, size = 0x00000010, remain chunks = 1
none chunk 
mmc write dev 0, blk = 0x00220000, size = 0x0003fde8, remain chunks = 0
write done 

partition 'system' flashed.

Exynos5422 #

ODROID Updater

Puedes actualizar desde Android Kitkat 4.4.4 estándar a Android 7.1 utilizando la versión 5.6 o superior de ODROID Updater (http://bit.ly/2yFz9lf). Siempre marca la opción "Format userdata" al actualizar desde otra versión de Android, tal y como se muestra en la Figura 1.

ODROID Magazine Figure 1 - Using the ODROID Updater
Figura 1 – Usando ODROID Updater
$ adb connect 192.168.x.x
$ cd out/target/products/odroidxu3/
$ adb push update.zip /sdcard/
$ adb push update.zip.md5sum /sdcard/
Abre "Internal storage", tal y como se muestra en la Figura 2, luego copia update.zip y update.zip.md5sum como se muestra en la Figura 3. Activa el botón "Validate file" como muestra la Figura 4.

ODROID Magazine Figure 2 - Opening the Internal Storage link in LineageOS
Figura 2 – Abriendo el almacenamiento interno en LineageOS

ODROID Magazine Figure 3 - Selecting the update.zip and update.zip.md5sum files
Figura 3 - Seleccionando los archivos update.zip y update.zip.md5sum

ODROID Magazine Figure 4 - Validating the update files in the ODROID UpdaterFigura 4 - Validando los archivos de actualización en

ODROID Updater

 

Información del Almacenamiento

/storage/sdcard0 partición FAT del almacenamiento interno eMMC o microSD /storage/sdcard1 ranura microSD para Tarjeta SD /storage/usb2host Almacenamiento USB puerto USB 2.0 host /storage/usb3host Almacenamiento USB puerto USB 3.0 host /storage/usb3device Almacenamiento USB puerto USB 3.0 Dispositivo

Para comentarios, preguntas y sugerencias, visita el artículo original en http://bit.ly/2yUeqvm.

Be the first to comment

Leave a Reply