Compile nuestro propio kernel de Android en 5 simples pasos

El kernel de Android ayuda a las aplicaciones a comunicarse con los componentes de hardware del dispositivo.

Por ejemplo:

  1. La mayoría de nosotros estamos familiarizados con el modo de juego . Lo que hace es instruir al procesador y a la unidad de procesamiento de gráficos para que funcionen a sus máximas frecuencias.
  2. Otro ejemplo es el modo de ahorro de energía . Indica al procesador y a la unidad de procesamiento de gráficos que se ejecuten a sus frecuencias mínimas.

Necesidad de compilar nuestro propio kernel: compilar nuestro propio kernel puede resultar muy útil como:

  • La experiencia del usuario se puede optimizar aún más según la necesidad utilizando nuestro propio kernel
  • También puede ayudar en el desarrollo de código abierto .

Pasos para compilar nuestro propio kernel:

  1. Requisitos previos: a continuación se encuentran los requisitos previos necesarios para compilar nuestro propio kernel de Android:

    Nota: este artículo es para un dispositivo con un SOC Snapdragon de 64 bits

  2. Instalar Dependencias Abra la terminal y pegue lo siguiente:

    sudo apt-get install
         git ccache automake flex lzop bison \
         gperf build-essential zip curl
             zlib1g-dev zlib1g-dev:i386 \
         g++-multilib python-networkx 
             libxml2-utils bzip2 libbz2-dev \
         libbz2-1.0 libghc-bzlib-dev 
             squashfs-tools pngcrush \
         schedtool dpkg-dev liblz4-tool 
             make optipng maven libssl-dev \
         pwgen libswitch-perl policycoreutils 
             minicom libxml-sax-base-perl \
         libxml-simple-perl bc
             libc6-dev-i386 lib32ncurses5-dev \
         x11proto-core-dev libx11-dev 
             lib32z-dev libgl1-mesa-dev xsltproc unzip
  3. Descargar archivos necesarios:
    • Clone la fuente del dispositivo en el disco local:

      mkdir mykernel
        git clone {link to your device kernel source}
    • Descargue una string de herramientas GCC compatible. En este artículo, se utiliza el GCC de AOSP.

      cd mykernel
         git clone https://android.googlesource.com/platform/
                   prebuilts/gcc/linux-x86/aarch64/
                   aarch64-linux-android-4.9
         toolchain
    • Descargue una string de herramientas CLANG compatible. En este artículo, se utiliza el CLANG de AOSP .
    • Mueva el archivo descargado a la carpeta mykernel y luego extráigalo con el siguiente comando:

      tar vxzf linux-x86-android-9.0.0_r48-clang-4691093.tar.gz
  4. Compilando el Kernel:

    cd mykernel
    rm -rf out
    mkdir out
    export ARCH=arm64
    export SUBARCH=arm64
    export DTC_EXT=dtc
      
    make O=out ARCH=arm64 {device defconfig}
      
    PATH="${PWD}/bin:${PWD}/toolchain/bin:${PATH}" \
    make -j$(nproc --all) O=out \
                          ARCH=arm64 \
                          CC=clang \
                          CLANG_TRIPLE=aarch64-linux-gnu- \
                          CROSS_COMPILE=aarch64-linux-android-
                          | tee kernel.log

    Aquí, reemplace {defconfig del dispositivo} con el nombre de su archivo de configuración. Puede encontrarlo en la carpeta /arch/arm64/configs.

  5. Arrancando el kernel compilado:
    • Vaya a /out/arch/arm64/boot y busque el archivo Image-dtb (zImage compilado) y copie el archivo.
    • Descarga Android Image Kitchen y descompila tu imagen de arranque estándar. Una vez que lo descompile, encontrará el stock zImage en la carpeta descompilada. Reemplácelo con el que copió anteriormente y vuelva a compilar la imagen de arranque.
    • Flashee a través de fastboot usando el siguiente comando:

      fastboot flash boot mykernel.img
  6. Tratamiento de los errores encontrados: Se generará un archivo kernel.log en la carpeta mykernel. Encuentra la línea que dice error y busca la solución. Además, no olvide adjuntar el archivo de registro cuando publique en los foros para obtener ayuda.

Este será el kernel básico y se pueden agregar más funciones una vez que se inicie correctamente.

Publicación traducida automáticamente

Artículo escrito por venky03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *