اندروید سفارشی: ما سفت‌افزار خود را از موجودی انبار می‌سازیم، بدون اینکه در منابع جستجو کنیم. هدف از آیتم های منوی بازیابی TWRP

اندروید سفارشی: ما سفت‌افزار خود را از موجودی انبار می‌سازیم، بدون اینکه در منابع جستجو کنیم. هدف از آیتم های منوی بازیابی TWRP

16.06.2022

حقوق سوپرکاربر یا به سادگی روت، بخشی جدایی ناپذیر از دنیای سیستم عامل اندروید است. همانطور که می دانید، با کمک آن می توانید عملکرد را به طور قابل توجهی گسترش دهید: از حذف تبلیغات تا تغییر جدی نرم افزار دستگاه. با این حال، بسیاری از کاربران سوالاتی مانند: "چگونه Sberbank Online را با روت راه اندازی کنیم؟" یا: "چگونه Pokemon GO را در تلفن هوشمند جیلبریک بازی کنیم؟" جواب همه اینها Magisk است.
با رایج شدن سیستم های پرداخت بدون تماس، این سوال مطرح شد: "چرا Visa payWave با حقوق ابرکاربر کار نمی کند؟" قبلاً نسخه‌های اصلاح‌شده برنامه‌های دارای حفاظت غیرفعال به کمک آمدند؛ نمی‌توانیم در مورد امنیت آنها صحبت کنیم؛ می‌توانید هر چیزی را در یک فایل apk قرار دهید! یک توسعه دهنده با نام مستعار topjohnwu از انجمن XDA-Developers به ​​طور کاملاً متفاوتی به مشکل برخورد کرد!

Magisk چیست

- یک مدیر مدرن با حقوق ریشه، در واقع - یک جایگزین پیشرفته تر برای SuperSU از Chainfire با برخی نوآوری های کاربردی.

رابط برنامه طبق دستورالعمل طراحی مواد ساخته شده است، ناوبری بصری است، منو با موارد غیر ضروری بارگیری نمی شود، فقط همه چیزهایی که نیاز دارید. این برنامه، به استثنای موارد نادر، Russified است.

ویژگی های کلیدی

مکانیسم ریشه یابی MagiskSU با پارتیشن سیستم تداخلی ندارد. این رویکرد نسبت به روش کلاسیک ایمن‌تر است و به شما امکان می‌دهد با فرمت کردن پارتیشن سیستم، سیستم عامل را بدون ترس از ریشه و ماژول‌های نصب شده اضافی، به‌روزرسانی کنید.

یکی از ویژگی‌های کلیدی این است که می‌توانید حقوق ابرکاربر را از برنامه‌هایی که روی دستگاه‌های جیلبریک اجرا نمی‌شوند، پنهان کنید. اینها شامل مشتریان بسیاری از بانک ها، سیستم های پرداخت بدون تماس و، به عنوان مثال، Pokemon GO می شود. پیاده سازی راحت است، ریشه با یک کلیک پنهان می شود، بخش Magisk Hide منوی اصلی. همان Sberbank Online گزارش تهدید را متوقف کرد و همه عملکردها را باز کرد!

ماژول های اضافی

علاوه بر این، Magisk Manager شامل یک موتور مود قدرتمند است که با مفهوم کلی برنامه مطابقت دارد و بدون تغییر پارتیشن سیستم (بدون سیستم) کار می کند، لازم نیست نگران آسیب دیدن فایل های سیستم باشید، این رویکرد به شما امکان می دهد غیرفعال کنید. همه افزونه ها در هر زمان نصب تغییرات از طریق بازیابی سفارشی یا مستقیماً از طریق منوی Magisk Manager انجام می شود. در حال حاضر ماژول های زیادی وجود دارد که جالب ترین آنها را جداگانه بررسی خواهیم کرد:

App Systemizer- ماژولی که به شما امکان می دهد هر برنامه کاربری را به عنوان یک برنامه سیستمی بدون تغییر پارتیشن سیستم نصب کنید. نصب دستی آن در پارتیشن سیستم ساده ترین کار نیست و در ماژول فقط باید برنامه های مورد نیاز را علامت گذاری کنید.

Viper4Android- یک مدیر جلوه های صوتی محبوب با گسترده ترین امکانات برای سفارشی کردن مسیر صوتی. با کمک آن شما به راحتی می توانید پتانسیل هر گوشی هوشمند مدرن را آزاد کنید!

اسکریپت مجاز SELinux- سیستم امنیتی SELinux را در حالت "فقط هشدار" قرار می دهد. این دستکاری توسط برخی از برنامه ها، به عنوان مثال، موتور صوتی Viper4Android مورد نیاز است.

Xposed- یک موتور قدرتمند برای اصلاح بدون تغییر فایل های apk نیازی به معرفی ندارد. پشتیبانی از اندروید از لالی پاپ تا مارشمالو. خوشحال کننده است که اکنون بدون تغییر در فایل های سیستم کار می کند! برای نصب آن، علاوه بر خود فریم ورک از Magisk Manager، باید Xposed Installer را نصب کنید!

انتخاب ماژول ها واقعاً گسترده است؛ می توانید آنها را در برنامه یا در بخش ویژه XDA-Developers پیدا کنید. هم تغییرات کلی وجود دارد، مانند ViperFX یا AdBlock، و هم تغییراتی که برای دستگاه‌های خاص طراحی شده‌اند، برای مثال، فعال‌سازی ضبط ویدیوی 50/60 FPS برای Nexus 5X/6P، یا کدک‌های APT-X HD برای OnePlus 3. هرکس چیزی را پیدا می‌کند. جالب است، و کسانی که مایلند می توانند چیزی از خود ایجاد کنند، نویسنده تمام ابزارهای لازم را ارائه می دهد!

