Sei sulla pagina 1di 96

[GUIA COMPLETA] Desarrollo de la ROM para

Android - Desde el cdigo fuente al Final


INTRODUCCION
Qu es Android?
Android es el sistema operativo de cdigo abierto utilizado
para los telfonos inteligentes. Libertad total para las
personas que lo usan.

Qu es el Android Source Code?


Android es una pila de software de cdigo abierto creada
para una amplia gama de dispositivos con diferentes
factores de forma. Los principales propsitos de Android
son crear una plataforma de software abierta disponible
para los operadores, OEMs y desarrolladores para hacer
realidad sus ideas innovadoras y para introducir un
producto exitoso en el mundo real que mejore la experiencia
mvil para los usuarios, Producto de consumo de calidad de
produccin con cdigo fuente abierto para personalizacin
y portado.
As que bsicamente Android permite personalizar las cosas
que te gusta y hacer cosas nuevas sin restricciones. Cool
no es as?

Qu es un Android ROM?
La ROM de Android es el sistema operativo Android. Esta es
la interfaz de usuario (Sense UI en los telfonos HTC) y
el sistema de archivos para mantener contactos, etc. Se
compone de un kernel de Linux y varios complementos para
lograr una funcionalidad especfica.

Qu contiene un Android ROM?


Bsicamente un Android ROM contiene principalmente:

Kernel
Bootloader
Recovery
Radio
Framework
Apps
Core
Android-Runtime
Conceptos bsicos acerca de los trminos anteriores:
Kernel:
Un kernel es un componente crtico de Android y de todos
los sistemas operativos. Se puede ver como una especie de
puente entre las aplicaciones y el hardware real de un
dispositivo. Los dispositivos Android utilizan el kernel
de Linux, pero no es el mismo kernel que utilizan otros
sistemas operativos basados en Linux.
Hay un montn de cdigo especfico de Android incorporado,
y los mantenedores de ncleo de Android de Google tienen
su trabajo cortado para ellos.
Los OEM tambin tienen que contribuir, porque necesitan
desarrollar controladores de hardware para las partes que
estn utilizando para la versin del kernel que estn
utilizando. Esta es la razn por la que se tardan un tiempo
los desarrolladores independientes de Android y los piratas
informticos al portar versiones nuevas a los dispositivos
ms antiguos y conseguir que todo funcione.
Los controladores escritos para trabajar con el kernel de
Gingerbread en un telfono no necesariamente funcionan con
el kernel de Ice Cream Sndwich. Y eso es importante,
porque una de las funciones principales del kernel es
controlar el hardware.
Es un montn de cdigo fuente, con ms opciones en la
construccin de lo que pueda imaginar, pero al final es
slo el intermediario entre el hardware y el software. As
que bsicamente si alguna instruccin se da a mobile,
primero da el comando al kernel para la ejecucin
particular de la tarea.

Bootloader:
El gestor de arranque es un cdigo que se ejecuta antes de
que cualquier sistema operativo empiece a ejecutarse. Los
Bootloader son bsicamente paquete de las instrucciones
para arrancar el ncleo del sistema operativo y la mayora
de ellos tambin tienen su propio entorno de depuracin o
modificacin.
Piense en el cargador de arranque como punto de control de
seguridad para todas esas particiones.
Porque si eres capaz de intercambiar lo que hay en esas
particiones, eres capaz de romper las cosas si no sabes lo
que ests haciendo. Por lo tanto, bsicamente, el ncleo de
comandos de su dispositivo para arrancar el dispositivo
correctamente sin problemas. Se cuidadoso con el Bootloader
ya que puedes dejar las cosas muy mal.

Recovery:
El Recovery es (en trminos simples)una copia de seguridad.
Si el firmware de su telfono est daado, el Recovery le
ayudar a restaurar o reparar su firmware defectuoso o con
errores y lo dejara en buenas condiciones de. Tambin se
utiliza para flashear el ROM, el ncleo y muchas ms cosas.

Radio:
La parte ms baja de la capa de software es la radio: esta
es la primera cosa que se ejecuta, justo antes del
BOOTLOADER. Controla toda la comunicacin sin hilos como la
antena GSM, el GPS etc.

Estas son las principales partes del sistema operativo Android.

Ahora sabemos qu es Android y que


contiene.
Pasemos al siguiente punto: Un
Android ROM y el Desarrollo de la
fuente. Pero antes de comenzar esto
necesitamos una instalacin inicial
y un entorno de desarrollo.
Desarrollo De Una ROM Para Android
Configuracin del entorno LINUX
Requisitos previos para el desarrollo de una ROM
1) Sistema operativo Linux; tomar Ubuntu 13.10 como
ejemplo (recomendable).
2) Java Development Kit (JDK).
3) Algunas herramientas.
Una vez que descargue Ubuntu 13.10 puede instalarlo de
tres maneras:
a) Instalar Ubuntu como Sistema Operativo Principal
b) Instalacin dentro de Windows (con VM o VB)
c) Doble arranque de Linux junto con Windows. (Uso de
diferentes particiones).
Se explicar la segunda forma (cmo instalar Linux dentro
de Windows). Puede utilizar VirtualBox (GRATIS) o VM
Workstation / Player (PAGADA) Softwares. En esta gua
tomar el ejemplo de Virtual Box.
Pre requisitos:
Windows 7 64 bits (mnimo)
Descargar Virtual Box.
Instale VirtualBox
ver que JDK est instalado antes de instalar
VirtualBox
Ubuntu 13.10 archivo ISO (Descargar)
Instalacin de Ubuntu 13.10 en VirtualBox
Estar utilizando 2 palabras.
Invitado: Sistema operativo en Virtual Box 64 bit
Anfitrin: Windows 7.
Nota: Debido a que necesitamos instalar la versin 64 bits
de Ubuntu, Intel VT-x debe estar habilitado de lo contrario
no ser capaz de instalarlo. Su procesador debe soportar
esa funcin.
Activacin de VT-x.
1) PC apagada.
2) Entrar a la configuracin del BIOS en el men SETUP
3) Vaya a Opciones avanzadas de procesador avanzado ->
Intel (R) Virtualization Technology.
4) Habilitarlo.
5) Guarde los ajustes.
6) Reiniciar.
Instalacin de Ubuntu 13.10 64bit
1) Abra VirtualBox.
2) Haga clic en el botn Nuevo.

3) Escriba el nombre que desea dar a este sistema


operativo que se mostrar cada vez que abra VirtualBox.

4) Fije la cantidad de RAM que usted quiere asignar para


su OS invitado. Quiz crees que esto es difcil y
peligroso; pero Hey, no te preocupes! Es sencillo;
Voy a explicar esto con un simple ejemplo:
Supongamos que su PC tiene 10 GB de RAM instalado y
tiene Windows 7 64 bits OS (como mnimo por supuesto)
Ahora de 10GB de RAM, 4GB ser necesario para que
Windows funcione normalmente. Los 6GB restantes se
pueden asignar para trabajar para el SO invitado de
Virtual Box.
Ahora usted puede preguntarse:
Por qu se necesita tanto RAM, si VB puede ejecutarse
en 1 GB tambin?
- La respuesta es simple, la memoria RAM para el SO
invitado (Ubuntu) Aumenta la velocidad al momento de
Build y compilar su ROM drsticamente. Esa es la razn
por la que se necesita un poco ms de RAM aqu.

Ahora en VirtualBox nos mostrara una lnea de color


verde y una roja. Esto nos indicara cunto RAM podemos
asignar:
NUNCA PERO NUNCA CONFIGURES LA RAM EN LA LINEA ROJA
PUES PUEDE CAUSAR QUE TU PC NO RESPONDA. TEN CUIDADO.
La lnea verde Es la Cantidad Mxima de RAM que puedes
asignar a VB. Lo recomendable es que se asigne 2 lneas
mas atrs del rojo (como se muestra en la sgte imagen).

Despus hacemos clic en Siguiente.

5) Ahora aqu tienes que crear una unidad virtual para tu


