كيفية تركيب منفذ TWRP للأندرويد

، يمكنك محاولة العمل مع شجرة أصغر ، مثل هذه الحد الأدنى من TWRP . ومع ذلك ، قد تكون هناك مواقف تحتاج فيها إلى عدد من عمليات إعادة الشراء أكثر مما يسمح به هذا البيان.



ملاحظة رئيسية قبل التجميع: إذا قمت بإضافة أو تغيير أي أعلام ، فستحتاج إلى التنظيف (أو عمل clobber) قبل إعادة التجميع ، وإلا فلن يتم تضمين تغييرات العلم!

بعد حصولك على شفرة المصدر TWRP ، نحتاج إلى تغيير بعض علامات الإنشاء لجهازك المحدد. ابحث عن BoardConfig.mk لجهازك - ستجده عادةً بتنسيق الأجهزة / الشركة المصنعة / الاسم الرمزي (على سبيل المثال ، الأجهزة / lge / hammerhead / BoardConfig.mk)



يحتاج تكوين اللوحة إلى تضمين إعدادات البنية والنظام الأساسي - وعادةً ما يتم تضمينها بالفعل إذا أنك تستخدم تهيئة جهاز شخص آخر. ولكن إذا قمت بإنشاء واحدة خاصة بك ، فستحتاج إلى إضافتها. هذا لأنه بدونهم ، قد يتسبب تمهيد الاسترداد في حدوث خطأ وسيؤدي فقط إلى وميض شعار TeamWin على شاشتك بشكل متكرر.



يجب وضع العلامات في الجزء السفلي من BoardConfig.mk ، تحت عنوان #twrp



إلى عن على الكل للأجهزة ، فأنت بحاجة إلى توجيه TWRP أي سمة يجب استخدامها. يتم استخدام علامة TW_THEME بدلاً من علامة DEVICE_RESOLUTION الأقدم ، مما يعني أن TWRP تستخدم الآن التحجيم لتمديد أي سمة.

خياراتك هي: portrait_hdpi ، و Portrait_mdpi ، و Landscape_hdpi ، و Landscape_mdpi ، و watch_mdpi. بالنسبة للوضع الرأسي ، سترغب على الأرجح في مظهر hdpi بدقة 720 × 1280 وما فوق ، ولكن بالنسبة للأجهزة ذات المناظر الطبيعية ، يمكنك استخدام مظهر HDpi بدقة 1280 × 720 وما فوق.

لذلك يجب أن يبدو قسم علم البناء + علم السمة كما يلي:



#twrp

TW_THEME: = portrait_hdpi

بعض علامات الإنشاء الإضافية التي تريد تضمينها في هذا القسم (اعتمادات لمنتديات XDA):

  • RECOVERY_SDCARD_ON_DATA: = صحيح (يتيح هذا المعالجة المناسبة / البيانات / الوسائط على الأجهزة التي تحتوي على هذا المجلد للتخزين (معظم قرص العسل والأجهزة التي تم شحنها في الأصل مع ICS مثل Galaxy Nexus) هذه العلامة غير مطلوبة لهذه الأنواع من الأجهزة. إذا كنت لا تحدد هذه العلامة ولا تقم أيضًا بتضمين أي إشارات إلى / sdcard أو / internal_sd أو / internal_sdcard أو / emmc في fstab الخاص بك ، ثم سنفترض تلقائيًا أن الجهاز يستخدم التخزين المحاكي.)
  • BOARD_HAS_NO_REAL_SDCARD: = صحيح - تعطيل أشياء مثل تقسيم بطاقة SD وقد يوفر لك بعض المساحة إذا لم يكن TWRP مناسبًا في دائرة الاسترداد الخاصة بك
  • TW_NO_BATT_PERCENT: = صحيح - تعطيل عرض النسبة المئوية للبطارية للأجهزة التي لا تدعمها بشكل صحيح
  • TW_CUSTOM_POWER_BUTTON: = 107 - خرائط مخصصة لزر الطاقة لشاشة القفل
  • TW_NO_REBOOT_BOOTLOADER: = صحيح - يزيل زر أداة تحميل التشغيل من قائمة إعادة التشغيل
  • TW_NO_REBOOT_RECOVERY: = صحيح - يزيل زر استرداد إعادة التشغيل من قائمة إعادة التشغيل
  • RECOVERY_TOUCHSCREEN_SWAP_XY: = صحيح - يبدل تعيين اللمسات بين محوري X و Y
  • RECOVERY_TOUCHSCREEN_FLIP_Y: = صحيح - يقلب قيم شاشة اللمس للمحور y
  • RECOVERY_TOUCHSCREEN_FLIP_X: = صحيح - يقلب قيم شاشة اللمس للمحور x
  • TWRP_EVENT_LOGGING: = صحيح - يتيح تسجيل أحداث اللمس للمساعدة في تصحيح أخطاء الشاشة التي تعمل باللمس (لا تترك هذا قيد التشغيل لإصدار - سيملأ ملف السجل الخاص بك بسرعة كبيرة)
  • BOARD_HAS_FLIPPED_SCREEN: = صحيح - قلب الشاشة رأسًا على عقب للشاشات التي تم تركيبها مقلوبة

