ROMs y desarrollo Xperia NEO V ROMs Xperia NEO V

Respuesta
 
Herramientas
  #1  
Viejo 30/04/14, 18:33:07
Array

[xs_avatar]
AlBO1091 AlBO1091 no está en línea
Miembro del foro
 
Fecha de registro: may 2010
Localización: MADRID
Mensajes: 439
Modelo de smartphone: Samsung S8+
Tu operador: Jazztel
Thumbs up Linux/Crea tus propias compilaciones CyanogenMod 11.0

Crea tus propias compilaciones CyanogenMod 11.0

ES NECESARIO:

-Sistema operativo Linux 64bits

-Hardware decente, cuanto mejor hardware mas rápido compilara todo.

-Internet

-ADB y Fastboot

IMPORTANTE TODO ESTO SE HACE DESDE UN TERMINAL DE COMANDOS DE LINUX


Primero vamos a instalar las librerias necesarias:

Código:


sudo apt-get install bison build-essential curl flex git-core gnupg gperf ia32-libs libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-6-jdk openjdk-6-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev

Código:


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

Seguimos, estos pasos uno a uno:

Código:


mkdir -p ~/bin

Código:


PATH=~/bin:$PATH

Código:


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

Código:


chmod a+x ~/bin/repo

Crea la ruta para almacenar las sources CianogenMod 11

Código:


mkdir cm11

Código:


cd cm11

Sincronizar el código fuente

Código:


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

Código:


repo sync

Tranquilo ya que este paso necesita bajarse muchos archivos de internet por lo tanto puede tardar unas cuantas horas.

Vamos a añadir los prebuilts

Código:


cd ~/cm11/vendor/cm

Código:


./get-prebuilts

Despues vuelve a la raiz de las sources y seguimos con el siguiente codigo:

Código:


source build/envsetup.sh


Código:


breakfast "modelo"

Lo que pone dentro de "modelo" incluido las comillas debéis cambiarlo por vuestro modelo de terminal XPERIA NEO V

http://wiki.cyanogenmod.org/w/Devices

Extraer archivos propietarios

Conecta el móvil al usb encendido con la depuración activada.
(Se recomienda hacer con la rom oficial 4.4 de tu dispositivo.)

Tecleáis en el terminal lo siguiente:

Código:

cd ~/cm11/device/"marca"/"modelo"

Lo que pone dentro de"marca" y "modelo" incluido las comillas debéis cambiarlo por marca y modelo de vuestro terminal.

Código:


./extract-files.sh

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

Compilar

Código:


cd ~/cm11

Código:


. build/envsetup.sh


Código:


brunch "modelo"

Lo que pone dentro "modelo" incluido las comillas debéis cambiarlo por modelo de vuestro terminal.
Cuando acabe la rom la encontrarás en:

Carpeta Personal/cm11/out/target/product/modelo

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


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

Código:


cd ~/cm11

Código:


make clobber

Código:


repo sync

Código:


. build/envsetup.sh


Código:


brunch "modelo"



Añadir ADB y Fastboot:

Descargar los drivers

Descomprime el zip en tu carpeta de usuario.

En el terminal escribimos:

Código:


chown -R "USUARIO":"USUARIO" ~/adb

Código:


chown -R "USUARIO":"USUARIO" ~/fastboot

OJO "USUARIO" hay que sustituirlo con comillas incluidas por vuestro nombre de usuario.

Le damos los permisos a los archivos y los movemos a sus respectivos sitios:

Código:


sudo chmod 777 ~/adb

Código:


sudo chmod 777 ~/fastboot

Código:


sudo mv ~/adb /usr/local/bin

Código:


sudo mv ~/fastboot /usr/local/bin

No lo he probado pero lo voy a probar lo comparto para el que le interese meterse en el tema mi tutorial no es mío lo encontré por ally y lo comparto sirve para 4.4.2 que es lo que interesa


Y otro que se puede usar de referencia para kernel


Como compilar un kernel para dispositivos ¨GOOGLE¨


ES NECESARIO:

-Sistema operativo Linux 64bits, recomiendo Linux Mint Olivia versión cinnamon ya que es el que yo uso.(no he probado a compilar en sistemas de 32bits por tanto no se si seria posible)

