نصائح وحيل ADB: الأوامر التي يجب أن يعرفها كل مستخدم محترف

هناك الكثير في Android Debug Bridge الذي قد لا تعرفه. انقر هنا للحصول على بعض النصائح والحيل المفيدة لاستخدام ADB!

روابط سريعة

  • الوصول إلى شل
  • الاتصال بأجهزة متعددة
  • نقل الملفات
  • تسجيل
  • سرد التطبيقات المثبتة من خلال ADB
  • تثبيت وإلغاء تثبيت التطبيقات من خلال ADB
  • استخراج ملفات APK باستخدام ADB
  • النسخ الاحتياطي واستعادة بيانات التطبيق
  • سرد مكونات التطبيق
  • إطلاق الأنشطة والخدمات وأجهزة استقبال البث
  • تعطيل وتمكين أي تطبيق تقريبًا
  • التقاط لقطات
  • نقل البيانات الثنائية بين جهاز الكمبيوتر وجهاز Android

إذا كنت متحمسًا لنظام Android يتربص بك في مشهد التعديل ، أو مطور تطبيقات لأي مدة الوقت ، عاجلاً أم آجلاً ، ستعثر على أداة أنيقة تسمى Android Debug Bridge ، أو ADB لـ قصير. يتم استخدامه على نطاق واسع في Android Studio كأداة مساعدة مصاحبة لسطر الأوامر. يستخدمه مطورو Android أيضًا كحل مستقل لتثبيت التطبيقات واختبارها يدويًا الهواتف الذكية التي تعمل بنظام Android وكذلك أجهزة Android التي تمت محاكاتها.

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

تحميل التطبيق أو تعديل إذن. لكن هذا ليس كل ما يمكن استخدام ADB من أجله. استمر في القراءة للحصول على بعض النصائح والحيل لاستخدام ADB التي ربما لم تكن على علم بها.

ستحتاج إلى تشغيل ADB على جهاز الكمبيوتر الخاص بك. تأكد من مراجعة مقالتنا على كيفية تثبيت ADB إذا كنت بحاجة للمساعدة. إذا كنت تستخدم Windows ، فأنت بحاجة أيضًا إلى تثبيت برامج تشغيل OEM USB المناسبة لجهاز Android الخاص بك.

الوصول إلى شل

إذا كنت قد استخدمت ADB من قبل ، فقد تكون معتادًا على تشغيل الأوامر كلها في سطر واحد. ولكن يمكنك أيضًا استخدام ADB لفتح Terminal shell على جهازك وتشغيل الأوامر مباشرة. وهو سهل!

في المحطة الطرفية أو نافذة موجه الأوامر:

قذيفة بنك التنمية الاسيوى

سيتم الترحيب بك بعد ذلك بامتداد $ رمز حيث يمكنك تشغيل الأوامر مباشرة على جهازك.

الاتصال بأجهزة متعددة

يمكن لـ ADB التواصل مع أجهزة متعددة في نفس الوقت. ومع ذلك ، يجب عليك تحديد الجهاز المستهدف عند إصدار أوامر ADB في مثل هذه السيناريوهات.

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

أجهزة adb

الآن ، استخدم ملف خيار لتحديد الرقم التسلسلي للجهاز الهدف. مثال:

adb -s <مسلسلرقم> صدَفَة

نقل الملفات

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

إذا كنت ترغب في نسخ ملف أو دليل بأدلته الفرعية إلى جهاز Android:

adb push local_path device_path
  • مثال: adb push D: \ image.png / sdcard

سيقوم الأمر التالي بنسخ ملف أو دليل مع الأدلة الفرعية الخاصة به من جهاز Android إلى الكمبيوتر المضيف:

adb pull device_path local_path
  • مثال: adb pull /sdcard/backup_April.tar D: \ Backup

تسجيل

يوفر Android Studio ملف نافذة Logcat، والذي يدعم عرض السجلات من جهازك في الوقت الفعلي. ومع ذلك ، فهي ليست مفيدة تمامًا لمعالجة الدُفعات. لحسن الحظ ، تأتي أجهزة Android مع الأمر logcat المتاح من خلال ADB ، والذي يمكن استخدامه لتفريغ رسائل سجل النظام والتطبيق وطباعتها على الشاشة.

الصيغة الأساسية هي كما يلي:

adb logcat

لمعرفة المزيد ، ألق نظرة على برنامجنا التعليمي حول كيفية أخذ سجلات النظام وسجلات kernel و dmesg على Android.

بيض عيد الفصح