sistema operativo Linux y sus archivos. Es lo mismo
que tiene tu disco duro para la PC con Windows. Ahora
haga clic en Crear nuevo disco duro virtual ahora y
haga clic en el botn Crear.
Se mostrarn distintos formatos de unidades virtuales.
Siempre seleccione VMDK ya que es compatible con otros
Softwares como VM Workstation (Pagada). Haga clic en
Siguiente.

6) Ahora obtendr una opcin para seleccionar Asignado


dinmicamente o Tamao fijo. Seleccione Asignada
dinmicamente y desmarque la opcin Dividir en
archivos.
7) Ingrese la cantidad de espacio de disco duro que desea
asignar al disco duro virtual. Recuerde que la cantidad
de espacio asignado debe ser menor a la cantidad de
espacio libre de nuestro disco duro.
Ejemplo: Si selecciona 200GB de su unidad fsica
debera tener al menos 220GB de almacenamiento libre.
El almacenamiento mnimo para Virtual Drive para
entorno Android es de 100GB, pero te recomiendo que te
mantengas por encima de 150GB. Sabr el por qu ms
tarde.

Seleccione la carpeta / unidad de la unidad fsica en


la que desea almacenar el disco duro virtual (VMDK) en
su disco duro fsico de la PC.
8) Ahora haga clic en Configuracin y vaya a un procesador
de sistema ahora en procesador Arrastre el puntero al
final de la lnea verde Que especifica el nmero de
ncleos que desea asignar a OS Invitado. No afecta al
host ... En mi caso es 2.

9) Ahora vaya a la pestaa Aceleracin junto a la ficha


del procesador y marque Ambos.
10) Ahora vaya a Ajustes de Almacenamiento Haga clic
en Controlador: IDE. Haga clic en un pequeo CD con la
marca de icono +.

11) Busque Ubuntu 13.10 64 Bit ISO y seleccinelo.

12) Ahora vaya a la configuracin -> Sistema -> orden


de arranque -> cambiar CD / DVD Primero. (O puede
iniciar directamente el sistema y presione F12
seleccionar CD / DVD).
13) Ahora haga clic en el botn Inicio para iniciar
VirtualBox Guest.
14) Una vez que Ubuntu inicie se puede ver la siguiente
pantalla con 2 opcin aqu puede probar o instalar
slo haga clic en el botn Instalar para iniciar el
proceso de instalacin.
15) Aqu se mostrarn las cosas que Ubuntu Requiere
est disponible o no y algunas actualizaciones y las
instalaciones de terceros si lo desea puede
seleccionar (nunca lo seleccion) haga clic en
continuar.

16) Aqu se mostrar cmo desea instalar el Ubuntu


djalo como se muestra a continuacin, ya que se trata
de VirtualBox. En un pc con arranque Dual (Windows/
Linux) el Procedimiento es diferente estar all que
ser discutido en la siguiente parte.
17) Seleccione Fuso horario, diseo del teclado.
18) Introduzca los datos requeridos.

19) Introduzca los datos necesarios.


20) Se le pedir que inicie sesin en Ubuntu uno con

Email Id slo salte y contine.


21) Instalacin Comienza a esperar hasta que finalice.

Hurra! Ya esta listo.


Configuracin del entorno de compilacin para
la compilacin de ROM
Instalacin de herramientas y paquetes
necesarios para el desarrollo de la ROM
1) Instalacin de Java Development Kit (JDK)
Para Kitkat
Instalacin de Java V6

Abra el terminal y pegue siguiente comando

A) Esto eliminar el Java JDK incorrecto de Ubuntu 13.10


Cdigo:

Sudo apt-get purge openjdk - \ * icedtea - \ * icedtea6 - \ *

B) Ingrese el comando siguiente y esto instalar JDK


Cdigo:
Wget https://launchpad.net/~webupd8team/+archive/ubuntu/java/+files/oracle-
java6-installer_6u45-0%7Ewebupd8%7E8_all.deb sudo dpkg -i oracle-java6-
installer_6u45-0 ~ webupd8 ~ 8_all .deb wget
https://launchpad.net/~webupd8team/+archive/ubuntu/java/+files/oracle-java6-set-
default_6u45-0%7Ewebupd8%7E8_all.deb sudo dpkg -i oracle-java6-set-default_6u45
-0 ~ webupd8 ~ 8_all.deb

C) Comprobar la versin Java instalada


Cdigo:

Java - versin

Para Lollipop la versin Java requerida es 7

Para instalar Java V7

Cdigo:
Sudo apt-get update y & sudo apt-get install openjdk-7-jdk
Completa la instalacin de Java

2) Instalacin de las herramientas necesarias


Ingrese el siguiente comando
Cdigo:

Sudo apt-get instalar git-core gnupg ccache lzop flex bison gperf construir-
esencial zip curl zlib1g-dev zlib1g-dev: i386 libc6-dev lib32ncurses5 lib32z1
lib32bz2-1.0 lib32ncurses5-dev x11proto-core-dev libx11-dev: i386 libreadline6-
Dev: i386 lib32z-dev libgl1-mesa-glx: i386 libgl1-mesa-dev g ++ - multilib
mingw32 tofrodos python-markdown libxml2-utils xsltproc readline-common
libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev
lib32readline5 lib32readline6 libreadline-dev Libreadline6-dev: i386
libreadline6: i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev
libsdl1.2-dev libesd0-dev squashfs-herramientas pngcrush schedtool libwxgtk2.8-
dev python

Nota: Si obtiene un error como dependencias rotas, utilice el comando siguiente


y luego use el comando anterior.
Cdigo:
Sudo apt-get update
Cdigo:

Sudo apt-get upgrade


Despus de completar la instalacin, ingrese el siguiente comando

Cdigo:

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


gnu/libGL.so
As que lo de arriba son los paquetes

Ahora viene el binario llamado Repo.

Qu es Repo?
Repo es una herramienta de administracin de repositorios que hemos
construido sobre Git. Repo unifica los repositorios de Git muchos cuando es
necesario, hace el uploads a nuestro sistema de control de revisin y
automatiza partes del flujo de trabajo de desarrollo de Android.

Ingrese el siguiente comando


Cdigo:

Mkdir ~ / bin && curl http://commondatastorage.googleapis.com/git-repo-


downloads/repo> ~ / bin / repo && chmod a + x ~ / bin / repo
Uso del editor de texto Open ~ / .bashrc para ese uso despus del comando

Cdigo:

Sudo nano ~ / .bashrc


At The Very Bottom Line Aadir seguimiento Lnea

Cdigo:

Export PATH = ~ / bin: $ PATH

Gurdelo. Aqu Para guardar Pulse Ctrl + O y Enter y Ctrl + X para salir
Ahora ingresa el siguiente comando

Cdigo:

Fuente ~ / .bashrc

Ahora su sistema est listo para el


construir su ROM
Descarga de fuentes
Para construir una ROM de Source primero necesitamos descargar las fuentes
de git.
Nota: Las fuentes sern muy enormes aproximadamente 13GB a 14GB por lo
tanto mucha paciencia se requiere puesto que tomar un cierto tiempo
dependiendo de su velocidad de la conexin a Internet.

As que vamos a empezar

Aqu voy a tomar el ejemplo de cm11 .


Sigue los pasos que sigue

1) Cree un directorio donde se descargarn sus fuentes. Introduzca el siguiente


comando en terminal para crear un directorio
Cdigo:
Mkdir cm11
Ahora en su directorio de inicio ver la carpeta llamada cm11.
2) El siguiente paso es que usted tiene que iniciar el repo. El significado del repo se da arriba. Se
comunicar con el git y descargar la fuente si se almacena.
Ingrese el siguiente comando al terminal

Cdigo:

Cd cm11
Esto lo llevar al directorio que cre en el paso 1.
Ahora ingrese el siguiente comando que iniciar el Repo

Cdigo:

Repo init -u git: //github.com/CyanogenMod/android.git -b cm-11.0


Dado que estoy tomando el ejemplo de cm11 por encima de repo inicio
comando se puede encontrar esto aqu para CM11
Nota: Todos los detalles para Repo Initiate y Building sern dados en Github de
Fuente respectivo. Varios enlaces fuente Github se dar en discription y el final.

Esto inicializar su repositorio local usando los rboles de CyanogenMod.

