[GUÍA] Compilando MIUI desde source nunca tan facil

Desconectado Sr. Droid

  • ****
  • 401
  • Sexo: Masculino
  • Cocinero de Xperia U
  • medallas
  • Premio a los usuarios con más Karma obtenido Tercer rango por comentarios publicados Fans de miui.es 3er Aniversario de miui.es Si has cocinado una ROM tienes derecho a una medalla de cocinero.
    • Ver Perfil
    • Awards
  • Votados: 8
[GUÍA] Compilando MIUI desde source nunca tan facil
« en: 27 de Octubre de 13, 11:32:05 am »
Vamos a aprender a como compilar nuestra primera MIUI desde el source...
Requisitos:
Ubuntu(es lo mas sencillo)
mas de 100GB de disco
 Truco usar VMWare si quereis.
ADB

Configurando:
Citar
Ubuntu:

  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 libssl-dev
Citar
Fedora

  sudo yum install glibc.i686 glibc-devel.i686 libstdc++.i686 zlib-devel.i686
  ncurses-devel.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686 install git
  gnupg gnupg2 flex flex-devel bison bison-devel gperf gcc gcc-c++ make
  automake kernel-devel zip curl zlib zlib-devel glibc glibc-devel ncurses
  ncurses-devel xulrunner xulrunner-devel libX11 libX11-common libX11-devel
  xorg-x11-proto-devel readline readline-devel mesa-libGL mesa-libGL-devel
  mesa-libGLU python-markdown libxml2 libxml2-devel libxslt libxslt-devel
  perl perl-devel perl-Switch SDL SDL-devel wxGTK wxGTK-devel squashfs-tools
  pngcrush schedtool
Despues:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Ahora vamos a configruar el fasbot adb etc...:
gksudo gedit /etc/udev/rules.d/51-android.rules
Metemos lo siguiente:
Código: No tienes permisos para ver los enlaces. Regístrate o Inicia sesión
#Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666"

#Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"

#HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"

#Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666"

#K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666"

#KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666"

#Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666"

#Lenevo
SUBSYSTEM=="usb", ATTR{idVendor}=="17EF", MODE="0666"

#LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"

#Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"

#NEC
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666"

#Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666"

#Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666"

#OTGV
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666"

#Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666"

#Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666"

#PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666"

#Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666"

#SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666"

#Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666"

#Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666"

#Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666"

#Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666"

#ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"
Ahora le damos permisos:
sudo chmod a+r /etc/udev/rules.d/51-android.rules

Vamos con JAVA:
Para ubuntu:

sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update && sudo apt-get install oracle-java6-installer

para fedora:
No tienes permisos para ver los enlaces. Regístrate o Inicia sesión
chmod +x /path/to/file/jdk-##-linux-*-rpm.bin && /path/to/binary/jdk-##-linux-*-rpm.bin
## cambiar por la version

alternatives --config java
## export JAVA_HOME JDK ##
export JAVA_HOME="/usr/java/jdk1.6.0_tu version"
---------------------------------------
vamos con el SDK:
Bajarlo de la web android.
gksudo gedit .bashrc
Añadimos esto.
# Android tools
export PATH=${PATH}:~/android/android-sdk-linux/tools
export PATH=${PATH}:~/android/android-sdk-linux/platform-tools
export PATH=${PATH}:~/bin
Ahora despues:
gksudo gedit .profile
Añadir esto:
PATH="$HOME/android/android-sdk-linux/tools:$HOME/android/android-sdk-linux/platform-tools:$PATH"
Listo.

EMPEZAMOS CON MIUI:
Abrimos una terminal:
mkdir patchrom
cd patchrom
repo init -u git://github.com/MiCode/patchrom.git -bgingenbread ics jellybean[/sup ]jellybean42jellybean42-mtk
Escojer según vuestro movil si tiene gb ics jellybean 4.1.2 jellybean 4.2 o jellybean42 para mtk.
Yo en mi caso cojo:
repo init -u git://github.com/MiCode/patchrom.git -b jellybean42
Te pedira unos datos....
Despues:
repo sync
Aqui al pricipio tarda depende el internet  4o 5min pero llegara a:
From git://github.com/MiCode/patchrom_toolsMiB | 662 KiB/s   
 * [new branch]      gingerbread -> github/gingerbread
 * [new branch]      ics        -> github/ics
 * [new branch]      jellybean  -> github/jellybean
 * [new branch]      jellybean42-mtk -> github/jellybean42-mtk