تقدم Google اثنين من بيض عيد الفصح الأنيقين المرتبطين بأمر logcat.

  1. الأول هو lolcat ، إشارة إلى ملف LOLcat ميمي. يعطي نفس الإخراج مثل الأمر logcat العادي.
    adb lolcat
  2. والثاني هو longcat ، وهو ما يعادل الأمر logcat -v long. يعرض جميع حقول البيانات الوصفية ورسائل منفصلة بسطر فارغ.
    بنك التنمية الآسيوي لونغكات

سرد التطبيقات المثبتة من خلال ADB

لمشاهدة التطبيقات المثبتة على جهازك ، يمكنك استخدام الأمر التالي:

بنك adb shell pm قائمة الحزم

سيعيد هذا قائمة بأسماء حزم التطبيقات المثبتة ، مع إضافة كل واحدة في السطر الخاص بها مسبقًا بـ طَرد:.

خيارات

هناك أيضًا بعض الخيارات التي يمكنك استخدامها لاسترداد المزيد من القوائم المحددة.

  • -F سيشمل المسار إلى APK الأساسي لكل تطبيق ، إلى جانب اسم الحزمة الخاص به.
  • سوف تتأكد من إرجاع جميع الحزم المعروفة بخلاف APEX.
  • سيؤدي الأمر إلى إرجاع الحزم المعطلة فقط.
  • -e سيؤدي الأمر إلى إرجاع الحزم الممكّنة فقط.
  • سيؤدي الأمر إلى إرجاع حزم النظام فقط.
  • -3 سيؤدي الأمر إلى إرجاع حزم الجهات الخارجية فقط.
  • -أنا سيتضمن اسم حزمة المثبت لكل حزمة.
  • -U سيتضمن UID للحزمة لكل حزمة.
  • -u سيتضمن الحزم غير المثبتة.
  • --إظهار رمز الإصدار سيتضمن رمز الإصدار لكل حزمة.
  • - رأس المال فقط سيعود فقط حزم APEX.
  • --دليل سيظهر فقط الحزم التي تحتوي على UID المحدد.
  • --مستخدم سيعرض فقط الحزم التي تنتمي إلى معرف المستخدم المحدد.

تثبيت وإلغاء تثبيت التطبيقات من خلال ADB

هذا استخدام شائع نسبيًا لـ ADB ، لكن من الجدير بالذكر على أي حال. من بين الطرق الأخرى ، يمكنك أيضًا الاستفادة من ADB إلى تثبيت وإلغاء تثبيت تطبيقات Android لجهاز Android الخاص بك.

تثبيت APK

إذا كان لديك ملف APK على جهاز الكمبيوتر الخاص بك ، فيمكنك تثبيته على جهازك باستخدام ما يلي:

بنك التنمية الآسيويثَبَّتَ-rبعض الشيء.apk

تذكر أن تحل محل someapk.apk بالمسار الكامل لملف APK الذي تريد تثبيته.

خيارات

هناك مجموعة من الخيارات لتثبيت ملفات APK من خلال ADB.

  • ال -r يسمح الخيار لـ ADB بالتثبيت فوق تطبيق موجود (أي تحديث). في Android Pie والإصدارات الأحدث ، لا يتعين عليك تحديد هذا الخيار.
  • ال الخيار ، لنظام Android Pie والإصدارات الأحدث سيتسبب في فشل التثبيت إذا كان التطبيق مثبتًا بالفعل.
  • ال -أنا يتيح لك الخيار تحديد اسم حزمة المثبت. هذا ما يتم إرجاعه إذا أراد Android معرفة ما هو مثبت APK.
  • ال -t يسمح الخيار لملف APK مع android: testOnly = "true" في بيانه ليتم تثبيته.
  • ال يسمح الخيار لملف APK المحدد بالرجوع إلى إصدار أقدم إلى تطبيق مثبت بالفعل. يعمل هذا فقط إذا كان كلا الإصدارين من التطبيق قابلين للتصحيح.
  • ال -g خيار Android Marshmallow والإصدارات الأحدث يمنح تلقائيًا جميع أذونات وقت التشغيل للتطبيق المثبت.

هذا ليس كل منهم. إذا كنت تريد قائمة كاملة ، يمكنك التحقق من الوثائق المضمنة.

حزم APK وحزم متعددة

إذا كان لديك مجموعة من ملفات APK التي تريد تثبيتها مرة واحدة ، إما من تطبيقات متعددة ، أو لأنك تقوم بتثبيت حزمة تطبيقات ، فيمكنك استخدام ADB تثبيت متعدد و تثبيت حزمة متعددة سمات.