يمكن العثور على علامات بناء إضافية من خلال تصفح ملفات Android.mk في مصدر الاسترداد ، ولكن لا يتم استخدامها عادةً لذلك لا فائدة من توثيقها.

باستخدام Recovery.Fstab

يدعم TWRP 2.5 والإصدارات الأحدث ميزات Recovery.fstab الجديدة - لا سيما القدرة على توسيع وظائف النسخ الاحتياطي / الاستعادة الخاصة بـ TWRP. لا تحتاج إلى إضافة علامات fstab ، لأنه سيتم التعامل مع معظم الأقسام تلقائيًا.

TWRP يدعم فقط v2 fstabs في الإصدار 3.2.0 والإصدارات الأحدث - في الإصدارات القديمة من TWRP ، ستحتاج إلى استخدام التنسيق القديم لـ fstab. في ما يلي مثال على TWRP fstab لجهاز Galaxy S4:

لزيادة التوافق مع شجرة البناء الخاصة بك ، يمكنك إنشاء twrp.fstab واستخدام PRODUCT_COPY_FILES لوضعه في twrp.fstab> etc>.

عندما يتم تشغيل TWRP والعثور على twrp.fstab في ramdisk ، فإنه سيعيد تسميته إلى> etc> recovery.fstab.bak - يستبدل fstab من جهازك بـ TWRP fstab ، مما يوسع التوافق.

رمز المثال:

PRODUCT_COPY_FILES + = الجهاز / lge / hammerhead / twrp.fstab: الاسترداد> الجذر> إلخ> twrp.fstab

يمكن أن يحتوي fstab في TWRP على بعض 'العلامات' لكل قسم مدرج في fstab.

يتم إضافة هذه العلامات إلى النهاية من قائمة القسم في fstab ، مفصولة بمسافات / مسافات / علامات تبويب بيضاء. سيؤثر العلم فقط على هذا القسم ، وليس على غيره. الإشارات مفصولة بفواصل منقوطة. إليك بعض الأمثلة على الكود:

لذلك دعونا نفحص هذا شيئا فشيئا. سيعطي العلم هنا اسم العرض 'Micro SDcard'. ستجعل علامة wipeingui هذا القسم متاحًا للمسح في قائمة Advanced Wipe. تشير العلامة القابلة للإزالة إلى أن هذا القسم غير موجود دائمًا ، مما سيمنع ظهور أخطاء التثبيت.