نحوه نصب Magisk

برای نصب برنامه، به سیستم عامل نسخه 5.0 Lollipop یا بالاتر، یک بوت لودر قفل نشده و یک بازیابی سفارشی، به عنوان مثال، TWRP نیاز دارید. در صورتی که نصب ناموفق باشد، به شدت توصیه می شود که یک نسخه پشتیبان کامل از nandroid تهیه کنید.

برای عملکرد کامل Magisk Manager باید از MagiskSU استفاده کنید که برای نصب صحیح آن ابتدا توصیه می شود مدیران روت جایگزین را حذف کنید. به عنوان مثال، SuperSU Chainfire از منوی تنظیمات برنامه حذف می شود.

Magisk Manager را حذف نصب کنید

تمام فایل های آخرین نسخه لازم برای حذف را می توانید در تاپیک پیدا کنید
برای حذف یک برنامه از حالت خودکار، باید Magisk-unistaller.zip نسخه مربوطه را از طریق بازیابی سفارشی فلش کنید.

اگر آرشیو کار نمی کند
، باید پارتیشن بوت (boot.img) را از یک نسخه پشتیبان بازیابی کنید و همچنین به صورت دستی /data/magisk.img، /cache/magisk، /data/busybox را حذف کنید.

نتیجه نهایی چیست؟

در نتیجه، مشخص شد که Magisk Manager یک رویکرد جدید و مدرن برای حقوق ریشه است که به جای اعطای دسترسی ساده، بر راحتی تمرکز دارد. من از ماژولار بودن آن بسیار راضی هستم، که با آن می توانید عملکردهای لازم را بدون زواید غیر ضروری به دست آورید. این پروژه به طور فعال در حال توسعه است، من فکر می کنم که با گذشت زمان توسعه دهندگان شروع به استفاده از آن به طور پیش فرض در سیستم عامل سفارشی خود خواهند کرد.

سلام هابر!

چندین سال پیش، زمانی که برای اولین بار با اندروید آشنا شدم، از یکی از همکارانم شنیدم که اندروید امکان نصب فریمور اصلاح شده یا خانگی را فراهم می کند. صادقانه بگویم، آن زمان از آن دور بودم. و حتی نیم سال پیش من به سختی به چنین چیزهایی علاقه مند بودم. در اعماق قلبم مطمئن بودم: کاری که سازنده انجام می دهد قبلاً برای استفاده عادی در نظر گرفته شده است.

تصور کنید وقتی گوشی را از چین خریدم، ناامیدی من را تصور کنید، جایی که تنظیمات کارخانه استفاده از گوگل، اسکایپ، فیس بوک و سایر برنامه ها را ممنوع کرده بود. اصولاً می شد روی بعضی چیزها چشم پوشی کرد، اما وقتی تلفن من نیاز به استفاده از حساب Google نداشت، قول هایی دادم که بدون توجه به اتفاقی که برای من می افتد، قطعاً آن را متوجه می شوم.

نیم سال گذشت و سیستم عامل سفارشی من با موفقیت در سراسر جهان استفاده می شود.

در این سری از مقالات نحوه انجام برنامه نویسی معکوس برای اندروید، پیاده سازی وصله ها، ترفندها و مودها بحث خواهد شد.

مقدمه

بنابراین! اجازه دهید ابتدا مفاهیمی را که در آن استفاده می شود تعریف کنیم داده شدهمقاله. با این حال، درک معمول شما ممکن است بسیار متفاوت باشد.

پچ- تغییر یا جایگزینی کد برنامه موجود به منظور اصلاح الگوریتم برنامه.
ماد- به عنوان یک قاعده، اضافه کردن عملکرد اضافی به کد برنامه موجود بدون تغییر الگوریتم.
نیشگون گرفتن و کشیدن- بهبود عملکرد برنامه به منظور تسهیل دسترسی به پارامترهای سیستم.

همچنین می خواهم توجه داشته باشم که تمام مثال ها برای یک گوشی HTC در نظر گرفته می شود، اما این بدان معنا نیست که این اطلاعات در گوشی های دیگر قابل استفاده نیست.

آماده سازی محیط

من می توانم بدون دستورالعمل های دقیق در مورد نحوه استفاده از این یا آن نرم افزار انجام دهم. اگر به این مقاله علاقه مند هستید و تا اینجا خوانده اید، امیدوارم که قبلاً کاربر با تجربه ای باشید و تجربه استفاده یا حداقل آزمایش در این زمینه را داشته باشید. دستورالعمل‌ها، مقاله‌ها و نتایج آزمایش‌های زیادی مانند Habré در حوزه عمومی وجود دارد. من همچنین بدون شرح برخی از اصطلاحات انجام خواهم داد، در غیر این صورت مقاله بسیار طولانی و خسته کننده خواهد شد. ما فقط به نکته می نویسیم. مطمئنم خیلی وقته که چهارشنبه بودی. اگر نه، پس پیشنهاد می کنم آن را دانلود و نصب کنید.