Ahora lleg a la carpeta cm11 y presione Ctrl + H esto mostrar la carpeta


oculta .repo se descargaron las fuentes.
Ahora puede dar un pequeo error al final indicando para ID de correo
electrnico.
As que solo crea una cuenta github aqu
A continuacin, Ejecutar siguiente en Terminal
Cdigo:

Git config --global user.email "you@example.com"


Git config --global user.name "Su nombre"

Reemplace "you@example.com" con su ID de correo electrnico github


Reemplazar "Tu nombre" con github Nombre de usuario

3) Ahora Para controlar los archivos que se deben descargar durante la


sincronizacin y para agregar el rbol de dispositivos usamos
local_manifest.xml. Reagrding este @ Kishan14 explicar en detalle con
consejos y trucos.

4) Ahora es el momento de descargar las fuentes. Para que ejecute el siguiente


comando
Cdigo:
Repo sync -j #

# Es el nmero de trabajos que desea dar para su fuente de descarga. Uso 2 a


4.
Ahora descargar las Fuentes necesarias para construir el Rom..Download ser
enorme 13GB a 14GB as que sea paciente ya que depende de su velocidad de
Internet.

Lo anterior fue para CM11 mismo procedimiento para otros siempre que tenga
que reemplazar cm11 con uno que desea sincronizar / construir como AOSP,
AOKP, AICP etc y el comando Repo Initialize vara con la fuente que desea
descargar.

Algunos enlaces de Git:


CM11: https://github.com/CyanogenMod/android
AOKP : https://github.com/AOKP/platform_manifest
Rom de carbono: https://github.com/CarbonDev/android
SlimRom: https://github.com/SlimRoms/platform_manifest
Respuesta rpida Respuesta

Los siguientes 199 usuarios dicen Gracias a jackeagle por este Post: [Ver]

Jackeagle

13 de julio de 2014, 15:47 | # 4

Moderador del Foro OP / Desarrollador Reconocido

XDA

Gracias Meter : 6,682

Donar a m

Ms

Rom de construccin para un dispositivo particular

Rom de construccin para un


dispositivo particular
Ahora hemos descargado las fuentes que necesitamos para nuestro Rom
Construir Vamos a pasar al siguiente paso que es realmente mayor Paso el
edificio La ROM

As que vamos a empezar el juego ...

Nota: Voy a tomar Samsung Galaxy Grand Duos - GT -I9082 tiene ejemplo
aqu.
Ejemplo Rom: CM11

Ahora antes de comenzar con la gua de construccin que tiene que descargar
su identidad de dispositivo que es sigue
1) rbol del dispositivo
2) Vendedor
3) Ncleo
Los archivos anteriores son muy vitales Parmetros de construccin que
especifican su dispositivo y sus caractersticas.

Ahora usted puede pensar de donde usted tiene que descargar esos archivos?

No se confunda su simple bsqueda en nuestro foro de dispositivos para rbol


CM y Kernel y Vendedor. El Dev de CM para tu foro de dispositivos lo
especificar en su subproceso de ROM.
Una vez que obtenga el github para su rbol de dispositivos, su proveedor y su
kernel. Introduzca el siguiente comando
Cdigo:

Cd cm11 / .repo
Aqu en la carpeta .repo tienes que crear un archivo llamado local_manifests.xml
1) Ingrese el siguiente comando en Terminal

Cdigo:

Nano local_manifest.xml
La estructura de Local_manifest.xml tiene Has sigue.

Cdigo:

<? Xml version = "1.0" encoding = "UTF-8" ?>


<Manifiesto>
<Project path = "directorio en el rbol de trabajo" name = "nombre del
repositorio en remoto" remote = "nombre del remoto definido anteriormente"
revision = "rama del repositorio" />
</ Manifest>
2) Agregue su Dispositivo, Kernel, Fuente del Proveedor

Tomando mi ex aqu de GT-I9082


Despus de aadir el rbol del dispositivo, el proveedor, el kernel mi
Local_manifest.xml se ver como sigue
Cdigo:

<? Xml version = "1.0" encoding = "UTF-8" ?>


<Manifiesto>
<Project path = "device / samsung / i9082" name = "pawitp /
android_device_samsung_i9082" remote = "github" revision = "cm-11.0" />
<Proyecto ruta = "proveedor / samsung / i9082" nombre = "k2wl /
android_vendor_samsung_i9082" remote = "github" revision = "master" />
<Project path = "kernel / samsung / i9082" name = "pawitp /
android_kernel_samsung_i9082" remote = "github" revision = "cm-11.0" />
</ Manifest>

3) Presione ctrl + O y Enter


4) Presione Ctrl + X para salir.
Despus de agregar el rbol de dispositivos, el proveedor, las fuentes del ncleo slo repo sincronizar de
nuevo para que los archivos se descargan. Tambin puede agregar los archivos que desea descargar o no
desea descargar. Ms informacin sobre manifest y local_manifest ser explicada por @ Kishan14 en su

gua

Una vez hecho esto, ahora tienes tu dispositivo Identidad contigo


Ahora siga la Instruccin dada por @ rutvikrvr en POST 9 para hacer que su rbol de dispositivos CM sea
compatible con su fuente ROM.

Una vez que su rbol de dispositivos CM se ha hecho compatible con su ROM su tiempo de construccin

Ahora el comando de construccin Varios con Rom que desea compilar su diferente para diferentes ROM
que tiene que ver el manifiesto de la Rom para que tenga instruccin para la construccin se dar all. Dado
que im tomando ejemplo de CM11 y el dispositivo tiene GT-I9082 los pasos van tiene sigue
1) Ingrese el siguiente comando en Terminal

Cdigo:

Cd cm11
Simplemente reemplace CM11 por su directorio de trabajo de Rom. Ejemplo: AOGP, AICP etc.
2) Ahora ingrese el siguiente comando a la terminal

Cdigo:

. Build / envsetup . Sh
3) Construir la instruccin vara de Rom a Rom para comprobar el manifiesto de ROM para el mismo. La
instuccin general es

Cdigo:

Brunch <codename> - j #
<Codename> CodeName de su dispositivo
# Es el nmero de ncleos de CPU que tiene.
La construccin tomar tiempo dependiendo de la configuracin del sistema.

Una vez que el edificio est terminado.


Su hora de aplicar los remiendos que sern dados en nuestro hilo de CM Rom si cualquiera.
Siga la gua de @ rutvikrvr en Post 10 para aplicar parches.
Una vez hecha reconstruir de nuevo utilizando el comando anterior (este tiempo de construccin ser
rpido)

Ahora ve a tu directorio de trabajo y ve a OUT / target / tu dispositivo / obtendrs el Zip de la ROM.


Siempre haga una copia de seguridad de su Rom actual.
Flash a travs de la recuperacin y el control.

Hurrrrrray Usted acaba de desarrollar un


rom de la fuente
Respuesta rpida Respuesta

Los siguientes 140 usuarios dicen Gracias a jackeagle por este post: [Ver]

Jackeagle

13 de julio de 2014, 15:48 | # 5

Moderador del Foro OP / Desarrollador Reconocido


XDA

Gracias Meter : 6,682

Donar a m

Ms

Subir rbol de dispositivos a Github

As que los chicos hasta ahora aprendimos mucho de las cosas y, finalmente,
construimos una ROM Durante la construccin de la ROM que puede haber
editado mucho de las cosas en el rbol del dispositivo Para evitar que se
repitan en caso de que elimine el rbol o si su ROM no es oficial, entonces tiene
que cargar el rbol de origen del dispositivo a Github. Hay muchos usos si subes
el rbol de dispositivos.

Comencemos con la gua ahora

1) Cree una cuenta en Github.

2) Generar una nueva clave SSH


Introduzca el comando siguiente al terminal
Cdigo:

Ssh-keygen -t rsa -C "your_email@example.com"


"Your_email@example.com" = su ID de correo electrnico de github

Despus de pulsar Enter, observar la siguiente salida

Cdigo:

# Crea una nueva clave ssh, utilizando el correo electrnico proporcionado