قائمة كاملة من الأعلام (الاعتمادات إلى TeamWin) :

  • قابل للإزالة - يشير إلى أن القسم قد لا يكون موجودًا مما يمنع ظهور أخطاء التركيب أثناء التمهيد
  • تخزين - يشير إلى أنه يمكن استخدام القسم كوحدة تخزين مما يجعل القسم متاحًا كمخزن للنسخ الاحتياطي والاستعادة والتثبيتات المضغوطة وما إلى ذلك.
  • إعدادات التخزين - يجب تعيين قسم واحد فقط كمخزن للإعدادات ، ويستخدم هذا القسم كموقع لتخزين ملف إعدادات TWRP
  • كانبيوي - يشير إلى أنه يمكن مسح القسم بواسطة نظام النهاية الخلفية ، ولكن قد لا يتم إدراجه في واجهة المستخدم الرسومية للمسح بواسطة المستخدم
  • userrmrf - يتجاوز نوع التنسيق العادي للمسح ويسمح فقط بمسح القسم باستخدام الأمر rm -rf
  • النسخ الاحتياطي = - يجب أن تنجح علامة التساوي ، لذا فإن النسخ الاحتياطي = 1 أو النسخ الاحتياطي = 0 ، يشير 1 إلى أنه يمكن إدراج القسم في قائمة النسخ الاحتياطي / الاستعادة بينما يضمن 0 أن هذا القسم لن يظهر في قائمة النسخ الاحتياطي.
  • wipeingui - يجعل القسم يظهر في واجهة المستخدم الرسومية للسماح للمستخدم بتحديده للمسح في قائمة المسح المتقدمة
  • مسح المصنع - سيتم مسح القسم أثناء إعادة ضبط المصنع
  • ignoreblkid - يتم استخدام blkid لتحديد نظام الملفات المستخدم بواسطة TWRP ، وستتسبب هذه العلامة في تخطي TWRP / تجاهل نتائج blkid واستخدام نظام الملفات المحدد في fstab فقط
  • retainlayoutversion - يتسبب في احتفاظ TWRP بملف playoutversion في / بيانات على أجهزة مثل Sony Xperia S والتي تستخدم / بيانات / وسائط ولكن لا يزال بها قسم منفصل / sdcard
  • رابط رمزي = - يتسبب في تشغيل TWRP لأمر تحميل إضافي عند تحميل القسم ، والذي يُستخدم بشكل عام مع / data / media لإنشاء / sdcard
  • عرض = - يعين اسم عرض للقسم للإدراج في واجهة المستخدم الرسومية
  • اسم المتجر = - يحدد اسم التخزين للقسم للإدراج في قائمة تخزين واجهة المستخدم الرسومية
  • اسم النسخ الاحتياطي = - يحدد اسم النسخ الاحتياطي للقسم للإدراج في قائمة النسخ الاحتياطي / الاستعادة لواجهة المستخدم الرسومية
    length = - يُستخدم عادةً لحجز مساحة فارغة في نهاية قسم / البيانات لتخزين مفتاح فك التشفير عند وجود تشفير كامل لجهاز Android ، وقد يؤدي عدم تعيين هذا إلى عدم القدرة على تشفير الجهاز
  • canencryptbackup = - 1 أو 0 لتمكين / تعطيل ، يجعل TWRP يشفر النسخة الاحتياطية لهذا القسم إذا اختار المستخدم التشفير (ينطبق فقط على النسخ الاحتياطية tar ، وليس الصور)
  • بيانات المستخدم = - 1 أو 0 للتمكين / التعطيل ، يجعل TWRP تشفير جزء بيانات المستخدم فقط من هذا القسم ، لن يتم تشفير بعض المجموعات الفرعية مثل / data / app لتوفير الوقت
  • فرعي = - يجب أن تتبع علامة التساوي ويكون مسار القسم جزءًا فرعيًا منه. يتم التعامل مع القسم الفرعي على أنه 'جزء' من القسم الرئيسي ، فعلى سبيل المثال ، يقوم TWRP تلقائيًا بجعل / بيانات البيانات قسمًا فرعيًا من / البيانات. هذا يعني أن / datadata لن تظهر في قوائم واجهة المستخدم الرسومية ، ولكن / datadata سيتم مسحها ونسخها احتياطيًا واستعادتها وتركيبها وإلغاء تحميلها في أي وقت يتم تنفيذ هذه العمليات على / البيانات.

من الأمثلة الجيدة على استخدام الأقسام الفرعية أقسام 3x efs على LG Optimus G:

يؤدي هذا إلى تجميع جميع الأقسام الثلاثة في إدخال 'EFS' واحد في واجهة المستخدم الرسومية TWRP مما يسمح بنسخ جميع الأقسام الثلاثة احتياطيًا واستعادتها معًا تحت إدخال واحد.