1 . Android SDK. این یک محیط توسعه اپلیکیشن برای اندروید است. برای ایجاد تغییرات، ما قطعاً باید کد برنامه خود را بررسی کنیم. محیط توسعه بهترین چیزی است که می توانیم استفاده کنیم.
2 . آشپزخانه اندروید. این ابزار به شما امکان می دهد تا با تصاویر پارتیشن های سیستم سفت افزار رسمی یا غیر رسمی کار کنید.
3 . JD-GUI. دیکامپایلر کد جاوا. می خواهم فوراً خاطرنشان کنم که این بهترین دیکامپایلر از نظر سهولت استفاده است.
4 . دی کامپایلر جاوا. یکی دیگر از کامپایل‌کننده‌ها، یا جداسازی‌کننده‌های کد برنامه زبان جاوا، که برخی دوست دارند آن را بخوانند. استفاده از آن راحت نیست، اما کدهایی را که JD-GUI گاهی اوقات درک نمی کند، تجزیه می کند.
5 . کوچک. یک جداکننده دیگر، اما این بار کد دالویک. smali برای جداسازی و backsmali برای اسمبل کردن کد مورد نیاز است.
6 . dex2jar. ابزاری برای تبدیل فایل های اجرایی کد Dalvik.

تبدیل سیستم عامل

البته سیستم عاملی که از سازنده بر روی گوشی خود دارید برای کاهش مصرف برق بهینه شده است. برای اینکه سیستم عامل تغییر کند، باید به فرمتی تبدیل شود که امکان تغییر کد را فراهم کند. برای این کار از Android Kitchen استفاده می شود. البته، شما می توانید این کار را با دستان خود انجام دهید، همانطور که قبلاً انجام دادم تا زمانی که این "آشپزخانه" را پیدا کردم. می توانید در اینترنت نحوه حذف ناحیه سیستم از گوشی، نصب محیط و ساخت سیستم عامل DEODEX را بخوانید. اگر قبلاً چیزی متوجه نشده اید، فکر می کنم ارزش آن را دارد که این مقاله را تا زمانی که تجربه کافی به دست آورید، درنگ کنید.

پس از اینکه سیستم عامل از یک نسخه بهینه شده (ODEX - کد اجرایی dalvik بهینه شده، در صورتی که حافظه من به درستی استفاده می کند) به DEODEX (یعنی بهینه سازی نشده) تغییر کرد، همه فایل های اجرایی برای اصلاح آماده هستند.

تغییرات مستقیم

ایجاد پچ
همانطور که قبلاً گفتم، تلفن من در ابتدا از استفاده از گوگل منع شد. خوب، مهم نیست، شما نمی توانید به PlayStore بروید، نمی توانید یک حساب ایجاد کنید، دفترچه تلفن واقعاً همگام نمی شود. چرا به چنین اندرویدی نیاز دارید؟ پس از مدت ها حفاری در لاگ خود دستگاه، ورودی هایی پیدا کردم که می گفتند استفاده از گوگل ممنوع است. ناراحت کننده ترین چیز در مورد Android این است که شما لاگ را می بینید، اما نمی دانید کدام برنامه سیستمی آن را تولید می کند. برای اینکه بفهمم پاهایم از کجا می‌آیند، مجبور شدم همه برنامه‌های سیستم را به کد جاوا جدا کنم. زمان زیادی طول کشید، اما من هنوز از کاری که انجام دادم هنگام تجزیه و تحلیل و یافتن کد مناسب استفاده می کنم. مراحل دستیابی به چنین ابزارهایی به شرح زیر است:
1 . از تمام سیستم عامل ها DEODEX بسازید
2 . سیستم عامل جدید DEODEX شما باید مونتاژ شود و روی گوشی شما فلش شود. نحوه انجام این کار موضوع مقاله دیگری است.
3 . از هر فایلی که در /system/framework قرار دارد، فایل classes.dex را استخراج کرده و با استفاده از dex2jar به JAR تبدیل کنید.
4 . هر JAR حاصل را در JD-GUI باز کنید و دوباره در کد منبع ذخیره کنید
5 . کد منبع را از بایگانی باز کنید.

در پایان، به تعداد پوشه‌های موجود در فایل‌های JAR در /system/framework رسیدم و هر پوشه دارای ساختار کد منبع جاوا بود.
از طریق دستکاری های ساده، به سرعت مکانی را پیدا کردم که ورودی ها را در logcat ایجاد می کرد.

ما کل منطق ممنوعیت را در نظر نخواهیم گرفت، زیرا هر مورد داستان جداگانه ای است. من مجبور شدم چند ساعت وقت بگذارم تا جایی که بررسی ها انجام شده است، یک نمودار بلوکی از الگوریتم را در ذهنم ساختم و فهمیدم که کجا باید بروم تا کمی الگوریتم را "تخریب کنم".

معلوم شد که ساده است. یک برنامه فرعی وجود دارد که بر اساس ثابت های از پیش تعیین شده، هنگام تماس، پاسخ می دهد که آیا تلفن متعلق به چین است یا خیر.

کد داخل فایل بود HTCExtension.jarو کلاسی که حاوی این زیربرنامه بود در آن بود

