- Portar una ROM es adaptar una ya creada para otro dispositivo al nuestro. Por ello, no usaremos "source code" ni nada parecido.
- Compilar una ROM es construir dicha ROM para tu dispositivo a través del código fuente (source code) oficial del equipo de la ROM que vayamos a trabajar.
Decir que por todo esto, resulta mucho más fácil portar ROMs. Sin embargo, y más en las nuevas versiones Android, no siempre funciona; la mayoría de veces nos quedaremos en la animación de inicio infinitamente.
En mi opinión personal es mucho mejor compilar, ya que es todo más limpio y oficial. Al compilar cogemos archivos de una ROM para otro dispositivo y los adherimos a una ROM del nuestro, así que no queda igual.
Sin embargo, este proceso es útil si no lograste compilar, justo lo que me pasó a mí con MIUI, que se quedaba con bootloop al compilar con PatchROM, y con este método funcionó bien.
Dicho todo esto, comencemos:
*Este tutorial es aplicable a cualquier versión de MIUI*
*Puedes usar tanto Windows como Linux para este tutorial*Pre-requisitos:
- MIUI v6 para un dispositivo que tenga un chipset igual al tuyo.
- ROM 4.4.4 funcional en nuestro dispositivo.
- Android Image Kitchen
- Editor de texto avanzado (Recomiendo Notepad++)
*La versión de MIUI y la ROM funcional en tu dispositivo deben tener la misma versión de Android*
*Ambas ROMs deben ser zip flasheables por custom recovery*
1. Preparar Entorno de Trabajo
Lo primero que haremos será crear y organizar el directorio donde vamos a trabajar. Para ello, creamos una carpeta llamada "miui" en la ruta que prefieras.
Hecho esto, ahora dentro de dicha carpeta crearemos cuatro carpetas más:
- "PORT" (Aquí irá la MIUI a portar)
- "BASE" (Aquí irá la ROM de nuestro dispositivo)
- KitchenPORT (Android Image Kitchen para el boot.img (kernel) de PORT)
- KitchenBASE (Android Image Kitchen para el boot.img de BASE)
- "PORT" (Aquí irá la MIUI a portar)
- "BASE" (Aquí irá la ROM de nuestro dispositivo)
- KitchenPORT (Android Image Kitchen para el boot.img (kernel) de PORT)
- KitchenBASE (Android Image Kitchen para el boot.img de BASE)
Una vez creadas estas carpetas, ya tendremos todo organizado para empezar a portar.
2. Extraer Archivos
En este paso extraeremos los archivos de cada cosa que vayamos a utilizar.
Primero de todo, extraemos el Zip de MIUI en la carpeta PORT. Por lo tanto la estructura de directorio nos quedará algo así:
Hacemos lo mismo con la ROM de nuestro dispositivo en BASE. Quedaría algo así:
Ahora haremos lo propio con "Android Image Kitchen". Debemos descargarla y extraer su contenido en la carpeta KitchenPORT y KitchenBASE. Ambos directorios quedarán iguales y se verán así:
Una vez terminado, ya habremos extraído los archivos que utilizaremos en sus carpetas correspondientes.
3. Intercambiar Archivos
Es el momento del paso final, en el que realmente haremos lo "complicado". Lo que haremos será básicamente intercambiar archivos y carpetas entre la ROM base y la ROM a portar.
Primero de todo, entramos en la carpeta miui/BASE/system y eliminamos las siguientes carpetas:
Luego copiamos dichas carpetas que hemos eliminado desde miui/PORT/system. Es decir, copiamos y pegamos esas 5 carpetas desde PORT hasta BASE.
Ahora borramos todo el contenido de la carpeta BASE/system/etc/permissions excepto:
Carpetas
Primero de todo, entramos en la carpeta miui/BASE/system y eliminamos las siguientes carpetas:
- app
- fonts
- framework
- media
- priv-app (si existe)
Luego copiamos dichas carpetas que hemos eliminado desde miui/PORT/system. Es decir, copiamos y pegamos esas 5 carpetas desde PORT hasta BASE.
Ahora borramos todo el contenido de la carpeta BASE/system/etc/permissions excepto:
- platform.xml
- handheld_core_hardware.xml
Y como hicimos antes, intercambiamos lo borrado. Es decir, copiamos todo lo que contenga PORT/system/etc/permissions excepto los dos archivos que no borramos antes y lo pegamos en BASE/system/etc/permissions.
Lo siguiente que haremos es copiar desde PORT/system la carpeta "lib" y la pegamos en BASE/system. Nos preguntará si queremos reemplazar las carpetas, y le decimos que "NO", por lo cual, se combinarán los archivos de ambas carpetas. Repetimos el proceso con las carpetas:
Lo siguiente que haremos es copiar desde PORT/system la carpeta "lib" y la pegamos en BASE/system. Nos preguntará si queremos reemplazar las carpetas, y le decimos que "NO", por lo cual, se combinarán los archivos de ambas carpetas. Repetimos el proceso con las carpetas:
- bin
- etc
- xbin
Hecho esto, vamos al directorio PORT/system/lib y copiamos estos tres archivos:
- libandroid_runtime.so
- libandroid_servers.so
- libmedia_jni.so
Y los pegamos en BASE/system/lib, y ahora "SÍ" los reemplazamos.
Ahora trabajaremos con el kernel. Copiamos los boot.img contenidos en PORT y BASE, y los pegamos en KitchenPORT y KitchenBASE respectivamente.
Arrastramos el archivo boot.img sobre el archivo "unpackimg". Se abrirá una ventana de comandos, y nos extraerá el contenido del kernel. Hacemos este proceso con cada kernel en su respectiva carpeta.
Una vez terminado, veremos que ha extraído una carpeta llamada "ramdisk".
Ahora copiamos el archivo KitchenPORT/ramdisk/init.environ.rc a KitchenBASE/ramdisk y le decimos que "SÍ" reemplazamos.
Ahora nos situamos en KitchenBASE, y ejecutamos el archivo "repackimg" (doble click). Una vez terminado el proceso, veremos un nuevo archivo llamado "image-new.img": este será el kernel modificado que usaremos.
Kernel
Ahora trabajaremos con el kernel. Copiamos los boot.img contenidos en PORT y BASE, y los pegamos en KitchenPORT y KitchenBASE respectivamente.
Arrastramos el archivo boot.img sobre el archivo "unpackimg". Se abrirá una ventana de comandos, y nos extraerá el contenido del kernel. Hacemos este proceso con cada kernel en su respectiva carpeta.
Una vez terminado, veremos que ha extraído una carpeta llamada "ramdisk".
Ahora copiamos el archivo KitchenPORT/ramdisk/init.environ.rc a KitchenBASE/ramdisk y le decimos que "SÍ" reemplazamos.
Ahora nos situamos en KitchenBASE, y ejecutamos el archivo "repackimg" (doble click). Una vez terminado el proceso, veremos un nuevo archivo llamado "image-new.img": este será el kernel modificado que usaremos.
Para añadir dicho kernel, lo pegamos en la carpeta BASE (la que contiene la ROM extraída). Borramos el boot.img anterior, y le cambiamos el nombre de image-new.img a boot.img.
Así, ya tendremos reemplazado el kernel.
Y llegamos paso más sencillo.
Build.prop
Y llegamos paso más sencillo.
Lo que haremos será abrir el archivo BASE/system/build.prop con Notepad++ y borramos todo lo que aparezca debajo de la siguiente línea (dicha no inclusive):
Updater-Script
Lo que haremos será abrir el archivo BASE/META-INF/com/google/android/updater-script con Notepad.
Abrimos el mismo archivo, pero el del directorio PORT/META-INF/com/google/android/.
Una vez abiertos los dos, intercambiamos líneas. Reemplazamos las líneas que digan lo siguiente:
- Set_perm (también pueden aparecer como set_metadata)
- Symlink
Es decir, quitamos esas líneas del updater-script BASE y pegamos las de PORT. Al terminar guardamos los cambios y cerramos.
¡Listo! Has Portado MIUI Para Tu Dispositivo
podrias hacer un video sobre esto
ResponderEliminarAhora mismo no tengo los recursos necesarios, pero no lo descarto para un futuro cercano.
Eliminarsirve para qualcomm
ResponderEliminar