আপনি যদি একজন অ্যান্ড্রয়েড ডেভেলপার হন যিনি /সিস্টেম পার্টিশনের (যেমন রুট অ্যাপের মতো) অ্যাপ তৈরি করতে চান, এমন কিছু উদাহরণ রয়েছে যেখানে আপনি আপনার অ্যাপের জন্য একটি ফ্ল্যাশযোগ্য .zip তৈরি করতে চান। এটি যাতে অ্যাপ ফাইলগুলি সঠিকভাবে /সিস্টেম পার্টিশনে ইনস্টল করা যায়।
ফ্ল্যাশযোগ্য .zips-এর আরও কয়েকটি ব্যবহার অন্তর্ভুক্ত:
- DPI পরিবর্তন করা হচ্ছে
- একটি কাস্টম ফন্ট প্রয়োগ করা হচ্ছে
- একটি কাস্টম বুট অ্যানিমেশন প্রয়োগ করা হচ্ছে
- সিস্টেম অ্যাপগুলি সরানো বা যোগ করা হচ্ছে
আপনার ব্যবহারকারীদের ফাইল সিস্টেমে এলোমেলো করার নির্দেশ দেওয়া এবং ম্যানুয়ালি ফাইলগুলি সরানোর জন্য জড়িত প্রত্যেকের জন্য একটি সময় নষ্ট করে – একটি ফ্ল্যাশযোগ্য .zip তৈরি করা আরও বেশি সুবিধাজনক রুট। এই Appual-এর গাইড আপনাকে দেখাবে কিভাবে Android এর জন্য একটি ফ্ল্যাশযোগ্য জিপ তৈরি করতে হয়।
আমরা আপনাকে একটি addon.d স্ক্রিপ্টও দেখাব, যাতে কাস্টম সিস্টেম পরিবর্তনগুলি একটি নোংরা রম ফ্ল্যাশ থেকে বাঁচতে পারে – এইভাবে, ব্যবহারকারীদের প্রতিটি আপডেটের জন্য আপনার জিপকে পুনরায় ফ্ল্যাশ করতে হবে না৷
প্রয়োজনীয়তা:
- একটি রুট ফাইল এক্সপ্লোরার (MiXplorer, সলিড এক্সপ্লোরার)
- ZipSigner (zips সাইন করার জন্য) অথবা MiX Signer প্লাগ-ইন যদি আপনি MixPlorer ব্যবহার করেন
- একটি Nandroid ব্যাকআপ অত্যন্ত সুপারিশ করা হয়
জিপ-এ যে সমস্ত ফাইল যাচ্ছে সেগুলিও আপনার প্রস্তুত করা উচিত - APK, কনফিগ, বুট অ্যানিমেশন ইত্যাদি। আমরা শুরু করার আগে সবকিছু গুছিয়ে রাখুন, কারণ এটি একটি সূক্ষ্ম প্রক্রিয়া।
একটি কাস্টম জিপের টেমপ্লেট
আপনি যদি একটি টেমপ্লেট জিপ ডাউনলোড করতে চান যা আপনি আপনার নিজের প্রয়োজনে কাস্টমাইজ করতে পারেন, বা একটি ফ্ল্যাশযোগ্য জিপ তৈরির জন্য একটি বেস হিসাবে ব্যবহার করতে পারেন, আপনি সেগুলি এখানে ধরতে পারেন:
- টেমপ্লেট স্ক্রিপ্ট: লিঙ্ক ডাউনলোড করুন (মৌলিক কমান্ড / আপনাকে আপনার কাস্টম মানগুলি যোগ করতে হবে:অ্যাপস, রিংটোনের পথ, বুটনিমেশন...)
- টেমপ্লেট জিপ: ডাউনলোড লিঙ্ক (একটি ব্যাখ্যা আরও ভালভাবে বোঝার জন্য উদাহরণগুলি সর্বদা স্বাগত জানাই। এটি আপনার ফাইলগুলিকে কীভাবে গঠন করতে হয় তা বুঝতে সাহায্য করতে পারে)।
একটি কাস্টম স্ক্রিপ্ট ব্যবহার শুরু করার জন্য টেমপ্লেটটি যথেষ্ট হওয়া উচিত।
আপনাকে এই প্রধান পথগুলি মনে রাখতে হবে, কারণ এইগুলি /সিস্টেম পার্টিশনের জিনিস যা আপনার ফ্ল্যাশযোগ্য জিপগুলি সাধারণত লক্ষ্য করবে:
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
সর্বদা মনে রাখবেন যে এই পথগুলি থেকে সরানো ফাইলগুলি একটি নোংরা ফ্ল্যাশের পরে পুনরায় ইনস্টল করা হবে এবং ম্যানুয়ালি যুক্ত করা ফাইলগুলি সরানো হবে৷ এই কারণেই একটি স্ক্রিপ্ট তৈরি করা প্রয়োজন যা আপনার /সিস্টেম মোডগুলির একটি ব্যাকআপ করে।
একটি আপডেট-স্ক্রিপ্টের উদাহরণ
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");
একই জিনিস করুন কিন্তু /ডেটা ফোল্ডারের জন্য। তাই আপনি পার্টিশনটি মাউন্ট করবেন, আপনি যে ডেটা যোগ করতে চান তা বের করবেন এবং অনুমতি সেট করবেন।
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 ;;
কিভাবে একটি ফ্ল্যাশযোগ্য অ্যান্ড্রয়েড জিপ তৈরি করবেন
আমরা এটির জন্য MiXplorer ব্যবহার করব, কারণ এটি অ্যান্ড্রয়েডের জন্য সেরা রুট এক্সপ্লোরার এবং ফাইল ম্যানেজার।
- প্রথমে আপনার সমস্ত ফোল্ডার নির্বাচন করুন যেগুলি জিপে অন্তর্ভুক্ত করা হবে, এবং সংরক্ষণাগার নির্বাচন করুন৷
- আপনার সংরক্ষণাগার ফাইল তৈরির বিষয়টি নিশ্চিত করুন, এটিকে একটি নাম দিন এবং স্টোর নির্বাচন করুন৷
- আপনার ফ্ল্যাশযোগ্য জিপ তৈরি করা হবে, তাই জিপ ফাইলটি নির্বাচন করুন এবং তারপরে সাইন ইন করুন (MIX সাইনার প্লাগইন ব্যবহার করে)
- এখন TestKey নির্বাচন করুন শুধুমাত্র স্বাক্ষর ত্রুটির জন্য এটি পরীক্ষা করতে৷ ৷
- আপনি এখন জিপটি ফ্ল্যাশ করতে পারেন – কাস্টম পুনরুদ্ধার থেকে সহজেই এটি খুঁজে পেতে এটিকে /SDcard এ সরানোর পরামর্শ দিন৷
চূড়ান্ত নোট
আপনার ফ্ল্যাশযোগ্য জিপ একটি পরিষ্কার ফ্ল্যাশের পরে, বা /সিস্টেম পার্টিশনটি মুছে ফেলার পরে এবং আপনার রমের একটি নোংরা ফ্ল্যাশ করার পরে ইনস্টল করা দরকার। আপডেটার-স্ক্রিপ্ট আপনার স্ক্রিপ্টে নির্দিষ্ট করা সিস্টেম ফাইলগুলিকে সরিয়ে দেবে এবং যুক্ত করবে – তবে addon.d স্ক্রিপ্টটিকে একা ছেড়ে দিন, কারণ এটি আপনার কোনও হস্তক্ষেপ ছাড়াই তার কাজ করবে৷
আপনার প্রথম ইনস্টলেশনের পরে, সবকিছু ঠিক আছে কিনা তা নিশ্চিত করতে /সিস্টেম পার্টিশনটি ভালভাবে পরীক্ষা করুন – ফাইলগুলি সরানো হয়েছে, ইত্যাদি। হয়তো আপনার ফাইলের নামে একটি টাইপো ছিল এবং এটি সরানো হয়নি, এটি ঘটে।