como una etiqueta
# Generar par de claves rsa pblico / privado.
# Introduzca el archivo en el que desea guardar la clave
(/home/you/.ssh/id_rsa):
Pulse Intro.

Ahora debes introducir la contrasea

Cdigo:

# Introduce la contrasea (vaca para no la frase de contrasea): [Escribe una


frase de contrasea] # Ingresa la misma frase de contrasea nuevamente: [Escribe
la frase de contrasea nuevamente]
Una vez hecho todo ver lo siguiente en su terminal.

Cdigo:
Su identificacin se ha guardado en /home/you/.ssh/id_rsa.
# Su clave pblica se ha guardado en /home/you/.ssh/id_rsa.pub.
# La huella digital clave es:
# 01: 0f: f4: 3b: ca: 85: d6: 17: a1: 7d: f0: 68: 9d: f0: a2: db
your_email@example.com
Ahora vaya a la carpeta ~ / .ssh y copie su contenido id_rsa.pub en la administracin de la cuenta en
github.com.
Eso es ir a la configuracin de la cuenta github y SSH
Copiar la pasta id_rsa.pub contenido all y guardarlo hecho.

Ahora es hora de comprobar si todo funciona.

Ingrese el siguiente comando a la terminal

Cdigo:

Ssh -T git@github.com

Debe mostrar tiene sigue

Cdigo:

No se puede establecer la autenticidad del host 'github.com


(207.97.227.239)'.
# La huella digital clave de RSA es 16: 27: ac: a5: 76: 28: 2d: 36: 63:
1b: 56: 4d: eb: df: a6: 48.
# Est seguro de que desea continuar conectndose (s / no)?

Escriba yes y presione enter

Cdigo:

Hola nombre de usuario Se ha autenticado correctamente, pero GitHub no


# Proporcionar acceso a shell.

Ahora todo hecho su tiempo para cargar el rbol del dispositivo a


Github

Ejemplo Dispositivo y Rom: GT-I9082 y AOGP Rom.


En los siguientes pasos tomo mi ejemplo de dispositivo y Rom slo
reemplazar el dispositivo con su dispositivo y Rom con su ROM

Pasos:

En la terminal

Cdigo:

Cd aogp / dispositivo / samsung / i9082


Luego sigue el tipo

Cdigo:

Git init
Configuracin de los archivos git necesarios para empujar los
archivos a la cuenta github se har mediante el siguiente
comando

Cdigo:

Git add
Ahora tenemos que comentar sobre los archivos que estamos
empujando a github por lo tanto, entrar en el siguiente comando

Cdigo:

Git commit -m "primer commit"


Ahora Vaya a su cuenta de Github haga clic en el botn de aadir
en la parte superior junto a su nombre de usuario y seleccione
Nuevo repositorio

Introduzca el nombre de su repositorio en mi caso puede ver la


pantalla siguiente
Ahora puedes ver algunos comandos mostrados entrar en el
enlace git mostrado en tu repositorio cre el terminal en mi caso

Cdigo:

Git remote add origin


https://github.com/username/aogp_device_samsung_i9082.git
El ltimo paso es empujar la fuente a Github. Ingrese el siguiente
comando en Terminal

Cdigo:

Git push origen maestro


La frase de contrasea es la misma que introdujo al crear la clave SSH.
Finalmente su fuente est en Github ahora agrega el archivo
Readme.md y menciona Esto es <ROM NAME> rbol de Dispositivos
para <Your Device>

Has subido correctamente tu rbol de


dispositivos a Github
Crditos
Rutvikrvr
@ Kishan14
@ K2wl (Mi Mentor e Inspiracin para Android)

Si quieres saber ms sobre Github y Stuffs puedes visitar la siguiente gua


de XDA Senior Moderator @ eagleeyetom (Muchas gracias)

Gua Enlace: http://forum.xda-developers.com/show....php?t=1877040


Respuesta rpida Respuesta

Los siguientes 110 usuarios dicen Gracias a jackeagle por este post: [Ver]

Jackeagle

13 de julio de 2014, 15:48 | # 6

Moderador del Foro OP / Desarrollador Reconocido

XDA

Gracias Meter : 6,682

Donar a m

Ms

Preguntas Frecuentes (FAQ)

A continuacin se presentan algunas preguntas frecuentes

1) Puedo usar diferentes sistemas operativos Linux como Linux Mint, Arch Linux, Ubuntu
14.04 etc?
S. Usted es libre de usar cualquier sistema Linux, pero recuerde que algunos comandos
pueden no funcionar en otro sistema Linux o puede resultar en error por lo tanto, no puedo
darle soporte. Si tuviera xito en Otros sistemas operativos Linux, hzmelo saber

2) Dnde est la siguiente parte de la Gua?


Este hilo es todava trabajo en curso (WIP) por lo tanto estamos trabajando en l y se
agregar una vez hecho

3) Tengo un error para la Tarea X y lo solucion. Puedo compartir aqu?


S, puedes compartirlo con la solucin (si tienes)

4) Tengo un error Dnde debo enviar?


Usted puede copiar pegar el error del terminal a aqu usando la etiqueta o usted puede
Pastebin l. Cualquiera que ests Cmodo con

5) Puedo usar Linux 32Bit para el desarrollo de Android?


No Necesitas 64bit Linux System Para Android Development

6) Puedo usar X Device Tree para Y Device (Cloned Etc)?


No Debe usar su rbol especfico del dispositivo no otro rbol de dispositivos aunque sean
similares El rbol del dispositivo / kernel / proveedor es especfico para cada dispositivo.
As que si usted no lo tiene, entonces O bien hacer su propio rbol o esperar a los
desarrolladores a hacer eso

7) Son Especficas Fuentes de Dispositivos Versin de Android?


S Las fuentes especficas del dispositivo son especficas de la versin pero la modificacin
en la fuente puede ser pequea o enorme dependiendo de la caracterstica de la mejora del
androide / de la mejora etc. de la seguridad ...

8) Obtencin de errores Java al compilar qu hacer?


Su debido a Java incorrecto para la compilacin usted necesita la versin correcta de Java
instalada para
Kitkat: Java v1.6
Lollipop: Java v1.7

Respuesta rpida Respuesta


Los Siguientes 71 Usuarios Agradecieron a jackeagle Por Este Mensaje: [Ver]

Jackeagle

13 de julio de 2014, 15:49 | # 7


Moderador del Foro OP / Desarrollador Reconocido

XDA

Gracias Meter : 6,682

Donar a m

Ms

Algunos errores y su solucin


Set-1 (Gracias @ Nikhil )

1) gr_text

La lnea "nota: la declaracin previa de 'gr_text' estaba aqu" dice que


minui.h tiene una declaracin de gr_text que es diferente de la definicin de
la funcin gr_text.
Comprobar minui.h, lnea 36 (como se indica en Captura de pantalla) y
comparar la declaracin de gr_text con la definicin de gr_text en file
recovery / graphics.c en el rbol de dispositivos. Ellos deben ser iguales.

2) hardware ril

Esto generalmente ocurre cuando hardware / samsung falta algunos


archivos.

Solucin: ingrese esto en el terminal

Cd hardware && git clone


https://github.com/SlimRoms/hardware_samsung.git -b kk4.4 && mv
hardware_samsung samsung

Usted puede utilizar el acoplamiento especfico del github de Rom, SlimRoms


es un ejemplo.

3) hwc_blit

"'HWC_BLIT' no se declar en este mbito". HWC_BLIT es una variable con


valor 4 y se requiere que se declare

Solucin: hay un archivo include / hardware / hwcomposer_defs.h en el rbol


de dispositivos, puede inicializar HWC_BLIT como 4.

4) versin java

De Froyo a Kitkat, la versin de java requerida es 1.6


Desde Android L, la versin de jave requerida ser 1.7

Screenshot tiene la versin 1.8, por lo tanto, el error.

Solucin: Instale Java 1.6

// Instalar JDK6
// Descargue el archivo bin desde
http://ghaffarian.net/downloads/Java/JDK/

// Para eliminar el paquete java existente


Sudo apt-get purge openjdk - \ * icedtea - \ * icedtea6 - \ *

// instala java JDK6 (descarga y guarda el archivo .bin en el directorio raz.)


