En primer lugar, debe configurar el entorno de compilación. Deberías estar ejecutando Ubuntu 18.04. LineageOS guía de construcción para un dispositivo aleatorio puede utilizarse como referencia. Reproduciendo los pasos aquí:
Instala los paquetes de construcción:
sudo apt install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev adb fastboot
Crea los directorios:
mkdir -p ~/bin
mkdir -p ~/android/lineage
Instala el comando repo:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Ponga el directorio ~/bin en su ruta de ejecución añadiendo lo siguiente a su ~/.profile
si es que falta:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
A continuación, ejecute source ~/.profile
para actualizar su entorno. Después de eso, inicialice el repositorio de fuentes de LineageOS y comience a descargarlo:
cd ~/android/lineage
repo init -u https://github.com/LineageOS/android.git -b lineage-16.0
repo sync
La descarga del código fuente de LineageOS llevará algún tiempo. Después nos desviaremos de la guía oficial de construcción. Cree un archivo de manifiesto local indicando a la herramienta repo dónde recoger el código fuente del kernel, el árbol de dispositivos y los archivos de proveedores. El archivo correspondiente para platina puede ser descargado desde aquí . Si está construyendo para un dispositivo diferente, utilice este archivo de manifiesto como referencia y edítelo en consecuencia. Guarde el archivo como
.repo/local_manifests/platina.xml
Vuelva a ejecutar la herramienta de repo para obtenerlos:
repo sync
Inicialice su entorno de compilación:
source build/envsetup.sh
Habilitar el almacenamiento en caché para acelerar la construcción:
export USE_CCACHE=1
Debe añadir la línea anterior a su .bashrc
archivo. A continuación, establezca el tamaño máximo de la caché:
ccache -M 50G
Configurar la toma:
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"
Editar device/xiaomi/platina/BoardConfig.mk
y establecer el parámetro TARGET_KERNEL_CONFIG
a platina_user_defconfig
:
TARGET_KERNEL_SOURCE
apunta al código del kernel que se utilizará durante la construcción. TARGET_KERNEL_CONFIG
especifica qué configuración se va a utilizar. Buscando en arch/arm64/configs/
en el código fuente del kernel, he fijado el valor en platina_user_defconfig
Por último, inicie la construcción:
lunch 16
mka bacon -j8
Esto debería tardar unas horas en completarse. Yo suelo dejarlo funcionando toda la noche. Aquí es donde las cosas se ponen difíciles. Es posible que la compilación falle debido a errores, en cuyo caso tendrás que arreglarlo. Una vez que la construcción se ha completado, usted encontrará el archivo zip, listo para flashear:
1 votos
Hola daltonfury42. Lo siento, pero las preguntas relacionadas con el desarrollo están fuera del tema aquí. Por favor, visita centro de ayuda para conocer el alcance de nuestro sitio. No sé si Stack Overflow se ocupa de estas cuestiones. Como ya te has esforzado en ayudar a los demás, te sugiero que consideres XDA, Medium o alguna otra plataforma para compartir esta categoría de información. :-)
1 votos
@Firelord Esto no está relacionado con el desarrollo, o la escritura de ROMs personalizadas. Son pasos para "construir" una ROM descargando y compilando su código fuente. Pero si sigues pensando que es una pregunta de desarrollo, la moveré a stackoverflow.
0 votos
Las cuestiones relacionadas con la creación de aplicaciones o ROMs no se consideran dentro del ámbito de este sitio web, así que eres libre de llevarlo a donde te plazca.
0 votos
@Firelord ¿Puedes ayudarme a mover esto a stackoverflow?
0 votos
@daltonfury42 Le pregunté a un moderador en Stack Overflow y respondió que es demasiado amplio para su sitio. Tal vez intente su meta o sala de chat y ver si esto se puede convertir para encajar en el ámbito de su sitio?