Comment créer un zip flashable pour les mods système Android

Si vous êtes un développeur Android qui souhaite créer des applications destinées à la partition / système (telles que les applications racine), il existe certains cas où vous souhaiterez créer un fichier .zip flashable pour votre application. Ceci afin que les fichiers de l'application puissent être correctement installés sur la partition / system.

Quelques autres utilisations de .zips flashable incluent:

  • Modifier le DPI
  • Appliquer une police personnalisée
  • Application d'une animation de démarrage personnalisée
  • Supprimer ou ajouter des applications système

Demander à vos utilisateurs de jouer avec le système de fichiers et de déplacer manuellement des fichiers est une perte de temps pour toutes les personnes impliquées - créer un fichier .zip flashable est un moyen beaucoup plus pratique. Le guide de cet Appual vous montrera comment créer un zip flashable pour Android.

Nous allons également vous montrer un script addon.d, afin que les modifications système personnalisées survivent à un flash ROM sale - ainsi, les utilisateurs n'auront pas besoin de re-flasher votre zip pour chaque mise à jour.

Exigences:

  • Un explorateur de fichiers racine (MiXplorer, Solid Explorer)
  • ZipSigner (pour signer des zips) ou le plug-in MiX Signer si vous utilisez MixPlorer
  • Une sauvegarde Nandroid est fortement recommandée

Vous devez également préparer tous les fichiers qui vont dans le zip - APK, configs, animations de démarrage, etc. Organisez tout avant de commencer, car c'est un processus délicat.

Modèle d'un zip personnalisé

Si vous souhaitez télécharger un zip de modèle que vous pouvez personnaliser selon vos propres besoins, ou l'utiliser comme base pour créer un zip flashable, vous pouvez les récupérer ici:

  • MODÈLE SCRIPT: LIEN DE TÉLÉCHARGEMENT (commandes de base / vous devez ajouter vos valeurs personnalisées: applications, chemins de sonneries, bootanimation…)
  • TEMPLATE ZIP: DOWNLOAD LINK (des exemples sont toujours les bienvenus pour mieux comprendre une explication. Cela peut aider à comprendre comment structurer vos fichiers).

Le modèle devrait être suffisant pour commencer à utiliser un script personnalisé.

Vous devrez vous souvenir de ces chemins principaux, car ce sont les éléments de la partition / system que vos zips flashable cibleront généralement:

addon.d => script de sauvegarde pour survivre à un flash sale (utilisé par le package GApps par exemple) app et priv-app => applications système à ajouter ou supprimer etc => polices du fichier hôte => votre police media => votre bootanimation.zip media> audio> alarms => sons pour les alarmes media> audio> notifications => sons pour notifications media> audio> sonneries => sons pour sonneries media> audio> ui => sons pour diverses choses telles que batterie faible, déverrouillage, appareil photo, .. racine de / system pour le fichier build.prop

Rappelez-vous toujours que les fichiers supprimés de ces chemins seront réinstallés après un flash sale et que les fichiers qui ont été ajoutés manuellement seront supprimés. C'est pourquoi il est nécessaire de créer un script qui effectue une sauvegarde de vos mods / système.

Exemple de script de mise à jour

ui_print ("+ ------------------------------------- +"); ui_print ("| CLEAN FLASH SCRIPT |"); ui_print ("| |"); ui_print ("| par Primokorn |"); ui_print ("+ ------------------------------------- +"); run_program ("/ sbin / busybox", "umount", "/ system"); run_program ("/ sbin / busybox", "mount", "/ system"); ui_print (""); ui_print ("*** Suppression de 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 / Email", "/ 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 (" Installation d'applications et de mods , etc "); show_progress (8.800000, 5); package_extract_dir (" system "," / system / "); ui_print (" *** Fixing permissions *** "); 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 ("données", "/ données /"); 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 ("Terminé."); ui_print ("Prêt à redémarrer.");

Remarque: ui_print (""); est pour le message texte. Ces lignes ne font rien.

Vous devez toujours démonter et remonter la partition avant de travailler dessus.

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

Pour supprimer les composants / applications du système, mettez une virgule à la fin de chaque ligne, sauf la dernière.

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

Extrayez les fichiers système que vous souhaitez installer.

package_extract_dir ("système", "/ système /"); Définissez les autorisations de fichier. set_perm (0, 0, 0755, "/system/addon.d/99-dirty.sh"); .............. set_perm (0, 0, 0644, "/system/priv-app/V4A-Magisk.apk");

Faites la même chose mais pour le dossier / data. Vous allez donc monter la partition, extraire les données que vous souhaitez ajouter et définir les autorisations.

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

Ensuite, vous démonterez les partitions modifiées.

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

Exemple de script Addon.D

#! / sbin / sh # # /system/addon.d/99-dirty.sh # / system est formaté et réinstallé, puis les fichiers sont restaurés. #. /tmp/backuptool.functions list_files () {cat <
   
    

Créez une liste de fichiers que vous souhaitez conserver après un flash sale.

list_files () {cat <
     
      

RM -RF les fichiers que vous ne souhaitez pas installer après un flash sale (fichiers système que vous avez supprimés dans votre modification et qui seront réinstallés à partir d'un flash sale)

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 ;;

Comment créer un zip Android flashable

Nous utiliserons MiXplorer pour cela, car c'est le meilleur explorateur racine et gestionnaire de fichiers pour Android, haut la main.

  1. Sélectionnez d'abord tous vos dossiers qui seront inclus dans le zip, puis choisissez Archiver.

  2. Confirmez la création de votre fichier d'archive, donnez-lui un nom et choisissez Store.

  3. Votre zip flashable sera créé, alors sélectionnez le fichier zip, puis signez-le (à l'aide du plugin MiX Signer)
  4. Maintenant, sélectionnez TestKey pour vérifier simplement les erreurs de signature.
  5. Vous pouvez maintenant flasher le zip - nous vous recommandons de le déplacer vers / SDcard pour le trouver facilement à partir d'une récupération personnalisée.

Notes finales

Votre zip flashable doit être installé après un flash propre, ou après avoir effacé la partition / system et avoir fait un flash sale de votre ROM. Le script de mise à jour supprimera et ajoutera les fichiers système que vous avez spécifiés dans votre script - mais laissez le script addon.d seul, car il fera son travail sans aucune interférence de votre part.

Après votre première installation, vérifiez soigneusement la partition / system pour vous assurer que tout est correct - les fichiers sont supprimés, etc. Peut-être que vous avez eu une faute de frappe dans un nom de fichier et qu'il n'a pas été supprimé, cela arrive.

Tags Développement android