fusionero
14/01/15, 04:06:08
Bueno chicos, como ahora tenemos el momento de nuestra Tablet y la cocina en ella voy a ir añadiendo todo lo que aprenda para que los demás puedan aprender de ello :ok: Eso si, lo primero que digo es que luisetex84 (http://www.htcmania.com/member.php?u=1151665) es quien me esta enseñando, así que solo es un hilo en principio en la que plasmar lo que suceda y que los demás puedan aprender desde 0 como yo en este momento a cocinar en un principio solo un kernel, y como es en el caso que me ocupa, para la Tablet BQ Aquaris E10, tanto en su versión wifi ( kaito_wifi ), como en su variante 3G ( kaito ).
NECESIDADES BÁSICAS PARA SEGUIR ESTE TUTORIAL
- Empezamos con la necesidad de usar un pc con Linux desde Ubuntu 12.04-14.10,Linux Mint 13-17.1, ambas en su versión 64 bit's.
- Tener una CPU de 64 bit's, si es de 32 bit's no podremos hacer nada igual o superior a Android 4.0 - IceCreamSandwich.
- Suficiente memoria y CPU, o se ralentizaran la compilaciones de kernel's o futuras Rom's. - Bueno se puede usar algo inferior, ya que yo empecé con un Celeron T-1600 64 bit's y 4 GB's de RAM DDR-667-800MHz ( es que cada una tiene una velocidad máxima, jeje ).
- 2 Discos Duros ( preferiblemente si el principal es SSD mejor por la velocidad ), para volvar siempre un repositorio o toda la carpeta al 2º HDD, por si vamos a probar muchos cambios, y no recordamos que hemos hecho poder restaurar la copia desde el 2º HDD.
- Tener ganas de poder cargarte el sistema de arranque de Linux, o archivos que no os indique y toque reinstalar Linux, por ese detalle algunos recomiendan empezar desde un Sistema Operativo Virtual, para no perder nada, ya que puede que tengamos que usar nuevamente la instalación desde USB/CD/DVD para reinstalar el Grub para si es necesario y restaurar una versión anterior a los cambios que nos den problemas, aunque yo mismo he ido a saco con mi usuario Root, y sin copia, con las bragas bajadas para que lleguen por todos los lados, que me gusta hacerla limpia, jeje.
PREPARACIÓN DEL ENTORNO
Bueno lo primero es que se debe preparar nuestro Linux para poder hacer cualquier cosa, ya que se deben manejar varias cosas o necesitar de ellas para compilar/descompilar, y en este Hilo de xda-developers da un inicio [/url], añadiré los detalles exactos.
Empezamos con el Terminal:
Instalamos el JDK:
$ sudo apt-get update
Y:
$ sudo apt-get install openjdk-7-jdk
Seguimos con la instalación de paquetes necesarios para trabajar con las herramientas que usaremos más adelante ( ejemplo las del Github, ya que necesitamos por ejemplo python, o no podriamos usarlo ):
$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
Y también ejecutamos:
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
El especifico para Ubuntu 14.04 o Linux Mint 17:
$ sudo apt-get install bison g++-multilib git gperf libxml2-utils
Configuramos el acceso usb ADB:
Gracias a luisete por los detalles ya que no los conocía, y solo lo he preparado apenas sustituyendo imágenes por palabras, para no perderse nunca ante caídas de las imágenes, y este es otro aporte suyo solo añadido en orden al hilo que nos conciñe/atañe. Así que nuevamente gracias a él, que nos da los detalles para ir haciendo crecer este hilo/tutorial/historia de mi propio inicio en la misma cocina desde 0.
1. Si no lo hemos hecho antes, ejecutamos en la Terminal:
$ adb devices
Esto es para iniciar el demonio de adb. En la raíz del nuestro sistema de archivos se creara la carpeta .android ( estara oculta, ya que eso hace el que tenga el punto delante, por eso se debe tener activado que podamos ver archivos y carpetas ocultas o no la veremos ), si no existía ya.
El problema que no te reconozca el dispositivo ( tablet, móvil, etc,... ) es que Linux no sabe el id del fabricante. Así que vamos a obtenerlo.
2. Sin conectar la tablet al pc ejecutamos:
$ adb devices
Y nos debería aparecer debajo esto
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
Podemos seguir con la comprobación de la conexión usb que hay en ese momento activa:
$ lsusb
Dandonos una respuesta de este estilo:
Bus 002 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 002: ID 8087:07dc Intel Corp.
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 0408:13ba Quanta Computer, Inc.
Bus 001 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Ahora ya conectamos el cable USB al pc y al dispositivo, y volvemos a ejecutarlo para comprobar la nueva entrada que nos debe aparecer ( la he remarcado para que lo notéis mejor ):
$ lsusb
Esta vez con otra respuesta que cambiaría en la 1ª línea:
Bus 002 Device 004: ID 2a47:2008
Bus 002 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 002: ID 8087:07dc Intel Corp.
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 0408:13ba Quanta Computer, Inc.
Bus 001 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Comparamos el resultado con el anterior resultado y debemos buscar ese nuevo dispositivo, que sera el nuestro ( tablet, móvil, etc,... ). Ahora apuntamos los 4 dígitos que salen detrás de ID y antes de los dos puntos, el remarcado en rojo es un ejemplo ( que en realidad es el de BQ ). Este es el idVendor.
3. En la raíz del nuestro sistema de archivos se creara la carpeta .android, busca el fichero adb_usb.ini. Se debe añadir el idVendor al fichero. Si no existiera, crealo y añade esto:
0x{idVendor}
- Siguiendo el ejemplo sería:
0x0bb4
4. Matamos ahora el demonio de adb ( esto es para que al volver a iniciarlo nos coja la nueva configuración ):
adb kill-server
5. Ahora volvemos a iniciar el demonio de adb
adb devices
Ya para más adelante sería aprender estos, que es para hacer ramas en nuestra carpeta, pero lo dejo para más adelante, ya que primero tenéis que probar a hacer una, y ya después tendremos tiempo para hacerlo, ya que sino sabemos con una rama no es cosa de crear varias si podemos querer borrar algo sino nos parece correcto, o queremos hacer solo pruebas con un solo kernel y una única variante. Aunque se pueden hacer ramas para crear varias versiones del mismo kernel para ver que cosa funciona o no según como se haga y no tener que pensar en que se hace y que se nos olvido, sino hacer directamente multiples ramas y probar cada una , ejemplo añadir cosas de otras CPU's y querer probar varias funentes con distintas opciones, así no perdemos tanto tiempo si encontramos una funcional, y al probar otra no recordamos la que era, así nunca se nos debe olvidar nombrar cada una con algún nombre que no nos olvide que la caracteriza.
Pendiente de traducir, ya que añado lo de la página indicada de donde saco la información:
Por defecto, la salida de cada build/generación se almacena en la salida/out/subdirectorio del árbol de código fuente correspondiente.
En algunas máquinas con múltiples dispositivos de almacenamiento ( HDD's, SSD's ), las build's/construcciones son más rápidas cuando se almacenan los archivos de origen y la salida de volúmenes separados. Para obtener un rendimiento adicional, la salida se puede almacenar en un sistema de archivos optimizado para la velocidad ( SSD's ) en lugar de robustez ante accidentes, ya que todos los archivos se pueden volver a generarse en caso de corrupción del sistema de archivos en un menor tiempo que con un HDD.
Para configurar esto, exporte la variable OUT_DIR_COMMON_BASE para apuntar a la ubicación donde se almacenarán los directorios de salida.
$ export OUT_DIR_COMMON_BASE=<indicar_el_nombre_de_nuestro_directorio>
El directorio de salida para cada fuente del árbol fuente será nombrado independiente después del directorio que contiene el árbol de origen.
Por ejemplo, si usted tiene dintintas fuentes de árboles como /source/master1 y /source/master2 y OUT_DIR_COMMON_BASE se establece en /output, los directorios de salida serán /output/master1 y /output/master2.
Es importante en este caso al no tener varios orígenes de árboles almacenados en directorios que tienen el mismo nombre, porque los que terminarían compartiendo un directorio de salida, con resultados impredecibles.
Esto sólo se admite en Jelly Bean (4.1) y más recientes, incluyendo la rama principal.
PREPARANDO UN REPOSITORIO
Es algo tan sencillo ( indicado por luisetex84 nuevamente este detalle ) en Ubuntu 14.04-14.10 y Linux Mint 17-17.1 como ejecutar este comando en la Terminal:
$ sudo apt-get install phablet-tools tclsh
Seguimos con unos recomandables:
$ sudo apt-get install bzr-doc bzrtools python-bzrlib.tests python-bzrlib-dbg python-kerberos
Y otros más:
$ sudo apt-get install python-gpgme click-apparmor upstart-app-launch-tools pybootchartgui
Esto otro es lo que había que hacerlo antiguamente, cuando no existía ningún paquete que contuviera el comando repo. Si nos da fallo la anterior ejecución en la Terminal nos tocaría hacer esto otro para poder continuar:
Revisamos que tenemos el directorio bin/ en la raíz de nuestro pc, o lo creamos así ( nada más abrir la Terminal, no cambiamos de directorio ):
$ mkdir ~/bin
Y:
$ PATH=~/bin:$PATH
Ya de paso recordar que mkdir es para crear carpetas u otro tipo de archivos, pero con sus correspondientes variantes, ya que mk es para crear, y dir especifica que es un directorio/carpeta.
Descargamos la tool/herramienta de la Repo y nos aseguramos de que sea ejecutable:
$ curl [url]https://storage.googleapis.com/git-repo-downloads/repo (https://source.android.com/source/initializing.html) > ~/bin/repo
Y:
$ chmod a+x ~/bin/repo
Para la versión 1.17, el cheksum SHA-1 del Repo es ddd79b6d5a7807e911b524cb223bc3544b661c28
Para la versión 1.19, el cheksum SHA-1 del Repo es 92cbad8c880f697b58ed83e348d06619f8098e6c
Para la versión 1.20, el cheksum SHA-1 del Repo es e197cb48ff4ddda4d11f23940d316e323b29671c
Para la versión 1.21, el cheksum SHA-1 del Repo es b8bd1804f432ecf1bab730949c82b93b0fc5fede
Ahora es hora ya de crear la carpeta que usaremos para tener el/los repositorio/s que vamos a usar, la crearemos en la raíz del sistema ( /home/usuario ), y ya dependerá del nombre que se nos antoje, yo personalmente le di el nombre de android para reconocerla al principio al abrir el acceso al sistema de archivos. Recordar que si van a ser carpetas con nombres con más de una palabra deben ser unidas con _ en cada espacio que se le quiera añadir, ya que sino solo crearas varias carpetas cada una con su nombre respectivo. La 2ª línea es para acceder a la carpeta creada ya que desde ella que aremos todo la sincronización.
$ mkdir nuestro_directorio
Y:
$ cd nuestro_directorio
Ejecutamos el init repo para descargar la última versión del Repo con todas sus más recientes correcciones de errores. Debe especificar una dirección URL para el manifiesto, que especifica si los diferentes repositorios incluidos en la fuente a descargar de Android será colocado dentro de su directorio de trabajo. Y tenemos varias opciones según la fuente que usemos:
Repositorio de google:
$ repo init -u git://android.googlesource.com/platform/manifest
Repositorio de CyanogenMod 11.0:
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
Repositorio de CyanogenMod 12.0:
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-12.0
Repositorio de Omni 4.4:
$ repo init -u git://github.com/omnirom/android_bootable_recovery.git -b android-4.4
Repositorio de Omni 5.0:
$ repo init -u git://github.com/omnirom/android_bootable_recovery.git -b android-5.0
Todo esto tardara según la conexión que tengamos, pero pueden ser solo unos segundos o apenas 5 minutos, ya que son sobre los 5 MegaBytes en la Repo CyanogenMod.
Si fallasen las descargas de los repositorios para descargar por firmas, se soluciona saltando el uso del acceso por git://github usando este otro acceso https://github, quedando las 5 opciones anteriores así:
Repositorio de google:
$ repo init -u https://android.googlesource.com/platform/manifest
Repositorio de CyanogenMod 11.0:
$ repo init -u https://github.com/CyanogenMod/android.git -b cm-11.0
Repositorio de CyanogenMod 12.0:
$ repo init -u https://github.com/CyanogenMod/android.git -b cm-12.0
Repositorio de Omni 4.4:
$ repo init -u https://github.com/omnirom/android_bootable_recovery.git -b android-4.4
Repositorio de Omni 5.0:
$ repo init -u https://github.com/omnirom/android_bootable_recovery.git -b android-5.0
DESCARGANDO UN REPOSITORIO SOLO PARA EL KERNEL
El manifest_local.xml es gracias al esfuerzo y trabajo de luisetext84, yo solo lo comprarto como base para enseñaros las diferencias lo más básicamente posible para que lo entendamos todos desde el principio lo que cambia si partimos del mismo repositorio, en el ejemplo es para usar el repositorio de CyanogenMod con el que hacer 4 kernel's distintos
Tenemos que usar el Terminal en su principio, para instalar/crear/descargar la mayoría de las cosas. Aquí un ejemplo actual ( 14 de Enero de 2015 ) del manifest_local.xml creado por lusetex84, para usarlo tanto para CWM, TRWP, Philz y CTO según para que versión Android sean y su tamaño al estar descargados ( os aviso que solo el hacer la descarga se come al menos unas 7-9 veces lo ocupado, ya que lo he comprobado mientras se descargaban todos ).
Si no existe, creamos el fichero en nuestro_directorio/.repo/local_manifests/local_manifest.xml con uno de estos contenidos para bajar el código según que versión/base de kernel queramos usar, diferenciandose solo en la líneas finales que ponen el nombre a los kernel's no llamados CyanogenMod, ya que ese al ser usado no se le indica nombre, o daría error por multiple nombrado en 3 archivos, siendo el error del manifest_local nuestro si le indicamos nombre al CWM, los demás no tendrán ese problema, ya que todos necesitan el nombrado especifico si deseamos recordar que base para el kernel hemos seleccionado.
<?xml version="1.0" encoding="UTF-8"?>
-<manifest>
<remove-project name="CyanogenMod/android"/>
<remove-project name="CyanogenMod/android_abi_cpp"/>
<remove-project name="CyanogenMod/android_art"/>
<remove-project name="CyanogenMod/android_bootable_diskinstaller"/>
<remove-project name="CyanogenMod/android_bootable_recovery"/>
<remove-project name="CyanogenMod/android_bootable_recovery-cm"/>
<remove-project name="platform/cts"/>
<remove-project name="CyanogenMod/android_dalvik"/>
<remove-project name="platform/developers/build"/>
<remove-project name="platform/developers/demos"/>
<remove-project name="platform/developers/docs"/>
<remove-project name="platform/developers/samples/android"/>
<remove-project name="CyanogenMod/android_development"/>
<remove-project name="CyanogenMod/android_device_common"/>
<remove-project name="CyanogenMod/android_device_generic_armv7-a-neon"/>
<remove-project name="CyanogenMod/android_device_generic_common"/>
<remove-project name="CyanogenMod/android_device_generic_mips"/>
<remove-project name="CyanogenMod/android_device_generic_x86"/>
<remove-project name="device/generic/mini-emulator-armv7-a-neon"/>
<remove-project name="device/generic/mini-emulator-mips"/>
<remove-project name="device/generic/mini-emulator-x86"/>
<remove-project name="CyanogenMod/android_device_google_accessory_arduino"/>
<remove-project name="CyanogenMod/android_device_google_accessory_demokit"/>
<remove-project name="CyanogenMod/android_device_sample"/>
<remove-project name="platform/docs/source.android.com"/>
<remove-project name="CyanogenMod/android_external_aac"/>
<remove-project name="CyanogenMod/android_external_android-clat"/>
<remove-project name="CyanogenMod/android_external_android-mock"/>
<remove-project name="CyanogenMod/android_external_android-visualizer"/>
<remove-project name="CyanogenMod/android_external_ant-glob"/>
<remove-project name="CyanogenMod/android_external_ant-wireless_ant_native"/>
<remove-project name="CyanogenMod/android_external_ant-wireless_ant_service"/>
<remove-project name="CyanogenMod/android_external_ant-wireless_antradio-library"/>
<remove-project name="CyanogenMod/android_external_antlr"/>
<remove-project name="CyanogenMod/android_external_apache-harmony"/>
<remove-project name="CyanogenMod/android_external_apache-http"/>
<remove-project name="CyanogenMod/android_external_apache-qp"/>
<remove-project name="CyanogenMod/android_external_apache-xml"/>
<remove-project name="CyanogenMod/android_external_arduino"/>
<remove-project name="CyanogenMod/android_external_bash"/>
<remove-project name="CyanogenMod/android_external_blktrace"/>
<remove-project name="CyanogenMod/android_external_bluetooth_bluedroid"/>
<remove-project name="CyanogenMod/android_external_bsdiff"/>
<remove-project name="CyanogenMod/android_external_bson"/>
<remove-project name="CyanogenMod/android_external_cardslib"/>
<remove-project name="platform/external/ceres-solver"/>
<remove-project name="CyanogenMod/android_external_chromium"/>
<remove-project name="platform/external/chromium-libpac"/>
<remove-project name="CyanogenMod/android_external_chromium-trace"/>
<remove-project name="CyanogenMod/android_external_chromium_org"/>
<remove-project name="platform/external/chromium_org/sdch/open-vcdiff"/>
<remove-project name="platform/external/chromium_org/testing/gtest"/>
<remove-project name="platform/external/chromium_org/third_party/WebKit"/>
<remove-project name="platform/external/chromium_org/third_party/angle"/>
<remove-project name="platform/external/chromium_org/third_party/eyesfree/src/android/java/src/com/googlecode/eyesfree/braille"/>
<remove-project name="platform/external/chromium_org/third_party/freetype"/>
<remove-project name="platform/external/chromium_org/third_party/icu"/>
<remove-project name="platform/external/chromium_org/third_party/leveldatabase/src"/>
<remove-project name="platform/external/chromium_org/third_party/libjingle/source/talk"/>
<remove-project name="platform/external/chromium_org/third_party/libphonenumber/src/phonenumbers"/>
<remove-project name="platform/external/chromium_org/third_party/libphonenumber/src/resources"/>
<remove-project name="platform/external/chromium_org/third_party/mesa/src"/>
<remove-project name="CyanogenMod/android_external_chromium_org_third_party_openssl"/>
<remove-project name="platform/external/chromium_org/third_party/opus/src"/>
<remove-project name="platform/external/chromium_org/third_party/ots"/>
<remove-project name="platform/external/chromium_org/third_party/sfntly/cpp/src"/>
<remove-project name="platform/external/chromium_org/third_party/skia/gyp"/>
<remove-project name="platform/external/chromium_org/third_party/skia/include"/>
<remove-project name="platform/external/chromium_org/third_party/skia/src"/>
<remove-project name="platform/external/chromium_org/third_party/smhasher/src"/>
<remove-project name="platform/external/chromium_org/third_party/yasm/source/patched-yasm"/>
<remove-project name="platform/external/chromium_org/tools/grit"/>
<remove-project name="platform/external/chromium_org/tools/gyp"/>
<remove-project name="platform/external/chromium_org/v8"/>
<remove-project name="CyanogenMod/android_external_connectivity"/>
<remove-project name="CyanogenMod/android_external_crda"/>
<remove-project name="CyanogenMod/android_external_curl"/>
<remove-project name="CyanogenMod/android_external_dexmaker"/>
<remove-project name="CyanogenMod/android_external_dhcpcd"/>
<remove-project name="CyanogenMod/android_external_dnsmasq"/>
<remove-project name="CyanogenMod/android_external_doclava"/>
<remove-project name="CyanogenMod/android_external_dropbear"/>
<remove-project name="platform/external/droiddriver"/>
<remove-project name="CyanogenMod/android_external_easymock"/>
<remove-project name="CyanogenMod/android_external_ebtables"/>
<remove-project name="CyanogenMod/android_external_eclipse-basebuilder"/>
<remove-project name="CyanogenMod/android_external_eclipse-windowbuilder"/>
<remove-project name="CyanogenMod/android_external_elfutils"/>
<remove-project name="CyanogenMod/android_external_embunit"/>
<remove-project name="CyanogenMod/android_external_emma"/>
<remove-project name="CyanogenMod/android_external_esd"/>
<remove-project name="CyanogenMod/android_external_expat"/>
<remove-project name="CyanogenMod/android_external_eyes-free"/>
<remove-project name="CyanogenMod/android_external_f2fs-tools"/>
<remove-project name="CyanogenMod/android_external_fdlibm"/>
<remove-project name="CyanogenMod/android_external_ffmpeg"/>
<remove-project name="CyanogenMod/android_external_flac"/>
<remove-project name="CyanogenMod/android_external_ganymed-ssh2"/>
<remove-project name="CyanogenMod/android_external_giflib"/>
<remove-project name="CyanogenMod/android_external_google"/>
<remove-project name="CyanogenMod/android_external_google-diff-match-patch"/>
<remove-project name="CyanogenMod/android_external_grub"/>
<remove-project name="CyanogenMod/android_external_gson"/>
<remove-project name="CyanogenMod/android_external_gtest"/>
<remove-project name="CyanogenMod/android_external_guava"/>
<remove-project name="CyanogenMod/android_external_hamcrest"/>
<remove-project name="CyanogenMod/android_external_harfbuzz"/>
<remove-project name="platform/external/harfbuzz_ng"/>
<remove-project name="CyanogenMod/android_external_heimdall"/>
<remove-project name="CyanogenMod/android_external_htop"/>
<remove-project name="CyanogenMod/android_external_hyphenation"/>
<remove-project name="CyanogenMod/android_external_icu4c"/>
<remove-project name="CyanogenMod/android_external_iproute2"/>
<remove-project name="CyanogenMod/android_external_ipsec-tools"/>
<remove-project name="CyanogenMod/android_external_iptables"/>
<remove-project name="platform/external/iputils"/>
<remove-project name="CyanogenMod/android_external_jack"/>
<remove-project name="CyanogenMod/android_external_JakeWharton_butterknife"/>
<remove-project name="CyanogenMod/android_external_javasqlite"/>
<remove-project name="CyanogenMod/android_external_javassist"/>
<remove-project name="CyanogenMod/android_external_jdiff"/>
<remove-project name="CyanogenMod/android_external_jhead"/>
<remove-project name="CyanogenMod/android_external_jmdns"/>
<remove-project name="CyanogenMod/android_external_jmonkeyengine"/>
<remove-project name="CyanogenMod/android_external_jsilver"/>
<remove-project name="CyanogenMod/android_external_jsr305"/>
<remove-project name="CyanogenMod/android_external_jsr308"/>
<remove-project name="CyanogenMod/android_external_jsr330"/>
<remove-project name="CyanogenMod/android_external_junit"/>
<remove-project name="CyanogenMod/android_external_kernel-headers"/>
<remove-project name="CyanogenMod/android_external_kissfft"/>
<remove-project name="CyanogenMod/ion"/>
<remove-project name="CyanogenMod/AndroidAsync"/>
<remove-project name="CyanogenMod/Widgets"/>
<remove-project name="CyanogenMod/android_external_libcap-ng"/>
<remove-project name="platform/external/libexif"/>
<remove-project name="CyanogenMod/android_external_libffi"/>
<remove-project name="CyanogenMod/android_external_libgsm"/>
<remove-project name="CyanogenMod/android_external_liblzf"/>
<remove-project name="CyanogenMod/android_external_libmtp"/>
<remove-project name="CyanogenMod/android_external_libncurses"/>
<remove-project name="CyanogenMod/android_external_libnfc-nci"/>
<remove-project name="CyanogenMod/android_external_libnfc-nxp"/>
<remove-project name="CyanogenMod/android_external_libnl-headers"/>
<remove-project name="CyanogenMod/android_external_libogg"/>
<remove-project name="CyanogenMod/android_external_libpcap"/>
<remove-project name="CyanogenMod/android_external_libphonenumber"/>
<remove-project name="CyanogenMod/android_external_libphonenumbergoogle"/>
<remove-project name="CyanogenMod/android_external_libppp"/>
<remove-project name="CyanogenMod/android_external_libtruezip"/>
<remove-project name="CyanogenMod/android_external_libusb"/>
<remove-project name="CyanogenMod/android_external_libusbx"/>
<remove-project name="CyanogenMod/android_external_libusb-compat"/>
<remove-project name="platform/external/libssh2"/>
<remove-project name="CyanogenMod/android_external_libvorbis"/>
<remove-project name="CyanogenMod/android_external_libvpx"/>
<remove-project name="CyanogenMod/android_external_libxml2"/>
<remove-project name="CyanogenMod/android_external_libxslt"/>
<remove-project name="CyanogenMod/android_external_libyuv"/>
<remove-project name="CyanogenMod/android_external_linux-tools-perf"/>
<remove-project name="CyanogenMod/android_external_littlemock"/>
<remove-project name="platform/external/lzma"/>
<remove-project name="CyanogenMod/android_external_lsof"/>
<remove-project name="CyanogenMod/android_external_lzo"/>
<remove-project name="platform/external/marisa-trie"/>
<remove-project name="CyanogenMod/android_external_markdown"/>
<remove-project name="CyanogenMod/android_external_mdnsresponder"/>
<remove-project name="platform/external/mesa3d"/>
<remove-project name="CyanogenMod/android_external_mksh"/>
<remove-project name="platform/external/mockito"/>
<remove-project name="CyanogenMod/android_external_mockwebserver"/>
<remove-project name="CyanogenMod/android_external_mp4parser"/>
<remove-project name="CyanogenMod/android_external_mtpd"/>
<remove-project name="CyanogenMod/android_external_nano"/>
<remove-project name="CyanogenMod/android_external_naver-fonts"/>
<remove-project name="CyanogenMod/android_external_netcat"/>
<remove-project name="CyanogenMod/android_external_netperf"/>
<remove-project name="CyanogenMod/android_external_neven"/>
<remove-project name="platform/external/nist-pkits"/>
<remove-project name="CyanogenMod/android_external_nist-sip"/>
<remove-project name="platform/external/noto-fonts"/>
<remove-project name="CyanogenMod/android_external_oauth"/>
<remove-project name="platform/external/objenesis"/>
<remove-project name="CyanogenMod/android_external_okhttp"/>
<remove-project name="platform/external/open-vcdiff"/>
<remove-project name="CyanogenMod/android_external_opencv"/>
<remove-project name="CyanogenMod/android_external_openfst"/>
<remove-project name="CyanogenMod/android_external_openssh"/>
<remove-project name="CyanogenMod/android_external_oprofile"/>
<remove-project name="CyanogenMod/android_external_pciutils"/>
<remove-project name="platform/external/pixman"/>
<remove-project name="CyanogenMod/android_external_powertop"/>
<remove-project name="CyanogenMod/android_external_ppp"/>
<remove-project name="CyanogenMod/android_external_proguard"/>
<remove-project name="CyanogenMod/android_external_protobuf"/>
<remove-project name="CyanogenMod/android_external_protobuf-c"/>
<remove-project name="CyanogenMod/android_external_qemu"/>
<remove-project name="CyanogenMod/android_external_qemu-pc-bios"/>
<remove-project name="CyanogenMod/android_external_qrngd"/>
<remove-project name="CyanogenMod/android_external_regex-re2"/>
<remove-project name="CyanogenMod/android_external_replicaisland"/>
<remove-project name="platform/external/robolectric"/>
<remove-project name="CyanogenMod/android_external_rsync"/>
<remove-project name="platform/external/sfntly"/>
<remove-project name="platform/external/sil-fonts"/>
<remove-project name="CyanogenMod/android_external_skia"/>
<remove-project name="platform/external/smack"/>
<remove-project name="CyanogenMod/android_external_smali"/>
<remove-project name="CyanogenMod/android_external_sonivox"/>
<remove-project name="CyanogenMod/android_external_speex"/>
<remove-project name="CyanogenMod/android_external_spongycastle"/>
<remove-project name="CyanogenMod/android_external_square_dagger"/>
<remove-project name="CyanogenMod/android_external_square_javawriter"/>
<remove-project name="CyanogenMod/android_external_srec"/>
<remove-project name="CyanogenMod/android_external_srtp"/>
<remove-project name="CyanogenMod/android_external_stagefright-plugins"/>
<remove-project name="CyanogenMod/android_external_strace"/>
<remove-project name="CyanogenMod/android_external_stressapptest"/>
<remove-project name="platform/external/svox"/>
<remove-project name="CyanogenMod/android_external_tagsoup"/>
<remove-project name="CyanogenMod/android_external_tcpdump"/>
<remove-project name="platform/external/timezonepicker-support"/>
<remove-project name="CyanogenMod/android_external_tinyalsa"/>
<remove-project name="CyanogenMod/android_external_tinycompress"/>
<remove-project name="CyanogenMod/android_external_tinyxml"/>
<remove-project name="CyanogenMod/android_external_tinyxml2"/>
<remove-project name="CyanogenMod/android_external_tremolo"/>
<remove-project name="CyanogenMod/android_external_unrar"/>
<remove-project name="CyanogenMod/android_external_v8"/>
<remove-project name="CyanogenMod/android_external_valgrind"/>
<remove-project name="CyanogenMod/android_external_vim"/>
<remove-project name="CyanogenMod/android_external_webp"/>
<remove-project name="CyanogenMod/android_external_webrtc"/>
<remove-project name="CyanogenMod/android_external_whispersystems_TextSecure"/>
<remove-project name="CyanogenMod/android_external_whispersystems_WhisperPush"/>
<remove-project name="CyanogenMod/android_external_wpa_supplicant_8"/>
<remove-project name="CyanogenMod/android_external_wpa_supplicant_8_ti"/>
<remove-project name="CyanogenMod/android_external_xmlwriter"/>
<remove-project name="CyanogenMod/android_external_xmp_toolkit"/>
<remove-project name="CyanogenMod/android_external_zip"/>
<remove-project name="CyanogenMod/android_external_zxing"/>
<remove-project name="CyanogenMod/android_frameworks_av"/>
<remove-project name="CyanogenMod/android_frameworks_base"/>
<remove-project name="CyanogenMod/android_frameworks_compile_libbcc"/>
<remove-project name="CyanogenMod/android_frameworks_compile_mclinker"/>
<remove-project name="CyanogenMod/android_frameworks_compile_slang"/>
<remove-project name="CyanogenMod/android_frameworks_ex"/>
<remove-project name="CyanogenMod/android_frameworks_mff"/>
<remove-project name="CyanogenMod/android_frameworks_ml"/>
<remove-project name="CyanogenMod/android_frameworks_opt_calendar"/>
<remove-project name="CyanogenMod/android_frameworks_opt_carddav"/>
<remove-project name="CyanogenMod/android_frameworks_opt_colorpicker"/>
<remove-project name="CyanogenMod/android_frameworks_opt_datetimepicker"/>
<remove-project name="CyanogenMod/android_frameworks_opt_emoji"/>
<remove-project name="CyanogenMod/android_frameworks_opt_hardware"/>
<remove-project name="CyanogenMod/android_frameworks_opt_inputmethodcommon"/>
<remove-project name="CyanogenMod/android_frameworks_opt_mailcommon"/>
<remove-project name="CyanogenMod/android_frameworks_opt_mms"/>
<remove-project name="CyanogenMod/android_frameworks_opt_net_voip"/>
<remove-project name="CyanogenMod/android_frameworks_opt_photoviewer"/>
<remove-project name="CyanogenMod/android_frameworks_opt_timezonepicker"/>
<remove-project name="CyanogenMod/android_frameworks_opt_telephony"/>
<remove-project name="CyanogenMod/android_frameworks_opt_telephony-msim"/>
<remove-project name="CyanogenMod/android_frameworks_opt_vcard"/>
<remove-project name="platform/frameworks/opt/widget"/>
<remove-project name="CyanogenMod/android_frameworks_rs"/>
<remove-project name="CyanogenMod/android_frameworks_support"/>
<remove-project name="CyanogenMod/android_frameworks_testing"/>
<remove-project name="CyanogenMod/android_frameworks_volley"/>
<remove-project name="CyanogenMod/android_frameworks_webview"/>
<remove-project name="CyanogenMod/android_frameworks_wilhelm"/>
<remove-project name="CyanogenMod/android_hardware_akm"/>
<remove-project name="CyanogenMod/android_hardware_broadcom_libbt"/>
<remove-project name="CyanogenMod/android_hardware_broadcom_wlan"/>
<remove-project name="CyanogenMod/android_hardware_cm"/>
<remove-project name="CyanogenMod/android_hardware_invensense"/>
<remove-project name="CyanogenMod/android_hardware_qcom_audio"/>
<remove-project name="CyanogenMod/android_hardware_qcom_audio-caf"/>
<remove-project name="CyanogenMod/android_hardware_qcom_bt"/>
<remove-project name="CyanogenMod/android_hardware_qcom_camera"/>
<remove-project name="CyanogenMod/android_hardware_qcom_display"/>
<remove-project name="CyanogenMod/android_hardware_qcom_display-caf"/>
<remove-project name="CyanogenMod/android_hardware_qcom_gps"/>
<remove-project name="CyanogenMod/android_hardware_qcom_keymaster"/>
<remove-project name="CyanogenMod/android_hardware_qcom_media"/>
<remove-project name="CyanogenMod/android_hardware_qcom_media-caf"/>
<remove-project name="CyanogenMod/android_hardware_qcom_msm8960"/>
<remove-project name="CyanogenMod/android_hardware_qcom_msm8x74"/>
<remove-project name="CyanogenMod/android_hardware_qcom_power"/>
<remove-project name="CyanogenMod/android_hardware_qcom_sensors"/>
<remove-project name="CyanogenMod/android_hardware_qcom_wlan"/>
<remove-project name="CyanogenMod/android_hardware_ril"/>
<remove-project name="CyanogenMod/android_hardware_samsung_slsi_exynos5"/>
<remove-project name="CyanogenMod/android_hardware_ti_omap3"/>
<remove-project name="CyanogenMod/android_hardware_ti_omap4xxx"/>
<remove-project name="CyanogenMod/android_hardware_ti_wlan"/>
<remove-project name="CyanogenMod/android_hardware_ti_wpan"/>
<remove-project name="CyanogenMod/android_libcore"/>
<remove-project name="CyanogenMod/android_libnativehelper"/>
<remove-project name="platform/ndk"/>
<remove-project name="CyanogenMod/android_packages_apps_Apollo"/>
<remove-project name="CyanogenMod/android_packages_apps_BasicSmsReceiver"/>
<remove-project name="CyanogenMod/android_packages_apps_Bluetooth"/>
<remove-project name="CyanogenMod/android_packages_apps_BluetoothExt"/>
<remove-project name="CyanogenMod/android_packages_apps_Browser"/>
<remove-project name="CyanogenMod/android_packages_apps_Calculator"/>
<remove-project name="CyanogenMod/android_packages_apps_Calendar"/>
<remove-project name="CyanogenMod/android_packages_apps_Camera2"/>
<remove-project name="CyanogenMod/android_packages_apps_CellBroadcastReceiver"/>
<remove-project name="CyanogenMod/android_packages_apps_CertInstaller"/>
<remove-project name="CyanogenMod/android_packages_apps_CMAccount"/>
<remove-project name="CyanogenMod/android_packages_apps_CMBugreport"/>
<remove-project name="CyanogenMod/android_packages_apps_CMFileManager"/>
<remove-project name="CyanogenMod/android_packages_apps_CMHome"/>
<remove-project name="CyanogenMod/android_packages_apps_CMUpdater"/>
<remove-project name="CyanogenMod/android_packages_apps_CMWallpapers"/>
<remove-project name="CyanogenMod/android_packages_apps_Contacts"/>
<remove-project name="CyanogenMod/android_packages_apps_ContactsCommon"/>
<remove-project name="CyanogenMod/android_packages_apps_DeskClock"/>
<remove-project name="CyanogenMod/android_packages_apps_Dialer"/>
<remove-project name="CyanogenMod/android_packages_apps_DSPManager"/>
<remove-project name="CyanogenMod/android_packages_apps_Email"/>
<remove-project name="CyanogenMod/android_packages_apps_Exchange"/>
<remove-project name="CyanogenMod/android_packages_apps_Gallery2"/>
<remove-project name="CyanogenMod/android_packages_apps_HTMLViewer"/>
<remove-project name="CyanogenMod/android_packages_apps_InCallUI"/>
<remove-project name="CyanogenMod/android_packages_apps_KeyChain"/>
<remove-project name="CyanogenMod/android_packages_apps_LockClock"/>
<remove-project name="CyanogenMod/android_packages_apps_Mms-caf"/>
<remove-project name="CyanogenMod/android_packages_apps_Nfc"/>
<remove-project name="platform/packages/apps/OneTimeInitializer"/>
<remove-project name="CyanogenMod/android_packages_apps_PackageInstaller"/>
<remove-project name="CyanogenMod/android_packages_apps_PhoneCommon"/>
<remove-project name="CyanogenMod/android_packages_apps_Provision"/>
<remove-project name="CyanogenMod/android_packages_apps_Settings"/>
<remove-project name="CyanogenMod/android_packages_apps_SmartCardService"/>
<remove-project name="CyanogenMod/android_packages_apps_SoundRecorder"/>
<remove-project name="CyanogenMod/android_packages_apps_SpeechRecorder"/>
<remove-project name="CyanogenMod/android_packages_apps_Stk"/>
<remove-project name="CyanogenMod/android_packages_apps_Tag"/>
<remove-project name="CyanogenMod/android_packages_apps_ThemeChooser"/>
<remove-project name="CyanogenMod/android_packages_apps_Torch"/>
<remove-project name="CyanogenMod/android_packages_apps_Trebuchet"/>
<remove-project name="CyanogenMod/android_packages_apps_UnifiedEmail"/>
<remove-project name="CyanogenMod/android_packages_apps_VideoEditor"/>
<remove-project name="CyanogenMod/android_packages_apps_VoiceDialer"/>
<remove-project name="CyanogenMod/android_packages_apps_VoicePlus"/>
<remove-project name="CyanogenMod/android_packages_experimental"/>
<remove-project name="CyanogenMod/android_packages_inputmethods_LatinIME"/>
<remove-project name="CyanogenMod/android_packages_inputmethods_OpenWnn"/>
<remove-project name="CyanogenMod/android_packages_inputmethods_PinyinIME"/>
<remove-project name="CyanogenMod/android_packages_providers_ApplicationsProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_CalendarProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_ContactsProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_DownloadProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_MediaProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_PartnerBookmarksProvide r"/>
<remove-project name="CyanogenMod/android_packages_providers_TelephonyProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_ThemesProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_UserDictionaryProvider"/>
<remove-project name="CyanogenMod/android_packages_screensavers_Basic"/>
<remove-project name="CyanogenMod/android_packages_screensavers_PhotoTable"/>
<remove-project name="CyanogenMod/android_packages_screensavers_WebView"/>
<remove-project name="CyanogenMod/android_packages_services_Telephony"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_Basic"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_Galaxy4"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_HoloSpiral"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_LivePicker"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_MagicSmoke"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_MusicVisualization"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_NoiseField"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_PhaseBeam"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_PhotoPhase"/>
<remove-project name="platform/pdk"/>
<remove-project name="CyanogenMod/android_prebuilt"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/3.1"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/3.2"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/arm/3.3"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/host/3.3"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/mips/3.3"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/x86/3.3"/>
<remove-project name="platform/prebuilts/clang/linux-x86/3.1"/>
<remove-project name="platform/prebuilts/clang/linux-x86/3.2"/>
<remove-project name="platform/prebuilts/clang/linux-x86/arm/3.3"/>
<remove-project name="platform/prebuilts/clang/linux-x86/host/3.3"/>
<remove-project name="platform/prebuilts/clang/linux-x86/mips/3.3"/>
<remove-project name="platform/prebuilts/clang/linux-x86/x86/3.3"/>
<remove-project name="platform/prebuilts/devtools"/>
<remove-project name="platform/prebuilts/eclipse"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.7"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.7"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.7"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/host/headers"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.7"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.7"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.4.3"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.7"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.6"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7"/>
<remove-project name="platform/prebuilts/python/darwin-x86/2.7.5"/>
<remove-project name="platform/prebuilts/python/linux-x86/2.7.5"/>
<remove-project name="platform/prebuilts/qemu-kernel"/>
<remove-project name="platform/prebuilts/runtime"/>
<remove-project name="platform/prebuilts/tools"/>
<remove-project name="CyanogenMod/android_system_media"/>
<remove-project name="CyanogenMod/android_system_netd"/>
<remove-project name="CyanogenMod/android_system_qcom"/>
<remove-project name="CyanogenMod/android_system_security"/>
<remove-project name="platform/tools/adt/eclipse"/>
<remove-project name="platform/tools/adt/idea"/>
<remove-project name="platform/tools/base"/>
<remove-project name="platform/tools/build"/>
<remove-project name="platform/tools/emulator"/>
<remove-project name="platform/tools/external/fat32lib"/>
<remove-project name="platform/tools/external/gradle"/>
<remove-project name="platform/tools/idea"/>
<remove-project name="platform/tools/studio/cloud"/>
<remove-project name="platform/tools/swt"/>
<remove-project name="cyngn/android_vendor_cyngn"/>
<project name="CyanogenMod/android_bootable_recovery" revision="cm-11.0" path="../recoveryCWM"/>
<project name="PhilZ-cwm6/philz_touch_cwm6" revision="cm-11.0" path="../recoveryPhilz"/>
<project name="omnirom/android_bootable_recovery" revision="android-4.4" path="../recoveryTWRP"/>
<project name="ProjectOpenCannibal/android_bootable_recovery-cm" revision="cm-11.0-dev" path="../recoveryCOT"/>
</manifest>
Si os habéis fijado solo he remarcado 4 líneas ( en rojo ), son las que se deben eliminar menos 1, que sera la base para hacer el kernel que seleccionemos, siendo cada uno para usar alguna de las versiones para una Rom Kit-Kat ( lo remarcado en negrita es la rama que usaremos de cada kernel base ), y donde indica proyect name, es el proyecto base del que sale la base del kernel real, lo demás son cosas necesarias que se añaden al kernel, y donde indica path es el nombre con el que distinguermos el kernel por su base al compilarlo, ya que no debemos confundirnos en ello si pretendemos desarrollar correctamente el kernel, no sea que tomenos por error unas características para mejorarlo, y usemos la base incorrecta, pudiendo producir errores en su funcionamiento al estár mal configurado por nuestra parte en ese caso.
Y tenemos ahora 2 ramas para usar según la Rom a la que este destinado nuestro kernel.
Android 4.4:
CyanogenMod para Android 4.4 CWM 6.0.4.2-6.0.5.1
Omni para Android 4.4 TWRP 2.5.1.0-2.8.1.0
Philz Touch Advanced cwm6 para Android 4.4 Philz 6.0.0-6.59.3
Proyect Open Cannibal para Android 4.4 CTO ¿?-¿?
Y Android 5.0:
CyanogenMod para Android 5.0 CWM 6.0.5.0-6.0.5.1
Omni para Android 5.0 TWRP 2.8.0.0-2.8.3.0
Philz Touch Advanced cwm6 para Android 5.0 Philz 6.48.4-6.59.3
Proyect Open Cannibal para Android 5.0 CTO ¿?-¿?
Ya seleccionada la rama y kernel base que vamos a usar debemos dejar la carpeta manifest_local y archivos manifest_local.xml colocada justo dentro de la carpeta .repo, para que tome esos datos como validos y nos descargue lo no seleccionado, y la base del kernel que hemos indicado al final del manifest_local.xml.
Tras esto se debe hacer hacer la sincronización con la Repo, para descargarlo, ya que todavía estamos en esto:
$ repo sync
Esto según la línea a internet puede tardar más o menos, recordar que se descargara mucho más de lo que realmente se crea, ya que se descarga puro y es más pesado que compilado, pero al ser sobre los 2 Gigas lo que debe descargarse si tenemos una buena conexión de fibra en menos que un café lo tendremos sincronizado en nuestro pc para empezar a compilar, pero solo tras meter la base del recovery/kernel de nuestro dispositivo, ya que solo hemos descargado lo básico para motarlo para el dispositivo seleccionado, pero al no estar todavía nuestro kernel no se puede compilar ninguno funcional.
Seguimos en el 2º post
Agradecimientos a:
luisetex84 (http://www.htcmania.com/member.php?u=1151665) por su ayuda para ir realizando los pasos he iniciarme con su ayuda
A lo hilos en los que me he ido guiando para hacer este tutorial:
[DEV]How to compile TWRP touch recovery (http://forum.xda-developers.com/showthread.php?t=1943625)
[GUIDE] How to compile PhilZ Touch 6 Recovery for ARM android devices using BBQLinux (http://forum.xda-developers.com/android/development/huide-how-to-compile-philz-touch-6-t2862706)
NECESIDADES BÁSICAS PARA SEGUIR ESTE TUTORIAL
- Empezamos con la necesidad de usar un pc con Linux desde Ubuntu 12.04-14.10,Linux Mint 13-17.1, ambas en su versión 64 bit's.
- Tener una CPU de 64 bit's, si es de 32 bit's no podremos hacer nada igual o superior a Android 4.0 - IceCreamSandwich.
- Suficiente memoria y CPU, o se ralentizaran la compilaciones de kernel's o futuras Rom's. - Bueno se puede usar algo inferior, ya que yo empecé con un Celeron T-1600 64 bit's y 4 GB's de RAM DDR-667-800MHz ( es que cada una tiene una velocidad máxima, jeje ).
- 2 Discos Duros ( preferiblemente si el principal es SSD mejor por la velocidad ), para volvar siempre un repositorio o toda la carpeta al 2º HDD, por si vamos a probar muchos cambios, y no recordamos que hemos hecho poder restaurar la copia desde el 2º HDD.
- Tener ganas de poder cargarte el sistema de arranque de Linux, o archivos que no os indique y toque reinstalar Linux, por ese detalle algunos recomiendan empezar desde un Sistema Operativo Virtual, para no perder nada, ya que puede que tengamos que usar nuevamente la instalación desde USB/CD/DVD para reinstalar el Grub para si es necesario y restaurar una versión anterior a los cambios que nos den problemas, aunque yo mismo he ido a saco con mi usuario Root, y sin copia, con las bragas bajadas para que lleguen por todos los lados, que me gusta hacerla limpia, jeje.
PREPARACIÓN DEL ENTORNO
Bueno lo primero es que se debe preparar nuestro Linux para poder hacer cualquier cosa, ya que se deben manejar varias cosas o necesitar de ellas para compilar/descompilar, y en este Hilo de xda-developers da un inicio [/url], añadiré los detalles exactos.
Empezamos con el Terminal:
Instalamos el JDK:
$ sudo apt-get update
Y:
$ sudo apt-get install openjdk-7-jdk
Seguimos con la instalación de paquetes necesarios para trabajar con las herramientas que usaremos más adelante ( ejemplo las del Github, ya que necesitamos por ejemplo python, o no podriamos usarlo ):
$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
Y también ejecutamos:
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
El especifico para Ubuntu 14.04 o Linux Mint 17:
$ sudo apt-get install bison g++-multilib git gperf libxml2-utils
Configuramos el acceso usb ADB:
Gracias a luisete por los detalles ya que no los conocía, y solo lo he preparado apenas sustituyendo imágenes por palabras, para no perderse nunca ante caídas de las imágenes, y este es otro aporte suyo solo añadido en orden al hilo que nos conciñe/atañe. Así que nuevamente gracias a él, que nos da los detalles para ir haciendo crecer este hilo/tutorial/historia de mi propio inicio en la misma cocina desde 0.
1. Si no lo hemos hecho antes, ejecutamos en la Terminal:
$ adb devices
Esto es para iniciar el demonio de adb. En la raíz del nuestro sistema de archivos se creara la carpeta .android ( estara oculta, ya que eso hace el que tenga el punto delante, por eso se debe tener activado que podamos ver archivos y carpetas ocultas o no la veremos ), si no existía ya.
El problema que no te reconozca el dispositivo ( tablet, móvil, etc,... ) es que Linux no sabe el id del fabricante. Así que vamos a obtenerlo.
2. Sin conectar la tablet al pc ejecutamos:
$ adb devices
Y nos debería aparecer debajo esto
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
Podemos seguir con la comprobación de la conexión usb que hay en ese momento activa:
$ lsusb
Dandonos una respuesta de este estilo:
Bus 002 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 002: ID 8087:07dc Intel Corp.
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 0408:13ba Quanta Computer, Inc.
Bus 001 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Ahora ya conectamos el cable USB al pc y al dispositivo, y volvemos a ejecutarlo para comprobar la nueva entrada que nos debe aparecer ( la he remarcado para que lo notéis mejor ):
$ lsusb
Esta vez con otra respuesta que cambiaría en la 1ª línea:
Bus 002 Device 004: ID 2a47:2008
Bus 002 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 002: ID 8087:07dc Intel Corp.
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 0408:13ba Quanta Computer, Inc.
Bus 001 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Comparamos el resultado con el anterior resultado y debemos buscar ese nuevo dispositivo, que sera el nuestro ( tablet, móvil, etc,... ). Ahora apuntamos los 4 dígitos que salen detrás de ID y antes de los dos puntos, el remarcado en rojo es un ejemplo ( que en realidad es el de BQ ). Este es el idVendor.
3. En la raíz del nuestro sistema de archivos se creara la carpeta .android, busca el fichero adb_usb.ini. Se debe añadir el idVendor al fichero. Si no existiera, crealo y añade esto:
0x{idVendor}
- Siguiendo el ejemplo sería:
0x0bb4
4. Matamos ahora el demonio de adb ( esto es para que al volver a iniciarlo nos coja la nueva configuración ):
adb kill-server
5. Ahora volvemos a iniciar el demonio de adb
adb devices
Ya para más adelante sería aprender estos, que es para hacer ramas en nuestra carpeta, pero lo dejo para más adelante, ya que primero tenéis que probar a hacer una, y ya después tendremos tiempo para hacerlo, ya que sino sabemos con una rama no es cosa de crear varias si podemos querer borrar algo sino nos parece correcto, o queremos hacer solo pruebas con un solo kernel y una única variante. Aunque se pueden hacer ramas para crear varias versiones del mismo kernel para ver que cosa funciona o no según como se haga y no tener que pensar en que se hace y que se nos olvido, sino hacer directamente multiples ramas y probar cada una , ejemplo añadir cosas de otras CPU's y querer probar varias funentes con distintas opciones, así no perdemos tanto tiempo si encontramos una funcional, y al probar otra no recordamos la que era, así nunca se nos debe olvidar nombrar cada una con algún nombre que no nos olvide que la caracteriza.
Pendiente de traducir, ya que añado lo de la página indicada de donde saco la información:
Por defecto, la salida de cada build/generación se almacena en la salida/out/subdirectorio del árbol de código fuente correspondiente.
En algunas máquinas con múltiples dispositivos de almacenamiento ( HDD's, SSD's ), las build's/construcciones son más rápidas cuando se almacenan los archivos de origen y la salida de volúmenes separados. Para obtener un rendimiento adicional, la salida se puede almacenar en un sistema de archivos optimizado para la velocidad ( SSD's ) en lugar de robustez ante accidentes, ya que todos los archivos se pueden volver a generarse en caso de corrupción del sistema de archivos en un menor tiempo que con un HDD.
Para configurar esto, exporte la variable OUT_DIR_COMMON_BASE para apuntar a la ubicación donde se almacenarán los directorios de salida.
$ export OUT_DIR_COMMON_BASE=<indicar_el_nombre_de_nuestro_directorio>
El directorio de salida para cada fuente del árbol fuente será nombrado independiente después del directorio que contiene el árbol de origen.
Por ejemplo, si usted tiene dintintas fuentes de árboles como /source/master1 y /source/master2 y OUT_DIR_COMMON_BASE se establece en /output, los directorios de salida serán /output/master1 y /output/master2.
Es importante en este caso al no tener varios orígenes de árboles almacenados en directorios que tienen el mismo nombre, porque los que terminarían compartiendo un directorio de salida, con resultados impredecibles.
Esto sólo se admite en Jelly Bean (4.1) y más recientes, incluyendo la rama principal.
PREPARANDO UN REPOSITORIO
Es algo tan sencillo ( indicado por luisetex84 nuevamente este detalle ) en Ubuntu 14.04-14.10 y Linux Mint 17-17.1 como ejecutar este comando en la Terminal:
$ sudo apt-get install phablet-tools tclsh
Seguimos con unos recomandables:
$ sudo apt-get install bzr-doc bzrtools python-bzrlib.tests python-bzrlib-dbg python-kerberos
Y otros más:
$ sudo apt-get install python-gpgme click-apparmor upstart-app-launch-tools pybootchartgui
Esto otro es lo que había que hacerlo antiguamente, cuando no existía ningún paquete que contuviera el comando repo. Si nos da fallo la anterior ejecución en la Terminal nos tocaría hacer esto otro para poder continuar:
Revisamos que tenemos el directorio bin/ en la raíz de nuestro pc, o lo creamos así ( nada más abrir la Terminal, no cambiamos de directorio ):
$ mkdir ~/bin
Y:
$ PATH=~/bin:$PATH
Ya de paso recordar que mkdir es para crear carpetas u otro tipo de archivos, pero con sus correspondientes variantes, ya que mk es para crear, y dir especifica que es un directorio/carpeta.
Descargamos la tool/herramienta de la Repo y nos aseguramos de que sea ejecutable:
$ curl [url]https://storage.googleapis.com/git-repo-downloads/repo (https://source.android.com/source/initializing.html) > ~/bin/repo
Y:
$ chmod a+x ~/bin/repo
Para la versión 1.17, el cheksum SHA-1 del Repo es ddd79b6d5a7807e911b524cb223bc3544b661c28
Para la versión 1.19, el cheksum SHA-1 del Repo es 92cbad8c880f697b58ed83e348d06619f8098e6c
Para la versión 1.20, el cheksum SHA-1 del Repo es e197cb48ff4ddda4d11f23940d316e323b29671c
Para la versión 1.21, el cheksum SHA-1 del Repo es b8bd1804f432ecf1bab730949c82b93b0fc5fede
Ahora es hora ya de crear la carpeta que usaremos para tener el/los repositorio/s que vamos a usar, la crearemos en la raíz del sistema ( /home/usuario ), y ya dependerá del nombre que se nos antoje, yo personalmente le di el nombre de android para reconocerla al principio al abrir el acceso al sistema de archivos. Recordar que si van a ser carpetas con nombres con más de una palabra deben ser unidas con _ en cada espacio que se le quiera añadir, ya que sino solo crearas varias carpetas cada una con su nombre respectivo. La 2ª línea es para acceder a la carpeta creada ya que desde ella que aremos todo la sincronización.
$ mkdir nuestro_directorio
Y:
$ cd nuestro_directorio
Ejecutamos el init repo para descargar la última versión del Repo con todas sus más recientes correcciones de errores. Debe especificar una dirección URL para el manifiesto, que especifica si los diferentes repositorios incluidos en la fuente a descargar de Android será colocado dentro de su directorio de trabajo. Y tenemos varias opciones según la fuente que usemos:
Repositorio de google:
$ repo init -u git://android.googlesource.com/platform/manifest
Repositorio de CyanogenMod 11.0:
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
Repositorio de CyanogenMod 12.0:
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-12.0
Repositorio de Omni 4.4:
$ repo init -u git://github.com/omnirom/android_bootable_recovery.git -b android-4.4
Repositorio de Omni 5.0:
$ repo init -u git://github.com/omnirom/android_bootable_recovery.git -b android-5.0
Todo esto tardara según la conexión que tengamos, pero pueden ser solo unos segundos o apenas 5 minutos, ya que son sobre los 5 MegaBytes en la Repo CyanogenMod.
Si fallasen las descargas de los repositorios para descargar por firmas, se soluciona saltando el uso del acceso por git://github usando este otro acceso https://github, quedando las 5 opciones anteriores así:
Repositorio de google:
$ repo init -u https://android.googlesource.com/platform/manifest
Repositorio de CyanogenMod 11.0:
$ repo init -u https://github.com/CyanogenMod/android.git -b cm-11.0
Repositorio de CyanogenMod 12.0:
$ repo init -u https://github.com/CyanogenMod/android.git -b cm-12.0
Repositorio de Omni 4.4:
$ repo init -u https://github.com/omnirom/android_bootable_recovery.git -b android-4.4
Repositorio de Omni 5.0:
$ repo init -u https://github.com/omnirom/android_bootable_recovery.git -b android-5.0
DESCARGANDO UN REPOSITORIO SOLO PARA EL KERNEL
El manifest_local.xml es gracias al esfuerzo y trabajo de luisetext84, yo solo lo comprarto como base para enseñaros las diferencias lo más básicamente posible para que lo entendamos todos desde el principio lo que cambia si partimos del mismo repositorio, en el ejemplo es para usar el repositorio de CyanogenMod con el que hacer 4 kernel's distintos
Tenemos que usar el Terminal en su principio, para instalar/crear/descargar la mayoría de las cosas. Aquí un ejemplo actual ( 14 de Enero de 2015 ) del manifest_local.xml creado por lusetex84, para usarlo tanto para CWM, TRWP, Philz y CTO según para que versión Android sean y su tamaño al estar descargados ( os aviso que solo el hacer la descarga se come al menos unas 7-9 veces lo ocupado, ya que lo he comprobado mientras se descargaban todos ).
Si no existe, creamos el fichero en nuestro_directorio/.repo/local_manifests/local_manifest.xml con uno de estos contenidos para bajar el código según que versión/base de kernel queramos usar, diferenciandose solo en la líneas finales que ponen el nombre a los kernel's no llamados CyanogenMod, ya que ese al ser usado no se le indica nombre, o daría error por multiple nombrado en 3 archivos, siendo el error del manifest_local nuestro si le indicamos nombre al CWM, los demás no tendrán ese problema, ya que todos necesitan el nombrado especifico si deseamos recordar que base para el kernel hemos seleccionado.
<?xml version="1.0" encoding="UTF-8"?>
-<manifest>
<remove-project name="CyanogenMod/android"/>
<remove-project name="CyanogenMod/android_abi_cpp"/>
<remove-project name="CyanogenMod/android_art"/>
<remove-project name="CyanogenMod/android_bootable_diskinstaller"/>
<remove-project name="CyanogenMod/android_bootable_recovery"/>
<remove-project name="CyanogenMod/android_bootable_recovery-cm"/>
<remove-project name="platform/cts"/>
<remove-project name="CyanogenMod/android_dalvik"/>
<remove-project name="platform/developers/build"/>
<remove-project name="platform/developers/demos"/>
<remove-project name="platform/developers/docs"/>
<remove-project name="platform/developers/samples/android"/>
<remove-project name="CyanogenMod/android_development"/>
<remove-project name="CyanogenMod/android_device_common"/>
<remove-project name="CyanogenMod/android_device_generic_armv7-a-neon"/>
<remove-project name="CyanogenMod/android_device_generic_common"/>
<remove-project name="CyanogenMod/android_device_generic_mips"/>
<remove-project name="CyanogenMod/android_device_generic_x86"/>
<remove-project name="device/generic/mini-emulator-armv7-a-neon"/>
<remove-project name="device/generic/mini-emulator-mips"/>
<remove-project name="device/generic/mini-emulator-x86"/>
<remove-project name="CyanogenMod/android_device_google_accessory_arduino"/>
<remove-project name="CyanogenMod/android_device_google_accessory_demokit"/>
<remove-project name="CyanogenMod/android_device_sample"/>
<remove-project name="platform/docs/source.android.com"/>
<remove-project name="CyanogenMod/android_external_aac"/>
<remove-project name="CyanogenMod/android_external_android-clat"/>
<remove-project name="CyanogenMod/android_external_android-mock"/>
<remove-project name="CyanogenMod/android_external_android-visualizer"/>
<remove-project name="CyanogenMod/android_external_ant-glob"/>
<remove-project name="CyanogenMod/android_external_ant-wireless_ant_native"/>
<remove-project name="CyanogenMod/android_external_ant-wireless_ant_service"/>
<remove-project name="CyanogenMod/android_external_ant-wireless_antradio-library"/>
<remove-project name="CyanogenMod/android_external_antlr"/>
<remove-project name="CyanogenMod/android_external_apache-harmony"/>
<remove-project name="CyanogenMod/android_external_apache-http"/>
<remove-project name="CyanogenMod/android_external_apache-qp"/>
<remove-project name="CyanogenMod/android_external_apache-xml"/>
<remove-project name="CyanogenMod/android_external_arduino"/>
<remove-project name="CyanogenMod/android_external_bash"/>
<remove-project name="CyanogenMod/android_external_blktrace"/>
<remove-project name="CyanogenMod/android_external_bluetooth_bluedroid"/>
<remove-project name="CyanogenMod/android_external_bsdiff"/>
<remove-project name="CyanogenMod/android_external_bson"/>
<remove-project name="CyanogenMod/android_external_cardslib"/>
<remove-project name="platform/external/ceres-solver"/>
<remove-project name="CyanogenMod/android_external_chromium"/>
<remove-project name="platform/external/chromium-libpac"/>
<remove-project name="CyanogenMod/android_external_chromium-trace"/>
<remove-project name="CyanogenMod/android_external_chromium_org"/>
<remove-project name="platform/external/chromium_org/sdch/open-vcdiff"/>
<remove-project name="platform/external/chromium_org/testing/gtest"/>
<remove-project name="platform/external/chromium_org/third_party/WebKit"/>
<remove-project name="platform/external/chromium_org/third_party/angle"/>
<remove-project name="platform/external/chromium_org/third_party/eyesfree/src/android/java/src/com/googlecode/eyesfree/braille"/>
<remove-project name="platform/external/chromium_org/third_party/freetype"/>
<remove-project name="platform/external/chromium_org/third_party/icu"/>
<remove-project name="platform/external/chromium_org/third_party/leveldatabase/src"/>
<remove-project name="platform/external/chromium_org/third_party/libjingle/source/talk"/>
<remove-project name="platform/external/chromium_org/third_party/libphonenumber/src/phonenumbers"/>
<remove-project name="platform/external/chromium_org/third_party/libphonenumber/src/resources"/>
<remove-project name="platform/external/chromium_org/third_party/mesa/src"/>
<remove-project name="CyanogenMod/android_external_chromium_org_third_party_openssl"/>
<remove-project name="platform/external/chromium_org/third_party/opus/src"/>
<remove-project name="platform/external/chromium_org/third_party/ots"/>
<remove-project name="platform/external/chromium_org/third_party/sfntly/cpp/src"/>
<remove-project name="platform/external/chromium_org/third_party/skia/gyp"/>
<remove-project name="platform/external/chromium_org/third_party/skia/include"/>
<remove-project name="platform/external/chromium_org/third_party/skia/src"/>
<remove-project name="platform/external/chromium_org/third_party/smhasher/src"/>
<remove-project name="platform/external/chromium_org/third_party/yasm/source/patched-yasm"/>
<remove-project name="platform/external/chromium_org/tools/grit"/>
<remove-project name="platform/external/chromium_org/tools/gyp"/>
<remove-project name="platform/external/chromium_org/v8"/>
<remove-project name="CyanogenMod/android_external_connectivity"/>
<remove-project name="CyanogenMod/android_external_crda"/>
<remove-project name="CyanogenMod/android_external_curl"/>
<remove-project name="CyanogenMod/android_external_dexmaker"/>
<remove-project name="CyanogenMod/android_external_dhcpcd"/>
<remove-project name="CyanogenMod/android_external_dnsmasq"/>
<remove-project name="CyanogenMod/android_external_doclava"/>
<remove-project name="CyanogenMod/android_external_dropbear"/>
<remove-project name="platform/external/droiddriver"/>
<remove-project name="CyanogenMod/android_external_easymock"/>
<remove-project name="CyanogenMod/android_external_ebtables"/>
<remove-project name="CyanogenMod/android_external_eclipse-basebuilder"/>
<remove-project name="CyanogenMod/android_external_eclipse-windowbuilder"/>
<remove-project name="CyanogenMod/android_external_elfutils"/>
<remove-project name="CyanogenMod/android_external_embunit"/>
<remove-project name="CyanogenMod/android_external_emma"/>
<remove-project name="CyanogenMod/android_external_esd"/>
<remove-project name="CyanogenMod/android_external_expat"/>
<remove-project name="CyanogenMod/android_external_eyes-free"/>
<remove-project name="CyanogenMod/android_external_f2fs-tools"/>
<remove-project name="CyanogenMod/android_external_fdlibm"/>
<remove-project name="CyanogenMod/android_external_ffmpeg"/>
<remove-project name="CyanogenMod/android_external_flac"/>
<remove-project name="CyanogenMod/android_external_ganymed-ssh2"/>
<remove-project name="CyanogenMod/android_external_giflib"/>
<remove-project name="CyanogenMod/android_external_google"/>
<remove-project name="CyanogenMod/android_external_google-diff-match-patch"/>
<remove-project name="CyanogenMod/android_external_grub"/>
<remove-project name="CyanogenMod/android_external_gson"/>
<remove-project name="CyanogenMod/android_external_gtest"/>
<remove-project name="CyanogenMod/android_external_guava"/>
<remove-project name="CyanogenMod/android_external_hamcrest"/>
<remove-project name="CyanogenMod/android_external_harfbuzz"/>
<remove-project name="platform/external/harfbuzz_ng"/>
<remove-project name="CyanogenMod/android_external_heimdall"/>
<remove-project name="CyanogenMod/android_external_htop"/>
<remove-project name="CyanogenMod/android_external_hyphenation"/>
<remove-project name="CyanogenMod/android_external_icu4c"/>
<remove-project name="CyanogenMod/android_external_iproute2"/>
<remove-project name="CyanogenMod/android_external_ipsec-tools"/>
<remove-project name="CyanogenMod/android_external_iptables"/>
<remove-project name="platform/external/iputils"/>
<remove-project name="CyanogenMod/android_external_jack"/>
<remove-project name="CyanogenMod/android_external_JakeWharton_butterknife"/>
<remove-project name="CyanogenMod/android_external_javasqlite"/>
<remove-project name="CyanogenMod/android_external_javassist"/>
<remove-project name="CyanogenMod/android_external_jdiff"/>
<remove-project name="CyanogenMod/android_external_jhead"/>
<remove-project name="CyanogenMod/android_external_jmdns"/>
<remove-project name="CyanogenMod/android_external_jmonkeyengine"/>
<remove-project name="CyanogenMod/android_external_jsilver"/>
<remove-project name="CyanogenMod/android_external_jsr305"/>
<remove-project name="CyanogenMod/android_external_jsr308"/>
<remove-project name="CyanogenMod/android_external_jsr330"/>
<remove-project name="CyanogenMod/android_external_junit"/>
<remove-project name="CyanogenMod/android_external_kernel-headers"/>
<remove-project name="CyanogenMod/android_external_kissfft"/>
<remove-project name="CyanogenMod/ion"/>
<remove-project name="CyanogenMod/AndroidAsync"/>
<remove-project name="CyanogenMod/Widgets"/>
<remove-project name="CyanogenMod/android_external_libcap-ng"/>
<remove-project name="platform/external/libexif"/>
<remove-project name="CyanogenMod/android_external_libffi"/>
<remove-project name="CyanogenMod/android_external_libgsm"/>
<remove-project name="CyanogenMod/android_external_liblzf"/>
<remove-project name="CyanogenMod/android_external_libmtp"/>
<remove-project name="CyanogenMod/android_external_libncurses"/>
<remove-project name="CyanogenMod/android_external_libnfc-nci"/>
<remove-project name="CyanogenMod/android_external_libnfc-nxp"/>
<remove-project name="CyanogenMod/android_external_libnl-headers"/>
<remove-project name="CyanogenMod/android_external_libogg"/>
<remove-project name="CyanogenMod/android_external_libpcap"/>
<remove-project name="CyanogenMod/android_external_libphonenumber"/>
<remove-project name="CyanogenMod/android_external_libphonenumbergoogle"/>
<remove-project name="CyanogenMod/android_external_libppp"/>
<remove-project name="CyanogenMod/android_external_libtruezip"/>
<remove-project name="CyanogenMod/android_external_libusb"/>
<remove-project name="CyanogenMod/android_external_libusbx"/>
<remove-project name="CyanogenMod/android_external_libusb-compat"/>
<remove-project name="platform/external/libssh2"/>
<remove-project name="CyanogenMod/android_external_libvorbis"/>
<remove-project name="CyanogenMod/android_external_libvpx"/>
<remove-project name="CyanogenMod/android_external_libxml2"/>
<remove-project name="CyanogenMod/android_external_libxslt"/>
<remove-project name="CyanogenMod/android_external_libyuv"/>
<remove-project name="CyanogenMod/android_external_linux-tools-perf"/>
<remove-project name="CyanogenMod/android_external_littlemock"/>
<remove-project name="platform/external/lzma"/>
<remove-project name="CyanogenMod/android_external_lsof"/>
<remove-project name="CyanogenMod/android_external_lzo"/>
<remove-project name="platform/external/marisa-trie"/>
<remove-project name="CyanogenMod/android_external_markdown"/>
<remove-project name="CyanogenMod/android_external_mdnsresponder"/>
<remove-project name="platform/external/mesa3d"/>
<remove-project name="CyanogenMod/android_external_mksh"/>
<remove-project name="platform/external/mockito"/>
<remove-project name="CyanogenMod/android_external_mockwebserver"/>
<remove-project name="CyanogenMod/android_external_mp4parser"/>
<remove-project name="CyanogenMod/android_external_mtpd"/>
<remove-project name="CyanogenMod/android_external_nano"/>
<remove-project name="CyanogenMod/android_external_naver-fonts"/>
<remove-project name="CyanogenMod/android_external_netcat"/>
<remove-project name="CyanogenMod/android_external_netperf"/>
<remove-project name="CyanogenMod/android_external_neven"/>
<remove-project name="platform/external/nist-pkits"/>
<remove-project name="CyanogenMod/android_external_nist-sip"/>
<remove-project name="platform/external/noto-fonts"/>
<remove-project name="CyanogenMod/android_external_oauth"/>
<remove-project name="platform/external/objenesis"/>
<remove-project name="CyanogenMod/android_external_okhttp"/>
<remove-project name="platform/external/open-vcdiff"/>
<remove-project name="CyanogenMod/android_external_opencv"/>
<remove-project name="CyanogenMod/android_external_openfst"/>
<remove-project name="CyanogenMod/android_external_openssh"/>
<remove-project name="CyanogenMod/android_external_oprofile"/>
<remove-project name="CyanogenMod/android_external_pciutils"/>
<remove-project name="platform/external/pixman"/>
<remove-project name="CyanogenMod/android_external_powertop"/>
<remove-project name="CyanogenMod/android_external_ppp"/>
<remove-project name="CyanogenMod/android_external_proguard"/>
<remove-project name="CyanogenMod/android_external_protobuf"/>
<remove-project name="CyanogenMod/android_external_protobuf-c"/>
<remove-project name="CyanogenMod/android_external_qemu"/>
<remove-project name="CyanogenMod/android_external_qemu-pc-bios"/>
<remove-project name="CyanogenMod/android_external_qrngd"/>
<remove-project name="CyanogenMod/android_external_regex-re2"/>
<remove-project name="CyanogenMod/android_external_replicaisland"/>
<remove-project name="platform/external/robolectric"/>
<remove-project name="CyanogenMod/android_external_rsync"/>
<remove-project name="platform/external/sfntly"/>
<remove-project name="platform/external/sil-fonts"/>
<remove-project name="CyanogenMod/android_external_skia"/>
<remove-project name="platform/external/smack"/>
<remove-project name="CyanogenMod/android_external_smali"/>
<remove-project name="CyanogenMod/android_external_sonivox"/>
<remove-project name="CyanogenMod/android_external_speex"/>
<remove-project name="CyanogenMod/android_external_spongycastle"/>
<remove-project name="CyanogenMod/android_external_square_dagger"/>
<remove-project name="CyanogenMod/android_external_square_javawriter"/>
<remove-project name="CyanogenMod/android_external_srec"/>
<remove-project name="CyanogenMod/android_external_srtp"/>
<remove-project name="CyanogenMod/android_external_stagefright-plugins"/>
<remove-project name="CyanogenMod/android_external_strace"/>
<remove-project name="CyanogenMod/android_external_stressapptest"/>
<remove-project name="platform/external/svox"/>
<remove-project name="CyanogenMod/android_external_tagsoup"/>
<remove-project name="CyanogenMod/android_external_tcpdump"/>
<remove-project name="platform/external/timezonepicker-support"/>
<remove-project name="CyanogenMod/android_external_tinyalsa"/>
<remove-project name="CyanogenMod/android_external_tinycompress"/>
<remove-project name="CyanogenMod/android_external_tinyxml"/>
<remove-project name="CyanogenMod/android_external_tinyxml2"/>
<remove-project name="CyanogenMod/android_external_tremolo"/>
<remove-project name="CyanogenMod/android_external_unrar"/>
<remove-project name="CyanogenMod/android_external_v8"/>
<remove-project name="CyanogenMod/android_external_valgrind"/>
<remove-project name="CyanogenMod/android_external_vim"/>
<remove-project name="CyanogenMod/android_external_webp"/>
<remove-project name="CyanogenMod/android_external_webrtc"/>
<remove-project name="CyanogenMod/android_external_whispersystems_TextSecure"/>
<remove-project name="CyanogenMod/android_external_whispersystems_WhisperPush"/>
<remove-project name="CyanogenMod/android_external_wpa_supplicant_8"/>
<remove-project name="CyanogenMod/android_external_wpa_supplicant_8_ti"/>
<remove-project name="CyanogenMod/android_external_xmlwriter"/>
<remove-project name="CyanogenMod/android_external_xmp_toolkit"/>
<remove-project name="CyanogenMod/android_external_zip"/>
<remove-project name="CyanogenMod/android_external_zxing"/>
<remove-project name="CyanogenMod/android_frameworks_av"/>
<remove-project name="CyanogenMod/android_frameworks_base"/>
<remove-project name="CyanogenMod/android_frameworks_compile_libbcc"/>
<remove-project name="CyanogenMod/android_frameworks_compile_mclinker"/>
<remove-project name="CyanogenMod/android_frameworks_compile_slang"/>
<remove-project name="CyanogenMod/android_frameworks_ex"/>
<remove-project name="CyanogenMod/android_frameworks_mff"/>
<remove-project name="CyanogenMod/android_frameworks_ml"/>
<remove-project name="CyanogenMod/android_frameworks_opt_calendar"/>
<remove-project name="CyanogenMod/android_frameworks_opt_carddav"/>
<remove-project name="CyanogenMod/android_frameworks_opt_colorpicker"/>
<remove-project name="CyanogenMod/android_frameworks_opt_datetimepicker"/>
<remove-project name="CyanogenMod/android_frameworks_opt_emoji"/>
<remove-project name="CyanogenMod/android_frameworks_opt_hardware"/>
<remove-project name="CyanogenMod/android_frameworks_opt_inputmethodcommon"/>
<remove-project name="CyanogenMod/android_frameworks_opt_mailcommon"/>
<remove-project name="CyanogenMod/android_frameworks_opt_mms"/>
<remove-project name="CyanogenMod/android_frameworks_opt_net_voip"/>
<remove-project name="CyanogenMod/android_frameworks_opt_photoviewer"/>
<remove-project name="CyanogenMod/android_frameworks_opt_timezonepicker"/>
<remove-project name="CyanogenMod/android_frameworks_opt_telephony"/>
<remove-project name="CyanogenMod/android_frameworks_opt_telephony-msim"/>
<remove-project name="CyanogenMod/android_frameworks_opt_vcard"/>
<remove-project name="platform/frameworks/opt/widget"/>
<remove-project name="CyanogenMod/android_frameworks_rs"/>
<remove-project name="CyanogenMod/android_frameworks_support"/>
<remove-project name="CyanogenMod/android_frameworks_testing"/>
<remove-project name="CyanogenMod/android_frameworks_volley"/>
<remove-project name="CyanogenMod/android_frameworks_webview"/>
<remove-project name="CyanogenMod/android_frameworks_wilhelm"/>
<remove-project name="CyanogenMod/android_hardware_akm"/>
<remove-project name="CyanogenMod/android_hardware_broadcom_libbt"/>
<remove-project name="CyanogenMod/android_hardware_broadcom_wlan"/>
<remove-project name="CyanogenMod/android_hardware_cm"/>
<remove-project name="CyanogenMod/android_hardware_invensense"/>
<remove-project name="CyanogenMod/android_hardware_qcom_audio"/>
<remove-project name="CyanogenMod/android_hardware_qcom_audio-caf"/>
<remove-project name="CyanogenMod/android_hardware_qcom_bt"/>
<remove-project name="CyanogenMod/android_hardware_qcom_camera"/>
<remove-project name="CyanogenMod/android_hardware_qcom_display"/>
<remove-project name="CyanogenMod/android_hardware_qcom_display-caf"/>
<remove-project name="CyanogenMod/android_hardware_qcom_gps"/>
<remove-project name="CyanogenMod/android_hardware_qcom_keymaster"/>
<remove-project name="CyanogenMod/android_hardware_qcom_media"/>
<remove-project name="CyanogenMod/android_hardware_qcom_media-caf"/>
<remove-project name="CyanogenMod/android_hardware_qcom_msm8960"/>
<remove-project name="CyanogenMod/android_hardware_qcom_msm8x74"/>
<remove-project name="CyanogenMod/android_hardware_qcom_power"/>
<remove-project name="CyanogenMod/android_hardware_qcom_sensors"/>
<remove-project name="CyanogenMod/android_hardware_qcom_wlan"/>
<remove-project name="CyanogenMod/android_hardware_ril"/>
<remove-project name="CyanogenMod/android_hardware_samsung_slsi_exynos5"/>
<remove-project name="CyanogenMod/android_hardware_ti_omap3"/>
<remove-project name="CyanogenMod/android_hardware_ti_omap4xxx"/>
<remove-project name="CyanogenMod/android_hardware_ti_wlan"/>
<remove-project name="CyanogenMod/android_hardware_ti_wpan"/>
<remove-project name="CyanogenMod/android_libcore"/>
<remove-project name="CyanogenMod/android_libnativehelper"/>
<remove-project name="platform/ndk"/>
<remove-project name="CyanogenMod/android_packages_apps_Apollo"/>
<remove-project name="CyanogenMod/android_packages_apps_BasicSmsReceiver"/>
<remove-project name="CyanogenMod/android_packages_apps_Bluetooth"/>
<remove-project name="CyanogenMod/android_packages_apps_BluetoothExt"/>
<remove-project name="CyanogenMod/android_packages_apps_Browser"/>
<remove-project name="CyanogenMod/android_packages_apps_Calculator"/>
<remove-project name="CyanogenMod/android_packages_apps_Calendar"/>
<remove-project name="CyanogenMod/android_packages_apps_Camera2"/>
<remove-project name="CyanogenMod/android_packages_apps_CellBroadcastReceiver"/>
<remove-project name="CyanogenMod/android_packages_apps_CertInstaller"/>
<remove-project name="CyanogenMod/android_packages_apps_CMAccount"/>
<remove-project name="CyanogenMod/android_packages_apps_CMBugreport"/>
<remove-project name="CyanogenMod/android_packages_apps_CMFileManager"/>
<remove-project name="CyanogenMod/android_packages_apps_CMHome"/>
<remove-project name="CyanogenMod/android_packages_apps_CMUpdater"/>
<remove-project name="CyanogenMod/android_packages_apps_CMWallpapers"/>
<remove-project name="CyanogenMod/android_packages_apps_Contacts"/>
<remove-project name="CyanogenMod/android_packages_apps_ContactsCommon"/>
<remove-project name="CyanogenMod/android_packages_apps_DeskClock"/>
<remove-project name="CyanogenMod/android_packages_apps_Dialer"/>
<remove-project name="CyanogenMod/android_packages_apps_DSPManager"/>
<remove-project name="CyanogenMod/android_packages_apps_Email"/>
<remove-project name="CyanogenMod/android_packages_apps_Exchange"/>
<remove-project name="CyanogenMod/android_packages_apps_Gallery2"/>
<remove-project name="CyanogenMod/android_packages_apps_HTMLViewer"/>
<remove-project name="CyanogenMod/android_packages_apps_InCallUI"/>
<remove-project name="CyanogenMod/android_packages_apps_KeyChain"/>
<remove-project name="CyanogenMod/android_packages_apps_LockClock"/>
<remove-project name="CyanogenMod/android_packages_apps_Mms-caf"/>
<remove-project name="CyanogenMod/android_packages_apps_Nfc"/>
<remove-project name="platform/packages/apps/OneTimeInitializer"/>
<remove-project name="CyanogenMod/android_packages_apps_PackageInstaller"/>
<remove-project name="CyanogenMod/android_packages_apps_PhoneCommon"/>
<remove-project name="CyanogenMod/android_packages_apps_Provision"/>
<remove-project name="CyanogenMod/android_packages_apps_Settings"/>
<remove-project name="CyanogenMod/android_packages_apps_SmartCardService"/>
<remove-project name="CyanogenMod/android_packages_apps_SoundRecorder"/>
<remove-project name="CyanogenMod/android_packages_apps_SpeechRecorder"/>
<remove-project name="CyanogenMod/android_packages_apps_Stk"/>
<remove-project name="CyanogenMod/android_packages_apps_Tag"/>
<remove-project name="CyanogenMod/android_packages_apps_ThemeChooser"/>
<remove-project name="CyanogenMod/android_packages_apps_Torch"/>
<remove-project name="CyanogenMod/android_packages_apps_Trebuchet"/>
<remove-project name="CyanogenMod/android_packages_apps_UnifiedEmail"/>
<remove-project name="CyanogenMod/android_packages_apps_VideoEditor"/>
<remove-project name="CyanogenMod/android_packages_apps_VoiceDialer"/>
<remove-project name="CyanogenMod/android_packages_apps_VoicePlus"/>
<remove-project name="CyanogenMod/android_packages_experimental"/>
<remove-project name="CyanogenMod/android_packages_inputmethods_LatinIME"/>
<remove-project name="CyanogenMod/android_packages_inputmethods_OpenWnn"/>
<remove-project name="CyanogenMod/android_packages_inputmethods_PinyinIME"/>
<remove-project name="CyanogenMod/android_packages_providers_ApplicationsProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_CalendarProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_ContactsProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_DownloadProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_MediaProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_PartnerBookmarksProvide r"/>
<remove-project name="CyanogenMod/android_packages_providers_TelephonyProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_ThemesProvider"/>
<remove-project name="CyanogenMod/android_packages_providers_UserDictionaryProvider"/>
<remove-project name="CyanogenMod/android_packages_screensavers_Basic"/>
<remove-project name="CyanogenMod/android_packages_screensavers_PhotoTable"/>
<remove-project name="CyanogenMod/android_packages_screensavers_WebView"/>
<remove-project name="CyanogenMod/android_packages_services_Telephony"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_Basic"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_Galaxy4"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_HoloSpiral"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_LivePicker"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_MagicSmoke"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_MusicVisualization"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_NoiseField"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_PhaseBeam"/>
<remove-project name="CyanogenMod/android_packages_wallpapers_PhotoPhase"/>
<remove-project name="platform/pdk"/>
<remove-project name="CyanogenMod/android_prebuilt"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/3.1"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/3.2"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/arm/3.3"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/host/3.3"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/mips/3.3"/>
<remove-project name="platform/prebuilts/clang/darwin-x86/x86/3.3"/>
<remove-project name="platform/prebuilts/clang/linux-x86/3.1"/>
<remove-project name="platform/prebuilts/clang/linux-x86/3.2"/>
<remove-project name="platform/prebuilts/clang/linux-x86/arm/3.3"/>
<remove-project name="platform/prebuilts/clang/linux-x86/host/3.3"/>
<remove-project name="platform/prebuilts/clang/linux-x86/mips/3.3"/>
<remove-project name="platform/prebuilts/clang/linux-x86/x86/3.3"/>
<remove-project name="platform/prebuilts/devtools"/>
<remove-project name="platform/prebuilts/eclipse"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.7"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.7"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.7"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/host/headers"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.7"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6"/>
<remove-project name="platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.7"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.4.3"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.7"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.6"/>
<remove-project name="platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7"/>
<remove-project name="platform/prebuilts/python/darwin-x86/2.7.5"/>
<remove-project name="platform/prebuilts/python/linux-x86/2.7.5"/>
<remove-project name="platform/prebuilts/qemu-kernel"/>
<remove-project name="platform/prebuilts/runtime"/>
<remove-project name="platform/prebuilts/tools"/>
<remove-project name="CyanogenMod/android_system_media"/>
<remove-project name="CyanogenMod/android_system_netd"/>
<remove-project name="CyanogenMod/android_system_qcom"/>
<remove-project name="CyanogenMod/android_system_security"/>
<remove-project name="platform/tools/adt/eclipse"/>
<remove-project name="platform/tools/adt/idea"/>
<remove-project name="platform/tools/base"/>
<remove-project name="platform/tools/build"/>
<remove-project name="platform/tools/emulator"/>
<remove-project name="platform/tools/external/fat32lib"/>
<remove-project name="platform/tools/external/gradle"/>
<remove-project name="platform/tools/idea"/>
<remove-project name="platform/tools/studio/cloud"/>
<remove-project name="platform/tools/swt"/>
<remove-project name="cyngn/android_vendor_cyngn"/>
<project name="CyanogenMod/android_bootable_recovery" revision="cm-11.0" path="../recoveryCWM"/>
<project name="PhilZ-cwm6/philz_touch_cwm6" revision="cm-11.0" path="../recoveryPhilz"/>
<project name="omnirom/android_bootable_recovery" revision="android-4.4" path="../recoveryTWRP"/>
<project name="ProjectOpenCannibal/android_bootable_recovery-cm" revision="cm-11.0-dev" path="../recoveryCOT"/>
</manifest>
Si os habéis fijado solo he remarcado 4 líneas ( en rojo ), son las que se deben eliminar menos 1, que sera la base para hacer el kernel que seleccionemos, siendo cada uno para usar alguna de las versiones para una Rom Kit-Kat ( lo remarcado en negrita es la rama que usaremos de cada kernel base ), y donde indica proyect name, es el proyecto base del que sale la base del kernel real, lo demás son cosas necesarias que se añaden al kernel, y donde indica path es el nombre con el que distinguermos el kernel por su base al compilarlo, ya que no debemos confundirnos en ello si pretendemos desarrollar correctamente el kernel, no sea que tomenos por error unas características para mejorarlo, y usemos la base incorrecta, pudiendo producir errores en su funcionamiento al estár mal configurado por nuestra parte en ese caso.
Y tenemos ahora 2 ramas para usar según la Rom a la que este destinado nuestro kernel.
Android 4.4:
CyanogenMod para Android 4.4 CWM 6.0.4.2-6.0.5.1
Omni para Android 4.4 TWRP 2.5.1.0-2.8.1.0
Philz Touch Advanced cwm6 para Android 4.4 Philz 6.0.0-6.59.3
Proyect Open Cannibal para Android 4.4 CTO ¿?-¿?
Y Android 5.0:
CyanogenMod para Android 5.0 CWM 6.0.5.0-6.0.5.1
Omni para Android 5.0 TWRP 2.8.0.0-2.8.3.0
Philz Touch Advanced cwm6 para Android 5.0 Philz 6.48.4-6.59.3
Proyect Open Cannibal para Android 5.0 CTO ¿?-¿?
Ya seleccionada la rama y kernel base que vamos a usar debemos dejar la carpeta manifest_local y archivos manifest_local.xml colocada justo dentro de la carpeta .repo, para que tome esos datos como validos y nos descargue lo no seleccionado, y la base del kernel que hemos indicado al final del manifest_local.xml.
Tras esto se debe hacer hacer la sincronización con la Repo, para descargarlo, ya que todavía estamos en esto:
$ repo sync
Esto según la línea a internet puede tardar más o menos, recordar que se descargara mucho más de lo que realmente se crea, ya que se descarga puro y es más pesado que compilado, pero al ser sobre los 2 Gigas lo que debe descargarse si tenemos una buena conexión de fibra en menos que un café lo tendremos sincronizado en nuestro pc para empezar a compilar, pero solo tras meter la base del recovery/kernel de nuestro dispositivo, ya que solo hemos descargado lo básico para motarlo para el dispositivo seleccionado, pero al no estar todavía nuestro kernel no se puede compilar ninguno funcional.
Seguimos en el 2º post
Agradecimientos a:
luisetex84 (http://www.htcmania.com/member.php?u=1151665) por su ayuda para ir realizando los pasos he iniciarme con su ayuda
A lo hilos en los que me he ido guiando para hacer este tutorial:
[DEV]How to compile TWRP touch recovery (http://forum.xda-developers.com/showthread.php?t=1943625)
[GUIDE] How to compile PhilZ Touch 6 Recovery for ARM android devices using BBQLinux (http://forum.xda-developers.com/android/development/huide-how-to-compile-philz-touch-6-t2862706)