Sudo mkdir -p / opt / java / 64 /
Sudo cp jdk-6u45-linux-x64.bin / opt / java / 64
Sudo su
Cd / opt / java / 64
Chmod + x jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
salida

// agrega ruta JDK a .bashrc


Gksudo gedit ~ / .bashrc
// agrega las siguientes lneas a .bashrc
# Java PATHs
Export JAVA_HOME = / opt / java / 64 / jdk1.6.0_45
Export PATH = $ PATH: $ JAVA_HOME / bin

// install jre
Sudo apt-get instalar openjdk-6-jre-headless

Set-2 (Gracias @ JJsevol )


# Errores que podras ver cuando ejecutas el comando build.
# Error 1: build / envsetup.sh: lnea 1365: schedtool: comando no
encontrado

SOLUCIN: sudo apt-get install schedtool y comando rerun build.

# Error 2: / bin / bash: prebuilts / gcc / linux-x86 / brazo / brazo-linux-


androideabi-4.7 / bin / arm-linux-androideabi-gcc: no se puede ejecutar
el archivo binario
/ Bin / bash: prebuilts / gcc / linux-x86 / brazo / brazo-linux-androideabi-
4.7 / bin / arm-linux-androideabi-gcc: no se puede ejecutar archivo
binario

SOLUCIN: Es probable que no ejecute una versin de 64 bits de Linux.


Para asegurarse, escriba uname -m

Si ves i686, tienes una versin de 32 bits. Si ve x86_64, tiene una versin de
64 bits. Si tiene 32 bits de inicio con una versin amd64
http://releases.ubuntu.com/13.10/

# Error 3: Si ve un error de 127 bison

SOLUCIN: sudo apt-get instalar bison construir-esencial curl flex git gnup
gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2
libxml2-utils lzop openjdk-6-jdk openjdk-6-jre phablet-tools Pngcrush
schedtool squashfs-herramientas xsltproc zip zlib1g-dev

Adems de lo anterior,

Sudo apt-get install g ++ - multilib gcc-multilib lib32ncurses5-dev


lib32readline-gplv2-dev lib32z1-dev
Colaboradores de la Gua
@jackeagle
@ Kishan14
Rutvikrvr
K2wl
Trach

Crditos:
@ K2wl (Muchas gracias)
Desarrolladores XDA
Respuesta rpida Respuesta
Los siguientes 89 usuarios dicen Gracias a jackeagle por este post: [Ver]

Kishan14

13 de julio de 2014, 03:56 PM | # 8

Miembro Senior

Mumbai

Gracias Meter : 526

Ms

Reposicin y Manifiesto
Hola muchachos..
Hay muchos desarrolladores prximos y muchos
desarrolladores en xda.Till ahora todos ustedes han
aprendido a configurar el entorno de construccin y
paquetes necesarios y construir el proceso. Ahora aqu voy a
compartir algunos consejos y trucos que ayudarn a algunos
nuevos desarrolladores para el desarrollo de sus ROMs y
Kernels. Bueno, no soy profesional en todas estas cosas,
incluso yo soy un novato. Me he encontrado con muchas guas
y mi mejor amigo Google.
Estos consejos pueden ahorrar tiempo, ancho de banda de
Internet, espacio en disco duro, etc.

Requisitos:
Conocimientos bsicos de compilacin de ROM / kernel
Ok, as que aqu empiezo:

Repositorio (Repo)
Qu es Repo?
Repo es una herramienta de administracin de repositorios que hemos
construido sobre Git. Repo unifica los muchos repositorios de Git cuando es
necesario, hace los uploads a nuestro sistema de control de revisiones, y
automatiza partes del flujo de trabajo de desarrollo de Android. Repo no est
destinado a reemplazar a Git, slo para hacer ms fcil trabajar con Git en el
contexto de Android. El comando repo es un script ejecutable de Python que
puedes poner en cualquier parte de tu ruta. Al trabajar con los archivos de
origen de Android, utilizar Repo para operaciones en toda la red. Por ejemplo,
con un solo comando Repo puede descargar archivos de mltiples repositorios
en su directorio de trabajo local
Fue eso una definicin un poco difcil .. sin preocupaciones ... aqu las
capturas de pantalla que explican ms o menos.
La imagen mostrada arriba es repositorios (Platform_mainfest, C-Rom Device
tree, android, etc.)
En palabras simples puede decir 'repo es una carpeta que almacena cdigo'. En
la imagen anterior, los dos repo se destacan. El repo resaltado negro es el que
uno ha escrito o contribuido. El otro (rojo) muestra que el repo se bifurca de otro
repo.

Herramienta Repo:
Esta herramienta juega un papel muy importante en la descarga de la fuente de
rom. As que la palabra 'Repo' es comn con ustedes como u hacer 'repo init'
'repo sync' ..
Recuerde, a partir de la gua anterior, durante la configuracin de Linux que
introdujo un comando
Cdigo:

Mkdir ~ / bin && curl http: //commondatastorage.googleapis....downloads /repo>


~ / bin / repo && chmod a + x ~ / bin / repo
En un lenguaje simple Este Paso fue para descargar e instalar la herramienta Repo ..

Por qu se utiliza esta herramienta?


La herramienta Repo le ayuda a descargar el montn de repositorios
introduciendo un solo comando, lo que nos ayuda a facilitar nuestra parte de
descarga. Para descargar el siguiente comando de origen se utiliza:
Cdigo:

Repo sync -j #
# - nmero de trabajos que desea dar para su fuente de descarga.

Ahora puede surgir una pregunta Qu hace


Repo Tool realmente?
Umm, Permtanme explicar con un ejemplo, Tomemos el ejemplo anterior. La
herramienta de repo toma toda la referencia para el cdigo que se descargar
de un Manifest.xml. Supongamos que desea descargar la fuente cm. Por lo
tanto, como se mencion anteriormente, usted tiene que dar "repo init"
comando. Despus de que se cree el comando '.repo'. Encontrar el archivo
'manifest.xml' en la carpeta '.repo'. Ahora, cuando abra Manifest.xml archivo
encontrar alguna ruta de los archivos y carpetas. El comando 'repo sync'
descarga los archivos y carpetas que se mencionan en manifest.xml a la
ubicacin especfica mencionada.
Ahora, las etiquetas '-j #' representa el nmero de puestos de trabajo que
permite que su PC para descargar la fuente. Para la velocidad normal de
Internet, se recomienda utilizar -j2 o -j4. Para la conexin ms rpida se
recomienda -j16 o -j32.

el Manifiesto
El manifest.xml es un archivo que est escrito en el formato XML y dirige el
repositorio de herramientas a los repositorios y sus respectivas ramas que
necesitan ser descargados. Este manifiesto se encuentra debajo de la cabeza
del rbol de cdigo fuente de Android en el / los manifiestos / directorio .repo. El
manifiesto tiene el formato de marcado XML y contiene informacin sobre los
repositorios Git a utilizar, donde se encuentran ubicados en el Internet, dnde
los puso en la fuente de cdigo de directorio, y lo que las ramas de los
repositorios Git se utilizan. Algunos de estos repositorios se tira, sin modificar de
AOSP, pero la mayora vienen de CyanogenMod en GitHub. Podemos tomar los
repositorios desde los distintos servidores Git, utilizar diferentes ramas para
cada uno de ellos, se renen en grupos para una fcil gestin y mucho ms. He
aqu un ejemplo de un manifiesto XML archivo :
Cdigo:

<Manifiesto>
<Nombre remoto = "AOSP"
fetch = "https://android.googlesource.com/" />
<Nombre remoto = "aogp"
fetch = "https://github.com/aogp/" />

<Predeterminado revision = "maestro"


remoto = "AOSP"
sync-j = "4" />

<Project path = nombre de "arte" = "plataforma / arte" />


<Project path = "binica" name = "plataforma / binica" grupos = "PDK" />
<project path = nombre de "Dalvik" = "platform_dalvik remoto = aogp />
<proyecto path = "marcos / base" name = "platform_frameworks_base" remoto =
aogp" Revisin = statusbar_fixes" />
< "/ eclipse herramientas / adt" name = "/ eclipse plataforma / herramientas /
adt" grupos de proyecto path = = "notdefault, herramientas" />
</ Manifest>