-Hardware decente, cuanto mejor hardware mas rápido compilara todo.

-Internet

IMPORTANTE: En este tutorial yo llamo a la carpeta kernel (donde se va alojar todo) y toolchain (donde se alojan las herramientas de compilacion) así por que me entiendo mejor, pero vosotros podéis llamarlas de otra forma solo tenéis que cambiar donde yo ponga kernel o toolchain por el nombre que vosotros les halláis dado. Las carpetas que se generan como "manta" y "exynos" son por el tipo de kernel que he elegido para probar y montar este tutorial en mi caso la tablet Nexus 10, vosotros si usais otro terminal esas carpetas llevaran otro nombre por tanto solo tenéis que poner el nombre que os aparezca a vosotros.

Instalar las librerias necesarias

Copia y pega esto en el terminal de linux:
Código:
sudo apt-get install gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc

Añadiendo el repositorio

Antes de nada hay que saber que kernel vamos a compilar, esta tabla muestra el nombre y la ubicación de las fuentes del núcleo y binarios:

Pulse aquí para ver la imagen completa.
[Imagen: p58c.png]

Una vez sabemos que kernel vamos a compilar, creamos el directorio para el repositorio binario:

Desde el terminal creamos la carpeta donde se va a alojar todo(yo a la carpeta la nombre kernel, vosotros podeis llamarla como querais):

Código:
mkdir kernel

y entramos a ella:

Código:
cd kernel

Añadimos el repositorio(este paso tardara un rato):

Código:
git clone https://android.googlesource.com/device/samsung/manta

Donde pone manta nosotros ponemos el fabricante y nombre de vuestro dispositivo, lo sacamos de la tabla de la segunda columna: "device/samsung/manta/kernel" lo que esta en negrita es el nombre, si queréis compilar para el nexus4 pues seria este: "device/lge/mako-kernel/kernel" ya cada uno pone el que necesite, se creara una carpeta con el nombre de vuestro dispositivo.

seguimos en el terminal, ahora tecleamos:

Recordad que vosotros en vez de manta deberéis poner el nombre de vuestro dispositivo:

Código:
cd manta


Código:
git log --max-count=1 kernel

Al poner esto te saldra un texto parecido a este:

Código:
commit 06f0c41b11607846739763d8eeb7838e81d85022
Author: JP Abgrall <[email protected]>
Date: Tue Jun 11 11:21:34 2013 -0700

prebuilt kernel (ashmem fix)

446c9cf ashmem: avoid deadlock between read and mmap calls

Bug: 9261835
Change-Id: Ib6fd95b7f03fbddcc7851653fb5f64530921cbb8

Pues bien fijaros bien en este numero 446c9cf que en vuestro sera otro pero esta en el mismo sitio, apuntarlo por que nos hará falta mas adelante.

Descargar las sources

Dependiendo del kernel que desee:

- El goldfish proyecto contiene los fuentes del kernel para las plataformas emulados.

- El msm proyecto tiene los recursos para ADP1, ADP2, Nexus One, Nexus 4, y se puede utilizar como punto de partida para el trabajo de Qualcomm chips MSM.

- El omap proyecto se utiliza para PandaBoard y Galaxy Nexus, y se puede utilizar como punto de partida para el trabajo en conjuntos de chips TI OMAP.

- El samsung proyecto se utiliza para Nexus S, y se puede utilizar como punto de partida para el trabajo en conjuntos de chips Samsung Hummingbird.

- El tegra proyecto es para Xoom y Nexus 7, y se puede utilizar como punto de partida para el trabajo de los chipsets NVIDIA Tegra.

- El exynos proyecto tiene los fuentes del kernel para Nexus 10, y se puede utilizar como punto de partida para el trabajo sobre Samsung Exynos chipset.

De este codigo elegimos solo la linea necesaria para nuestro dispositivo, en mi caso eligiria: "git clone https://android.googlesource.com/kernel/exynos.git"· ya que estoy trabajando para la nexus 10, en este paso se os creara una carperta, el nombre depende del proyecto, en mi caso se llama exynos

Este pasao tardara un rato:

