رفتن به مطلب
ILYA20

آموزش ساخت کاستوم فایل برای ریکاوری کاستوم + سورس کد و موشکافی سورس کدها

پست های پیشنهاد شده

با سلام و درود خدمت دوستان محترم

همانطوری که در جریان هستید کرنل های کاستوم ریکاوری که از سوی توسعه دهندگان ارایه میشوند امکانات بسیار جالبی در اختیار مصرف کننده و همینطور خود توسعه دهنده در اختیار میگذارد.

 

به عبارتی شما میتوانید با ساخت اسکریپت تغییرات مختلفی روی دستگاه اعمال کنید . میتوانید پچ برای انلاک قفل ، حذف فایلهای اضافی از رام ، رام کاستوم ، حذف انواع ویروس ها و .... درست کنید و پچ ساخته شده را از قسمت install ریکاوری کاستوم رایت کنید.

 

حال اینکار بستگی به ابتکار شما دارد که چه نوع پچی درست کنید که چه نوع تغییراتی در گوشی اعمال شود.

 

در این بخش از اموزش یاد خواهید گرفت که چطور یک اسکریپت درست کنید تا بتوانید تغییرات دلخواه از طریق ریکاوری کاستوم اعمال کنید یا رام کاستوم بسازید.(این اموزش به همراه سورس کد و توضیح درباره کد مربوطه میباشد)

 

با ما همراه باشید.

 

قبل از هر کاری فایل META-INF زیر را دانلود نمایید.

>http://support.gsm-developers.ir/dl11/book/META-INF_BY_ILYA20.zip

 

 

سپس استخراج کرده فایل updater-script را از ادرس META-INF\com\google\android با نرم افزار notpad ++ باز کنید.

 

مشاهده میکنید که هیچ کدی در این فایل نیست و باید برای کار کردن این فایل کدهای دلخواهمان را تایپ کنیم.

 

حالا میرسیم به سورس کدها و نحوه اضافه کردن کد به فایل برای ثبت تغییرات دلخواه.

 

در صورت دلخواه کدهایی که در پست های زیر قرار میدهیم را در فایل updater-script قرار داده و ذخیره کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای چاپ نوشته از کد زیر استفاده کنید.

 

 

 

>ui_print("[color=#FF0000]Gsm-developers Groups[/color]");

 

توضیح درباره کد:

- این کد هنگام رایت و اعمال شدن کدهای اصلی نشان داده خواهد شد . مثلا بنده در اینجا Gsm-developers Groupsاستفاده کردم و وقتی فایل را از طریق ریکاوری کاستوم نصب میکنیم این خط نمایش داده خواهد شد.

شما میتوانید نوشته های خود را در وسط " " درج کنید تا هنگام رایت پچ در قسمت ریکاوری کاستوم نوشته شما به نشان دربیاید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این آموزش رو به صورت پروژه محور برایتان توضیح میدهم توضیحات و کدهای مربوطه را میتوانید برای کارهای دیگری نیز بکار ببرید

 

 

برای دسترسی به پارتیشن های مختلف و اعمال تغییرات ، نیاز به مانت کردن ان بخش میباشد.

 

مثلا ما اگه بخوایم به پارتیشن system/app یه نرم افزار اضافه کنیم یا چیزی حذف کنیم باید اول پارتیشن system را مانت کنیم در غیر اینصورت کدهایمان به خطا میرود و اعمال نمیشود.

 

برای مانت کردن پارتیشنها میتوانید از کرنل boot استفاده کنید که در داخل روت گوشی با نام mmcblk موجود میباشد. حالا پیدا کردن این فایل از دایرکتوری dev برای شما عزیزان دشوار هستش برای همین توصیه میکنم از فایل باینری BUSYBOX استفاده کنید.

 

فایل باینری busybox را از لینک زیر دانلود کنید.

>http://support.gsm-developers.ir/dl11/book/busybox.zip

از زیپ در بیارید و در کنار پوشه META-INF کپی کنید.

توجه:

در اخر که میخواهیم از کارمان خروجی بگیریم و ازش استفاده کنیم باید این فایل را به همراه پوشه META-INF به فرمت ZIP ارشیو شود.مثل تصویر زیر

41.png

استخراج فایل:

ابتدا باید با استفاده از کد زیر فایل busybox را به یکی از دایرکتوری های موجود در روت گوشی که نیاز به مانت کردن ندارد استخراج کنید.

>[size=3]package_extract_file("[color=#ff0000]busybox[/color]", "[color=#b22222]/tmp/[/color][color=#ffa07a]busybox[/color]");[/size]

 

busybox:: نام busybox شماست

/tmp/:: نام دایرکتوری که میخواهید استخراج کنید میباشد.(این دایرکتوری در تمامی گوشیهای اندرویدی موجود میباشد و توصیه میکنم برای کپی کردن فایل به دایرکتوری که نیاز به مانت کردنش نیست این دایرکتوری را انتخاب کنید)

busybox:: نام busybox که پس از کپی کردن به این نام تبدیل میشود.

 

دادن دسترسی به فایل ها:

پس از اینکه فایل busybox را به پوشه tmp کپی کردیم نیاز داریم که دسترسی خواندن و نوشتن را بهش بدیم تا بتواند تغییرات مورد نیاز را اعمال کند.

 