إذا كانت جميع ملفات APK لتطبيق واحد ، فاستخدم تثبيت متعدد:

بنك التنمية الآسيويتثبيت متعددapk1.apkapk2.apk ...

خلاف ذلك ، استخدم تثبيت حزمة متعددة:

بنك التنمية الآسيويتثبيت حزمة متعددةالتطبيق 1.apkالتطبيق 2.apk ...

تتشابه خيارات هذه الأوامر مع ثَبَّتَ، ولكن مع بعض القيود. تحقق من وثائق ADB المضمنة لمعرفة الخيارات المتاحة.

إلغاء تثبيت التطبيق

لإلغاء التثبيت باستخدام ADB ، ستحتاج إلى اسم حزمة التطبيق الذي تريد إلغاء تثبيته. تحقق من قسم سرد التطبيقات المثبتة إذا لم تكن قد قمت بذلك بالفعل.

بمجرد حصولك على اسم الحزمة ، يكون إلغاء التثبيت بسيطًا مثل:

إلغاء تثبيت adb <اسم حزمة>

لا يمكنك عمومًا إلغاء تثبيت النظام أو التطبيقات المثبتة مسبقًا باستخدام هذا الأمر. ومع ذلك ، قد تتمكن من تعطيلها باستخدام ADB. تحقق من القسم تعطيل وتمكين أي تطبيق تقريبًا للتفاصيل.

استخراج ملفات APK باستخدام ADB

هناك العديد من الأسباب التي قد تدفعك لاستخراج ملف (ملفات) APK لتطبيق ما. ربما تريد نسخه احتياطيًا للاستخدام في المستقبل ، أو ربما لم يعد متاحًا عبر الإنترنت وتريد نقله إلى جهاز مختلف.

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

بمجرد حصولك على اسم الحزمة ، قم بتشغيل الأمر التالي:

مسار adb shell pm <اسم حزمة>

سيعيد هذا الأمر مسار جميع ملفات APK لاسم الحزمة هذا.

يمكنك بعد ذلك استخدام الأمر التالي لسحب كل ملف APK إلى جهاز الكمبيوتر الخاص بك:

adb pull /path/to/apk.apk

النسخ الاحتياطي واستعادة بيانات التطبيق

على الرغم من أن Google لم تتوصل بعد إلى منهجية النسخ الاحتياطي بنقرة واحدة على نظام iOS ، إلا أنه يمكنك استخدام ADB لعمل نسخة احتياطية من التطبيقات المثبتة واستعادتها مع بياناتها. ومع ذلك ، فإن الوظيفة بعيدة عن أن تكون مثالية ، وقد فعلتها Google بالفعل وضع علامة على العنصر على أنه مهمل.

دعم

لنسخ تطبيق واحد احتياطيًا باستخدام ملف APK الخاص به:

بنك التنمية الآسيوي دعم -apk <طَرداسم> -f package_name_backup.ab

في حالة رغبتك في نسخ جميع بيانات التطبيق احتياطيًا مرة واحدة:

بنك التنمية الآسيوي دعم -F الجميع -الجميع -apk -نظام

نظرًا لأن وحدة الاستعادة لا يمكنها إجراء استعادة خاصة بالتطبيق الفردي ، فمن الأفضل إنشاء نسخ احتياطية خاصة بالحزمة. يمكن لمقتطف الأمر التالي (المتوافق مع Linux / macOS ونظام Windows الفرعي لنظام Linux) القيام بذلك نيابة عنك:

ل برنامج في $ (حزم adb shell pm list -3)
يفعل
APP = دولار ( صدى صوت{APP} $ | سيد "s / ^ package: //")
نسخة احتياطية من adb -f {APP} $.دعم {APP} $
منتهي

يعيد

أولاً ، تحتاج إلى تثبيت ملف APK المحفوظ ؛

بنك التنمية الآسيوي ثَبَّتَ <طَرداسم> apk

ثم يمكنك استعادة بياناته:

بنك التنمية الآسيوييعيدpackage_name_backup.ab

للتكرار ، فإن وظائف النسخ الاحتياطي والاستعادة الخاصة بـ ADB لها العديد من التحذيرات ، بما في ذلك النتائج المتغيرة اعتمادًا على ذاكرة القراءة فقط

سرد مكونات التطبيق

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

لسوء الحظ ، ليس لدى ADB طريقة جيدة جدًا لإدراج مكونات التطبيق. لكن هذا ممكن. قم بتشغيل الأمر التالي:

adb shell dumpsys طَرد

سيتم إرجاع مجموعة كاملة من النص.

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