Código:
cd kernel

Código:
git clone https://android.googlesource.com/kernel/common.git
git clone https://android.googlesource.com/kernel/exynos.git
git clone https://android.googlesource.com/kernel/goldfish.git
git clone https://android.googlesource.com/kernel/msm.git
git clone https://android.googlesource.com/kernel/omap.git
git clone https://android.googlesource.com/kernel/samsung.git
git clone https://android.googlesource.com/kernel/tegra.git

Una vez este este paso, entramos en la carpeta generada:

Código:
cd exynos

En el siguiente paso vamos a necesitar lo que os dije que apuntarais antes, que en mi caso era 446c9cf y es tan sencillo como poner el vuestro en lugar del mio.

Código:
git checkout 446c9cf

Descargar las toolchain para poder compilar

En el terminal:

Código:
cd kernel

Código:
mkdir toolchain

Código:
cd toolchain

Y después(este paso tardara un rato):

Código:
git clone https://android.googlesource.com/pla...m/arm-eabi-4.6

Y acto seguido:

Código:
export PATH=$(pwd)/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH

Compilar

Se pondrán los siguientes códigos uno a uno:

Código:
cd kernel/exynos

Código:
export ARCH=arm

Código:
export SUBARCH=arm

Código:
export CROSS_COMPILE=~/kernel/toolchain/arm-eabi-4.6./bin/arm-eabi-"

Código:
make manta_defconfig

Código:
make

Y con esto estaría todo.

Una vez finalizado el kernel lo encontraras en:

carpetapersonal/kernel/exynos/arch/arm/boot/zImage

Recordad que vosotros en vez de exynos tendréis otro nombre si habéis compilado un kernel para otro dispositivo que no sea la Nexus10

Bueno después de tener el archivo zImage necesitamos meterle dentro de un boot.img para poder instalarlo en el móvil, para esto vamos a utilizar la Dsixda Kitchen, aquí tenéis su foro oficial donde podréis descargarla si no la teneis Dsixda Kitchen

Aquí os dejo un tutorial para que veáis como se desempaqueta y empaqueta el boot.img para que podáis instalar vuestro kernel, esta hecho a groso modo por falta de tiempo en cuanto pueda lo haré mejor y lo pondré en la zona de tutoriales.

Spoiler :
Una vez la tenemos descarga y lista para funcionar tenemos que coger la rom que vallamos a utilizar junto al kernel y copiarla en la carpeta origina_update de la kitchen, ejecutamos el archivo menú y elegimos ejecutar desde un terminal.

Nos aparecerá el menú principal:
Código:
================================================== ==========
Android Kitchen 0.224 - by dsixda (xda-developers.com)
================================================== ==========

> MAIN MENU

1 - Set up working folder from ROM
2 - Add root permissions
3 - Add BusyBox
4 - Disable boot screen sounds
5 - Zipalign all *.apk files to optimize RAM usage
6 - Change wipe status of ROM
7 - Change name of ROM
8 - Show working folder information

0 - ADVANCED OPTIONS
00 - LEGACY OPTIONS (old and rarely used)
99 - Build ROM from working folder

u - Kitchen Info/Update/Donate
x - Exit


Enter option:

Elegimos 1 y enter, nos saldrá otro menú que pulsamos enter directamente, elegimos nuestra rom poniendo el numero correspondiente y enter (si solo tenéis una rom en esa carpeta pues solo os saldrá una). A la siguiente pregunta pulsamos enter y se pondrá a extraer el zip, cuando acabe os saldrá otra opción ponemos 2 y enter y otra vez enter para salir al menú principal.

De nuevo en el menú principal elegimos la opción 0 y nos saldrán estas opciones:

Código:
================================================== ==========
Android Kitchen 0.224 - by dsixda (xda-developers.com)
================================================== ==========

> ADVANCED OPTIONS

11 - De-odex files in your ROM
12 - Tools for boot image (unpack/re-pack/etc.)
13 - Add /data/app functionality
14 - Add /etc/init.d scripts support (busybox run-parts)
15 - Unpack data.img
16 - Sign APK or ZIP file(s)
17 - Convert update-script or updater-script
18 - Plugin scripts