باز کردن و تجزیه و تحلیل فایل اصلی
1 . ابتدا باید فایل اصلی DEODEX JAR را برداریم که مسئول بخشی از کد مورد نیاز ما است. در مورد ما HTCExtension.jar.
2 . با هر بایگانی باز کنید و classes.dex را از آنجا بیرون بکشید
3 . از مبدل dex2jar برای تبدیل آن به فایل JAR استفاده کنید. دستور: dex2jar.bat classes.dex
4 . فایل classes_dex2jar.jar به دست آمده را در JD-GUI باز کنید.
5 . بله، اغلب JD-GUI کد را نه آنطور که در نسخه اصلی به نظر می رسد، از بین می برد، قابل درک است، اما کاملاً قابل خواندن است. در کد منبع می بینیم که زیرروال پارامترهای پروژه و پرچم زبان سیستم عامل را بررسی می کند. در مورد تاسف بار ما، TRUE برگردانده می شود.
بولین استاتیک عمومی isChina() (اگر ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag =(HtcBuildFlag.Htc_PROJECT_flag ==Htc_PROJECT_flag) 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) بازگشت درست؛ بازگشت نادرست؛ )
6 . برای ساختن پچ باید خود کد دالویک را جدا کنیم. برای این کار از باکسمالی استفاده می کنیم. راحت ترین راه ایجاد یک پوشه جداگانه و قرار دادن سه فایل در آنجا با هم است: HTCExtension.jar, smali.jarو باکسمالی.جار. دستور java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar را بدهید

این API برای نسخه اندروید شما است. برای JB 16 است
- پوشه ای که تمام فریمورک های فریمور در آن قرار دارند.