Fetching projects:  80% (4/5)  Receiving objects:   0% (297/86400), 25.39 MiB |
Algo asi mas menos y se quedara bajando como una hora dos depende el internet son sobre 3 o 4 GB los que baja.
Cuando sabemos que todo a terminado:
cuando nos devuelva a tunombredeusuario@ubuntu:~$
OS PODEIS ECHAR UNA SIESTA LARGA AVISO
Ahora viene la parte mas complicada:
Al finalizar tendremos un monton de directorios.
Habra un archivo que es un pdf el cual nos puede ayudar mucho no lo siguiente...
Si  nuestro movil no tiene MIUI osea es nuevo habra que hacer lo siguiente:
cd patchrom
. build/envsetup.sh
mkdir nombre dispositivo
cd nombre dispositivo
adb reboot recovery
 ../tools/ota_target_from_phone -r
Nos creara un ZIP y varias carpetas
Ahora esto es mas chungo:
Tenemos que crear un makefile con estos values:
Citar
local-zip-file := stockrom.zip
local-out-zip-file :=
local-miui-modifed-apps :=
local-modified-apps :=
local-miui-removed-apps :=
local-phone-apps :=
local-pre-zip := local-zip-misc
include $(PORT_BUILD)/porting.mk
local-zip-misc:
Vamos a explicar algunas de las definiciones en el archivo , para comprender a fondo, que sin duda debe mirar a todo el sistema de construcción .
local-zip-file:nombre de la stockrom o del zip ejemplo: stockrom.zip
local-out-zip-file :=Nombre final del zip localizado en /out
local-miui-modifed-apps :=Demomento lo dejamos en blanco
local-modified-apps :=Demomento en blanco
local-miui-removed-apps :=Aqui habra que poner las apps que queramos que elimine ya que no son compatibles con MIUI (cuando de error ya sabreis que poner)
local-phone-apps := Las app STOCK que quieres dejar
local-pre-zip := local-zip-misc
include $(PORT_BUILD)/porting.mk
local-zip-misc:
Esto puede ser una de las cosas mas liosas y problemáticas mi recomendación:
Ir a github:https://github.com/MiCode
Mirar si alguno de los moviles que hay son los  mismos fabricantes que el tuyo.
Entonces por ejemplo(Prueba real):
Tengo un samsung GT-S6310 y vemos que esta el repo del i9100.
Pues los dos la rom stock 4.1.2 son casi iguales y podemos comparar solo comparar: makefile en el caso solo hubo que hacer dos modificaciones.
De la otra manera hubiera sido mas dificil...
Una vez terminado el makefile:
Citar
make workspace
Este comando extraera framework/android.policy/services.jar y framework-res.apk del stock rom zip.
Esto ya se va pareciendo a algo.
Despues:
make firstpath
Aqui convertira/comparara el codigo de nuesta stock rom a MIUI.
Hay 3 directorios código smali involucrados :
( 1 ) framework.jar.out old
( 2 ) nueva framework.jar.out
( 3 ) framework.jar.out object

A primera hora , el viejo framework.jar.out será el framework.jar desmontado que se compila desde Google lanzó el código fuente , el nuevo framework.jar.out será el framework.jar desmontado que se compila desde el código fuente de MIUI . El framework.jar.out objetivo será el framework.jar desmontado de dispositivo de destino que ya está preparada en " hacer del espacio de trabajo " .

Con el fin de facilitar este proceso , tratamos lo mejor para hacer el cambio mínimo en el código fuente liberado google . Usted puede ver estos cambios por comparar MIUI / src y android / src. Pero más a menudo que habrá algunos conflictos al aplicar la revisión .

Después de ejecutar este comando, habrá un directorio temporal. Habrá 5 directorios secundarios :
( 1 ) old_smali : el código smali de edad framework.jar.out con la línea de retirada .
( 2 ) new_smali : . El código smali de nuevo framework.jar.out con la línea eliminado
( 3 ) dst_smali_orig : . El código smali de framework.jar.out objetivo con la línea eliminado
( 4 ) dst_smali_patched : el código smali después de aplicar el parche en framework.jar.out objetivo con la línea eliminada.
( 5 ) reject : el parche rechazado. Debemos utilizar este directorio para resolver los conflictos.
REJECT: Ahora yo aconsejo no empezar a modificar ya que la build puede dar errores.... entonces podeis provar la rom sin reject  y si botea listo....


