So erstellen Sie eine flashbare Zip-Datei für Android-Systemmods
Einige andere Verwendungszwecke 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 => backup script to survive a dirty flash (used by GApps package for instance) app and priv-app => system apps to add or remove etc => host file fonts => your font media => your bootanimation.zip media > audio > alarms => sounds for alarms media > audio > notifications => sounds for notifications media > audio > ringtones => sounds for ringtones media > audio > ui => sounds for various things such as low battery, unlock, camera,.. root of /system for build.prop file
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("| by Primokorn |"); ui_print("+-------------------------------------+"); run_program("/sbin/busybox", "umount", "/system"); run_program("/sbin/busybox", "mount", "/system"); ui_print(" "); ui_print("***Deleting 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("Installing apps and 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("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("Done."); ui_print("Ready to reboot.");
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/"); Set the file permissions. 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 is formatted and reinstalled, then thes files are restored. # . /tmp/backuptool.functions list_files() { cat <<EOF addon.d/99-dirty.sh fonts/Roboto-Regular.ttf media/audio/ringtones/PlasticRing.ogg priv-app/BBS.apk priv-app/Gsam.apk priv-app/microG.apk priv-app/PhoneSky.apk priv-app/V4A-Magisk.apk etc/gps.conf etc/hosts EOF } case "$1" in backup) list_files | while read FILE DUMMY; do backup_file $S/"$FILE" done ;; restore) list_files | while read FILE REPLACEMENT; do R="" [ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT" [ -f "$C/$S/$FILE" ] && restore_file $S/"$FILE" "$R" done rm -rf /system/app/adaway.apk rm -rf /system/app/AdAway rm -rf /system/app/BasicDreams rm -rf /system/app/BookmarkProvider rm -rf /system/app/Calendar rm -rf /system/app/CalendarWidget rm -rf /system/app/CMFileManager rm -rf /system/app/CMWallpapers rm -rf /system/app/DeskClock rm -rf /system/app/Eleven rm -rf /system/app/Email rm -rf /system/app/ExactCalculator rm -rf /system/app/Exchange2 rm -rf /system/app/Gello rm -rf /system/app/HexoLibre rm -rf /system/app/Jelly rm -rf /system/app/LatinIME rm -rf /system/app/LiveWallpapersPicker rm -rf /system/app/LockClock rm -rf /system/app/messaging rm -rf /system/app/MiXplorer rm -rf /system/app/NexusLauncher rm -rf /system/app/Nova.apk rm -rf /system/app/Phonograph rm -rf /system/app/PhotoTable rm -rf /system/app/PicoTts rm -rf /system/app/PicoTTS rm -rf /system/app/ResurrectionStats rm -rf /system/app/SoundRecorder rm -rf /system/app/Terminal rm -rf /system/app/TugaBrowser rm -rf /system/app/Wallpaper rm -rf /system/app/WallpaperPickerGoogle rm -rf /system/priv-app/AudioFX rm -rf /system/priv-app/Chrome rm -rf /system/priv-app/Gallery2 rm -rf /system/priv-app/LatinIME rm -rf /system/priv-app/MusicFX rm -rf /system/priv-app/OnePlusCamera rm -rf /system/priv-app/OnePlusGallery rm -rf /system/priv-app/OnePlusMusic rm -rf /system/priv-app/Recorder rm -rf /system/priv-app/Screencast rm -rf /system/priv-app/SnapdragonCamera rm -rf /system/priv-app/SnapdragonGallery rm -rf /system/priv-app/Snap rm -rf /system/priv-app/Trebuchet rm -rf /system/priv-app/WeatherManagerService rm -rf /system/priv-app/WeatherProvider rm -rf /system/priv-app/Tag ;; pre-backup) # Stub ;; post-backup) # Stub ;; pre-restore) # Stub ;; post-restore) # Stub ;; esac
Erstellen Sie eine Liste der Dateien, die Sie nach einem Dirty Flash behalten möchten.
list_files() { cat <<EOF addon.d/99-dirty.sh fonts/Roboto-Regular.ttf media/audio/ringtones/PlasticRing.ogg priv-app/BBS.apk priv-app/Gsam.apk priv-app/microG.apk priv-app/PhoneSky.apk priv-app/V4A-Magisk.apk etc/gps.conf etc/hosts EOF }
RM -RF die Dateien, die Sie nach einem Dirty Flash nicht installieren möchten (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
Wir werden dafür MiXplorer verwenden, da es zweifellos der beste Root-Explorer und Dateimanager für Android ist.
- Wählen Sie zuerst alle Ordner aus, die in der Zip-Datei enthalten sein sollen, und wählen Sie Archivieren.
- Bestätigen Sie die Erstellung Ihrer Archivdatei, geben Sie ihr einen Namen und wählen Sie Speichern.
- Ihre flashbare Zip-Datei wird erstellt. Wählen Sie also die Zip-Datei aus und signieren Sie sie (mit dem MiX-Signer-Plugin).
- Wählen Sie nun TestKey, um es auf Signaturfehler zu überprüfen.
- 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 fehlerhaften Flash Ihres ROM installiert werden. Das Updater-Skript entfernt und fügt die Systemdateien hinzu, die Sie in Ihrem Skript angegeben haben. Lassen Sie das Skript addon.d jedoch in Ruhe, da es seine Aufgabe ohne Ihre Störung 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, der nicht entfernt wurde.