Cómo crear un Zip intermitente para modificaciones del sistema Android

Si eres un desarrollador de Android que quiere crear aplicaciones destinadas a / partición del sistema (como aplicaciones raíz), hay ciertas instancias en las que querrás crear un .zip flasheable para tu aplicación. Esto es para que los archivos de la aplicación se puedan instalar correctamente en la partición / system.

Algunos otros usos de .zips flashable incluyen:

  • Modificando el DPI
  • Aplicar una fuente personalizada
  • Aplicar una animación de arranque personalizada
  • Eliminar o agregar aplicaciones del sistema

Instruir a sus usuarios para que jueguen en el sistema de archivos y muevan los archivos manualmente es una pérdida de tiempo para todos los involucrados: crear un .zip flasheable es una ruta mucho más conveniente. Esta guía de Appual le mostrará cómo crear un zip flasheable para Android.

También le mostraremos un script addon.d, para que los cambios personalizados del sistema sobrevivan a un flash ROM sucio; por lo tanto, los usuarios no necesitarán volver a actualizar su zip para cada actualización.

Requisitos:

  • Un explorador de archivos raíz (MiXplorer, Solid Explorer)
  • ZipSigner (para firmar cremalleras) o el complemento MiX Signer si usa MixPlorer
  • Una copia de seguridad Nandroid es muy recomendable

También debe preparar todos los archivos que van al zip: APK, configuraciones, animaciones de arranque, etc. Tenga todo organizado antes de comenzar, porque este es un proceso delicado.

Plantilla de un Zip personalizado

Si desea descargar un zip de plantilla que puede personalizar según sus propias necesidades, o usarlo como base para crear un zip que se puede flashear, puede obtenerlo aquí:

  • SCRIPT DE PLANTILLA: DESCARGA EL ENLACE (comandos básicos / tienes que agregar tus valores personalizados: aplicaciones, rutas de tonos de llamada, animación de arranque ...)
  • ZIP DE PLANTILLA: DESCARGAR ENLACE (los ejemplos siempre son bienvenidos para comprender mejor una explicación. Puede ayudar a comprender cómo estructurar sus archivos).

La plantilla debería ser suficiente para comenzar a usar un script personalizado.

Tendrá que recordar estas rutas principales, porque estas son las cosas en la partición / system a las que generalmente apuntarán sus cremalleras flasheable:

 addon.d => script de copia de seguridad para sobrevivir a una aplicación de flash sucio (utilizada por el paquete GApps por ejemplo) y priv-app => aplicaciones del sistema para agregar o eliminar etc => fuentes de archivos host => su fuente media => su bootanimation.zip medios> audio> alarmas => sonidos para alarmas medios> audio> notificaciones => sonidos para notificaciones medios> audio> tonos de llamada => sonidos para tonos de llamada medios> audio> ui => sonidos para varias cosas como batería baja, desbloqueo, cámara, .. raíz de / system para el archivo build.prop 

Recuerde siempre que los archivos eliminados de estas rutas se reinstalarán después de un destello sucio, y los archivos que se hayan agregado manualmente se eliminarán. Es por eso que es necesario crear un script que haga una copia de seguridad de sus modificaciones / sistema.

Ejemplo de un script de actualización

 ui_print ("+ ------------------------------------- +"); ui_print ("| LIMPIAR SCRIPT FLASH |"); ui_print ("| |"); ui_print ("| por Primokorn |"); ui_print ("+ ------------------------------------- +"); run_program ("/ sbin / busybox", "umount", "/ system"); run_program ("/ sbin / busybox", "mount", "/ system"); ui_print (""); ui_print ("*** Eliminando bloatwares ***"); delete_recursive ("/system/app/adaway.apk", "/ system / app / AdAway", "/ system / app / BasicDreams", "/ system / app / BookmarkProvider", "/ system / app / Calendar", " / system / app / CalendarWidget ", " / system / app / CMFileManager ", " / system / app / CMWallpapers ", " / system / app / DeskClock ", " / system / app / Eleven ", " / system / app / Correo electrónico ", " / system / app / ExactCalculator ", " / system / app / Exchange2 ", " / system / app / Gello ", " / system / app / HexoLibre ", " / system / app / Jelly ", " / system / app / LiveWallpapersPicker ", " / system / app / LockClock ", " / system / app / messaging ", " / system / app / MiXplorer ", " / system / app / NexusLauncher ", " / system / app / Phonograph ", " / system / app / PhotoTable ", " / system / app / PicoTts ", " / system / app / PicoTTS ", " / system / app / ResurrectionStats ", " / system / app / SoundRecorder ", " / system / app / Terminal ", " / system / app / TugaBrowser ", " / system / app / Wallpaper ", " / system / app / WallpaperPickerGoogle ", " / system / priv-app / AudioFX ", " / system / priv- app / Chrome ", " / system / priv-app / Gallery2 ", " / system / priv-app / MusicFX ", " / system / priv-app / OnePlusCamera ", " / system / priv- app / OnePlusGallery ", " / system / priv-app / OnePlusMusic ", " / system / priv-app / Recorder ", " / system / priv-app / Screencast ", " / system / priv-app / Snap ", " / system / priv-app / SnapdragonCamera ", " / system / priv-app / SnapdragonGallery ", " / system / priv-app / WeatherManagerService ", " / system / priv-app / WeatherProvider ", " / system / priv-app / Tag "); ui_print ("Instalación de aplicaciones y modificaciones, etc."); show_progress (8.800000, 5); package_extract_dir ("sistema", "/ system /"); ui_print ("*** Permisos de fijación ***"); set_perm (0, 0, 0755, "/system/addon.d/99-dirty.sh"); set_perm (0, 0, 0644, "/system/etc/gps.conf"); set_perm (0, 0, 0644, "/system/fonts/Roboto-Regular.ttf"); set_perm (0, 0, 0644, "/system/media/audio/ringtones/PlasticRing.ogg"); set_perm (0, 0, 0644, "/system/priv-app/Phonesky.apk"); set_perm (0, 0, 0644, "/system/priv-app/microG.apk"); set_perm (0, 0, 0644, "/system/priv-app/Gsam.apk"); set_perm (0, 0, 0644, "/system/priv-app/BBS.apk"); set_perm (0, 0, 0644, "/system/priv-app/V4A-Magisk.apk"); run_program ("/ sbin / busybox", "mount", "/ data"); package_extract_dir ("datos", "/ datos /"); set_perm (0, 0, 0755, "/data/local/afscript.sh"); show_progress (8.800000, 5); run_program ("/ sbin / busybox", "umount", "/ data"); run_program ("/ sbin / busybox", "umount", "/ system"); ui_print (""); ui_print ("Listo"); ui_print ("Listo para reiniciar"); 