سيعرض كل مكون الإجراء المطلوب لبدء تشغيله ، واسم المكون ، وربما بعض المعلومات الإضافية.

بدلاً من ذلك ، إذا كنت تريد طريقة أسهل لمشاهدة الأنشطة والخدمات وأجهزة الاستقبال ، فيمكنك استخدام تطبيق Root Activity Launcher من مطور XDA المعترف به زكريا 1. سيُظهر لك تلك المكونات لكل تطبيق ، إلى جانب مجموعة من الميزات المفيدة الأخرى.

مشغل نشاط الجذرمطور: زاكاري واندر

السعر: 0.99.000

تحميل

إطلاق الأنشطة والخدمات وأجهزة استقبال البث

يمكن أيضًا استخدام ADB لبدء تشغيل الأنشطة وبدء الخدمات وإخطار BroadcastReceivers. يمكنك حتى تحديد معرّفات URI للبيانات وإضافات Intent إذا لزم الأمر.

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

صيغة الأمر لبدء نشاط ما هي شيء من هذا القبيل:

أبدأ - أ <فعل><عنصر>

صيغة الأمر لبدء الخدمة هي شيء من هذا القبيل:

أبدأ الخدمة -a <فعل><عنصر>

صيغة الأمر لإخطار BroadcastReceiver هي شيء من هذا القبيل:

أنا البث -a <فعل><عنصر>

في معظم الحالات ، بالنسبة للأنشطة والخدمات ، لا تحتاج إلى تحديد إجراء بشكل صريح. ستحتاج عادةً فقط إذا كان المكون يستخدم واحدًا آخر غير android.intent.action. رئيسي.

في الجزء العلوي من بناء الجملة الأساسي ، إليك كيفية تحديد المزيد من البيانات لتمريرها. بشكل عام ، يجب وضع جميع قيم البيانات بين علامتي اقتباس.

  • يسمح لك بتحديد معرّف بيانات URI.
  • -e أو --es يسمح لك بتحديد سلسلة إضافية.
  • --esn يسمح لك بتحديد سلسلة فارغة إضافية.
  • - iz يستخدم لتحديد قيمة إضافية منطقية.
  • --ei يستخدم لتحديد عدد صحيح إضافي.
  • --el هو لتحديد قيمة اضافية طويلة.
  • - و سوف يمر تعويم إضافي.
  • --الاتحاد الأوروبي يمر URI إضافي.
  • --كن يمكن استخدامها لتحديد اسم مكون إضافي.
  • - هيا ,,... سوف تمرر القيم كعدد صحيح [] إضافي.
  • - عين ,,... سوف تمرر القيم على شكل قائمة.
  • تعمل وسيطات الصفيف والقائمة نفسها أيضًا مع longs و floats و Strings. فقط استبدل ملف أنا بالحرف المناسب.
  • -F يسمح لك بتحديد العلم.

هناك المزيد من خيارات السلوك التي يمكنك استخدامها ، لذا تحقق من الوثائق المضمنة للحصول على التفاصيل.

تعطيل وتمكين أي تطبيق تقريبًا

لا يمكن إلغاء تثبيت تطبيقات النظام في Android ، وللأسف ، لا يمكن أيضًا تعطيل الكثير منها من خلال الإعدادات. بينما لن يسمح لك ADB بإلغاء تثبيتها ، فقد يساعدك في تعطيلها.

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

  • مساء تعطيل
    • لإعادة التمكين ، استخدم م تمكين
  • مساءا تعطيل المستخدم - المستخدم 0
    • لإعادة التمكين ، استخدم م تمكين
  • مساء الاخفاء
    • لإعادة التمكين ، استخدم إظهار مساء
  • مساء تعليق
    • لإعادة التمكين ، استخدم مساءا إلغاء التعليق
  • pm uninstall -k --user 0
    • لإعادة التمكين ، استخدم مساء التثبيت الحالي
      • يؤدي هذا بشكل فعال إلى إلغاء تثبيت التطبيق من ملف تعريف المستخدم الخاص بك. في حين أن الأمر لإعادة التمكين يجب العمل ، ليس هناك ما يضمن ذلك. قد تحتاج إلى إعادة ضبط المصنع لاستعادة التطبيق.
      • إذا كنت تستخدم ملفات تعريف مستخدمين متعددة على جهازك ، فتأكد من استبدال 0 في الأوامر أعلاه بمعرف المستخدم الفعلي لديك.

لمعرفة المزيد ، تحقق من البرنامج التعليمي الخاص بنا على كيفية إلغاء تثبيت شركة الجوال و bloatware OEM دون الوصول إلى الجذر.