Vamos a revisar su estructura y ver por qu se usa


<remote>
El remota etiqueta est describiendo las remotas servidores git que apoyamos
tirando de repositorios. En este caso, tenemos una distancia AOSP nombre,
que une al servidor git AOSP del Google, y otro llamado AOGP, la vinculacin a
una cuenta de Github del usuario AOGP.

<proyecto>
Define un nico repositorio. Estos son los principales atributos:
path - Cuando el depsito se comprobar a cabo dentro, en relacin con el
directorio de trabajo actual.
Nombre - El nombre del proyecto en nuestro servidor Git
remoto - El nombre de la remota del servidor en el que el repositorio puede ser
encontrado.
Revisin - El nombre de la rama / etiqueta que desea para la obtencin.
grupo - El nombre (s) del grupo para este proyecto. Podemos declarar un
conjunto de proyectos como miembros de un grupo, a continuacin, sincronizar
slo a ellos. La omisin de este atributo hace que el proyecto sea un miembro
del grupo por defecto.
<predeterminado>
Ahora como el mando a distancia se especifica, puede basar ests manifiesta a
una determinada distancia y definirlo como predeterminado remota . Define un
valores por defecto para los atributos que estamos utilizando, al sincronizar el
sistema . En este caso, establecemos la rama por defecto a la caja de cada
proyecto en su rama master y el valor predeterminado a distancia como
AOSP. Si omitimos esos atributos en la definicin de un proyecto, se utilizarn
los valores predeterminados definidos aqu. Otros atributos interesantes:

sync-j
El valor de este ser el nmero de puestos de trabajo a utilizar al sincronizar el
sistema . Paralelizacin ayuda a hacer el trabajo ms rpido, pero tambin
podra hacer que la computadora o la red atascado. Uso de 4 hilos es lo que
comnmente utilizado para la sincronizacin.

sync-c
sincronizacin slo la corriente rama / etiqueta de git. Esto comprobacin para
cada proyecto slo la rama actual / tag que especificamos para ello, y no
cualquier otra rama que existe en el repositorio. Esto ayudar a ahorrar algo de
espacio y ancho de banda (y tambin el tiempo), pero si usted necesita cambiar
entre las ramas en un proyecto especfico ms adelante - se necesita a buscarlo
manualmente.

Local_Manifest:
Si usted quiere cambiar la lista manifest.xml, puedes editarla default.xml
directamente. Sin embargo, esto hara que su copia local de la manifiestamente
contraria a la versin oficial en github. Esto podra crear problemas cuando se
actualiza el manifiesto oficial, ya que entrara en conflicto con los cambios.
SO NUNCA PIENSA DE EDICIN default.xml

Ahora surge la pregunta de cmo podemos


controlar la sincronizacin?
Aqu es donde se manifiesta locales entran en juego.
La creacin de un manifiesto locales le permite personalizar la lista de
repositorios utilizados en su copia de la fuente de cdigo reemplazando o
complementando el manifiesto por defecto. De esta manera, se puede aadir,
eliminar o sustituir la fuente de cdigo en el manifiesto oficial con su propio. Con
la inclusin de los repositorios (que ni siquiera necesitan residir en GitHub) en
un manifiesto local, puede continuar para sincronizar con el comando de
sincronizacin de recompra del mismo modo que tener previamente. Slo
ahora, tanto los repositorios oficiales del manifiesto por defecto y los
repositorios adicionales que especifique sern comprobados para las
actualizaciones.
Por lo tanto es Local_manifest.xml gran ayuda para Desarrolladores

Usos de Local_manifest.xml
1) Adicin y eliminacin de depsitos

para aadir a los contenidos del manifiesto por defecto, crear un archivo
llamado local_manifests.xml bajo el directorio .repo, esto tambin puede ser
creado a travs del terminal de utilizando los pasos siguientes:

A) terminal abierto (Ctrl + Alt + T) y escriba el siguiente comando y pulsa Intro.


Cdigo:

cd path_of_ur_folder / .repo

B) el tipo siguiente comando

Cdigo:

local_manifest.xml nano
Ahora escribe el contenido que quieres aadir a local_manifest.xml. Despus de completar pulse la tecla
"Ctrl + O" y despus haga clic en Aceptar para guardarlo. para salir del editor de nano presione "Ctrl + X"
Simple no es?

Vamos a empezar con un ejemplo que podemos usar para describir el escenario:

Cdigo:

<? Xml version = "1.0" encoding = "UTF-8"?>


<Manifiesto>

<Nombre remoto = "github" fetch = "git: //www.github.com/" />

<Remove-proyecto name = "CyanogenMod / android_hardware_qcom_fm" />

<path = "QCOM / fm hardware /" nombre del proyecto = "aogp / hardware / QCOM /
fm" remoto = "github" revisin = "cm-11,0" />

</ Manifest>

Significado de los trminos anteriores

1) <? Xml version = "1.0" encoding = "UTF-8"?>


Es una declaracin XML estndar, diciendo a los intrpretes se trata de un lenguaje de marcado extensible
archivo . Una vez que esto est establecido, los <manifest> y </> etiquetas manifiesta encierran algunos de
los contenidos que reconocer el comando repo.

2) <remote name = "github" fetch = "git: //www.github.com/" />


En primer lugar, un mando a distancia para git se declara y recibi el nombre de "github". En git, un mando
a distancia se refiere esencialmente a un lugar y mtodo para acceder a un repositorio git. En este caso,
www.github.com contiene depsitos especiales-actualizados para el hardware de la plataforma FM QCOM
"AOGP". Esto es equivalente a la siguiente comando git:
git remoto aadir git github: //www.github.com/

3) <eliminar-proyecto name = "CyanogenMod / android_hardware_qcom_fm" />


Esta lnea elimina un proyecto (especficamente, CyanogenMod / android_hardware_qcom_fm) declarada
en el manifiesto por defecto. Despus de ejecutar sincronizacin de recompra, que ya no estar disponible
en el rbol de fuentes.

4) <proyecto path = "QCOM / fm hardware /" name = "aogp / hardware / QCOM / fm" remoto = "github"
revisin = "cm-11,0" />
Esta lnea define un nuevo proyecto. En este caso, se reemplaza el proyecto eliminado
android_hardware_qcom / fm con uno de otro, utilizando el mando a distancia que se ha definido
anteriormente.

Al agregar un nuevo proyecto que sustituye a un proyecto existente, debe quitar siempre ese proyecto
antes de definir su reemplazo.
Usted puede simplemente aadir un nuevo proyecto para la fuente de cdigo , como por ejemplo cuando
se desea aadir su aplicacin a la construccin.

Tenga en cuenta que al aadir nuevos proyectos, hay al menos tres partes definidas:
a distancia - el nombre del mando a distancia . este puede ser uno que se ha definido ya sea en el
manifiesto por defecto o local_manifest.xml.
Nombre - el nombre de ms del proyecto git para github que tiene el formato nombre_cuenta /
project_name.
Ruta - donde el repositorio git debe ir en su copia local de la fuente de cdigo .
Revisin - (opcional) que se ramifican o etiqueta para su uso en el repositorio. Si se omite este atributo,
sincronizacin de recompra utilizar la revisin especificada por la etiqueta <predeterminado ... /> en el
manifiesto por defecto.

Despus de crear .repo / local_manifests.xml, usted debe ser capaz de repo sync y la fuente de cdigo se

actualizar en consecuencia

Esto fue todo sobre Repo y Manifiesto


Ahora voy a darle algunos consejos que le ayudarn a una forma ms mejor en el desarrollo . !!!

TRUCOS Y CONSEJOS

Consejo # 1 La sincronizacin completa un nuevo


rbol de fuentes en cuestin de minutos!