در مورد من این دستور بود
java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCEextension -x HTCExtension.jar
7 . در پوشه تازه ایجاد شده ما، پوشه HTCExtension و فایل های ما با کد Dalvik در آن ظاهر شد.
8 . یافتن فایل در طول مسیر \com\htc\util\contacts\BuildUtils$Customization.javaو به کد نگاه کنید:
.method public static isChina()Z .registers 3.prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/0x1 v1 , v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short/HtcBuildFlag/ ;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297:cond_13:goto_13 return v0 .line 283:cond_14 sget-short v1, Lcom/Hctflag>Build/htflag Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S1,3,if_2 291:cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297:00,00,0,4, . روش
9 . ترسناک است، اینطور نیست؟ هیچ چیز مشخص نیست. اما این یک مشکل قابل رفع است. با ایجاد چند پچ خود و در نتیجه کسب تجربه، می توانید به راحتی کد را بدون ابزار شخص ثالث تغییر دهید. در مورد ما، در این کد
.prologue const/4 v0, 0x1 به متغیر v0 مقدار 1 یعنی درست است. سپس انواع چک وجود دارد، و اگر گوشی چینی نباشد، مقدار متغیر تغییر می کند:
خط 297 const/4 v0، 0x0 goto:goto_13
10 . ساده ترین راه برای نجات پدر دموکراسی روسیه، تغییر کد به شکل زیر است:
.prologue const/4 v0, 0x0، یعنی مقدار متغیر را از 1 به 0 تغییر دهید. یعنی مهم نیست که چه باشد، مقدار FALSE همیشه برگردانده می شود و در JD-GUI کد شبیه به حالت عمومی استاتیک است. بولین isChina() (اگر (( HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag =(laFROJECT_flag ==(laFROJECT_flag ==23Ht)_cT); && ( 2 == HtcBuildFlag.Htc _LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) بازگشت نادرست؛ بازگشت نادرست؛ )
11 . بله، روش کار خواهد کرد. اما ما به دنبال راه های آسان نیستیم - این بار. دوم اینکه دقیقاً زیبا نیست. من کد چیزی شبیه به آن را می خواهم
بولین استاتیک عمومی isChina() (بازگشت نادرست؛)
12 . چگونه می توانیم کد Dalvik را برای این کد منبع دریافت کنیم؟ برای مبتدیان یک ترفند کوچک انجام می دهیم.

ایجاد کد دالویک
1 . Android SDK را باز کنید.
2 . ما یک پروژه جدید ایجاد می کنیم و کد زیر را در تنها کلاس آزمایشی خود می نویسیم
بسته ru.habrahabr.test; آزمون کلاس عمومی (بولین استاتیک عمومی isChina() (بازگشت نادرست؛ ))
3 . ما پروژه خود را کامپایل می کنیم و سپس برنامه اسمبل شده را از فضای کاری می گیریم.
4 . ما برنامه اسمبل شده را در پوشه ای قرار می دهیم که فایل JAR را gutted است.
5 . دستور java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk را بدهید
6 . ما برنامه جدید ساخته شده را در کد Dalvik جدا کردیم.
7 . فایل test.smali ما را باز کنید و کد آن را ببینید
روش عمومی static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end متد
8 . تمام شد، کد وصله آماده است.
غلتاندن یک پچ
1 . کد دالویک پر از نشانگرهایی است که خطی از کد را در فایل منبع اصلی نشان می دهد. این در هنگام نمایش خطاها، در صورت وجود، در برنامه شما ضروری است. کد همچنین بدون تعیین خطوط به خوبی کار می کند.
2 . خطوط را با شماره گذاری خط حذف می کنیم، روش (زیر روال) را کپی و جایگزین می کنیم \com\htc\util\contacts\BuildUtils$Customization.javaفایل.
.method public static isChina()Z .registers 1.prologue const/4 v0, 0x0 return v0 .end متد
3 . فایل را ذخیره کنید. بله، یادم رفت بگویم، شما به یک ویرایشگر معمولی، به عنوان مثال Notepad++ یا EditPlus نیاز دارید. چه کسی کدام را دوست دارد؟
کامپایل و ساخت یک فایل JAR پچ شده
1 . با استفاده از backsmali، فایل JAR خود را gutted کردیم، و اکنون باید آن را دوباره کنار هم قرار دهیم.
2 . دستور java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex را بدهید
3 . فایل classes.dex در پوشه ما ظاهر می شود
4 . باز شدن دوباره HTCExtension.jarبا یک بایگانی فایل کنید و آرشیو موجود در آن را جایگزین کنید classes.dexبه یک تازه ایجاد شده ما
5 . همین، مال ماست HTCExtension.jarحاوی کد برنامه اصلاح شده است.
جایگزین کردن فایل اصلی با فایل وصله شده
معمولاً اسکریپت های خاصی برای کاربران عادی ایجاد می شود که از طریق بازیابی جایگزین می شوند. اما ما علاقه ای به این موضوع نداریم. اولاً طولانی و خسته کننده است و ثانیاً ما کاربران باتجربه ای هستیم و می توانیم ظرافت هایی را تحمل کنیم.

1 . اگر از قبل سفت‌افزار DEODEX دارید و دسترسی روت دارید، می‌توانید فایل کاری فعلی را با دستورات زیر جایگزین کنید:

فشار Adb HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard /HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@ [ایمیل محافظت شده]@classes.dex راه اندازی مجدد

اولین دستور فایل پچ شده را روی فلش درایو آپلود می کند
فرمان دوم پوسته را باز می کند
دستور 3 دسترسی root را می دهد
فرمان چهارم سیستم را در حالت خواندن/نوشتن سوار می کند
دستور 5 یک نسخه پشتیبان از فایل ایجاد می کند
دستور ششم فایل موجود را با فایل جدید وصله شده بازنویسی می کند.
فرمان هفتم مجوزها را پیکربندی می کند
دستور هشتم کش را حذف می کند
فرمان نهم دستگاه را راه اندازی مجدد می کند.

2 . ممنون که تا اینجا خوندید، کم مونده.
3 . پس از راه اندازی مجدد، کد وصله شده جدید شما اعمال می شود.
4 . اگر کد کار نمی کند یا خطایی رخ می دهد، با استفاده از ترکیب های ساده می توانید نسخه پشتیبان را برگردانید.
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@ [ایمیل محافظت شده]@classes.dex راه اندازی مجدد

پایان

بله، برخی فکر می کردند این مقاله خیلی خاص است، برخی درک آن را دشوار و برخی آن را بی فایده می دانستند. من عمداً از جزئیات عمیق و تصاویری که چگونه همه چیز زنده و در عمل به نظر می رسد اجتناب کردم. اولاً، این کار بدون تشکر خواهد بود و فقط سؤالات بیشتری را ایجاد خواهد کرد. ثانیاً، من نمی خواهم ارتشی از کاربران را در انجمن ها ببینم که از کشته شدن تلفن خود شکایت دارند.

برای مقاله بعدی به شما خواهم گفت که چگونه Tweeks را بسازید. نمونه ای از استفاده از ضبط خودکار تماس های تلفنی با استفاده از ابزارهای تلفن بومی وجود خواهد داشت. با تشکر از توجه شما.

P.S. اگر چیزی واضح یا گیج کننده نیست، سؤال بپرسید - من همیشه خوشحال خواهم شد که پاسخ دهم و توضیح دهم.

فرمول بندی مسئله

ذخیره سازی اطلاعات در رایانه با خطر افشای تصادفی یا عمدی همراه است، بنابراین از روش ها و ابزارهای مختلفی برای محافظت از آن استفاده می شود. اغلب به عنوان یک وسیله اولیه که از دسترسی آزاد به اطلاعات به شکل الکترونیکی جلوگیری می کند، از رمزگذاری استفاده کنید، که در سخت افزار یا نرم افزار پیاده سازی می شود. اشیاء حفاظت رمزنگاری فایل های فردی، گروهی از فایل ها، دایرکتوری ها و در نهایت، درایوهای منطقی هستند. نتیجه رمزگذاری آرشیو فایل هایی است که در آن قرار دارند رسانه الکترونیکی. جزئیات اجرای الگوریتم های رمزنگاری مختلف، می توان به این نکته اشاره کرد که در این مورد GKU همچنین نیاز به حل مشکلات مربوط به تخریب تضمین شده اولیه دارد. اطلاعات رمزگذاری نشدهبرای جلوگیری از بهبود آن

واقعیت این است که یکی از ویژگی های تمام فایل سیستم های استفاده شده ( FAT، NTFS و غیره).تا زمانی که فایل حذف نشده است، امکان بازنویسی اطلاعات در خوشه های متعلق به یک فایل وجود ندارد. یعنی در حین رمزگذاری فایل، کپی رمزگذاری شده آن نه به جای فایل اولیه، بلکه در خوشه های آزاد رسانه الکترونیکی نوشته می شود و تنها پس از تکمیل فرآیند رمزگذاری، فایل رمزگذاری نشده حذف می شود، مگر اینکه توسط سازمان ارائه شده باشد. الگوریتم

بنابراین، امکان بازیابی اطلاعات رمزگذاری نشده حذف شده وجود دارد که با موفقیت توسط محصولات نرم افزاری انجام می شود. بازیابی فایل، Back2Life، R-Studio، GetDataBack برای NTFS و غیره.

اگر توصیه های مرتبط با آنها را در نظر نگیرید تخریب فیزیکی رسانه های الکترونیکی،آنگاه این امر تنها با بازنویسی مکرر آن دسته از دیسک های مغناطیسی که اطلاعات محرمانه قبلاً در آنها ذخیره شده بود غیرممکن می شود. مثلا، استاندارد ملی وزارت دفاع آمریکا DOD 5220.22-M (E) شامل ثبت اعداد تصادفی در پاس اول، اعداد اضافی به اعداد ثبت شده در پاس قبلی در پاس دوم و اعداد تصادفی در سوم می باشد. قابل اطمینان ترین، به جای داده های از بین رفته، تمام ترکیبات شناخته شده ارقام به نوبه خود نوشته می شوند (در مجموع 35 پاس انجام می شود). - روش های تخریب اطلاعات از استانداردهای آمریکایی پشتیبانی می کند DOD 5220.22-M، Army AR380-19، NCSC-TG-025، Air Force 5020، NAVSO P-5239-26، HMG IS5،آلمانی VSITR، کانادایی OPS-II و روسی GOST P50739-95، و غیره. رمزگذاری انجام شده در داخل درایو منطقی،همیشه خطر نابودی ناقص اطلاعات اصلی را به همراه دارد، بنابراین رویکرد متفاوتی برای این مشکل مورد نیاز است.

منو ویرایش کنید(ویرایش) برنامه Regedt32 حاوی دستوراتی است که به شما امکان می دهد بخش ها و عناصر مهم رجیستری را اضافه، اصلاح و حذف کنید.

برای افزودن یک بخش جدید به هر hive رجیستری، دستور را انتخاب کنید افزودن بخشمنوی (افزودن کلید). ویرایش کنید.هنگامی که این دستور را اجرا می کنید، از شما خواسته می شود که نام بخش و کلاس را وارد کنید (کلاس در این مورد به نوع داده اشاره دارد). کادر محاوره ای برای وارد کردن این اطلاعات در شکل نشان داده شده است. 14.5. هیچ لیستی وجود ندارد که بتوانید از آن یک نوع داده را در این کادر محاوره ای انتخاب کنید، اما به شما این فرصت داده می شود که یک بخش ایجاد کنید و نوع داده را هنگام وارد کردن یک پارامتر جدید به عنوان بخشی از بخش ایجاد شده تعیین کنید.

تیم افزودن بخشبرای افزودن عناصر مهم به کلیدهای رجیستری استفاده می شود. کادر محاوره ای که هنگام اجرای این دستور باز می شود (شکل 14.6) حاوی لیستی است که به شما امکان می دهد نوع داده را برای عنصر مهم انتخاب کنید: مقادیر رشته (REG_SZ، REG_MULTI_SZ و REG_EXPAND_SZ) یا مقادیر باینری (REG_DWORD یا REG_BINARY). ).

برای حذف یک بخش یا عنصر قابل توجه از رجیستری، شی (بخش یا عنصر قابل توجه) مورد نظر برای حذف را انتخاب کنید و دستور را انتخاب کنید. حذفمنوی (حذف) ویرایش کنید.از شما خواسته می شود که قصد خود را برای حذف بخش انتخاب شده یا مورد مهم تأیید کنید.

توجه داشته باشید

همانطور که بارها تکرار شده است، ویرایشگرهای رجیستری از عملیات Undo پشتیبانی نمی کنند، بنابراین پس از تایید عملیات حذف، هیچ راه دیگری برای بازیابی اطلاعات حذف شده به جز بازیابی آنها از یک نسخه پشتیبان ایجاد شده قبلی نخواهید داشت. علاوه بر این، ویرایشگر رجیستری از شما می خواهد که عملیات حذف را تنها در صورتی تایید کنید که گزینه Confirm On Delete در منوی Options انتخاب شده باشد. بنابراین، هنگام تصمیم به حذف کلیدها از رجیستری، از پشتیبان گیری غافل نشوید (و با یک راه حل از قبل به دنبال کارهای غیر ضروری برای خود نباشید).

اگر به طور تصادفی چیزی را از کلید رجیستری HKEY_LOCAL_MACHINE\System\CurrentControlSet حذف کردید، به یاد داشته باشید که می توانید محتوای این کلید را با استفاده از آخرین پیکربندی بارگیری شده با موفقیت بازیابی کنید (به فصل های 2 و 8 مراجعه کنید). برای انجام این عملیات، کامپیوتر خود را مجددا راه اندازی کنید و بلافاصله پس از ظاهر شدن منوی بوت لودر، دکمه را فشار دهید و سپس از منوی دیباگ گزینه Last Known Good را انتخاب کنید.

علاوه بر دستورات حذف عناصر رجیستری و افزودن بخش ها و پارامترهای جدید به ترکیب آن، در منو ویرایش کنیدویرایشگر Regedt32 دارای مجموعه ای از دستورات برای ویرایش ورودی های رجیستری موجود است (و باید توجه داشت که این مجموعه از گزینه ها بسیار گسترده تر از موارد ارائه شده توسط برنامه جدیدتر Regedit است). منو ویرایش کنیدویرایشگر رجیستری Regedt32 حاوی دستوراتی است داده های باینری(دودویی) خط(رشته)، دو کلمه(DWORD) و چند خطی(چند رشته ای). با انتخاب هر فرمان، ویرایشگر مقدار از نوع مربوطه راه اندازی می شود - به عنوان مثال، انتخاب کنید داده های باینری را فرمان می دهدویرایشگر باینری را راه اندازی می کند - ویرایشگر باینری، دستور را انتخاب کنید دو کلمه- ویرایشگر مقدار DWORD و انتخاب دستور خط و چند خطویرایشگرهای مربوطه را برای مقادیر رشته و چند خط فراخوانی می کند. لطفاً توجه داشته باشید که چنین قابلیت های گسترده ای به سادگی در ویرایشگر Regedit در دسترس نیست.

پس از بوت کردن تبلت یا گوشی خود در TWRP Recovery، ابتدا منوی اصلی آن را مشاهده خواهید کرد:

اسکرین شات ها در یکی از آخرین (در زمان نگارش) نسخه های TWRP بازیابی 2.3.2 گرفته شده است. نسخه های جدیدتر TWRP، و همچنین نسخه های دستگاه های مختلف، ممکن است منوی کمی متفاوت داشته باشند، اما عملکردهای اصلی آن بدون تغییر باقی می مانند.
علاوه بر این، ظاهر بازیابی TWRP در دستگاه شما ممکن است متفاوت باشد - بسته به موضوع ممکن است تغییر کند.
به لطف رابط لمسی بازیابی، پیمایش در آیتم های آن و انتخاب گزینه های لازم بسیار آسان است - فقط با انگشت خود روی عنصر خاصی کلیک کنید.
در همه زیر منوها، می توانید با فشار دادن دکمه بازگشت که در پایین (تلفن هوشمند) یا سمت راست بالای صفحه (تبلت) قرار دارد، به منوی قبلی بازگردید.
در بالای صفحه، درصد باتری و زمان فعلی را مشاهده می کنید.

هدف از آیتم های منوی اصلی:

1. نصب – نصب سیستم عامل و افزونه ها

این یکی از موارد پرکاربرد در TWRP Recovery است.
با کمک آن می توانید سیستم عامل رسمی و غیر رسمی (سفارشی) را نصب کنید، هسته ها، تم ها و نرم افزارهای دیگر را نصب کنید، که باید در یک فایل فشرده واقع در حافظه داخلی دستگاه شما قرار گیرد.
پس از انتخاب یک فایل، به منوی بعدی هدایت می شوید، جایی که می توانید فایل بعدی را به صف فریمور اضافه کنید (دکمه زیپ های بیشتر اضافه کنید) یا با استفاده از نوار لغزنده ای که در پایین صفحه قرار دارد شروع به فلش کردن فایل انتخابی کنید.

با استفاده از گزینه تایید امضای زیپحالت تأیید امضای فایل فشرده روشن است.
با استفاده از گزینه MD5 را اجباری بر روی همه Zip ها بررسی کنیدشما می توانید تأیید MD5 checksum را برای همه فایل های فشرده نصب شده بر روی دستگاه فعال کنید.

2. پاک کردن - تمیز کردن و بازنشانی به تنظیمات کارخانه

با این گزینه می توانید پارتیشن هایی مانند کش ( حافظه پنهان), Dalvilk Cache, Systemو همچنین بازنشانی به تنظیمات کارخانه انجام دهید - تنظیم مجدد کارخانه، پس از آن گوشی یا تبلت شما به وضعیتی که در فروشگاه فروخته شده است برمی گردد.
همچنین می توانید کارت حافظه خارجی را پاک کنید - ذخیره سازی خارجیو حافظه داخلی - حافظه داخلی، پوشه سیستم android_secure را پاک کنید و آمار مصرف باتری را پاک کنید - پاک کردن آمار باتری.
مانند سایر موارد منو، باید شروع یک عملیات خاص را با استفاده از نوار لغزنده ای که در پایین صفحه ظاهر می شود تأیید کنید. با استفاده از دکمه Back می توانید عملیات را لغو کنید.

3. پشتیبان گیری - ایجاد یک نسخه پشتیبان از سیستم

یکی دیگر از مهمترین نکات TWRP. با استفاده از آن، می توانید یک کپی کامل از کل سیستم تبلت به همراه داده ها و برنامه های موجود در حافظه داخلی آن - به اصطلاح Nandroid Backup - تهیه کنید.
در اینجا می توانید:

  • پارتیشن هایی را که می خواهید ذخیره کنید انتخاب کنید: System، Data، Boot، Recovery، Cache، Uboot، NVram.
  • میزان فضای خالی رسانه را بیابید:فضای خالی.
  • فشرده سازی پشتیبان را فعال کنید:فعال سازی فشرده سازی.
  • غیرفعال کردن ایجاد فایل های چک سام پشتیبان:از تولید MD5 در حین تهیه نسخه پشتیبان صرف نظر کنید.
  • یک کارت حافظه برای ذخیره نسخه پشتیبان انتخاب کنید:از SD خارجی استفاده کنید.
  • حافظه داخلی دستگاه را برای ذخیره نسخه پشتیبان انتخاب کنید:از حافظه داخلی استفاده کنید.
  • تنظیم نام فایل پشتیبان - دکمهنام پشتیبان را تنظیم کنید.
  • محاسبه مجدد اندازه پارتیشن - دکمهRefresh Sizes.

طبق معمول، انتخاب خود را با استفاده از نوار لغزنده تأیید کنید و TWRP فرآیند پشتیبان گیری را آغاز می کند:

پس از این، می توانید رایانه لوحی یا تلفن خود را - دکمه - راه اندازی مجدد کنید دوباره بوت شدن سیستمو همچنین با استفاده از دکمه های مربوطه به منوی اصلی TWRP برگردید یا به آن بازگردید.

4. بازیابی - بازیابی سیستم از یک نسخه پشتیبان قبلی ساخته شده است

در اینجا می توانید:

  • یک کارت حافظه را برای جستجوی نسخه های پشتیبان انتخاب کنید: از SD خارجی استفاده کنید
  • حافظه داخلی دستگاه را برای جستجوی نسخه های پشتیبان انتخاب کنید: از حافظه داخلی استفاده کنید

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

افزایش " مرتب سازی صعودی» نام، تاریخ و اندازه
نزولی " مرتب سازی نزولی» نام، تاریخ و اندازه

پس از انتخاب یک نسخه پشتیبان، گزینه زیر را خواهید داشت:

  • پارتیشن هایی را که می خواهید بازیابی کنید (سیستم، داده، بوت، بازیابی، کش، یوبوت، NVram) انتخاب کنید.
  • تغییر نام نسخه پشتیبان " تغییر نام نسخه پشتیبان»
  • حذف پشتیبان " حذف پشتیبان»
  • تأیید MD5 checksum فایل های پشتیبان را فعال کنید

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

5. Mount - نصب پارتیشن های جداگانه، فرمت کردن آنها و نصب دستگاه به عنوان درایو USB هنگام اتصال به رایانه

نصب، پارتیشن ها یا پوشه ها را برای استفاده در دسترس قرار می دهد.
موارد موجود در این منو به معنی موارد زیر است:

  • Mount / Unmount System – پارتیشن سیستم را سوار یا جدا کنید.
  • Mount / Unmount Data – یک پارتیشن را با داده ها سوار یا جدا کنید.
  • Mount / Unmount Cache - یک پارتیشن را با یک کش نصب یا جدا کنید.
  • Mount / Unmoun Sdcard - کارت حافظه را سوار یا جدا کنید
  • Mount / Unmoun Internal – نصب یا جدا کردن حافظه داخلی.

دکمه " نصب حافظه USB» – اتصال تبلت یا تلفن به رایانه در حالت ذخیره سازی قابل جابجایی.
در این مورد، می توانید نصب کنید:

  • کارت حافظه: از SD خارجی استفاده کنید
  • حافظه داخلی:از حافظه داخلی استفاده کنید

6. تنظیمات - تنظیمات TWRP

در اینجا می توانید گزینه های پیش فرضی را تنظیم کنید که TWRP Recovery به طور پیش فرض هنگام ایجاد و بازیابی نسخه های پشتیبان و همچنین هنگام نصب فایل های فشرده استفاده می کند:

  • تایید امضای فایل فشرده: امضای فایل فشرده را بررسی کنید.
  • MD5 را برای همه زیپ ها بررسی کنید: جمع های کنترلی برای همه فایل های فشرده.
  • به جای قالب بندی از rm –rf استفاده کنید: هنگام پاک کردن پارتیشن ها به جای قالب بندی فایل ها را حذف کنید.
  • از تولید MD5 در حین تهیه نسخه پشتیبان صرف نظر کنید: ایجاد چک‌سام‌ها را در حین پشتیبان‌گیری غیرفعال کنید.
  • خطاهای اندازه تصویر را در حین تهیه نسخه پشتیبان نادیده بگیرید: هنگام پشتیبان گیری از خطاهای اندازه فایل چشم پوشی کنید.

دکمه " منطقه زمانی» برای انتخاب منطقه زمانی شما خدمت می کند.
دکمه " بازیابی پیش فرض ها» برای بازنشانی تنظیمات به تنظیمات پیش فرض در نظر گرفته شده است.

7. پیشرفته - ویژگی های TWRP اضافی

این منو از موارد زیر تشکیل شده است:

  • Log را در SD کپی کنید- کپی کردن گزارش عملیات در یک فایل روی کارت حافظه.
  • مجوزهای ثابت- حق دسترسی صحیح به فایل ها و پارتیشن ها این مورد برای بازگرداندن حقوق دسترسی به فایل‌ها و پوشه‌های سیستم به حالت کارخانه استفاده می‌شود که با عملکرد نادرست برخی از برنامه‌های روت قابل تغییر است که می‌تواند منجر به فریز شدن و اختلال در عملکرد تبلت یا تلفن شود.
  • تقسیم بندی کارت حافظه– ایجاد پارتیشن روی کارت حافظه این مورد برای ایجاد پارتیشن های /sd-ext و /swap روی کارت حافظه استفاده می شود. پارتیشن /sd-ext می تواند توسط برخی از سیستم عامل ها زمانی که حافظه داخلی کافی در دستگاه وجود ندارد، به عنوان مثال برای گسترش پارتیشن /data استفاده شود. پارتیشن /swap معمولا برای افزایش سرعت دستگاه اندرویدی استفاده می شود.
  • مدیر فایل– مدیر فایل در اینجا می توانید یک فایل را انتخاب کنید و عملیات زیر را روی آن انجام دهید:

کپی 🀄- فایل را کپی کنید
حرکت– انتقال فایل
Chmod 755- حقوق دسترسی را روی 755 تنظیم کنید (مانند تمام فایل های سیستم).
Chmod- هر گونه حقوق دسترسی دیگر را تنظیم کنید.
حذف- حذف یک فایل
تغییر نام فایل– نام فایل را تغییر دهید

  • فرماندهی ترمینال– یک دستور ترمینال را در دایرکتوری انتخاب شده به سبک دستورات adb اجرا کنید.

همچنین در بخش Advanced ممکن است دکمه‌های دیگری وجود داشته باشد که یک توسعه‌دهنده می‌تواند هنگام بازیابی از کدهای منبع برای یک دستگاه خاص اضافه کند.

در اینجا می توانید موارد زیر را انتخاب کنید:

سیستم- تبلت یا گوشی خود را به طور کامل راه اندازی مجدد کنید.
بهبود- بازیابی راه اندازی مجدد
خاموش– دستگاه را خاموش کنید.



© 2024 globusks.ru - تعمیر و نگهداری خودرو برای مبتدیان