Modificar un ROM se puede dividir básicamente en tres tipos: simplificación, adición y embellecimiento. Aquí nos enfocaremos principalmente en los dos primeros, simplificación y adición; en cuanto al embellecimiento, pueden referirse a otros hilos.
1. Primero veamos qué hay en un ROM: Al abrir el paquete de instalación con WinRAR, se pueden ver varios directorios. A continuación se listan los directorios que nos interesan y sus explicaciones:
- dev_data/apps/: Directorio de archivos apk del sistema, equivalente a "/data/app_s/" después de la instalación; los programas aquí no se pueden desinstalar tras la instalación.
- dev_data/app/: Directorio de archivos apk de aplicaciones de usuario, equivalente a "/data/app/" después de la instalación; los programas aquí pueden desinstalarse tras la instalación. (Este directorio solo aparece en versiones posteriores al 28 de octubre; en versiones anteriores se puede agregar manualmente).
- META-INF/com/google/android/: Archivos de script de instalación.
- system/etc/: Contiene algunos archivos de configuración.
- system/etc/permissions/: Relacionado con permisos de software; algunos parches necesitan agregar archivos a este directorio.
- system/lib/: Lugar donde se almacenan las librerías de los programas del sistema.
2. Ahora conozcamos los archivos de script de instalación: Durante la instalación mediante recovery, el proceso está controlado por archivos de script.
El archivo de script se encuentra en el directorio META-INF/com/google/android dentro del archivo comprimido y se llama update-script; se puede abrir con un editor de texto.
Dentro del archivo de script hay algunas instrucciones que nos interesan:
(1) show_progress 0.1 0: muestra la barra de progreso. Esto se utiliza para mostrar el progreso de la instalación; el valor 0.1 indica la posición de la barra de progreso y se puede cambiar por otro valor (menor que 1). El número que le sigue no está muy claro, en general, excepto la última línea que es 10, las demás son 0. En algunos ROM, la barra de progreso solo avanza a la mitad cuando la instalación se ha completado; pueden intentar cambiar la última línea por show_progress 0.8 10, y la barra de progreso llegará hasta el final.(2) Algunos términos clave (A) "SYSTEM:" representa el directorio del sistema después de flashear = "/system/" (B) "INTERNAL:" representa el directorio /data después de flashear = "/data/" (C) "PACKAGE:" representa el directorio raíz del paquete comprimido. Por ejemplo, "SYSTEM:etc/" equivale al directorio "/system/etc/" después de flashear, y "PACKAGE:dev_data" equivale al directorio dev_data dentro del paquete comprimido. (3) copy_dir PACKAGE:dev_data INTERNAL: copy_dir se usa para copiar directorios; el primer parámetro es el directorio a copiar, y el segundo es a dónde se copia. Por ejemplo, copy_dir PACKAGE:dev_data INTERNAL: se usa para copiar el contenido del directorio dev_data dentro del paquete ROM al directorio "/data/" después de flashear. (4) set_perm_recursive 0 2000 0755 0755 SYSTEM:bin Se usa para establecer permisos de directorios o archivos; el método es similar al de establecer permisos en Linux. (5) delete SYSTEM:app/YouTube.apk Eliminar archivos; generalmente no se usa esto, si quieres eliminar algo, simplemente bórralo. Bien, ahora puedes empezar a simplificar y agregar programas. II. Simplificación de programas del sistema En realidad, simplificar significa eliminar programas del sistema. Aquellos programas que no usamos se pueden eliminar. Los beneficios de eliminar estos programas son: (1) Algunas cosas no las usamos, aparecen en la lista de programas y son molestas; si hay demasiados de estos programas, también puede hacer que abrir la lista de programas sea más lento. (2) Algunos programas ocupan memoria al iniciarse y no los usamos, por ejemplo, interceptores de mensajes, etc. (3) Algunos programas no queremos usarlos de la ROM original y queremos reemplazarlos; por ejemplo, si no nos gusta ADW, usar LAUNCH PRO, etc. El método de simplificación es muy simple: usar WinRAR para abrir la ROM, ir a dev_data/apps, encontrar los programas innecesarios y eliminarlos. Qué programas se pueden simplificar: Este tema ha sido discutido en muchos foros; puedes buscarlos, por ejemplo, en los siguientes hilos. III. Agregar programas Hay dos formas de agregar programas: una es agregarlos como programas del sistema, la otra es agregarlos como programas de usuario. La ventaja de agregar programas como programas del sistema es que se ejecutan rápido (según dicen, aunque yo no lo he notado), la desventaja es que no se pueden desinstalar directamente, solo se pueden eliminar mediante herramientas como RE.En realidad, al usar RE para eliminar directamente los archivos APK del sistema, no todos se desinstalan completamente. Si no lo creen, pueden revisar el directorio /data/data/, y verán que cada programa tiene un objetivo correspondiente, cuyo nombre de directorio es igual al nombre del paquete del programa (no al XXX de XXX.APK).
1. Agregar programas del sistema: La forma más sencilla de agregar programas del sistema es: (1) Abrir el archivo ROM comprimido con WinRAR, entrar en el directorio "dev_data app_s" y copiar los archivos APK del programa que desean agregar. (2) Abrir el archivo APK que desean agregar con WinRAR y revisar si en el directorio “lib/armeabi” hay archivos que terminen en .so, que son archivos de biblioteca necesarios para ejecutar el programa. Si los hay, copiarlos al directorio “system/lib/” dentro del archivo comprimido. Muchos usuarios que al modificar la ROM agregan programas que no se ejecutan correctamente generalmente se deben a este caso. Por ejemplo, la nueva versión del teclado de Google Pinyin.
2. Agregar programas de usuario: Agregar programas de usuario es un poco más complicado, pero después de flashear el teléfono se pueden desinstalar directamente. Si están usando una ROM posterior al 28 de octubre, simplemente arrastren el APK al directorio "dev_data/app/". Este paso es muy sencillo; el problema surge cuando el APK contiene archivos de biblioteca. La forma sencilla de manejarlos es la misma que en el paso 2 de agregar programas del sistema. La desventaja de este método es que al desinstalar, los archivos de biblioteca permanecen en “system/lib/”, pero la mayoría de los programas no tienen archivos de biblioteca y los pocos que los tienen no generan problemas. Una forma más avanzada es instalar mediante un script.
En ROM anteriores al 28 de octubre, no existía el directorio app dentro de “dev_data/”, así que pueden crearlo ustedes mismos (clic derecho en WinRAR y seleccionar crear una nueva carpeta). Una vez creado el directorio, deben establecer los permisos en el script de flasheo: En el script de flasheo, encuentren esta sección: copy_dir PACKAGE:dev_data INTERNAL: set_perm 1000 1000 0771 INTERNAL:app_s Después de esto, agreguen esta línea: set_perm 1000 1000 0771 INTERNAL:app La primera línea copia todo lo del directorio dev_data de la ROM al directorio /data. La segunda línea establece los permisos de app_s. La línea que agregamos establece los permisos de app.
A continuación se puede reparar y ajustar la ROM. A continuación se puede reparar y ajustar la ROM.El script firstboot se utiliza para realizar configuraciones más avanzadas en la ROM, se puede usar el script firstboot.sh. El script firstboot.sh se encuentra en el directorio dev_data de la ROM. El código del script se ejecuta la primera vez que se inicia después de flashear el dispositivo, y se puede utilizar para configurar el sistema, instalar APK, entre otras tareas.
Echemos un vistazo al fragmento del script en liudidi1028rom:
# Ajustes predeterminados del sistema
/system/xbin/sqlite3 "INSERT INTO system (name, value) VALUES ('trackball_wake_screen', 1);"
/system/xbin/sqlite3 "INSERT INTO system (name, value) VALUES ('trackball_unlock_screen', 1);"
/system/xbin/sqlite3 "INSERT INTO system (name, value) VALUES ('lock_home_in_memory', 1);"
Creo que todos deberían poder adivinar la función de estas tres líneas de código. En cuanto a por qué el script está escrito así, no me lo pregunten, tampoco estoy muy familiarizado, todos pueden investigarlo juntos.
En el script se pueden usar comandos como rm, mv, etc. Con ellos se pueden sobrescribir directamente ciertos archivos de configuración.
Por ejemplo:
busybox rm /system/etc/archivo
busybox mv /system/etc/archivo
Por supuesto, si se modifican archivos del sistema, primero se deben obtener permisos:
busybox mount -o remount,rw /system
Después se puede poner en solo lectura:
busybox mount -o remount,ro /system
firstboot.sh es muy útil, ¡ojalá algún experto pudiera escribir un tutorial para principiantes!
[Tutorial de creación/modificación de ROM] Crea tu propio ROM (1)
Respuestas (1)
Demasiado largo, no puedo entenderlo
— Todas las respuestas cargadas —