التقاط لقطات

تقدم معظم أقراص Android ROM أداتين مفيدتين للقشرة - screencap و screenrecord - لالتقاط لقطات الشاشة وتسجيل أنشطة الشاشة ، على التوالي. يمكنك الاتصال بهم مباشرة من غلاف ADB لالتقاط لقطة شاشة ثابتة أو مقطع فيديو لشاشة هاتفك وحفظها مباشرة على وحدة التخزين الداخلية للجهاز.

صيغة التقاط لقطة شاشة واضحة جدًا:

adb shell screencap /sdcard/screenshot.png

وبالمثل ، إذا كنت بحاجة إلى التقاط صورة ديناميكية للشاشة ، فقم بما يلي:

adb shell screenrecord /sdcard/recording.mp4

كما قد تتوقع ، فإن أداة screencap بسيطة إلى حد ما ، في حين أن الأداة المساعدة screenrecord تقدم العديد من المعلمات. خيارات هذا الأخير هي كما يلي:

  • - الحجم WIDTHxHEIGHT
    • عيّن دقة ملف الفيديو (على سبيل المثال "1280 × 720"). بشكل افتراضي ، يحاول أخذ دقة الشاشة الرئيسية للجهاز المستهدف (إذا كان مدعومًا) ، ويعود إلى 1280 × 720 إذا لم يكن كذلك.
  • - معدل بت
    • اضبط معدل بت الفيديو بالبت في الثانية. يمكن تحديد القيمة على أنها بت أو ميغا بت ، على سبيل المثال "4000000" يعادل "4 ملايين".
  • --تقرير الشوائب
    • يمكنك إضافة معلومات إضافية ، مثل تراكب الطابع الزمني ، والتي يمكن أن تكون مفيدة لتوضيح الأخطاء.
  • - الوقت المحدد TIME
    • اضبط الحد الأقصى لوقت التسجيل بالثواني. الافتراضي / الحد الأقصى هو 180.
  • - معرف معرف العرض
    • حدد معرّف العرض الفعلي للتسجيل. يتم تعيين الإعداد الافتراضي على الشاشة الأساسية. راجع "dumpsys SurfaceFlinger - معرف العرض" لمعرفات العرض الصالحة.
  • - الإسراف
    • عرض معلومات متعمقة بشأن جلسة التسجيل.

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

نقل البيانات الثنائية بين جهاز الكمبيوتر وجهاز Android

في حالة عدم رغبتك في إنتاج غلاف ADB كامل ، ولكنك ترغب في دمج عبور انسيابي للبيانات الثنائية بين الكمبيوتر المضيف وجهاز Android المستهدف ، يمكنك الاستفادة من إكسك في و تنفيذي أوامر.

على الرغم من وجود طويل الأمد، لا يزال الأمران exec-in و exec-out غير موثقين. قد تؤدي إلى تلف الملفات بسبب الطريقة التي تتعامل بها الأصداف المختلفة مع المدخلات والمخرجات. استخدم بحذر.

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

مثال:

بنك التنمية الآسيوي إكسيك-خارج "screencap -p" > "D: \ screenshot.png"

سيستخدم هذا الامتداد سكرينكاب أمر Android لالتقاط لقطة شاشة لشاشة الهاتف ، ولكن يحفظها مباشرة كـ screenshot.png في القسم D: للكمبيوتر المضيف (بشرط أن يكون يعمل بنظام Windows). على الجانب الآخر،

بنك التنمية الآسيوي إكسيك-في"cd / sdcard && tar -xf -" < "D: \ backup.tar"

سيؤدي هذا إلى استخراج محتويات ملف backup.tar المخزن في القسم D: للكمبيوتر المضيف (يعمل بنظام Windows) في جذر وحدة التخزين الداخلية لجهاز Android.


ADB هي أداة قوية بشكل لا يصدق ، ويمكن أن تفعل أكثر بكثير مما ورد أعلاه. الأوامر الواردة في هذه المقالة هي مجرد نقطة انطلاق مفيدة. لاستخدام أكثر تقدمًا ، تحقق من أوامر مثل كمد -l لرؤية الخدمات المختلفة التي قد تكون قادرًا على التفاعل معها و ls -l / system / bin لرؤية الملفات التنفيذية المختلفة للأوامر المتوفرة في Android ROM.

لرحلات وعلامات Android الأخرى ، تحقق من أدلةنا على كيفية عمل روت لهاتفك الذكي الذي يعمل بنظام Android, كيفية تثبيت ريكفري TWRP، و كيفية تثبيت ROM مخصص على جهاز Android الخاص بك.