Supongamos que usted quiere compilar mltiples ROMs para el dispositivo. Por
ejemplo, es posible que desee tener un rbol de fuentes AOGP, as como un
rbol CM.
Obvisouly, se podra repetir los mismos pasos, a repo init y luego repo -j8
sincronizacin para ambos. Pero eso sera el doble de tiempo. no es as?
No hay ningn problema, no es un simple truco para descargar el cdigo fuente
dentro de pocos minutos (dependiendo de su velocidad de Internet). Digamos
que ya ha inicializado y sincronizado un rbol de fuentes CM, en ~ / ROM /
CM11.
Ahora, vamos a preparar una nueva cesin temporal para el rbol AOGP, en ~ /
ROM / aogp. Aqu viene el truco: Vamos a utilizar la bandera de --reference init
repo repo para indicar a que ya tenemos un repositorio local que puede tomar la
informacin de, en lugar de descargar todo de nuevo a Internet:
lo que permite decir u quiere comenzar con AOGP , as que aqu tiene los pasos
que tienes que seguir:
Cdigo:
ROMs mkdir / aogp && los CD-ROM / aogp
Cdigo:

repo init --reference = ~ / ROM / CM11 -u git: //github.com/AOGP/android.git -b


cm-11.0
Usted debe notar una gran diferencia de tiempo, desde horas para una sincronizacin completa de
recompra, a minutos usando este truco!

U entendido lo que hizo exactamente? NO!


he aqu las palabras simples que explican acerca de las marcas de referencia. En este consejo (indicador de
referencia) el repositorio de herramientas hace que comprueba la fuente descargado localmente y se salta
la descarga de enlaces simblicos que el cdigo de la fuente existente a la nueva fuente.

Consejo # 2 Uso ccache tambin conocido como


cach de compilador herramienta
Ccache tambin conocido como un cach de compilacin de herramientas , que
almacena en cach la salida del compilador, para ahorrar tiempo al compilar un
archivo que no se ha cambiado desde la ltima compilacin. Es realmente un
mejor compaero de rom desarrolladores
Para habilitar ccache,
usar su editor favorito .. Voy a estar usando el editor nano
1) Abra un terminal (CNTRL + alt + t) y el tipo
Cdigo:

Bashrc nano

2) Aadir el siguiente cdigo :

Cdigo:

exportacin USE_CCACHE = 1
Despus de iniciar sesin y vuelva a iniciarla de nuevo, este cambio tendr efecto.
Por defecto, el proceso de construccin Android crea una subcarpeta denominada fuera en la raz del
rbol de cdigo fuente. Mientras que para la mayora de usuarios esto es lo mejor, en algunas situaciones
puede ser ventajoso para mover el directorio de salida a otro archivo de sistema . Si, por ejemplo, tiene una
matriz RAID segmentado, es beneficioso para almacenar el directorio de salida en esta matriz. Todos los
archivos dentro del directorio de salida se puede volver a generar en caso de problemas del sistema de
archivos (si las fuentes se llevaron a cabo en otro sistema de archivos).
Para cambiar el directorio de salida a otro sistema de archivos, utilice el comando

Cdigo:

exportacin OUT_DIR_COMMON_BASE = /<path_of_your_choice>/.ccache


Cdigo:

prebuilts / misc / Linux en x86 / ccache / ccache -M 50G

El tamao de la cach sugerido es de 50-100.

En OSX, se debe reemplazar Linux-x86-x86 con Darwin


Lo anterior directorio de salida definida ser creado una nueva carpeta, el nombre de su directorio rbol
fuente de corriente. Por ejemplo, si tiene rboles de fuentes como / fuente / tree1 y / fuente / tree2 y
OUT_DIR_COMMON_BASE se establece en / salida, entonces los directorios de salida sern / salida / tree1
y / salida / tree2.
Por tanto, es importante asegurarse de que usted no tiene mltiples fuentes almacenados en un directorio
con el mismo nombre, ya que terminaran compartiendo un directorio de salida, con resultados
impredecibles.

Consejo # 3 Jugando con local_manifest.xml


En muchos Manifest.xml usted encontrar muchas cosas que no necesita nuestro dispositivo. Tambin hay
archivos necesarios y que no est presente en la default.xml.

* Adicin de proyectos a local_manifest.xml


Por lo tanto, aadir proyectos a su local_manifest.xml para su dispositivo se
refiere el siguiente formato que explica la misma.
Cdigo:

<? Xml version = "1.0" encoding = "UTF-8"?>


<Manifiesto>

<project path = "directorio en el rbol de trabajo" name = 'nombre del


repositorio en el mando a distancia ' a distancia = 'nombre de distancia
definido anteriormente' revision = 'rama del repositorio' />

</ Manifest>

Todava tiene algunas dudas ?? El siguiente ejemplo desactivarla ..


Supongamos que quiero aadir rbol de dispositivos, kernel y proveedor para el dispositivo que se necesita
en construccin ROM Gua Sobre i ll seguir el formato arriba y har un nuevo uno para mi dispositivo.
Ejemplo dispositivo que se utiliza aqu: Samsung Galaxy Gran Duos GT-I9082

Cdigo:

<? Xml version = "1.0" encoding = "UTF-8"?>


<Manifiesto>
<proyecto path = "dispositivo / Samsung / i9082" name = "pawitp /
android_device_samsung_i9082" remoto = "github" revisin = "cm-11,0" />
<project path = "vendedor / Samsung / i9082" name = "k2wl /
android_vendor_samsung_i9082" remoto = "github" revision = "maestro" />
<project path = "kernel / Samsung / i9082" name = "pawitp /
android_kernel_samsung_i9082" remoto = "github" revision = "cm-11.0" />
</ Manifest>

Esto descargar su identidad dispositivo necesario para Rom Edificio

* quitar cosas no deseadas de default.xml


Como he mencionado anteriormente el comando para eliminar el proyecto,
puede utilizar ese comando para eliminar el material no deseado de default.xml
Como la mayora de las personas aqu estn utilizando Linux. Como Dawin
herramienta cadenas son utilizados por MAC OS , tanto Darwin herramienta
cadenas y paquetes de Darwin son intiles para los usuarios de Linux. Se
puede quitar el mismo mediante el uso de comandos quitar proyecto.
Por ejemplo :
Cdigo:
<Proyecto path = "prebuilts / gcc / Darwin-x86 / brazo / brazo-EABI-4,6" name =
"plataforma / prebuilts / gcc / Darwin-x86 / brazo /-brazo EABI-4,6" grupos =
"pdk, Darwin, brazo "/>
<Proyecto path = "prebuilts / gcc / Darwin-x86 / brazo / brazo-linux-
androideabi-4,6" name = "plataforma / prebuilts / gcc / Darwin-x86 / brazo /
brazo-linux-androideabi-4,6" pdk grupos = " , Darwin, el brazo"/>
<Proyecto path = "prebuilts / gcc / Darwin-x86 / mips / mipsel-linux-android-
4,6" name = "plataforma / prebuilts / gcc / Darwin-x86 / mips / mipsel-linux-
android-4,6" pdk grupos = " , Darwin, MIPS"/>
<Proyecto path = "prebuilts / gcc / Darwin-x86 / x86 / i686-linux-android-4,6"
grupos = "pdk name = "plataforma / prebuilts / gcc / Darwin-x86 / x86 /-4,6
i686-linux-androide" , Darwin, x 86" />
Antes de quitar Darwin Lines ver ms abajo
Despus de eliminar las lneas de Darwin
Desde arriba se puede notar antes haba 462 proyectos para ser descargados,
pero despus de eliminar las lneas darwin su delgado a 444 proyectos.
Menos proyectos para descargar sincronizacin completan ms rpido
* Eliminar todo el dispositivo oficial no
requerido por usted para la compilacin.
Habr muchos dispositivos que son oficialmente compatibles con los
desarrolladores de ROM y all se agregar Tree a Default.xml que son intiles
para su dispositivo.
El dispositivo puede tener el siguiente formato
Cdigo:

Android_device_companyname_codename

Por ejemplo :

Cdigo:
Android_device_samsung_codename

* Similarmente quita toda la fuente del


kernel no requerida por usted pues tardar
ms tiempo y su precioso ancho de banda.
* Eliminar todos los rboles de proveedores
innecesarios del manifiesto .. Por qu
necesita las gotas de un dispositivo que no
estn construyendo para!
Espero que estos consejos te ayuden mucho ... !!!
Cualquier duda .. publicar en este hilo .. !!
Crditos :; @ Jacle agle para editar y capturas de pantalla ..