99 - Build ROM from working folder
0 - BACK TO MAIN MENU

Enter option:

Elegimos la opción 12 y enter, ahora nos aparecerá esto:

Código:
Boot image tools
----------------

Enter a choice:

s = Show boot.img information
w = Extract kernel+ramdisk from boot.img
c = Convert boot.img into NAND boot folder
p = Change 'command line' parameter in boot.img
a = Extract kernel+ramdisk from boot.img/recovery.img in any folder
x = Exit

NOTE: Other options may not be shown in this menu *until* a specific
action above is selected or a specific working folder is created.
(A working folder is created with Option 1 of the kitchen main menu!)

e.g. You won't see the option to re-pack a boot.img unless you unpack
the boot.img first! For re-packing you also need a working folder
with the original boot.img so that the kitchen can use its header
information to construct the new boot.img.

?

Aquí escogemos la opción w y enter, te saldrá una información pulsamos enter y ya tenemos el boot.img descompilado.

Ahora en al carpeta de la kitchen nos aparecerá otra carpeta llamada BOOT-EXTRACTED, entramos a ella borramos el zImage que nos encontramos y copiamos el nuestro.

Volvemos al terminal y en el menú que aparece elegimos la opción b y enter:

Código:
Boot image tools
----------------

Enter a choice:

s = Show boot.img information
b = Build boot.img from BOOT-EXTRACTED folder (for working folder)
n = Build NAND's boot folder from BOOT-EXTRACTED (for working folder)
r = Remove BOOT-EXTRACTED folder (don't build anything)
a = Extract kernel+ramdisk from boot.img/recovery.img in any folder
x = Exit

NOTE: Other options may not be shown in this menu *until* a specific
action above is selected or a specific working folder is created.
(A working folder is created with Option 1 of the kitchen main menu!)

e.g. You won't see the option to re-pack a boot.img unless you unpack
the boot.img first! For re-packing you also need a working folder
with the original boot.img so that the kitchen can use its header
information to construct the new boot.img.

?

Pulsamos enter de nuevo y otra vez mas hasta que llegamos a este menú:
Código:
Boot image tools
----------------

Enter a choice:

s = Show boot.img information
w = Extract kernel+ramdisk from boot.img
c = Convert boot.img into NAND boot folder
p = Change 'command line' parameter in boot.img
a = Extract kernel+ramdisk from boot.img/recovery.img in any folder
x = Exit

NOTE: Other options may not be shown in this menu *until* a specific
action above is selected or a specific working folder is created.
(A working folder is created with Option 1 of the kitchen main menu!)

e.g. You won't see the option to re-pack a boot.img unless you unpack
the boot.img first! For re-packing you also need a working folder
with the original boot.img so that the kitchen can use its header
information to construct the new boot.img.

?

Aquí ponemos x o cerramos directamente la kitchen por que ya hemos acabado con ella.

Nos vamos a la carpeta de la kitchen y entramos en la carpeta WORKING.... una vez dentro vemos que tenemos un boot.img ya listo pues ese es nuestro kernel ya montado en su boot.img.

Lo metemos en un zip flaseable y ya lo podemos instalar por recovery.

Última edición por AlBO1091 Día 30/04/14 a las 19:02:53.
Responder Con Cita
Los siguientes 4 usuarios han agradecido a AlBO1091 su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 18/05/14, 12:19:15
Array

[xs_avatar]
telpalbrox telpalbrox no está en línea
Colaborador/a
 
Fecha de registro: ene 2012
Localización: Murcia
Mensajes: 1,078
Modelo de smartphone: Xiaomi Redmi Note | Sony Ericsson Xperia Neo V
Tu operador: Movistar
Interesante el tutorial, yo compilé en su día la PAC y era más sencillo.
Te recomiendo que uses la etiqueta en los comandos para que se pueda leer mejor el tutorial
__________________
Si quieres probar alguna ROM nada mejor que un super Recopilatorio de todas las ROM's para nuestro Sony Ericsson Xperia Neo V | lol

Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Foros Sony > Otros smartphones antiguos de Sony > Sony Xperia NEO V > ROMs y desarrollo Xperia NEO V



Hora actual: 00:10:41 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /