pocarropa
12/10/16, 18:02:28
931058
Ni yo ni HTCMANÍA nos hacemos responsables de fallos en el terminal. Prueba este tutorial bajo tu responsabilidad. Es para el Redmi Note 3 hennessy (MTK)
Lo prometido es deuda. Espero que sepáis valorar este tutorial, realmente hay pocos en español, y para MTK todavía menos (si es que los hay).
CONSIDERACIONES (importante):
-El hecho de compilar CM12.1 no te convierte en desarrollador así que te pediría que no abras nuevos hilos con nuevas roms a no ser que realmente aporte algo sustancial, puesto que va a ser un calco de lo que ya hay. Este tutorial está pensado para crear tus propias compilaciones y despertar tu curiosidad.
-Este tutorial aborda la forma "manual" de hacerlo, puedes crear tu local.manifest.xml y así automatizar el proceso
-Vamos a emplear el device, y vendor que podéis encontrar en mi github. Como no hay sources para el kernel emplearemos el stock precompilado que ya se encuentra en el device tree.
-Este tutorial no está enfocado a resolver duda de instalación de sistemas basados en linux ni tampoco del funcionamiento de github así que por favor evitar preguntas relacionadas con esto, hay muchísima información por la red.
-Puedes reducir el tiempo de tu compilación añadiendo export USE_CCACHE=1 a tu archivo ~/.bashrc , después especifica la cantidad de espacio dedicado a ccache mediante el siguiente comando en la ventana CMD:
prebuilts/misc/linux-x86/ccache/ccache -M 50G , donde "50G" son 50 gigas de caché. Consultar la guía a pie de página para más información
DESCARGA ARCHIVOS NECESARIOS:
Device tree: https://github.com/pocarropa/android_device_xiaomi_hennessy
Vendor tree: https://github.com/pocarropa/android_vendor_xiaomi_hennessy
REQUISITOS:
-Ordenador de 64 bits con al menos 4 GB de RAM (8GB recomendados), un procesador decente y al menos 150 GB libres de disco duro
-Suficiente SWAP memory ( como mínimo el doble de la RAM disponible) de lo contrario nos dará "Killed" error
-Cuenta en github. Si no tenéis la podéis crear desde aquí: https://github.com/
-Sistema operativo Linux o tener instalado ubuntu en windows mediante Virtualbox.
- Este tutorial está enfocado expresamente a Ubuntu 14.04. Las diferencias que haya con Ubuntu 16.04 serán advertidas
COMPILAR CM12.1:
Paso 1: Preparando el sistema para compilar
Copiar, pegar y ejecutar en el terminal los siguientes comandos:
1-Desinstalar el JDK pre-instalado en ubuntu
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
2-Instalar el paquete JDK correcto para android 5.0 ó superior
sudo apt-get update && sudo apt-get install openjdk-7-jdk
Para confirmar que se ha instalado la versión correcta:
java –version
3-Instalar las herramientas necesarias (building tools):
Para Ubuntu 14.04:
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
Y puesto que usamos un ordenador de 64-bit necesitamos también:
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
Para Ubuntu 16.04:
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline6-dev lib32z1-dev
4-Creación del directorio más instalación de la aplicación REPO necesaria para trabajar con repositorios:
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
La hacemos ejecutable:
chmod a+x ~/bin/repo
5-Ponemos ~/bin en la ruta de ejecución (path of execution)
En versiones recientes de ubuntu suele venir por defecto , de cualquier modo abrimos .bashrc con un editor de texto (por ejemplo gedit) de la siguiente manera:
gedit ~/.bashrc
y comprobamos que existe el siguiente código (normalmente se encuentra abajo del todo):
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
En caso de no existir, lo añadimos y guardamos, y además reiniciamos el archivo .bashrc para que surtan efecto los cambios:
source ~/.bashrc
En este punto el sistema está listo para trabajar con repositorios y compilar roms.
Paso 2: Compilar CM12.1 desde sources
1- Creamos una cuenta github si no la tenemos ya creada:
https://github.com/
2-Registramos nuestra cuenta github en el terminal:
git config --global*user.name*"login" (login= tu usuario, en mi caso pocarropa)
git config --global user.email "[email protected]" (la contraseña de acceso a tu github)
3-Creamos una carpeta donde se descargarán las "sources" y se construirá el nuevo firmware
mkdir ~/cm-12.1
4-Entramos en la nueva carpeta
cd ~/cm-12.1
5-Inicializamos la descarga de sources de CM-12.1 (-b significa "branch" (rama) en github por lo que en caso de querer descargar otra "rama" elegiriamos diferente "branch, como por ejemplo -b cm-11 ó -b cm-13:
repo init -u https://github.com/CyanogenMod/android.git -b cm-12.1
6-Descargamos las "sources" de CM-12.1(sincronizamos) , donde -j* es el número de procesos/conexiones, por lo que si experimentas problemas puedes reducir este número (por defecto si hacemos repo sync de ajusta a -j4)
repo sync -j4
El tiempo de descarga variará sobretodo en función de la velocidad de conexión a internet y del hardware del equipo.
7-Una vez descargadas las sources hacemos los siguientes pasos:
Vamos a la carpeta cm-12.1 y entramos en la carpeta device. Una vez allí, creamos una carpeta llamada "xiaomi" y dentro de la carpeta "xiaomi" creamos otra carpeta llamada "hennessy".
Debe quedar cm-12.1/device/xiaomi/hennessy
Copiamos dentro de la carpeta cm-12.1/device/xiaomi/hennessy todos los archivos y carpetas del device tree descargados previamente de mi github
Ahora volvemos a la carpeta cm-12.1 y entramos en la carpeta vendor. Una vez allí, creamos una carpeta llamada "xiaomi" y dentro de la carpeta "xiaomi" creamos otra carpeta llamada "hennessy".
Debe quedar cm-12.1/vendor/xiaomi/hennessy
Copiamos dentro de la carpeta cm-13/vendor/xiaomi/hennessy todos los archivos y carpetas del vendor tree descargados previamente de mi github
8-Ahora parcheamos las souces para nuestro dispositivo, de otra manera nos dará errores durante la compilación:
Entramos en nuestra carpeta de trabajo (si es que no estabamos ya dentro):
cd ~/cm-12.1
La damos los permisos necesarios al archivo del parche:
chmod +x device/xiaomi/hennessy/patches/apply.sh
Parcheamos las sources:
./device/xiaomi/hennessy/patches/apply.sh
9-Ejecutamos el script de construcción
. build/envsetup.sh
10-Comenzamos la compilación del nuevo firmware
brunch hennessy
En este punto comienza la compilación del firmware. Si todo va bien y no hay ningún error que detenga el proceso, cuando finalice encontraremos nuestro firmware en la ruta cm-12.1/out/target/product/hennessy ,en un archivo zip por ejemplo:" cm-12.1-20160824-UNOFFICIAL-hennessy"
El tiempo de construcción del firmware variará desde 1 horas hasta 8 dependiendo de la potencia del equipo utilizado y de otros factores. Debéis saber que para disminuir el tiempo de construcción, este device tree lleva webview precompilado lo que hace disminuir este tiempo más del 60 %.
Os quedará algo así (salvando las diferencias con vuestro dispositivo):
931057
Paso 3 : Actualizar las souces y construir un nuevo firmware
Este paso lo efectuaremos para actualizar las sources de cyanogen con las supuestas mejoras y actualizaciones de seguridad etc.. o bien cuando queramos compilar para probar cambios efectuados en el device o vendor tree, actualización del kernel etc...
1-Ir a la carpeta cm-12.1
cd ~/cm-12.1
2-Limpiar la carpeta out para realizar una nueva compilación(paso importante)
make clean
3-Sincronizar las sources con los servidores cyanogen
repo sync
4-Ejecutar el "build script"
. build/envsetup.sh
5-Comenzar la compilación con nuestras sources actualizadas
brunch hennessy
CRÉDITOS/GUÍAS UTILIZADAS:
https://wiki.cyanogenmod.org/w/Build_for_kenzo
https://wiki.cyanogenmod.org/w/Development
http://forum.xda-developers.com/chef-central/android/guide-android-rom-development-t2814763
http://xda-university.com/as-a-developer/getting-started-building-android-from-source
Dar las gracias no cuesta nada.
Ni yo ni HTCMANÍA nos hacemos responsables de fallos en el terminal. Prueba este tutorial bajo tu responsabilidad. Es para el Redmi Note 3 hennessy (MTK)
Lo prometido es deuda. Espero que sepáis valorar este tutorial, realmente hay pocos en español, y para MTK todavía menos (si es que los hay).
CONSIDERACIONES (importante):
-El hecho de compilar CM12.1 no te convierte en desarrollador así que te pediría que no abras nuevos hilos con nuevas roms a no ser que realmente aporte algo sustancial, puesto que va a ser un calco de lo que ya hay. Este tutorial está pensado para crear tus propias compilaciones y despertar tu curiosidad.
-Este tutorial aborda la forma "manual" de hacerlo, puedes crear tu local.manifest.xml y así automatizar el proceso
-Vamos a emplear el device, y vendor que podéis encontrar en mi github. Como no hay sources para el kernel emplearemos el stock precompilado que ya se encuentra en el device tree.
-Este tutorial no está enfocado a resolver duda de instalación de sistemas basados en linux ni tampoco del funcionamiento de github así que por favor evitar preguntas relacionadas con esto, hay muchísima información por la red.
-Puedes reducir el tiempo de tu compilación añadiendo export USE_CCACHE=1 a tu archivo ~/.bashrc , después especifica la cantidad de espacio dedicado a ccache mediante el siguiente comando en la ventana CMD:
prebuilts/misc/linux-x86/ccache/ccache -M 50G , donde "50G" son 50 gigas de caché. Consultar la guía a pie de página para más información
DESCARGA ARCHIVOS NECESARIOS:
Device tree: https://github.com/pocarropa/android_device_xiaomi_hennessy
Vendor tree: https://github.com/pocarropa/android_vendor_xiaomi_hennessy
REQUISITOS:
-Ordenador de 64 bits con al menos 4 GB de RAM (8GB recomendados), un procesador decente y al menos 150 GB libres de disco duro
-Suficiente SWAP memory ( como mínimo el doble de la RAM disponible) de lo contrario nos dará "Killed" error
-Cuenta en github. Si no tenéis la podéis crear desde aquí: https://github.com/
-Sistema operativo Linux o tener instalado ubuntu en windows mediante Virtualbox.
- Este tutorial está enfocado expresamente a Ubuntu 14.04. Las diferencias que haya con Ubuntu 16.04 serán advertidas
COMPILAR CM12.1:
Paso 1: Preparando el sistema para compilar
Copiar, pegar y ejecutar en el terminal los siguientes comandos:
1-Desinstalar el JDK pre-instalado en ubuntu
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
2-Instalar el paquete JDK correcto para android 5.0 ó superior
sudo apt-get update && sudo apt-get install openjdk-7-jdk
Para confirmar que se ha instalado la versión correcta:
java –version
3-Instalar las herramientas necesarias (building tools):
Para Ubuntu 14.04:
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
Y puesto que usamos un ordenador de 64-bit necesitamos también:
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
Para Ubuntu 16.04:
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline6-dev lib32z1-dev
4-Creación del directorio más instalación de la aplicación REPO necesaria para trabajar con repositorios:
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
La hacemos ejecutable:
chmod a+x ~/bin/repo
5-Ponemos ~/bin en la ruta de ejecución (path of execution)
En versiones recientes de ubuntu suele venir por defecto , de cualquier modo abrimos .bashrc con un editor de texto (por ejemplo gedit) de la siguiente manera:
gedit ~/.bashrc
y comprobamos que existe el siguiente código (normalmente se encuentra abajo del todo):
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
En caso de no existir, lo añadimos y guardamos, y además reiniciamos el archivo .bashrc para que surtan efecto los cambios:
source ~/.bashrc
En este punto el sistema está listo para trabajar con repositorios y compilar roms.
Paso 2: Compilar CM12.1 desde sources
1- Creamos una cuenta github si no la tenemos ya creada:
https://github.com/
2-Registramos nuestra cuenta github en el terminal:
git config --global*user.name*"login" (login= tu usuario, en mi caso pocarropa)
git config --global user.email "[email protected]" (la contraseña de acceso a tu github)
3-Creamos una carpeta donde se descargarán las "sources" y se construirá el nuevo firmware
mkdir ~/cm-12.1
4-Entramos en la nueva carpeta
cd ~/cm-12.1
5-Inicializamos la descarga de sources de CM-12.1 (-b significa "branch" (rama) en github por lo que en caso de querer descargar otra "rama" elegiriamos diferente "branch, como por ejemplo -b cm-11 ó -b cm-13:
repo init -u https://github.com/CyanogenMod/android.git -b cm-12.1
6-Descargamos las "sources" de CM-12.1(sincronizamos) , donde -j* es el número de procesos/conexiones, por lo que si experimentas problemas puedes reducir este número (por defecto si hacemos repo sync de ajusta a -j4)
repo sync -j4
El tiempo de descarga variará sobretodo en función de la velocidad de conexión a internet y del hardware del equipo.
7-Una vez descargadas las sources hacemos los siguientes pasos:
Vamos a la carpeta cm-12.1 y entramos en la carpeta device. Una vez allí, creamos una carpeta llamada "xiaomi" y dentro de la carpeta "xiaomi" creamos otra carpeta llamada "hennessy".
Debe quedar cm-12.1/device/xiaomi/hennessy
Copiamos dentro de la carpeta cm-12.1/device/xiaomi/hennessy todos los archivos y carpetas del device tree descargados previamente de mi github
Ahora volvemos a la carpeta cm-12.1 y entramos en la carpeta vendor. Una vez allí, creamos una carpeta llamada "xiaomi" y dentro de la carpeta "xiaomi" creamos otra carpeta llamada "hennessy".
Debe quedar cm-12.1/vendor/xiaomi/hennessy
Copiamos dentro de la carpeta cm-13/vendor/xiaomi/hennessy todos los archivos y carpetas del vendor tree descargados previamente de mi github
8-Ahora parcheamos las souces para nuestro dispositivo, de otra manera nos dará errores durante la compilación:
Entramos en nuestra carpeta de trabajo (si es que no estabamos ya dentro):
cd ~/cm-12.1
La damos los permisos necesarios al archivo del parche:
chmod +x device/xiaomi/hennessy/patches/apply.sh
Parcheamos las sources:
./device/xiaomi/hennessy/patches/apply.sh
9-Ejecutamos el script de construcción
. build/envsetup.sh
10-Comenzamos la compilación del nuevo firmware
brunch hennessy
En este punto comienza la compilación del firmware. Si todo va bien y no hay ningún error que detenga el proceso, cuando finalice encontraremos nuestro firmware en la ruta cm-12.1/out/target/product/hennessy ,en un archivo zip por ejemplo:" cm-12.1-20160824-UNOFFICIAL-hennessy"
El tiempo de construcción del firmware variará desde 1 horas hasta 8 dependiendo de la potencia del equipo utilizado y de otros factores. Debéis saber que para disminuir el tiempo de construcción, este device tree lleva webview precompilado lo que hace disminuir este tiempo más del 60 %.
Os quedará algo así (salvando las diferencias con vuestro dispositivo):
931057
Paso 3 : Actualizar las souces y construir un nuevo firmware
Este paso lo efectuaremos para actualizar las sources de cyanogen con las supuestas mejoras y actualizaciones de seguridad etc.. o bien cuando queramos compilar para probar cambios efectuados en el device o vendor tree, actualización del kernel etc...
1-Ir a la carpeta cm-12.1
cd ~/cm-12.1
2-Limpiar la carpeta out para realizar una nueva compilación(paso importante)
make clean
3-Sincronizar las sources con los servidores cyanogen
repo sync
4-Ejecutar el "build script"
. build/envsetup.sh
5-Comenzar la compilación con nuestras sources actualizadas
brunch hennessy
CRÉDITOS/GUÍAS UTILIZADAS:
https://wiki.cyanogenmod.org/w/Build_for_kenzo
https://wiki.cyanogenmod.org/w/Development
http://forum.xda-developers.com/chef-central/android/guide-android-rom-development-t2814763
http://xda-university.com/as-a-developer/getting-started-building-android-from-source
Dar las gracias no cuesta nada.