مع TWRP 3.2.0 وما فوق الذي يستخدم V2 Fstab ، أنت لا تحتاج إلى إضافة أي أعلام بناء . دعم V2 Fstab تلقائي. يدعم V2 Fstab أيضًا أحرف البدل (الرمز *) والتي يمكن أن تكون مفيدة لـ USB OTG وبطاقات micro-SD ذات الأقسام المتعددة. يمكنك أيضًا الاستمرار في استخدام تنسيق V1 Fstab ، ومن الممكن تمامًا استخدام كلا النوعين V1 و V2 في نفس Fstab.

على سبيل المثال ، هذا سطر V1 Fstab مع حرف بدل مخصص لـ USB OTG:

إليك خط V2 Fstab لنفس الجهاز والذي يحقق نفس النتيجة:

بالإضافة إلى ذلك ، يمكنك تضمين علامات twrp. الخ التي تستخدم تنسيق V1 Fstab ، ويمكن استخدامها لتكملة V2 Fstab بأعلام TWRP ، أو أقسام إضافية غير مضمنة في V2 Fstab ، أو تجاوز الإعدادات في V2 Fstab.

على سبيل المثال ، قد يحتوي جهاز Huawei على V2 fstab في عملية الاسترداد وما إلى ذلك.

قد تحتوي أيضًا على هذه العلامات:

هنا ، سيضيف أول سطرين في TWRP.Flags قسم التمهيد وقسم الاسترداد ، والذي لم تكن موجودة في V2 Fstab. بعد ذلك ، سيوجه سطر / cust في TWRP.flags إلى TWRP للسماح للمستخدم النهائي بالنسخ الاحتياطي للقسم (cust) ومنحه اسم عرض.

يوجد القسم / misc في twrp.flags ، ويوجه القسم / oeminfo تعليمات TWRP للسماح أيضًا بالنسخ الاحتياطي وإعطائه اسم عرض.

نحتاج إلى خط البيانات / لأن العديد من أجهزة Huawei مشفرة ، لكننا نستخدم ثنائيات Huawei الخاصة - وبالتالي ، نستخدم ثنائيات Huawei لفك تشفير الجهاز تلقائيًا في وضع الاسترداد. لذلك هنا ، سيوجه خط البيانات / TWRP لاستخدام / dev / block / dm -0 ، وليس / dev / block / bootdevice / by-name / userdata ، والتي تُستخدم عادةً للتثبيت 'المناسب' '.

أخيرًا يوجد / system_image ، بحيث يتضمن TWRP خيارًا لإنشاء صورة نظام في قوائم النسخ الاحتياطي والاستعادة.

يجب أن يحتوي جيثب TeamWin الرسمي أيضًا على أحدث أمثلة لأشجار الأجهزة للأجهزة التي تحتوي على منفذ TWRP رسمي. يمكن العثور على جيثب TeamWin هنا .

بعد مزامنة Omni أو CM ، وقمت بإعداد علامات TWRP الخاصة بك ، يجب عليك إنشاء مصدر ./build/envsetup.sh

وستحتاج إلى 'غداء' الجهاز ، حتى تتمكن من القيام بشيء مثل 'الغداء omni_hammerhead.eng'.

بعد وجبة غداء ناجحة ، ستستخدم معظم الأجهزة هذا الأمر:

يجب استبدال # in –j # بالعدد الأساسي +1. لذلك إذا كان لديك نواة ثنائية فهي –j3 ، وستكون رباعية النوى –j5 ، وما إلى ذلك ، استبدل # بعدد النواة +1 ، لذلك إذا كان لديك نواة ثنائية فهي -j3 وستصبح رباعية النواة -j5 ، إلخ.

أيضًا ، ستتطلب أجهزة Samsung النموذجية ما يلي:

هذا لأن معظم أجهزة Samsung تتضمن الاسترداد كرامديسك إضافي في الحذاء ، بدلاً من قسم استرداد منفصل (تستخدمه معظم الأجهزة الأخرى).

الآن ، يجب أن يكون لديك TWRP مجمع لجهازك ونأمل أن يعمل في بيئة محاكي. يجب عليك دائمًا اختبار منفذ TWRP في بيئة المحاكي أولاً ، حتى لا تخاطر بتثبيت جهازك.
قم بتنزيل هذه المجموعة من ملفات تكوين الجهاز.

قم بتجميع صورة استرداد باستخدام ملفات الجهاز هذه. في Android SDK ، انقر فوق أدوات -> إدارة AVDs. انقر فوق جديد. قم بإعداده على النحو التالي:

ثم انقر فوق 'موافق'.

بمجرد حصولك على AVD وصورة الاسترداد ، يمكنك تشغيل TWRP في المحاكي عن طريق التصفح إلى مجلد android-sdk / tools الخاص بك وتشغيل هذا الأمر:

لاحظ أن ADB لا يعمل على الفور. بعد حوالي 10 إلى 15 ثانية من انتهاء TWRP من التمهيد ، سيبدأ ADB في الاتصال بالإنترنت. نبدأ ADB عبر init.rc ، لذا حتى إذا فشل TWRP في التمهيد بسبب نوع من خطأ في التعليمات البرمجية ربما تكون قد ارتكبت ، فلا يزال ADB يعمل. استمتع!

أجهزة TWRP و A / B (الاعتمادات إلى TeamWin):

من وجهة نظر TWRP ، لا تختلف أجهزة A / B كثيرًا عن الأجهزة العادية ، ولكن يبدو أن المطورين يخجلون من العمل على هذه الأجهزة. سأحاول إلقاء بعض الضوء على هذا الموضوع وآمل أن يكون هذا بمثابة دليل لنقل TWRP إلى أجهزة A / B.

أولاً ، دعنا نفهم ما هو جهاز A / B وكيف يختلف. تحتوي أجهزة A / B على نسخ مكررة من العديد من الأقسام الموجودة على الجهاز. يحتوي جهاز A / B على أقسام نظام 2x ، وأقسام تمهيد 2x ، وأقسام بائع 2x ، وأقسام 2x مودم / برامج ثابتة ، وما إلى ذلك. يتم استخدام فتحة واحدة فقط في كل مرة. أثناء التمهيد المبكر ، تقرأ المراحل الأولى من محمل الإقلاع مقدارًا صغيرًا من البيانات تسمى BCB أو Bootloader Control Block وتقرر ما إذا كنت تريد تمهيد الأقسام A أو الأقسام B. عندما يتوفر تحديث OTA ، يتم نسخ البيانات من الفتحة النشطة من الفتحة غير النشطة ويتم تصحيحها / تحديثها. على سبيل المثال ، إذا كنت حاليًا في الفتحة A ، فسيقوم جهازك بتنزيل التحديث ونسخ قسم النظام الحالي من الفتحة A وإصلاحه / تحديثه بالتحديثات الجديدة في الفتحة B. بمجرد اكتمال النسخ والتحديث ، فإن BCB يتم تحديثه وإعادة تشغيل الجهاز باستخدام الفتحة B. في المرة التالية التي يتوفر فيها تحديث ، يتم نسخ قسم النظام الموجود في الفتحة B إلى الفتحة A ويتم تحديثه ، ويتم تحديث BCB ، ونعيد التمهيد إلى الفتحة A. عند عرض الأقسام الموجودة على الجهاز ، سترى شيئًا كهذا:

لاحظ أقسام التمهيد المزدوج والنظام والمورد في القائمة أعلاه ، ولكن قسم بيانات مستخدم واحد فقط.

على الرغم من عدم وجود أي متطلبات فنية أعلم بها ، إلا أن جميع أجهزة A / B التي تم شحنها حتى الآن ليس لها قسم استرداد منفصل. بدلاً من ذلك ، تحتوي صورة التمهيد على الاسترداد في ذاكرة الوصول العشوائي الخاصة بها. الشيء المهم هو معرفة أن صورة التمهيد تحتوي الآن أيضًا على الاسترداد. للتأكد من اكتمالها ، قسم النظام هو نظام ملفات جذر كامل. أثناء التمهيد ، إذا طُلب من kernel التمهيد للاسترداد ، فسوف يقوم باستخراج القرص الصلب في قسم التمهيد. إذا لم يتم إخبار kernel بواسطة محمل الإقلاع بالتمهيد إلى الاسترداد ، فسيقوم kernel بتركيب قسم النظام المناسب (A أو B) لأن قسم النظام عبارة عن نظام ملفات جذر كامل. هذا يعني أن قسم النظام الموجود على هذه الأجهزة يتم تثبيته على / بدلاً من / system وأن قسم النظام يحتوي على جميع الملفات التي كانت موجودة عادةً في ramdisk لصورة التمهيد والمجلد الفرعي / system.

