PDA

Ver la Versión Completa : [ TUTORIAL ] Crea tus propias compilaciones CyanogenMod 10.1.


Veloz46
22/03/13, 00:37:14
http://www.foro-nexus.com/images/Cabezal-Web-Android.png

ES NECESARIO:

-Sistema operativo Linux 64bits (debería funcionar con cualquier distro)

-Probado en Ubuntu 12.04 y 12.10 (64 bits)

-Hardware decente(minimo un doble núcleo con 4GB de RAM)

-Espacio en disco de unos 150GB (mejor que sea superior)

-ADB y Fastboot (Instalación en el segundo post)

Paquetes requeridos:
(Son universales, valen para casi cualquier tutorial de compilado)

-Simplemente copia y pega esto en una ventana de terminal y le das al enter. (instala los siguientes paquetes, uno detrás de otro):

sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-6-jre openjdk-6-jdk pngcrush schedtool libxml2 libxml2-utils xsltproc libc6-dev x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev mingw32 tofrodos python-markdown

sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-4.7-multilib g++-4.5-multilib

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Problemas con el java?
(solo si lo anterior te tira error con el java)

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer
sudo update-java-alternatives -s java-6-oracle
sudo apt-get install oracle-java6-set-default

Obtención del código Fuente

Copy/paste:

Crear directorio para el repositorio binario:

mkdir ~/bin

PATH=~/bin:$PATH

Añadir el repositorio binario:

curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

Dar permisos al repositorio binario:

chmod a+x ~/bin/repo

Crear el directorio para el código CM:

mkdir ~/source-cm-10.1

Entrar en el directorio del código:

cd ~/source-cm-10.1

Inicializar el repositorio de CM y descargar el manifiest:

repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1

Ahora tenemos que ir a la la carpeta que se a creado en nuestra carpeta personal, llamada "source-cm-10.1".
En la barra superior vamos a "ver" y le damos a "Mostrar los archivos ocultos" ahora vamos a la carpeta ".repo" y creamos una que se llame "local_manifests"
Ahora entramos dentro de la carpeta nueva y creamos un documento vacío, "botón derecho/crear documento/documento vacío"
Le damos de nombre "local_manifest.xml" y lo abrimos.
Ahora copiamos dentro del archivo el siguiente código:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_samsung_i9100" path="device/samsung/i9100" remote="github" />
<project name="CyanogenMod/android_device_samsung_galaxys2-common" path="device/samsung/galaxys2-common" remote="github" />
<project name="CyanogenMod/android_kernel_samsung_smdk4210" path="kernel/samsung/smdk4210" remote="github" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" />
</manifest>


Sync el código fuente de CM:

cd ~/source-cm-10.1

repo sync

Este paso va a tardar horas, por lo que tranquilo, en caso de que de algún error, vuelve al poner el último comando.*

Vamos a añadir los prebuilds como el terminal emulator:

cd ~/source-cm-10.1/vendor/cm

./get-prebuilts

Extraer archivos propietarios:

Conecta el móvil al usb encendido con la depuración activada.
(Este paso lo he probado con la rom oficial con root, asegúrate que si te pide aceptar la huella digital que lleva 4.2.2 lo aceptes, ya que si no, dará error.)

Ahora mete en el terminal lo siguiente:

cd ~/source-cm-10.1/device/samsung/i9100

Ahora ejecutas:

./extract-files.sh

Mira que no tire errores, si los tira, habrá que ver el por que.

Iniciar la construcción:

cd ~/source-cm-10.1

. build/envsetup.sh && brunch i9100

Cuando acabe la rom la encontrarás en:

Carpeta Personal/source-cm-10.1/out/target/product/maguro/

Para la recopilación es tan fácil como:

cd ~/source-cm-10.1

make clobber

repo sync

. build/envsetup.sh && brunch i9100

Este paso es totalmente necesario para poder descargar los cambios desde la última sincronización, y poder compilar de nuevo con los cambios nuevos.

http://www.foro-nexus.com/showthread.php?tid=282&pid=2587#pid2587

http://www.foro-nexus.com/showthread.php?tid=282&pid=2587#pid2587

kijodoari
22/03/13, 02:18:15
perfecto el tutorial! me voy a poner... me espera una noche larga.... :platano:

Una pregunta, el kernel, tambien se compila siguiendo este tutorial? o tendría que compilarlo aparte?

raziel-77
22/03/13, 02:42:59
Eso lo sabrá mejor veloz pero en principio descarga la ROM completa. Eso si antes de compilar al menos antes con unos comandos entrabas en un menu para configurar cientos de parametros de este. No se si aun sigue siendo igual ni los comandos necesarios.

Por cierto veloz ¿ya no usa CM el script squisher para optimizar los PNGs?

Era algo asi una vez compilada la ROM

cd ~/android/froyo/vendor/cyanogen/tools
./squisher

Obiamente era el proyecto de froyo (la CM6) y en caso de existir seria otra la dirección a buscarlo.

AlonsoEsteban
22/03/13, 04:46:23
eres un maestro... gracias por entregar tus conocimientos...