Nota: ui_print (""); es para mensaje de texto Estas líneas no hacen nada.

Siempre debe desmontar y volver a montar la partición antes de trabajar en ella.

 run_program ("/ sbin / busybox", "umount", "/ system"); run_program ("/ sbin / busybox", "mount", "/ system"); 

Para eliminar componentes / aplicaciones del sistema, coloque una coma al final de cada línea, excepto la última.

 delete_recursive ("/system/app/adaway.apk", "/ system / app / AdAway", ........................ "/ system / priv-app / WeatherProvider ", " / system / priv-app / Tag "); 

Extraiga los archivos del sistema que desea instalar.

 package_extract_dir ("sistema", "/ system /"); Establecer los permisos de archivo. set_perm (0, 0, 0755, "/system/addon.d/99-dirty.sh"); .............. set_perm (0, 0, 0644, "/system/priv-app/V4A-Magisk.apk"); 

Haga lo mismo pero para la carpeta / data. Entonces montará la partición, extraerá los datos que desea agregar y establecerá los permisos.

 run_program ("/ sbin / busybox", "mount", "/ data"); package_extract_dir ("datos", "/ datos /"); set_perm (0, 0, 0755, "/data/local/afscript.sh"); 

A continuación, desmontará las particiones modificadas.

 run_program ("/ sbin / busybox", "umount", "/ data"); run_program ("/ sbin / busybox", "umount", "/ system"); 

Ejemplo de script Addon.D

 #! / sbin / sh # # /system/addon.d/99-dirty.sh # / system se formatea y se reinstala, luego se restauran estos archivos. #. /tmp/backuptool.functions list_files () {cat < 

Cree una lista de archivos que desea mantener después de un destello sucio.

 list_files () {cat < 

RM -RF los archivos que no desea instalar después de un flash sucio (archivos del sistema que eliminó en su modificación que se reinstalarán desde un flash sucio)

 rm -rf /system/app/adaway.apk rm -rf / system / app / AdAway rm -rf / system / app / BasicDreams rm -rf / system / app / BookmarkProvider ............ .................................... rm -rf / system / priv-app / WeatherProvider rm -rf / system / priv-app / Tag ;; 

Cómo Crear un Zip Android Destellable

Usaremos MiXplorer para esto, ya que es el mejor explorador de raíz y administrador de archivos para Android, sin dudas.

  1. Primero seleccione todas las carpetas que se incluirán en el archivo zip y elija Archivar.

  2. Confirme la creación de su archivo comprimido, asígnele un nombre y elija Almacenar.

  3. Se creará su zip flashable, así que seleccione el archivo zip y luego Firme (usando el complemento de firmante MiX)
  4. Ahora seleccione TestKey para verificar si hay errores de firma.
  5. Ahora puede flashear el zip: recomendamos moverlo a / SDcard para encontrarlo fácilmente desde la recuperación personalizada.

Notas finales

Su zip flashable debe instalarse después de un flash limpio, o después de limpiar la partición / system y hacer un flash sucio de su ROM. El script de actualización eliminará y agregará los archivos del sistema que especificó en su script, pero deje solo el script addon.d, porque hará su trabajo sin ninguna interferencia de su parte.

Después de su primera instalación, verifique minuciosamente la partición / system para asegurarse de que todo esté correcto: los archivos se eliminan, etc. Tal vez tuvo un error tipográfico en un nombre de archivo y no se eliminó, sucede.

Artículos De Interés