Despues de todo esto:
Citar
make fullota o make zipfile
Aqui empezara a construir nuestro ZIP con MIUI para CWM/TWRP.
Esto puede dar fallos porfavor  postearlos y os tratare de ayudar
El ZIP se encotrara en /out/el nombre que le hayeis dado antes.zip
Y listo por ahora
Continuara....
« Última modificación: 06 de Enero de 14, 18:46:43 pm por Sr. Droid »
Si necesitas ayuda no dudes en enviarme un mensaje

Desconectado trunk

  • Founder
  • *
  • 8776
  • Sexo: Masculino
  • Toda paciencia tiene un límite.
  • medallas
  • Premio recibido a usuarios con más tiempo conectado Tercer rango por comentarios publicados Premio a los usuarios con más Karma obtenido Fundador del proyecto miui.es
    • Ver Perfil
    • Awards
  • Votados: 2925
Re:Compilando MIUI desde source nunca tan facil
« Respuesta #1 en: 05 de Noviembre de 13, 14:17:58 pm »
wOw! Tiene muy buena pinta este tuto, estaré atento! Gracias ;)

Desconectado corsoba

  • 21
  • MIUI Maniaco!
    • Ver Perfil
    • Awards
  • Votados: 9
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #2 en: 21 de Noviembre de 13, 12:36:36 pm »
wowwww realmente interesado tio esperando parte complicada¡¡¡  :)

desenado¡¡¡¡  gracias gracias ¡¡¡¡ 

Desconectado corsoba

  • 21
  • MIUI Maniaco!
    • Ver Perfil
    • Awards
  • Votados: 9
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #3 en: 22 de Noviembre de 13, 08:58:50 am »
saludos¡¡ gracias lo primero y nada unas preguntas

solo sirve para mtk?

las sources que se bajan son de android en general de tu modelo o como?

quiero basarla en stock.. es posible

vas a terminar el tuto?? jej

gracias estoy realmente interesado¡¡  ;)


Desconectado Sr. Droid

  • ****
  • 401
  • Sexo: Masculino
  • Cocinero de Xperia U
  • medallas
  • Premio a los usuarios con más Karma obtenido Tercer rango por comentarios publicados Fans de miui.es 3er Aniversario de miui.es Si has cocinado una ROM tienes derecho a una medalla de cocinero.
    • Ver Perfil
    • Awards
  • Votados: 8
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #4 en: 06 de Enero de 14, 18:47:47 pm »
Actualizada ya teneis mas...
Estar atentos
Si necesitas ayuda no dudes en enviarme un mensaje

Desconectado ramirovevo

  • 1
  • miui.es fan!
    • Ver Perfil
    • Awards
  • Votados: 0
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #5 en: 16 de Febrero de 14, 04:12:33 am »
Muy buen aporte compañero muchas felicidades por tu trabajo. Bueno quisiera saber si esto sirve para portar MIUI rom a cualquier dispositivo. Ya que me gustaria hacerlo para el Huawei Y300. Si hay rom miui para este celular pero esta basada en rom stock que es jb 4.1.1 y su rendimiento no es muy bueno. Lo que yo quiero sabe es si puedo portar la rom usando cm10.1 como base, ya que considero que es la rom mas fluida y mas estable para este celular. Espero me respondas. De antemano muchas gracias compañero.

Desconectado juance

  • 1
  • miui.es fan!
    • Ver Perfil
    • Awards
  • Votados: 1
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #6 en: 03 de Marzo de 14, 23:39:30 pm »
me quede ahi .alguien me ayuda??
juance@juance-MS-7592:~/patchrom/moto$ make wordspace
makefile:16: /porting.mk: No existe el archivo o el directorio
makefile:22: /porting.mk: No existe el archivo o el directorio
make: *** No hay ninguna regla para construir el objetivo «/porting.mk».  Alto.

Desconectado klozz

  • 3
  • Sexo: Masculino
  • Android Developer
    • Ver Perfil
    • XDA-Developers
    • Awards
  • Votados: 2
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #7 en: 01 de Julio de 14, 10:10:00 am »
Tengo ese problema será que puedas ayudarme?