sldos

Veloz46
22/03/13, 07:12:49
perfecto el tutorial! me voy a poner... me espera una noche larga.... :platano:

Una pregunta, el kernel, tambien se compila siguiendo este tutorial? o tendría que compilarlo aparte?

Si, compila el kernel también, tal como CM lo tiene, a no ser que modifiques tu luego de sincronizar.





Eso lo sabrá mejor veloz pero en principio descarga la ROM completa. Eso si antes de compilar al menos antes con unos comandos entrabas en un menu para configurar cientos de parametros de este. No se si aun sigue siendo igual ni los comandos necesarios.

Por cierto veloz ¿ya no usa CM el script squisher para optimizar los PNGs?

Era algo asi una vez compilada la ROM

cd ~/android/froyo/vendor/cyanogen/tools
./squisher

Obiamente era el proyecto de froyo (la CM6) y en caso de existir seria otra la dirección a buscarlo.

Pues no e visto nada de los png e estado viendo los tutoriales que tienen en la wiki y nada, no así como aokp que es un paso integrado en la compilación, el cual en el tutorial ya pongo el paso para instalar el optipng. Probaré lo que dices luego, a ver si añade el optimizado de png. ;)

pedestre
22/03/13, 07:18:31
Buen tuto, me habría venido bien hace algún tiempo, jejeje Me habría ahorrado algún tiempecillo.

Muchas gracias por este aporte, me parece estupendo aunque seguro que mucha gente no lo valorará.

Slds

kijodoari
22/03/13, 12:07:29
Si, compila el kernel también, tal como CM lo tiene, a no ser que modifiques tu luego de sincronizar.

Ok, me lo imaginaba... muchas gracias!

Ya tengo el repositorio descargado, toda la noche he tenido que dajar el pc...
Estoy mirando todos los tutoriales que tienes en tu foro, me asalto otra duda:
en el tutorial universal para compilar cm hay dos pasos, que no estan en el tuto del galaxy s2, que dices es para descargar el kernel:

-source build/envsetup.sh
-breakfast modelo

Como tengo los dos tutoriales abiertos no me fije y puse el primer comando y despues el segundo (si estoy apollardado y quizas la lie no?)

otra duda que me asalta (siento ser cansino) dentro de unos días cuando cm saque algunos cambios y tal, y quiera actualizar el repositorio, cuales serian los pasos?

EDITO: vale lo de actualizar el repositorio ya me quedo claro jejeje perdón por el lapsus!


Buen tuto, me habría venido bien hace algún tiempo, jejeje Me habría ahorrado algún tiempecillo.

Muchas gracias por este aporte, me parece estupendo aunque seguro que mucha gente no lo valorará.

Slds

Lo que si voy a recuperar yo es ese pedazo tuto tuyo para el undervolting que habia en el hilo de apolo ics....:aplausos:

kijodoari
22/03/13, 12:23:57
Otra cosa, en la parte de extraer los archivos propietarios, tienes este comando en el tutorial:

-cd ~/Source-cm-10.1/device/samsung/i9100

la "S" de source es minuscula, lo digo por si alguien le dice que no existe el fichero, que hasta que no me di cuenta...

EDITO:

YA ESTA COMPILANDO!!!! MAGNIFICO TUTORIAL!!! GRACIAS VELOZ_46!!!

Veloz46
22/03/13, 17:43:28
Sí es verdad, la S esta mal, ya lo he modificado, el paso del universal no hace falta puesto que en el S2 ya creas los enlaces a los repos del kernel y código, ese paso es para cuando no creas el xml, descarga el código necesario.

Con hacer el paso de la recompilación ya es suficiente, de esa manera actualizas los cambios que hagan, y compilar con los nuevos cambios.

MASSELING00
22/03/13, 17:56:55
Para compilar se necesita un pc potente o cm mi portatil puedo? S un portatil viejete ya asi k nose, casi es el mvl igual de potente jajaja

Veloz46
22/03/13, 23:03:35
Depende, di que hardware tienes, yo tengo un portátil I5 a 2.4GHZ y 4GB de RAM.

Puedes probar, aun que es posible que acabe dándote errores, y no acabe nunca.

pedestre
22/03/13, 23:23:35
Para compilar se necesita un pc potente o cm mi portatil puedo? S un portatil viejete ya asi k nose, casi es el mvl igual de potente jajaja

Por poder, se puede, pero se te puede hacer eterno.

apu314
23/03/13, 13:38:08
Yo compilo siempre con un intel core 2 dúo con 3gb de RAM y, aunque me tarde mucho compila todo perfecto. He de decir que las primeras compilaciones que hice fueron en un netbook con intel atom y 2gb de RAM...con el netbook me tardaba casi 12 horas en compilar pero todo hay que decirlo....compilaba bien :p

Veloz46
23/03/13, 14:12:04
Si vais faltados de hardware llega un momento que peta, mi antiguo ordenador petava siempre ya podías dejarlo días, que no acababa por que petava la compilación.

Todo es probarlo.

