So erstellen Sie eine flashbare Zip-Datei für Android-Systemmods

Wenn Sie ein Android-Entwickler sind, der Apps erstellen möchte, die für / system partition bestimmt sind (z. B. Root-Apps), gibt es bestimmte Fälle, in denen Sie eine flashbare ZIP-Datei für Ihre App erstellen möchten. Auf diese Weise können die App-Dateien ordnungsgemäß auf der / system-Partition installiert werden.

Einige andere Verwendungsmöglichkeiten von flashbaren .zips sind:

  • Ändern der DPI
  • Anwenden einer benutzerdefinierten Schriftart
  • Anwenden einer benutzerdefinierten Startanimation
  • System-Apps entfernen oder hinzufügen

Das Anweisen Ihrer Benutzer, im Dateisystem herumzuspielen und Dateien manuell zu verschieben, ist eine Zeitverschwendung für alle Beteiligten. Das Erstellen einer flashbaren ZIP-Datei ist eine viel bequemere Methode. Diese Appual-Anleitung zeigt Ihnen, wie Sie eine flashbare Zip-Datei für Android erstellen.

Wir zeigen Ihnen auch ein addon.d-Skript, damit benutzerdefinierte Systemänderungen einen fehlerhaften ROM-Flash überstehen. Daher müssen Benutzer Ihre Zip-Datei nicht bei jedem Update erneut flashen.

Bedarf:

  • Ein Root-Datei-Explorer (MiXplorer, Solid Explorer)
  • ZipSigner (zum Signieren von Reißverschlüssen) oder das MiX Signer-Plug-In, wenn Sie MixPlorer verwenden
  • Ein Nandroid-Backup wird dringend empfohlen

Sie sollten auch alle Dateien vorbereiten, die in die Zip-Datei aufgenommen werden - APKs, Konfigurationen, Boot-Animationen usw. Lassen Sie alles organisieren, bevor wir beginnen, da dies ein heikler Prozess ist.

Vorlage eines benutzerdefinierten Reißverschlusses

Wenn Sie eine Vorlagen-Zip-Datei herunterladen möchten, die Sie an Ihre eigenen Bedürfnisse anpassen können, oder sie als Grundlage für die Erstellung einer flashbaren Zip-Datei verwenden möchten, können Sie sie hier herunterladen:

  • TEMPLATE SCRIPT: DOWNLOAD LINK (Grundbefehle / Sie müssen Ihre benutzerdefinierten Werte hinzufügen: Apps, Klingeltöne, Bootanimation…)
  • TEMPLATE ZIP: DOWNLOAD LINK (Beispiele sind immer willkommen, um eine Erklärung besser zu verstehen. Es kann hilfreich sein, die Struktur Ihrer Dateien zu verstehen).

Die Vorlage sollte ausreichen, um ein benutzerdefiniertes Skript zu verwenden.

Sie müssen sich diese Hauptpfade merken, da dies die Dinge in der / system-Partition sind, auf die Ihre flashbaren Zips normalerweise abzielen:

addon.d => Sicherungsskript zum Überleben eines Dirty Flash (zum Beispiel vom GApps-Paket verwendet) App und priv-app => System-Apps zum Hinzufügen oder Entfernen von etc => Hostdatei-Schriftarten => Ihre Schriftart media => Ihre bootanimation.zip Medien> Audio> Alarme => Töne für Alarme Medien> Audio> Benachrichtigungen => Töne für Benachrichtigungen Medien> Audio> Klingeltöne => Töne für Klingeltöne Medien> Audio> UI => Töne für verschiedene Dinge wie schwache Batterie, Entsperren, Kamera, .. root von / system für die Datei build.prop

Denken Sie immer daran, dass Dateien, die aus diesen Pfaden entfernt wurden, nach einem fehlerhaften Flash erneut installiert werden und manuell hinzugefügte Dateien entfernt werden. Aus diesem Grund ist es notwendig, ein Skript zu erstellen, das eine Sicherungskopie Ihrer / system-Mods erstellt.

