اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release بدلاً من aosp-main لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
وضع "مفعِّل الاختبار" هو ميزة تمت إضافتها في Android 10 لأجل
مطوّري التطبيقات الخارجية الذين يريدون
برمجة جهاز أو مجموعة من الأجهزة. توفّر الميزة طريقة لمحو جميع
بيانات المستخدمين على جهاز Android، والاحتفاظ بمفاتيح ADB، وتخطّي جميع شاشات الإعداد لأول مرة. يتيح ذلك
للمستخدم إجراء اختبار واجهة المستخدم فور بدء التشغيل بدون أي تفاعل يدوي.
التخصيص
يمكنك تحديد ما إذا كان الجهاز في وضع "مفعِّل الاختبار" من خلال التحقّق من
ActivityManager.isRunningInUserTestHarness(). يجب الحدّ من عمليات التخصيص إلى الحدّ الأدنى،
وحصرها على إجراءات مثل تخطّي شاشات الإعداد (على لوحة المفاتيح أو معالج الإعداد) التي قد تؤدي إلى إيقاف
اختبارات واجهة المستخدم أو تتطلّب تفاعلًا يدويًا.
يستخدم التنفيذ التلقائي لوضع "مفعِّل الاختبار" آلية التخزين نفسها التي تستخدمها ميزة
الحماية من إعادة الضبط على الإعدادات الأصلية لتخزين مفاتيح adb مؤقتًا في قسم دائم. إذا سبق أن تم تنفيذ خطوة برمجة لإنشاء ملف شخصي دائم يتضمّن ميزة "الحماية بعد إعادة الضبط على الإعدادات الأصلية" على الجهاز التجريبي، لن تحتاج إلى بذل جهد كبير أو أي جهد على الإطلاق لتفعيل الميزة.
على المصنّعين الأصليّين للأجهزة الذين لم يسبق لهم إعداد قسم دائم تنفيذ
PersistentDataBlockManagerInternal قبل تشغيل
TestHarnessModeService.
التحقّق من حالة وضع "مفعّل الاختبار"
عند تفعيل وضع "مفعِّل الاختبار"، يعرض الرمز ActivityManager.isRunningInUserTestHarness() القيمة true.
تشغيل وضع "مفعّل الاختبار"
يؤدي تفعيل وضع "مفعّل الاختبار" إلى محو جميع البيانات من الجهاز وإعداده للقيام بالاختبار. وهذا يعني أنّ جميع أجزاء الجهاز التي يمكن أن تتداخل مع الاختبار (مثل
حسابات المزامنة التلقائية والتحقّق من الحِزم والتحديثات التلقائية) تكون متوقفة تلقائيًا،
ولكن يمكن للمستخدم إعادة تفعيلها.
يمكنك تنفيذ الأمر adb لتفعيل وضع "مفعِّل الاختبار":
adb shell cmd testharness enable
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-13 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-13 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Implement Test Harness Mode\n\nTest Harness Mode is a feature added in Android 10 for\nthird-party app developers that wish\nto automate a device or a fleet of devices. The feature provides a method to wipe *all*\nuser data on an Android device, retain ADB keys, and skip all first-time setup screens. This enables\nthe user to run a UI test immediately after startup without any manual interaction.\n| **Note:** Test Harness Mode is different from TradeFed Test Harness. Don't use it when running CTS test.\n\nCustomization\n-------------\n\nYou can determine if a device is in Test Harness Mode by checking\n`ActivityManager.isRunningInUserTestHarness()`. Keep customizations to a minimum;\nlimit to things like skipping setup screens (on the keyboard or setup wizard) that would break\nUI tests or require manual interaction.\n\nImplementation\n--------------\n\nThe default implementation of [`PersistentDataBlockManagerInternal`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/pdb/PersistentDataBlockManagerInternal.java)\nis in [`PersistentDataBlockService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/pdb/PersistentDataBlockService.java).\nTest Harness Mode is implemented in [`TestHarnessModeService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/testharness/TestHarnessModeService.java).\n\nThe default implementation of Test Harness Mode uses the same storage mechanism as\nfactory reset protection to store the adb keys temporarily in a persistent partition. If a\npersistent partition with factory reset protection is already implemented on the test device,\nlittle to no work is necessary to support the feature.\n\nOEMs that don't have a persistent partition set up need to implement\n`PersistentDataBlockManagerInternal` before running\n`TestHarnessModeService`.\n\nCheck the status of Test Harness Mode\n-------------------------------------\n\nWhen Test Harness Mode is enabled,\n`ActivityManager.isRunningInUserTestHarness()` returns `true`.\n\nRun Test Harness Mode\n---------------------\n\nEnabling Test Harness Mode wipes all data from the device and sets up the device for\ntesting. This means that all parts of the device that could interfere with testing (such as\nauto-syncing accounts, package verification, and automatic updates) are all disabled by default\nbut the user can reenable them.\n\nRun the `adb` command to enable Test Harness Mode: \n\n```\nadb shell cmd testharness enable\n```"]]