MASSELING00
23/03/13, 17:45:07
entonces cuando cambie de pc ya probare xk este se queda loco hasta con wifiway... cuando cargo un diccionario.. jajaja buen dato gracias asi no me mato para nada

kijodoari
25/03/13, 13:04:05
Buenas Veloz_46, me sirvió muchísimo el tutoriales, todo fue perfecto y ya la tengo funcionando.

Ahora me interesaría una cosa, no se si tu me podrás ayudar. Tengo ya descargados por separado el repositorio del kernel de cm, y seguí el tuto de pedestre para hacerle un pequeño undervolting, similar al que tiene hecho el kernel apolo regular. Claro que seguí el tutorial modificando los archivos que corresponden al kernel de cyano y al galaxy s2. Bueno lo que me gustaría es compilar el kernel solo y a poder ser hacerlo con linaro, tu me podrías ayudar con un pequeño Tutorial? Ando perdido... Y lo único que se me ocurre es compilar la ROM de nuevo con los cambios del kernel...

Veloz46
25/03/13, 13:16:57
Buenas Veloz_46, me sirvió muchísimo el tutoriales, todo fue perfecto y ya la tengo funcionando.

Ahora me interesaría una cosa, no se si tu me podrás ayudar. Tengo ya descargados por separado el repositorio del kernel de cm, y seguí el tuto de pedestre para hacerle un pequeño undervolting, similar al que tiene hecho el kernel apolo regular. Claro que seguí el tutorial modificando los archivos que corresponden al kernel de cyano y al galaxy s2. Bueno lo que me gustaría es compilar el kernel solo y a poder ser hacerlo con linaro, tu me podrías ayudar con un pequeño Tutorial? Ando perdido... Y lo único que se me ocurre es compilar la ROM de nuevo con los cambios del kernel...

Si se puede, pero con linaro hay que aplicar un parche, ya que si no, no acaba de compilar, el tutorial de pedestre es para las stock, por lo que el compilado es distinto. Asta hace poco yo compilaba desde la rom, asta que di con ello. Es aplicar el parche, descargas el toolchain linaro, le das al config las lineas del toolchain, lo configuras y a compilar.

No tengo ningún tutorial echo, el día que tenga tiempo quizás lo hago.

kijodoari
25/03/13, 13:43:17
Si el compilado sera distinto, tampoco lo mire, solo fue para ver como hacer el undervolting.
Y ese parche desde donde lo puedo bajar?
De todas formas compilare mañana la rom y listo.
Gracias!

choldimir
08/05/13, 21:37:36
Hola Veloz, ¿qué tal?

Sin ánimo de ofender podrías añadir a tu tutorial esta linea o estos paquetes

sudo apt-get install g++ gcc-multilib dpkg-dev

ya que sin estos paquetes no puedes seguir, no pasas del primer código. Quizás algún usuario más novel le de algún error por esto y se rinda, puediendo avanzar fácilmente. Imagino que se te habrán colado porque ya los tendrías instalados o tendrias alguna versión de desarrollador.

Genial la aportación.

Un saludo compañeros.

Veloz46
08/05/13, 21:55:57
Que distro estas utilizando?

Bueno lo que he echo a sido cambiar los paquetes necesarios que yo utilizo por los que Cyanogen dice que necesita, de esa manera, no debería haber problemas, de todas formas todos los usuarios que han compilado con los paquetes antiguos, no me han reportado problemas sobre que faltaran paquetes, por eso te pregunto que distro estas usando, en principio Ubuntu 12.04 y 12.10 64bits, era suficiente con los que ponía anteriormente.

Si hay problemas con los nuevos paquetes que cyano dice que necesita, avisar y veremos que mas hay que añadir. :ok:

kijodoari
08/05/13, 22:57:09
a mi tal cual esta el tutorial me funciona perfecto con ubuntu 12.10 64bits y lo mismo con xubuntu 12.10 64bits:ok:

choldimir
09/05/13, 09:14:43
Que distro estas utilizando?

En Linux Mint version 14 "Nadia" 64bits acabada de meter con solo sudo apt-get update & upgrade si mete esos fallos. Digo yo que ubuntu si llevará estos paquetes por eso pense que no cuesta nada agregarlos en el primer code. Pero al ser tu tutorial lo que veas, tan solo es opinión mia.

Buen tuto :ok:

Veloz46
09/05/13, 19:15:25
Esa distro se basa en ubuntu 12.10, por lo que debería (en teoría) tener los mismos paquetes que ubuntu, aun que suele traer más codecs, java y una lista de más cosas como Gimp... Preinstalado.

De todas formas, en el tutorial pone que esta probado en ubuntu, para otras distros, habrá que buscar cada uno que es lo que le falta, de igual manera ahora hay los paquetes oficiales de CyanogenMod, si no funcionan con este de igual manera avisar.

choldimir
10/05/13, 12:07:47
De todas formas, en el tutorial pone que esta probado en ubuntu, para otras distros, habrá que buscar cada uno que es lo que le falta

Correcto. Lo he puesto por si a alguno le pasara. De todos modos ubuntu es la más común.