قبل از شروع یه اطلاعاتی در مورد boot.img بهتون بدم
بوت ایمیج شامل کرنل و رمدیسک میشه که شامل فایل های حیاتی هستن که باعث میشه دستگاتون بالا بیاد و یعنی فایلایی سیستی مونت شن و os شورع کنه به لود شدن کنه
در حالت عادی ویرایش این فایل ممکن نیست باید با ابزارهایی که در ادامه بهتون معرفی میکنم اینکارو کنیم
تو این اموزش صرفا به اکسترکت بوت ایمیج و دستیابی به رمدیسک میپردازیم و قصدمون کمپایل یا ویرایش و ساخت کرنل نیست
بعضی وقت ها هنگام کوک کردن رام بایستی تغییراتی در رمدیسک انجام شه تا رام رو بشه رو گوشی هدف اجرا کرد
پس اگه رامی دارین و تو پرت کردن با سد boot image برخورد کردین این تاپیکو بخونید
موارد مورد نیاز :
یه نسخه از لینوکس -
Android-Kitchen dsixda
یا
mtk-tools-master -
برای شروع کار باید شما توزیع از لینوکس رو داشته باشد و اصلا مهم نیست چی باشه (خودم از روسا استفاده میکنم )
بعد شما به Android-Kitchen احتیاج دارید که میتونید از [External Link Removed for Guests] دانلود کنید
در فولدر home/ خودتون پوشه ای بنام kitchen درست کنید و فایلی که گرفتینو اونجا اکسترکت کنید
حالا ترمینال رو باز کنید
تو منوی لینوکستون terminal رو تایپ کنید باز پیدا میشه به ترمینال console هم میگن محیطی همانند cmd ویندوز هست
حالا با ترمینال وارد پوشه kitchen میشیم با این دستور
/cd/home/ًَUR_NAME/kitchen
به جای ur _name نام کاربری خودتونو باید بنویسید
حالا با دستور
menu/.
برنامه باز و منوهای برنامه رو خواهید دید
اگه برنامه اجرا نشد یا خطای permision dinied داد
دستور chmod +x menu
رو وارد کنید و مجدادmenu/. بزنید

اینم نمایی که برنامه رو تو پوشه kitchen گزاشتین
تو پوشه orginal رام خودتونو کپی کنید (رام که میخوایین روش کار کنید )
حالا دیگه کار اسونه منوهای برنامه سر راست و مشخصه
در منوی برنامه عدد 1 رو بزنید و بعد اینتر
برنامه یه فولدر موقت درست میکنه بنام working که محل کار شماست
در ضمن برنامه رام رو از حالت زیپ در میاره که شامل فولدرای سیستمی و بوت ایمیج میشه

حالا اگه با انتخاب 0 وارد منوی advanced شید یکی از منوی ها داخل بنام tools for boot image هست با شماره 12

با انتخاب شماره 12

کارهایی که میتونید با بوت ایمیج کنید به نمایش در میاد شما الان میتونید با انتخاب گزینه w یعنی extract kernel + ramdisk
کرنل و رمدیسک رو از فایل بوت ایمج خودتون استخراج کنید
فایلای استخراج شده در پوشه ای بنام boot-extracted ذخیره میشن
طبق تصویر زیر کرنل با فایل zimage ذخیره شد و رم دیسک در کنارش
خالا به محتویات رمدیسک دسرسی دارین و طبق خواسته خودتون میتونید تغیراتتونو اعمال کنید معمولا کوکر ها به فایل init.rc برای پورت کردن رام احتیاج دارن که میشه الان به راحتی
با یه نرم افزار ویرایش متن ادیت کرد
بعد از اتمام کارتون به جای extract kernel+ramdisk
منوی Build boot.img from BOOT-EXTRACTED folder
ظاهر میشه که میتونید به اسونی تمام بوت ایمیج رو repack کنید و بوت ایمیج دستکاری شدتون رو بسازید
بوت ایمیج repack شده تو فوادر working ذخیره میشه
این برنامه اسون ترین راحت ترین و سریع ترین برنامه ایه که نیاز افراد مبتدی و یا حرفه ای رو در کمترین زمان ممکن بر اورده میکنه
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
دوم
برنامه رو دریافت ( زیپ هست ) و بر رو دسکتاپ پوشه ای بنام mtk-tools-master بسازید و برنامه رو در اونجا اکسترکت کنید (محتویات برنامه رو در اینجا بریزید)
حالا ترمینال رو فراخوانی کنید و وارد پوشه برنامه شید با این فرمان
cd /home/USER NAME/Desktop/mtk-tools-master
به جای user name نام کاربری خودتونو بنویسید
حالا در ترمینال دستور
sudo chmod 755 /bin/mkbootimg
رو وارد کنید ترمینال پسورد شمارو میخواد که بایستی وارد کنید
بوت ایمیجی که میخواین اکسترکت کنید رو تو فولدر برنامه کپی کنید
حالا با فرمان perl unpack-MTK.pl boot.img بوت ایمیج رو اکسترکت کنید
میبینید که کرنل و رمدیسک در کنار هم در فولدر برنامه اکسترکت شده اند

حالا شما هستید و رمدیسک تغییراتی که میخواین رو انجام بدین و بعد از انجام کار با دستور
perl repack-MTK.pl -boot boot.img-kernel.img /home/ultra/Desktop/mtk-tools-master/boot.img-ramdisk newbootimag
بوت ایمیج جدیدتون رو بسازید

بررسی جز به جز دستور :
perl repack-MTK.pl فراخوانی برنامه ریپکر که به زبان پرل نوشته شده
-boot عملیاتی که انجام میدیم برا بوت ایمیج هست
boot.img-kernel.img نام کرنل ماست که استخراج شده
/home/ultra/Desktop/mtk-tools-master/boot.img-ramdisk مکان دقیق رمدیسک ماست به جای ultra نام کاربری شما قرار میگیره
newbootimag کرنل جدید رو با این نام ذخیره کن
شکل کلی دستور
-boot <kernel> <ramdisk-directory> <outfile>موفق باشید









