El kernel de Android ayuda a las aplicaciones a comunicarse con los componentes de hardware del dispositivo.
Por ejemplo:
- 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.
- 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:
- Requisitos previos: a continuación se encuentran los requisitos previos necesarios para compilar nuestro propio kernel de Android:
- Ubuntu o cualquier otro sistema operativo basado en Linux
- Familiarizado con los comandos básicos de Linux
- Familiarizado con Github
- Código fuente del dispositivo
Nota: este artículo es para un dispositivo con un SOC Snapdragon de 64 bits
- 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
- 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
- Clone la fuente del dispositivo en el disco local:
- 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.
- 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
- 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.