Compilación del código fuente del sistema Android


Hay muchos artículos excelentes que circulan en Internet sobre la compilación del código fuente del sistema Android. La razón principal por la que quiero escribir esto es para registrar el proceso de compilación del sistema. Aquí tomaré Android 9.0 y el dispositivo móvil de generación Piexl como base. ejemplo para describir el proceso de compilación y actualización.

1. Preparación ambiental

memoria ubuntu18.04
al menos 12 GB de RAM
espacio en el disco duro al menos 200 GB

2. Descargue el código fuente de Android

(1) Instalar Python

apt-get install python (Repo 是基于 Python 2.x 中的特定功能构建的,与 Python 3 不兼容。要使用 Repo,请安装 Python 2.x:)

(2) Instalar Git y configurar la información de Git

sudo apt-get install git 
git config --global user.name (Your Name)
git config --global user.email ([email protected]

(3) Instalar rizo

sudo apt-get install curl

(4) Descargar repositorio


curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH

(5) Cree un directorio de almacenamiento de código fuente

 mkdir /home/ubuntu/aosp  (根据实际情况来新建目录)
 cd /home/ubuntu/aosp

(6) Inicializar el almacén

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

(7) el repositorio especifica la versión de Android

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r46

(8) Código fuente de sincronización

repo sync  (等待源代码下载完成,长时间等待,若失败请检查网络等情况)

3. Compilación del sistema

(1) Instalar openjdk8

sudo apt-get install openjdk-8-jdk  (安装不成功检查ubuntu是否换源、是否有更新软件包列表)

(2) Instalar dependencias

sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib 

sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 

sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev

sudo apt-get install git-core gnupg flex bison gperf build-essential

sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib 

sudo apt-get install libc6-dev-i386 

sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev 

sudo apt-get install lib32z-dev ccache

sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

(3) Configure y habilite ccache (para acelerar la recompilación del código fuente. Opcional)

sudo apt install vim

export USE_CCACHE=1  (在你home主目录的.bashrc中加入)
export CCACHE_DIR=/home/ubuntu/.ccache  (指定一个缓存目录,也可以不指定,默认目录为你当前用户目录下的.ccache)
aosp/prebuilts/misc/linux-x86/ccache/ccache -M 50G (这个命令在Android源码中,缓存大小按照自己的硬盘来适当调整)
source ~/.bashrc  (source命令使修改立即生效)

(4) Descargar el controlador del teléfono móvil

a. Verifique la etiqueta del código fuente y la versión de compilación para verificar la versión adecuada del controlador para descargar.
archivo
b. En la imagen de arriba, puede ver que necesita descargar el controlador QP1A.190711.019 (aquí tomamos piexl 2 y android10.0.0_r1 como ejemplos, descárguelo de acuerdo con la situación real), busque el controlador y descárguelo . .
archivo
c. Descomprima el archivo descargado y colóquelo en el directorio raíz del código fuente y autorice la ejecución del archivo sh. Después de ejecutarlo, se le pedirá que vea el certificado. Presione la tecla Enter para verlo línea por línea. Cuando el Aparece un mensaje de entrada, ingrese ACEPTO y extráigalo al directorio de proveedores.

./extract-google_devices-sailfish.sh
./extract-qcom-sailfish.sh

(5) Iniciar compilación

source build/envsetup.sh

lunch

lunch 47 (lunch选定的版本按照实际情况来)
make -j16  (和cpu有关,适当调整数字)

(6) Completa el logo de compilación.

#### build completed successfully (01:35:28 (hh:mm:ss)) ####

4. Flashear la máquina

Después de compilar el sistema para la máquina real, puede encontrar la herramienta fastboot en el directorio /aosp/out/host/linux-x86/bin

(1) Establecer variables de entorno

El directorio donde se encuentra la imagen del sistema compilado.

export Android_PRODUCT_OUT=/home/jhan/aosp/out/target/product/sailfish

(2) Destella la imagen

fastboot flashall -w  (手机要解BL锁且进入bootloader后执行此命令)

5. Informe y clasificación de errores

El proceso será GID/EGID=0 en el espacio de nombres de usuario global y tendrá acceso de nivel raíz de grupo a los archivos.

Cuando informe un error, vaya a "/bin/bash"

https://www.yisu.com/zixun/366049.html

Supongo que te gusta

Origin blog.csdn.net/u010671061/article/details/132843269
Recomendado
Clasificación