यदि आप एक Android डेवलपर हैं जो /system विभाजन (जैसे रूट ऐप्स) के लिए इच्छित ऐप्स बनाना चाहते हैं, तो ऐसे कुछ उदाहरण हैं जहां आप अपने ऐप के लिए एक फ्लैश करने योग्य .zip बनाना चाहते हैं। ऐसा इसलिए है ताकि ऐप फाइल्स को /system पार्टीशन में ठीक से इंस्टाल किया जा सके।
फ्लैश करने योग्य .zips के कुछ अन्य उपयोगों में शामिल हैं:
- डीपीआई को संशोधित करना
- कस्टम फ़ॉन्ट लागू करना
- कस्टम बूट एनिमेशन लागू करना
- सिस्टम ऐप्स को हटाना या जोड़ना
अपने उपयोगकर्ताओं को फ़ाइल सिस्टम में गड़बड़ी करने और फ़ाइलों को मैन्युअल रूप से स्थानांतरित करने का निर्देश देना इसमें शामिल सभी लोगों के लिए एक समय बर्बाद करने वाला है - एक फ्लैश करने योग्य .zip बनाना एक अधिक सुविधाजनक मार्ग है। इस Appual की मार्गदर्शिका आपको दिखाएगी कि Android के लिए एक फ्लैश करने योग्य ज़िप कैसे बनाया जाए।
हम आपको एक addon.d स्क्रिप्ट भी दिखाएंगे, ताकि कस्टम सिस्टम परिवर्तन एक गंदे ROM फ्लैश से बचे रहें - इस प्रकार, उपयोगकर्ताओं को प्रत्येक अपडेट के लिए आपके ज़िप को फिर से फ्लैश करने की आवश्यकता नहीं होगी।
आवश्यकताएं:
- एक रूट फ़ाइल एक्सप्लोरर (MiXplorer, सॉलिड एक्सप्लोरर)
- ZipSigner (ज़िप पर हस्ताक्षर करने के लिए) या यदि आप MixPlorer का उपयोग करते हैं तो MiX Signer प्लग-इन
- नंद्रॉइड बैकअप की अत्यधिक अनुशंसा की जाती है
आपको ज़िप में जाने वाली सभी फाइलें भी तैयार करनी चाहिए - एपीके, कॉन्फिग, बूट एनिमेशन, आदि। शुरू करने से पहले सब कुछ व्यवस्थित करें, क्योंकि यह एक नाजुक प्रक्रिया है।
कस्टम ज़िप का टेम्प्लेट
यदि आप एक टेम्पलेट ज़िप डाउनलोड करना चाहते हैं जिसे आप अपनी आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं, या इसे फ्लैश करने योग्य ज़िप बनाने के लिए आधार के रूप में उपयोग कर सकते हैं, तो आप उन्हें यहां ले सकते हैं:
- टेम्पलेट स्क्रिप्ट: लिंक डाउनलोड करें (बुनियादी आदेश / आपको अपने कस्टम मान जोड़ने होंगे:ऐप्स, रिंगटोन के पथ, बूटएनिमेशन…)
- टेम्पलेट ज़िप: लिंक डाउनलोड करें (किसी स्पष्टीकरण को बेहतर ढंग से समझने के लिए उदाहरणों का हमेशा स्वागत है। यह यह समझने में मदद कर सकता है कि आपकी फ़ाइलों को कैसे संरचित किया जाए)।
कस्टम स्क्रिप्ट का उपयोग शुरू करने के लिए टेम्पलेट पर्याप्त होना चाहिए।
आपको इन मुख्य रास्तों को याद रखना होगा, क्योंकि /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
हमेशा याद रखें कि इन पथों से हटाई गई फ़ाइलों को एक गंदे फ्लैश के बाद फिर से स्थापित किया जाएगा, और मैन्युअल रूप से जोड़ी गई फ़ाइलों को हटा दिया जाएगा। यही कारण है कि एक ऐसी स्क्रिप्ट बनाना आवश्यक है जो आपके /system mods का बैकअप बनाए।
अपडेट-स्क्रिप्ट का उदाहरण
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 ;;
फ्लैश करने योग्य Android Zip कैसे बनाएं
हम इसके लिए MiXplorer का उपयोग करेंगे, क्योंकि यह एंड्रॉइड के लिए सबसे अच्छा रूट एक्सप्लोरर और फाइल मैनेजर है, हैंड्स डाउन।
- सबसे पहले अपने सभी फ़ोल्डर चुनें जो ज़िप में शामिल होंगे, और संग्रह चुनें।
- अपनी संग्रह फ़ाइल के निर्माण की पुष्टि करें, इसे एक नाम दें और स्टोर चुनें।
- आपका फ्लैश करने योग्य ज़िप बनाया जाएगा, इसलिए ज़िप फ़ाइल का चयन करें और फिर उस पर हस्ताक्षर करें (MiX हस्ताक्षरकर्ता प्लगइन का उपयोग करके)
- अब टेस्टकी को सिग्नेचर त्रुटियों के लिए जांचने के लिए चुनें।
- अब आप ज़िप को फ्लैश कर सकते हैं - कस्टम पुनर्प्राप्ति से इसे आसानी से ढूंढने के लिए इसे /SDcard में ले जाने की अनुशंसा करें।
अंतिम नोट
आपके फ्लैश करने योग्य ज़िप को एक साफ फ्लैश के बाद, या /system विभाजन को पोंछने और अपने रोम का गंदा फ्लैश करने के बाद स्थापित करने की आवश्यकता है। अपडेटर-स्क्रिप्ट आपके द्वारा अपनी स्क्रिप्ट में निर्दिष्ट सिस्टम फ़ाइलों को हटा देगा और जोड़ देगा - लेकिन addon.d स्क्रिप्ट को अकेला छोड़ दें, क्योंकि यह आपके बिना किसी हस्तक्षेप के अपना काम करेगा।
अपनी पहली स्थापना के बाद, यह सुनिश्चित करने के लिए /system विभाजन को अच्छी तरह से जांचें कि सब कुछ सही है - फ़ाइलें हटा दी गई हैं, आदि। हो सकता है कि आपके पास फ़ाइल नाम में एक टाइपो था और इसे हटाया नहीं गया था, ऐसा होता है।