با استفاده از کد زیر میتوانید به فایلها دسترسی دلخواه بدید.

 

>[/size][/size][/b][font=IranSans]set_perm([/font][color=#FF0000][font=IranSans]0[/font][/color][font=IranSans], [/font][color=#FF0000][font=IranSans]2000[/font][/color][font=IranSans], [/font][color=#FF0000][font=IranSans]04755[/font][/color][font=IranSans], "[/font][color=#B22222][font=IranSans]/tmp/busybox[/font][/color][font=IranSans]");[/font][b][size=4][size=2]

0, 2000, 04755,:: میزان دسترسی میباشد. در لینوک به فایلها با استفاده از اعداد دسترسی داده میشود. برای اطلاعات بیشتر درباره سطح دسترسی در لینوک اموزش زیر را مطالعه نمایید.

>https://blog.webramz.com/%D8%B3%D8%B7%D8%AD-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D9%87%D8%A7-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D9%88-%D9%86%D8%AD%D9%88%D9%87-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%A2%D9%86

/tmp/busybox:: فایل مربوطه که از مسیر مشخص شده بهش دسترسی داده ایم.

 

پس از دادن دسترسی به فایل busybox نوبت به مانت کردن بخش های دلخواه میرسد.

 

اجرا کردن فایل باینری:

برای استفاده از قابلیت های فایل باینری busybox باید آن را اجرا کنیم .

با استفاده از کد زیر میتوانید فایل باینری busybox را اجرا کنید.

>run_program("/[color=#ff0000]tmp/busybox[/color]");

tmp/busybox:: با استفاده از این کد فایل مربوطه را از مسیر مشخص شده به اجرا دراوردیم.

مانت کردن پارتیشنهای دلخواه:

پس از اجرا کردن فایل busybox میتوانیم از قابلیت های ان استفاده کنیم.

 

برای مانت کردن پارتیشن های مختلف از کد زیر استفاده کنید.

>run_program("[color=#b22222]/tmp/busybox[/color]", "mount", "[color=#ff0000]/data[/color]");

>run_program("[color=#b22222]/tmp/busybox[/color]", "mount", "/[color=#ff0000]system[/color]");

اگر توجه کنید با استفاده از فایل busybox پارتیشنهای data و system را مانت کرده ایم . حالا شما میتوانید دیگر پارتیشن ها را نیز با استفاده از این کد مانت کنید.فقط بجای data یا system نام پارتیشن خودتان را قرار میدهید.

 

فرمت کردن پارتیشن های دلخواه:

برای فرمت پارتیشن های دلخواه میتوانید از کد زیر استفاده نمایید.

>[/size][/size][/b][/color][font=IranSans]format("[color=#ff0000]yaffs2[/color]", "[color=#ff0000]MTD[/color]", "[color=#ff0000]system[/color]", "[color=#ff0000]/system[/color]");[/font][b][size=4][size=2]

yaffs2::نوع فایل سیستم استفاده شده در دستگاه

MTD:: نوع پارتیشن مورد استفاده در فایل system

system::نام پارتیشن برای فرمت

/system:: آدرس دایرکتوری مربوطه برای فرمت

توجه:

در صورتی که رام کاستوم ساخته اید اینکار را حتما انجام دهید تا پارتیشن مربوطه clean شود تا با ابزارهایی که در کاستوم رام شماست تداخل نداشته باشد.

حذف فایلهای دلخواه از پارتیشن های دلخواه

برای حذف فایلهای مورد نظر میتوانید از کد زیر استفاده کنید .

 

توجه: قبل از اینکار پارتیشن مربوطه را با استفاده از اموزش قبلی مانت کنید.

 

>[/size][/size][/b][font=IranSans]delete("[color=#ff0000]/data/system/locksettings.db[/color]");[/font][b][size=4][size=2]

در اینجا ما فایل locksettings.db را از دایرکتوری مشخص شده حذف کردیم.شما نیز میتوانید فایل مورد نیاز را از دایرکتوری مورد نیاز حذف کنید.

 

آنمانت unmount کردن پارتیشن دلخواه

پس از اینکه تغییرات مربوطه را برای پارتیشن دلخواه انجام داده اید نوبت به unmount کردن پارتیشن مربوطه میرسد.

 

با استفاده از کد زیر میتوانید پارتیشن دلخواه را unmount کنید.

 

>[/size][/b][font=IranSans]unmount("/[color=#ff0000]data[/color]");[/font][b][size=2]

data :: نام پارتیشن مربوطه میباشد. این پارتیشن میتواند system ، efs و یا ... نیز باشد.

 

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

پس از اینکه کدهایمان را ذخیره کردیم پوشه meta-inf را به همراه دیگر فایلایی که وابسته کردیم به فرمت zip ارشیو میکنید سپس میتوانید با استفاده از کاستوم ریکاوری install کنید.

 

جهت یادگیری سریع توصیه میکنم یک رام کاستوم را باز کنید و سورس کد

updater-script را مشاهده کنید .

 

کدها به طرز دقیقی واضح هستند.

 

همینطور میتوانید از سورس کدهای زیر هم برای کارهایتان استفاده کنید.

>http://androidxref.com/source/xref/bootable/recovery/updater/

 

برای سوال و ارایه مشکلاتتان از بخش سوالات و مشکلات استفاده کنید.

 

موفق باشید

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

×