Beispiel eines Update-Skripts

ui_print ("+ ------------------------------------- +"); ui_print ("| CLEAN FLASH SCRIPT |"); ui_print ("| |"); ui_print ("| von Primokorn |"); ui_print ("+ ------------------------------------- +"); run_program ("/ sbin / busybox", "umount", "/ system"); run_program ("/ sbin / busybox", "mount", "/ system"); ui_print (""); ui_print ("*** Löschen von 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 (" Apps und Mods installieren , 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 ("data", "/ data /"); 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 ("Fertig"); ui_print ("Bereit zum Neustart.");

Hinweis: ui_print (”“); ist für SMS. Diese Zeilen machen nichts.

Sie sollten die Partition immer aushängen und erneut mounten, bevor Sie daran arbeiten.

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

Um Systemkomponenten / Apps zu entfernen, setzen Sie am Ende jeder Zeile ein Komma, mit Ausnahme der letzten.

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

Extrahieren Sie die Systemdateien, die Sie installieren möchten.

package_extract_dir ("system", "/ system /"); Legen Sie die Dateiberechtigungen fest. set_perm (0, 0, 0755, "/system/addon.d/99-dirty.sh"); .............. set_perm (0, 0, 0644, "/system/priv-app/V4A-Magisk.apk");

Machen Sie dasselbe, nur für den Ordner / data. Sie mounten also die Partition, extrahieren die Daten, die Sie hinzufügen möchten, und legen die Berechtigungen fest.

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

Als Nächstes werden Sie die geänderten Partitionen aushängen.

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

Beispiel für ein Addon.D-Skript

#! / sbin / sh # # /system/addon.d/99-dirty.sh # / system wird formatiert und neu installiert, dann werden diese Dateien wiederhergestellt. #. /tmp/backuptool.functions list_files () {cat <
   
    

Erstellen Sie eine Liste der Dateien, die Sie nach einem Dirty Flash behalten möchten.

list_files () {cat <
     
      

RM -RF die Dateien, die nach einem Dirty Flash nicht installiert werden sollen (Systemdateien, die Sie in Ihrer Änderung entfernt haben und die von einem Dirty Flash erneut installiert werden)

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

So erstellen Sie eine flashbare Android-Zip-Datei

Wir werden dafür MiXplorer verwenden, da es zweifellos der beste Root-Explorer und Dateimanager für Android ist.

  1. Wählen Sie zuerst alle Ordner aus, die in der Zip-Datei enthalten sein sollen, und wählen Sie Archivieren.

  2. Bestätigen Sie die Erstellung Ihrer Archivdatei, geben Sie ihr einen Namen und wählen Sie Speichern.

  3. Ihre flashbare Zip-Datei wird erstellt. Wählen Sie also die Zip-Datei aus und signieren Sie sie (mit dem MiX-Signer-Plugin).
  4. Wählen Sie nun TestKey aus, um es auf Signaturfehler zu überprüfen.
  5. Sie können die Zip-Datei jetzt flashen. Empfehlen Sie, sie auf / SDcard zu verschieben, um sie bei der benutzerdefinierten Wiederherstellung leicht zu finden.

Schlussbemerkungen

Ihr flashbarer Zip muss nach einem sauberen Flash oder nach dem Löschen der / system-Partition und einem schmutzigen Flash Ihres ROM installiert werden. Das Updater-Skript entfernt und fügt die in Ihrem Skript angegebenen Systemdateien hinzu. Lassen Sie das Skript addon.d jedoch in Ruhe, da es seine Aufgabe ohne Ihre Einmischung erledigt.

Überprüfen Sie nach Ihrer ersten Installation die Partition / system gründlich, um sicherzustellen, dass alles korrekt ist - Dateien werden entfernt usw. Möglicherweise hatten Sie einen Tippfehler in einem Dateinamen und dieser wurde nicht entfernt, es passiert.

Tags Android-Entwicklung