AndroidSystemMods用のFlashableZipを作成する方法
/ systemパーティション用のアプリ(ルートアプリなど)を作成したいAndroid開発者の場合、アプリ用にフラッシュ可能な.zipを作成したい場合があります。これは、アプリファイルを/systemパーティションに正しくインストールできるようにするためです。
フラッシュ可能な.zipのその他の用途には、次のものがあります。
- DPIの変更
- カスタムフォントの適用
- カスタムブートアニメーションの適用
- システムアプリの削除または追加
ユーザーにファイルシステムをいじって手動でファイルを移動するように指示することは、関係するすべての人にとって時間の無駄です。フラッシュ可能な.zipを作成する方がはるかに便利な方法です。このAppualのガイドでは、Android用のフラッシュ可能なzipを作成する方法を説明します。
また、addon.dスクリプトも表示します。これにより、カスタムシステムの変更がダーティなROMフラッシュに耐えられるようになります。したがって、ユーザーは更新のたびにzipを再フラッシュする必要がありません。
要件:
- ルートファイルエクスプローラー(MiXplorer、Solid Explorer)
- ZipSigner(zipに署名する場合)またはMixPlorerを使用する場合はMiXSignerプラグイン
- Nandroidバックアップを強くお勧めします
また、zipに入るすべてのファイル(APK、構成、ブートアニメーションなど)を準備する必要があります。これはデリケートなプロセスであるため、開始する前にすべてを整理してください。
カスタムZipのテンプレート
自分のニーズに合わせてカスタマイズできるテンプレートzipをダウンロードする場合、またはフラッシュ可能なzipを作成するためのベースとして使用する場合は、ここで入手できます:
- テンプレートスクリプト:ダウンロードリンク(基本コマンド/カスタム値を追加する必要があります:アプリ、着信音のパス、起動など)
- TEMPLATE ZIP:ダウンロードリンク(説明をよりよく理解するために例をいつでも歓迎します。ファイルの構造を理解するのに役立ちます)。
テンプレートは、カスタムスクリプトの使用を開始するのに十分なはずです。
これらのメインパスは、フラッシュ可能なzipが通常ターゲットとする/ systemパーティション内のものであるため、覚えておく必要があります。
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
これらのパスから削除されたファイルはダーティフラッシュの後に再インストールされ、手動で追加されたファイルは削除されることを常に覚えておいてください。これが、/systemmodsのバックアップを作成するスクリプトを作成する必要がある理由です。
更新スクリプトの例
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.");
注:ui_print(”“);テキストメッセージ用です。これらの行は何もしません。
作業を行う前に、必ずパーティションをアンマウントしてから再マウントする必要があります。
run_program("/sbin/busybox", "umount", "/system"); run_program("/sbin/busybox", "mount", "/system");
システムコンポーネント/アプリを削除するには、最後の行を除いて、各行の最後にカンマを入れます。
delete_recursive( "/system/app/adaway.apk", "/system/app/AdAway", ........................ "/system/priv-app/WeatherProvider", "/system/priv-app/Tag" );
インストールするシステムファイルを抽出します。
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");
同じことを行いますが、/dataフォルダーに対して行います。したがって、パーティションをマウントし、追加するデータを抽出して、アクセス許可を設定します。
run_program("/sbin/busybox", "mount", "/data"); package_extract_dir("data", "/data/"); set_perm(0, 0, 0755, "/data/local/afscript.sh");
次に、変更したパーティションをアンマウントします。
run_program("/sbin/busybox", "umount", "/data"); run_program("/sbin/busybox", "umount", "/system");
Addon.Dスクリプトの例
#!/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
ダーティフラッシュ後に保持するファイルのリストを作成します。
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ダーティフラッシュの後にインストールしたくないファイル(ダーティフラッシュから再インストールされる、変更で削除したシステムファイル)
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 ;;
フラッシュ可能なAndroidZipを作成する方法
これにはMiXplorerを使用します。これは、Androidに最適なルートエクスプローラーおよびファイルマネージャーであるためです。
- まず、zipに含まれるすべてのフォルダを選択し、[アーカイブ]を選択します。
- アーカイブファイルの作成を確認し、名前を付けて[ストア]を選択します。
- フラッシュ可能なzipが作成されるので、zipファイルを選択してから署名します(MiX署名者プラグインを使用)
- 次に、TestKeyを選択して、署名エラーがないかどうかを確認します。
- zipをフラッシュできるようになりました。カスタムリカバリから簡単に見つけることができるように、zipを/SDcardに移動することをお勧めします。
最終メモ
フラッシュ可能なzipは、クリーンフラッシュの後、または/systemパーティションをワイプしてROMのダーティフラッシュを実行した後にインストールする必要があります。 updater-scriptは、スクリプトで指定したシステムファイルを削除して追加しますが、addon.dスクリプトはそのままにしておくと、干渉を受けることなく機能します。
最初のインストール後、/ systemパーティションを徹底的にチェックして、すべてが正しいことを確認します。ファイルが削除されるなどです。ファイル名にタイプミスがあり、削除されなかった可能性があります。
-
Android 携帯でファイルを解凍する方法
インターネットにより、世界中でドキュメントを簡単に共有できるようになりましたが、大きなファイルの共有は依然として大きな懸念事項でした。この問題に取り組むために、zip ファイルが作成されました。これらのファイルは、多数の画像やビデオを圧縮して、1 つのファイルとして送信できます。 zip ファイルは、当初は PC 向けでしたが、スマートフォンの領域にも進出しました。そのようなファイルを所有していて、その構成要素を解読できない場合は、次の方法で解読できます Android デバイス上の nzip ファイル。 Android デバイスでファイルを解凍する方法 Zip ファイルとは? 前述
-
Android で Telegram アカウントを作成する方法
Telegram は、世界中で 5 億人以上のアクティブ ユーザーを持つ、人気のあるオンライン インスタント メッセージング サービスの 1 つです。 WhatsApp、Google Messages、Signal などの他のオンライン メッセージング アプリの優れた代替手段です。 .近年、より楽しく便利な機能のために、何人かの人々がこのアプリケーションを使い始めています。 Telegram アカウントの作成も検討している場合は、この記事を最後まで読んで、Telegram アカウントの作成方法の詳細を確認してください。 Android で Telegram アカウントを作成する方法 多