[10084,13] Label "goto_miui" is not defined.
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: /home/klozz/Escritorio/MIUIPATCHROM/falcon/out/telephony-common/smali/com/android/internal/telephony/gsm/GsmServiceStateTracker.smali
   at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:45)
   at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:33)
   at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:66)
   at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:50)
   at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:37)
   at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:257)
   at brut.androlib.Androlib.buildSources(Androlib.java:214)
   at brut.androlib.Androlib.build(Androlib.java:205)
   at brut.androlib.Androlib.build(Androlib.java:176)
   at brut.apktool.Main.cmdBuild(Main.java:228)
   at brut.apktool.Main.main(Main.java:79)
make: *** [out/telephony-common.jar] Error 1
ANdroid developer

Xperia Devices and Asus

Xperia x8,U,GO,P,Sola,Miro
Nexus 7 2012 Grouper.

Desconectado nexus4ever

  • 12
  • miui.es fan!
    • Ver Perfil
    • Awards
  • Votados: 3
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #8 en: 29 de Julio de 14, 15:24:17 pm »
hola buenas y el resourcer de la miui 4.4? me lo podeis poner gracias

Desconectado muelas

  • 2
  • Sexo: Masculino
  • MIUI Maniaco!
    • Ver Perfil
    • Awards
  • Votados: 1
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #9 en: 12 de Septiembre de 14, 19:49:59 pm »
hola buenas podéis poner para las bases 4.4.2? ya que estaría interesado un saludo y gracias

Desconectado redber

Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #10 en: 12 de Septiembre de 14, 21:10:43 pm »
No tienes permisos para ver los enlaces. Regístrate o Inicia sesión
hola buenas y el resourcer de la miui 4.4? me lo podeis poner gracias
No tienes permisos para ver los enlaces. Regístrate o Inicia sesión
hola buenas podéis poner para las bases 4.4.2? ya que estaría interesado un saludo y gracias

Sentimos no poder ayudaros de momento, ya que quien abrió este hilo hace meses que no aparece. A ver si algún otro usuario os puede ayudar.

Saludos.

Desconectado Facesnights

  • 14
  • miui.es fan!
    • Ver Perfil
    • Awards
  • Votados: 5
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #11 en: 17 de Noviembre de 14, 20:23:40 pm »
buenas alguien me podria ayudar a hacer el makefile de mi terminal es un thl w8 beyond mtk6589t


Porque me quedo en este paso ya que me da errores :

local-zip-file := stockrom.zip
local-out-zip-file :=
local-miui-modifed-apps :=
local-modified-apps :=
local-miui-removed-apps :=
local-phone-apps :=
local-pre-zip := local-zip-misc
include $(PORT_BUILD)/porting.mk
local-zip-misc:


Desconectado peskaero

  • 1
  • Sexo: Masculino
  • MIUI Maniaco!
    • Ver Perfil
    • Awards
  • Votados: 0
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #12 en: 29 de Agosto de 15, 16:25:31 pm »
make workspace
>>> Install framework resources for apktool...
/home/usuario/patchrom/tools/apktool --quiet if /home/usuario/patchrom/miui/XHDPI/system/framework/framework-ext-res.apk
/home/usuario/patchrom/tools/apktool --quiet if /home/usuario/patchrom/miui/XHDPI/system/app/miui.apk
/home/usuario/patchrom/tools/apktool --quiet if /home/usuario/patchrom/miui/XHDPI/system/app/miuisystem.apk
/home/usuario/patchrom/tools/apktool --quiet if /home/usuario/patchrom/miui/XHDPI/system/framework/framework-res.apk -t miui
unzip >/dev/null stockrom.zip "system/framework/*.apk" -d out
caution: filename not matched:  system/framework/*.apk
make: *** [out/apktool-if] Error 11


Alguna idea?

Desconectado enriquecl3

  • 1
  • Sexo: Masculino
  • #mifan
    • Ver Perfil
    • Awards
  • Votados: 0
Re:[GUÍA] Compilando MIUI desde source nunca tan facil
« Respuesta #13 en: 19 de Diciembre de 15, 12:23:08 pm »
Me parece todo menos sencillo, yo creo que el nivel que hablais, no es para usuarios no expertos.