من وجهة نظر TWRP ، هناك 3 أشياء عليك القيام بها لجهاز A / B. أولا ، تحتاج إلى ضبط

الشفرة:

أخيرًا ، بمجرد دخولك إلى TWRP ، ربما ترغب في التأكد من أن bootctl hal-info يستجيب بشكل صحيح بدون أخطاء. عادة ما يتطلب ملف bootctl الثنائي مكتبة خاصة أو حتى بعض الخدمات للعمل بشكل صحيح. إذا لم يعمل bootctl بشكل صحيح ، فلن تتمكن من تبديل الفتحات داخل TWRP بشكل صحيح أيضًا.

بالإضافة إلى الإعداد

الشفرة:

AB_OTA_UPDATER: = صحيح

قد ترغب أيضًا في تعيين:

الشفرة:

BOARD_USES_RECOVERY_AS_BOOT: = صحيح

BOARD_BUILD_SYSTEM_ROOT_IMAGE: = صحيح

إذا قمت بتعيين

الشفرة:

BOARD_USES_RECOVERY_AS_BOOT: = صحيح

ثم جعل Recoveryimage لم يعد يعمل وبدلا من ذلك سوف تضطر إلى جعل bootimage. لا أوصي بتعيين أي من هذه العلامات لأشجار بناء TWRP فقط. من المحتمل أن تكون هذه العلامات مطلوبة للمطورين الذين يقومون ببناء ذاكرات ROM كاملة لأجهزة A / B.

تثبيت / وميض TWRP على أجهزة A / B:

نظرًا لأن جميع أجهزة A / B المعروفة لا تحتوي على قسم استرداد منفصل ، فسيتعين عليك في النهاية وميض TWRP إلى قسم التمهيد. في هاتف Pixel 1 و 2 ، نستخدم الإقلاع السريع Fastboot لبدء تشغيل TWRP مؤقتًا بدون وميض TWRP. نوفر بعد ذلك ملفًا مضغوطًا للسماح للمستخدمين بوميض TWRP في الفتحتين. يمكنك تنزيل أحد هذه الملفات المضغوطة من موقعنا على الإنترنت وتحديث الرمز البريدي حسب الحاجة لدعم أجهزتك. في النهاية ، سنضيف أدوات إلى TWRP للسماح للمستخدمين بعمل استرداد على هذه الأجهزة دون الحاجة إلى استخدام ملفات مضغوطة.

عملت مؤخرًا على هاتف Razer. للأسف ، لا يدعم هاتف Razer التمهيد السريع. بدلاً من ذلك ، يتعين على المستخدمين تحديد فتحة التمهيد النشطة الخاصة بهم حاليًا باستخدام

الشفرة:

للوصول إلى TWRP. بمجرد الدخول إلى TWRP ، يمكنهم الانتقال إلى صفحة إعادة التشغيل والرجوع مرة أخرى إلى الفتحة النشطة في الأصل ، وعمل نسخة احتياطية ، ثم تثبيت TWRP. يتيح استخدام الفتحة غير النشطة للمستخدمين الحصول على نسخة احتياطية جيدة وغير معدلة من أجهزتهم قبل تثبيت TWRP.

ملاحظات إضافية:

إذا كنت ترغب في الحصول على TWRP معتمدًا رسميًا لجهازك حتى يمكن تثبيته تلقائيًا باستخدام تطبيق TWRP ، وتريد حقًا القيام بذلك حتى يتمكن المالكون الآخرون لنفس الجهاز من الاستمتاع بدعم TWRP الرسمي ، ومن الجيد القيام بذلك ، ستحتاج إلى إرسال المعلومات التالية إلى TeamWin:

  1. ملفات تكوين الجهاز لتجميع TWRP من المصدر لجهازك - لا تعيد حزم الاسترداد .img باليد ، يحتاجون إلى تجميعها من المصدر.
  2. بعد أن ينشئ TeamWin نسخة من TWRP ، سيرسلها إليك للتحقق - بمجرد التحقق من صحتها ، سيقوم TeamWin بإنشاء صورة عمل لجهازك وإضافتها إلى تطبيق TWRP الرسمي.
قراءة 13 دقيقة