Respuesta rpida Respuesta

Los siguientes 96 usuarios dicen Gracias a Kishan14 por este mensaje: [View] Gift Kishan14 Ad-Free

RVR

13 de julio de 2014, 03:57 PM | # 9

Colaborador reconocido

Mumbai

Gracias Meter : 2,807

Donar a m

Ms

Hacer que el rbol del dispositivo CM sea compatible con su


ROM para compilar

Ahora sabemos que para descargar fuentes el siguiente paso es compilar la


fuente para su mvil. Sin embargo, algunas modificaciones son necesarias para
compilar.
Hay muchos dispositivos con slo CM .... pero el rbol de dispositivo cm tiene
que ser modificado para compilar con otras roms ...

Esta gua te dir u especfico a slimroms y te dar una idea en general ... voy a
tomar Galaxy Grand Duos como un ejemplo

SI USTED EST CONSTRUYENDO PARA OTRO DISPOSITIVO,


SIMPLEMENTE RENAME i9082 al nombre de su dispositivo Y LIMPIE A
CUALQUIER ROM QUE USTED EST CONSTRUYENDO.

Ok Ahora vamos a empezar con l.

Hay principalmente 3 archivos en el rbol de CM que deben ser modificados


Son,

1) cm.mk

2) cm.dependencias

3) AndroidProducts.mk

La imagen siguiente muestra el rbol general del dispositivo .... los 3 archivos
marcados en rojo son los archivos que tienen que ser editados.
1) Cambie el nombre de cm.mk a slim.mk

La imagen de abajo muestra las diferencias entre el CM.MK y SLIM.MK


Como se puede ver que slo hemos reemplazado CM con SLIM y agreg la
trayectoria BOOTANIMATION (el camino BOOTANIMATION NO ES
NECESARIO EN TODAS LAS ROMS ... SOLAMENTE SLIMROMS,
VANIRAOSP, LIQUIDSMOOTH Y SOKP REQUIERE ESTO)

Los valores de animacin de inicio deben cambiarse de acuerdo con SU


RESOLUCIN DE DISPOSITIVO

POR EJEMPLO SI UR PANTALLA ES HD (XHDPI) ENTONCES DEBE SER LO


SIGUIENTE

Cdigo:
# Animacin de inicio

TARGET_SCREEN_HEIGHT: = 1280

TARGET_SCREEN_WIDTH: = 720

PRODUCT_COPY_FILES + = \

Proveedor / slim / prebuilt / common / bootanimation / 720.zip: system /


media / bootanimation.zip

Ahora todos ustedes deben estar pensando por qu cambiamos el nombre de cm.mk a slim.mk.

Una respuesta simple es que vayamos a la carpeta de proveedores y verifiquemos el nombre y lo


reemplacemos. (Algunas ROM puede dar un error)
... por ejemplo en vaniraosp si renombra cm.mk a vanir.mk

EN ESTE CASO SIMPLEMENTE RENAME EL "cm.mk" a "vanir_i9082.mk" y su


problema es ordenado Simple no es

As que ahora usted debe estar preguntndose sobre el nombre del producto ... como en la imagen anterior
slo el "cm" cambia a "slim" con la misma lgica del nombre del proveedor
En este caso vemos que slim es el proveedor ... as que cambiamos el nombre
de cm.mk a slim.mk

Esta misma regla se aplica al contenido dentro de slim.mk tambin ... primero
asegrese de que los archivos estn disponibles en esa ubicacin.
Como se puede ver la imagen de arriba de los archivos existen en el proveedor
/ slim / config .. por lo que significa que nos estamos moviendo en el camino
correcto

NADA NECESITA SER TOCADO EN ESTE ARCHIVO AHORA EL 33,33%


DE NUESTRO RBITRO DE DISPOSITIVO EST LISTO PARA COMPILAR
CON LA FUENTE SLIMROM

2) Ahora tenemos que mover segundo archivo "cm.dependencies"

Este archivo ser simplemente renombrado por el nombre del proveedor ...

En este caso "delgado" .... por lo que cambiar el nombre a "slim.dependencies"

SO AHORA 66.66% COMPLETADO

3) El ltimo y el cambio final requerido est en el " AndroidProducts.mk "

En este archivo simplemente cambie el nombre de "device_i9082.mk" a lo que


usted renombr el "cm.mk" a. En este caso es "slim.mk" as que
"device_i9082.mk" ser renombrado a "slim.mk" compruebe la imagen abajo
para entender mejor
Hurrrray AHORA NUESTRO RBOL DEL DISPOSITIVO ES
COMPLETAMENTE COMPATIBLE CON LA FUENTE SLIMROM.

TODO LO MEJOR!!!!!!

CRDITOS

UN GRAN GRACIAS A @ k2wl y @ xenon92 ... LA NICA RAZN DE INICIAR EL DESARROLLO

Respuesta rpida Respuesta


Los siguientes 88 usuarios dicen Gracias a RVR por este mensaje til: [Ver] Gift RVR Ad-Free

RVR

14 de julio de 2014, 05:43 PM | # 10

Colaborador reconocido

Mumbai

Gracias Meter : 2,807

Donar a m

Ms

Cmo aplicar parches a la fuente?

Hay muchos dispositivos que necesitan parches para que funcionen las funciones bsicas. As que en esta
gua hablar sobre la aplicacin de parches de github y la Gerrit Code Review AQU OTRA VEZ LLEVAR
I9082 COMO UN EJEMPLO
I) APLICACIN DE PARCHES DE LA REVISIN DEL CDIGO GERRIT.
NOTA: SI LA ROM QUE EST COMPILANDO SE BASA EN CYANOGENMOD Y EL COMPROMISO SE FUNDA ...
ENTONCES EL PARCHE NO DEBE SER APLICADO

Esto es cmo una revisin de cdigo gerrit tpicamente se ve. Para aplicar un parche desde aqu ...

PASO 1: Primero tiene que hacer clic en el parche y luego copiar el enlace
PASO 2: En su terminal, navegue hasta el lugar en el que debe aplicarse (en este caso la ruta es
"frameworks / native")
Como se puede ver el comando en caja en azul .. debe verse algo similar

Despus de que el parche se aplica, pide una entrada para continuar ... en tal caso simplemente presione
"q"

FELICITACIONES QUE USTED HA APLICADO EL PATCH DE LA REVISIN DEL CDIGO DE GERRIT !!!

AHORA LLEGAMOS A APLICAR PATCHES DESCARGADOS DE GITHUB GISTS


(GENERALMENTE EL FORMATO ES ".diff" o ".patch")
PASOS A SEGUIR
PASO 1: DESCARGAR EL GIST
Usted puede simplemente descargar la idea como se muestra en la imagen de abajo

ESTO ES CMO UN PATCH TIPICAMENTE PARECE


Estos parches se usan generalmente para puertos cm no oficiales o dispositivos oficiales de cm para otras
roms no basadas en CM
Generalmente los desarrolladores de CM escriben qu ubicacin tiene que ser parcheada .... de lo
contrario, simplemente utilice la barra de bsqueda Para aplicar el parche anterior primero debemos
ingresar la carpeta hardware / broadcom / libbt

PASO 2: Luego copiamos, el archivo que descargamos anteriormente, a la carpeta que tiene que ser
parcheado en este caso hardware / broadcom / libbt

PASO 3: [I] [U] [B] APLICACIN DEL PARCHE

Cdigo:
Cd nameoftheromfolder / hardware / broadcom / libbt
Git checkout
Patch -p1 <nombre del archivo.diff o nombre del archivo.patch
Debe ser algo como esto

ES TAN SIMPLE COMO ESTE ..... TODO EL MEJOR !!! ESPERANZA ESTA GUA AYUDA ... SI USTED TIENE
ALGUNAS PROBLEMAS O PREGUNTAS POR FAVOR PLALO AQU ... AS QUE PUEDO AYUDAR: -d

THANX A CYANOGENMOD, PAWITP, K2WL Y XENON92

Potrebbero piacerti anche