توفّر "عناصر التحكّم الموحّدة في التحديثات" (UUC) لمشرفي تكنولوجيا المعلومات طريقة واحدة ومتّسقة للتحكّم في وقت تنزيل تحديثات البرامج وتطبيقها على أجهزة Android المملوكة للشركة، وذلك لضمان عدم تأثير التحديثات في العمليات التجارية.
باستخدام سياسة واحدة من سياسات UUC، يمكنك التحكّم في تحديثات مكوّنات البرامج التالية:
- تحديثات نظام التشغيل التي تصدرها الشركة المصنّعة للجهاز (المصنّع الأصلي للجهاز)، بما في ذلك تحديثات نظام التشغيل الرئيسية وتحديثات نظام التشغيل البسيطة وتحديثات الأمان
- تحديثات نظام Google Play (Mainline)
- خدمات نظام Google، مثل "خدمات Google Play" وAndroid System WebView، إما كمجموعة أو تطبيق واحد في كل مرة
يمكنك تحديد قواعد UUC في حقل unifiedUpdatePolicy لمورد
Policy. تطبيق Android Device Policy (ADP) هو
نقطة اتخاذ القرار المركزية على الجهاز في ما يتعلّق بـ UUC.
المتطلبات الأساسية
قبل ضبط ميزة UUC، تأكَّد من استيفاء المتطلبات التالية:
- يمكن لحلّ "إدارة الخدمات الجوّالة للمؤسسات" (EMM) إنشاء السياسات وتعديلها لمؤسسة معيّنة.
- الأجهزة مملوكة للشركة، ويتم ضبطها إما كـ أجهزة مُدارة بالكامل أو باستخدام ملف عمل على جهاز مملوك للشركة. لا تتوفّر ميزة "التحكّم في استخدام المستخدم" (UUC) على الأجهزة المملوكة شخصيًا.
- تستوفي الأجهزة الحدّ الأدنى لإصدار Android المتوافق مع كل هدف تحديث تريد التحكّم فيه، كما هو موضّح في الجدول التالي:
| تعديل الهدف | مُدار بالكامل (مالك الجهاز) | ملف العمل على الأجهزة المملوكة للشركة (COPE) |
|---|---|---|
خدمات نظام Google Play (GOOGLE_SYSTEM_SERVICES، SINGLE_APP) |
Android 13 (المستوى 33 لواجهة برمجة التطبيقات) والإصدارات الأحدث | Android 15 (المستوى 35 من واجهة برمجة التطبيقات) والإصدارات الأحدث |
تحديثات نظام Google Play / Mainline (GOOGLE_PLAY_SYSTEM_UPDATE) |
Android 13 (المستوى 33 لواجهة برمجة التطبيقات) والإصدارات الأحدث | Android 15 (المستوى 35 من واجهة برمجة التطبيقات) والإصدارات الأحدث |
تحديثات نظام التشغيل: المصنّعون الأصليون للأجهزة الذين يستخدمون وكيل Google OTA، مثل Google Pixel (OS_UPDATE_WITH_API_LEVEL_CHANGE وOS_UPDATE_WITHOUT_API_LEVEL_CHANGE) |
Android 13 (المستوى 33 لواجهة برمجة التطبيقات) والإصدارات الأحدث | Android 15 (المستوى 35 من واجهة برمجة التطبيقات) والإصدارات الأحدث |
تحديثات نظام التشغيل - المصنّعون الأصليون الآخرون للأجهزة (OS_UPDATE_WITH_API_LEVEL_CHANGE، OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) |
Android 17 (المستوى 37 من واجهة برمجة التطبيقات) والإصدارات الأحدث | Android 17 (المستوى 37 من واجهة برمجة التطبيقات) والإصدارات الأحدث |
الاعتبارات والقيود
يُرجى مراجعة الاعتبارات والقيود التالية قبل التخطيط لدمج UUC:
- معالج الإعداد الأولي: لا يتم فرض سياسات "التحكّم في المستخدم غير المُدار" عندما يكون الجهاز في معالج الإعداد الأولي. يمكن أن تحدث التحديثات المُهمّة من Google Play أو وكيل التحديث عبر الهواء (OTA) التابع للشركة المصنّعة للجهاز أثناء إعداد الجهاز.
- التحديثات المبكرة بعد الإعداد: قد لا تنطبق سياسات UUC على التحديثات التلقائية التي تبدأ فورًا بعد إعداد الجهاز، مثل التحديثات المبكرة لـ "خدمات Google Play"، قبل أن تصل السياسة إلى ADP.
- وحدات التحديثات عبر اتصال لاسلكي المجمّعة: يمكن أن تتضمّن تحديثات المصنّعين الأصليين للأجهزة عبر اتصال لاسلكي إصدارات محدّثة من وحدات Mainline وخدمات نظام Google. ويؤدي تثبيت تحديث عبر اتصال لاسلكي من المصنّع الأصلي للجهاز إلى تحديث هذه المكوّنات المجمّعة تلقائيًا.
- تحديثات نظام Google Play (Mainline): تتحكّم ميزة UUC في تحديث Mainline
كوحدة واحدة، لذا لا يمكن التحكّم في حزم Mainline الفردية
بشكل مستقل. يتحكّم UUC فقط في بدء مرحلة التنزيل: بعد بدء تنزيل Mainline، لا يمكن إيقافه. في حال تطبيق قاعدة
BLOCKبعد بدء عملية التنزيل، سيتم إكمال التحديث عند إعادة تشغيل الجهاز في المرة التالية. - التحديثات اليدوية خلال فترات الحظر: بالنسبة إلى تحديثات نظام Google Play (Mainline) وخدمات نظام Google، تمنع قاعدة
BLOCKالتحديثات التلقائية فقط. سيظل بإمكان المستخدمين تحديث هذه المكوّنات يدويًا حتى عندما تكون قاعدةBLOCKنشطة. وستتم معالجة هذا الأمر في إصدار مستقبلي. - التطبيقات المُستثناة: لا تدير ميزة UUC تحديثات تطبيق "متجر Google Play" أو تطبيق ADP.
فهم سياسات المحتوى غير المرغوب فيه الذي ينشئه المستخدمون
يتكوّن UnifiedUpdatePolicy من قائمة مع ترتيب من عناصر Rule. تحدّد كل قاعدة ما يلي:
- معرّف (
id) يحدّده حلّ "إدارة الخدمات الجوّالة للمؤسسات" (EMM) - هدف واحد أو أكثر لتحديث البرامج
- مراحل التقييم الاختيارية
- شرط واحد أو أكثر اختياري يحتوي على شروط مستندة إلى الوقت
- نتيجة تحدّد كيفية التعامل مع التحديث
تقييم القاعدة
When evaluating a pending update, ADP considers all rules that apply to that
update's target and stage, in the order they appear in rules. يختار ADP القاعدة الأولى التي يتم تقييم دالتها على أنّها true ويطبّق نتيجتها، مثل عبارة if-else متسلسلة. إذا لم يتم تقييم أي قاعدة على أنّها true، سيتولّى برنامج التحديث المسؤول عن المكوّن إدارة التحديث بشكل طبيعي.
معرّفات القواعد
تتطلّب كل قاعدة id يتألف من 64 حرفًا كحد أقصى يحدّده حلّ "إدارة الخدمات الجوّالة للمؤسسات" (EMM). يجب ألا يكون id فارغًا ويجب أن يكون فريدًا بين قواعد السياسة.
تعديل الأهداف
يجب أن تحدّد كل قاعدة قائمة غير فارغة من targets بدون تكرار.
إنّ تحديد أهداف متعددة في قاعدة واحدة يعادل تحديد قواعد متعددة
بالتسلسل، لكل منها هدف واحد، بالترتيب نفسه.
يوضّح الجدول التالي قيم targetType المسموح بها:
قيمة targetType |
الوصف |
|---|---|
OS_UPDATE_WITH_API_LEVEL_CHANGE |
تحديث لنظام التشغيل أصدرته الشركة المصنّعة الأصلية للجهاز يغيّر مستوى واجهة برمجة التطبيقات في Android على الجهاز (تحديث رئيسي لنظام التشغيل) |
OS_UPDATE_WITHOUT_API_LEVEL_CHANGE |
تحديث لنظام التشغيل أصدرته الشركة المصنّعة الأصلية للجهاز ولا يغيّر مستوى واجهة برمجة تطبيقات Android للجهاز (تحديثات بسيطة لنظام التشغيل وتحديثات الأمان) |
GOOGLE_PLAY_SYSTEM_UPDATE |
تحديثات نظام Google Play (Mainline) تتحكّم في تحديث Mainline ككيان واحد. |
GOOGLE_SYSTEM_SERVICES |
خدمات نظام Google التي يتم تحديثها من Google Play، مثل "خدمات Google Play" وAndroid System WebView |
SINGLE_APP |
اسم حزمة لخدمة على Google Play تابعة لـ "GOOGLE_SYSTEM_SERVICES"، مثل "com.google.android.webview". يتطلّب ذلك ضبط singleApp باستخدام packageName في التطبيق. |
مراحل التقييم
بالنسبة إلى الاستهدافات OS_UPDATE_WITH_API_LEVEL_CHANGE وOS_UPDATE_WITHOUT_API_LEVEL_CHANGE، يمكنك اختياريًا تحديد stages الذي يتم تقييم القاعدة فيه:
-
STAGE_DOWNLOAD: يتم تقييم القاعدة قبل تنزيل التحديث. STAGE_APPLY: يتم تقييم القاعدة قبل اتخاذ إجراء يطبّق التحديث، مثل بدء إعادة تشغيل تلقائية.
إذا كان الحقل stages فارغًا، يتم تقييم القاعدة في جميع المراحل.
ملاحظة: بالنسبة إلى أهداف GOOGLE_SYSTEM_SERVICES وSINGLE_APP وGOOGLE_PLAY_SYSTEM_UPDATE، يتم تجاهل المراحل.
الشرط
يحدّد predicate الشروط المستندة إلى الوقت التي تتطابق بموجبها القاعدة، مثل
أيام الأسبوع أو نافذة الوقت من اليوم (حسب دقة الساعة) أو نطاق تاريخ
التقويم في المنطقة الزمنية المحلية للجهاز أو مدة توفّر التحديث
للجهاز (بمضاعفات 24 ساعة).
يتم دمج جميع الشروط المحدّدة ضمن عبارة واحدة باستخدام عامل التشغيل المنطقي AND.
يتم دائمًا تقييم المسند الفارغ أو المحذوف على أنّه true. للاطّلاع على القائمة الكاملة لحقول الشروط والقيود المفروضة عليها، يُرجى مراجعة المستندات المرجعية Predicate.
عند ضبط فترات الوقت من اليوم (timeOfDayLowerBound وtimeOfDayUpperBound)، ضَع في اعتبارك قواعد التقييم التالية:
- حدود الساعة: يتم تقييم حدود الوقت من اليوم على أنّها
hh:00:00في المنطقة الزمنية المحلية للجهاز. يغلقtimeOfDayUpperBoundالنافذة في الساعة المحددة (على سبيل المثال، يغطي الحد الأدنى9والحد الأقصى17الفترة من09:00إلى17:00). - ترتيب الحدود الصالحة: عند ضبط كلا الحدَّين في القاعدة نفسها،
يجب أن يكون
timeOfDayUpperBoundأكبر منtimeOfDayLowerBound. إذا كانت قيمةtimeOfDayUpperBoundأقل من أو تساويtimeOfDayLowerBound، أو تم ضبطها على0(00:00)، يتم تقييم المسند على أنّهfalse. - النوافذ الزمنية في نهاية اليوم وخلال الليل: لتمديد نافذة زمنية إلى نهاية اليوم (
24:00)، يجب حذفtimeOfDayUpperBound. لتحديد نافذة ليلية تمتد إلى ما بعد منتصف الليل (على سبيل المثال، من22:00إلى04:00)، قسِّم النافذة إلى قاعدتَين متتاليتَين: قاعدة مسائية مع ضبطtimeOfDayLowerBoundفقط ({ "hours": 22 }) وقاعدة صباحية مع ضبطtimeOfDayUpperBoundفقط ({ "hours": 4 }، تستهدف اليوم التالي في حال ضبطdaysOfWeek).
النتائج
يحدّد outcome كيفية توجيه ADP لوكيل التحديث للمتابعة عندما يتم تقييم دالة قاعدة على أنّها true. يوضّح الجدول التالي قيم outcomeType المسموح بها:
قيمة outcomeType |
الوصف |
|---|---|
BLOCK |
يمنع تنزيل التحديث أو تطبيقه. بالنسبة إلى التحديثات التي يتم إجراؤها من خلال Google Play (GOOGLE_SYSTEM_SERVICES وSINGLE_APP وGOOGLE_PLAY_SYSTEM_UPDATE)، لا تؤثر السياسة BLOCK إلا في التحديثات التلقائية ولا تمنع التحديثات اليدوية التي يجريها المستخدم. بالنسبة إلى تحديثات نظام التشغيل من المصنّع الأصلي للجهاز، يمنع BLOCK التحديثات اليدوية والتلقائية. |
USER_PROMPT |
لا يتّخذ إجراء التحديث بدون موافقة المستخدم، ويطلب من المستخدم متابعة التحديث. |
FORCE |
يبدأ إجراء التحديث فورًا بدون موافقة المستخدم. عند التنزيل، ينزّل "FORCE" التحديث عبر الاتصال النشط بالشبكة (مثل شبكة Wi-Fi أو بيانات الجوّال، بما في ذلك أثناء التجوال). بالنسبة إلى تحديثات نظام التشغيل من المصنّع الأصلي للجهاز (OS_UPDATE_WITH_API_LEVEL_CHANGE وOS_UPDATE_WITHOUT_API_LEVEL_CHANGE)، عند تقييمها في STAGE_APPLY، يثبّت FORCE التحديث ويعيد تشغيل الجهاز. |
الحدّ الأقصى المسموح به للتأجيل
تسمح ميزة UUC بتأجيل التحديثات التي تؤدي إلى النتيجة BLOCK أو USER_PROMPT إلى أقصى فترة تأجيل لكل هدف تحديث. بعد أن يصبح التحديث متاحًا لفترة أطول من الحد الأقصى لفترة التأجيل، يتم إلغاء أي نتيجة BLOCK أو USER_PROMPT إلى الإعداد التلقائي، ويدير برنامج التحديث التحديث بشكل طبيعي.
يسرد الجدول التالي الحد الأقصى المسموح به للتأجيل حسب الهدف ووضع الإدارة:
| المجموعة المستهدَفة | تعديل الهدف | جهاز مُدار بالكامل | ملف العمل على جهاز مملوك للشركة |
|---|---|---|---|
| التحديثات التي لا تتضمّن تغييرات في مستوى واجهة برمجة التطبيقات | خدمات نظام Google (مثل WebView) | 5 أيام | 5 أيام |
| التحديثات التي لا تتضمّن تغييرات في مستوى واجهة برمجة التطبيقات | تحديثات نظام Google Play (Mainline) وتحديثات نظام المصنّع الأصلي للجهاز عبر شبكة غير سلكية (OTA) بدون تغيير مستوى واجهة برمجة التطبيقات (بما في ذلك رموز التصحيح الشهرية المُهمّة) | 25 يومًا | 25 يومًا |
| التحديثات التي تتضمّن تغييرات في مستوى واجهة برمجة التطبيقات | تحديثات النظام عبر شبكة غير سلكية (OTA) من المصنّع الأصلي للجهاز مع تغيير مستوى واجهة برمجة التطبيقات | 180 يومًا | 90 يومًا |
أولوية systemUpdate
قبل إضافة unifiedUpdatePolicy إلى سياسة حالية، يُرجى مراجعة إعدادات
systemUpdate وإعادة إنشاء السلوك المطلوب باستخدام قواعد "التحكّم في المحتوى غير المرغوب فيه". على سبيل المثال، لمنع تحديثات نظام التشغيل خارج ساعات العمل، يمكنك استخدام قاعدة BLOCK مثل القاعدة الواردة في حظر تحديثات نظام التشغيل الرئيسية خلال ساعات العمل.
يختلف سلوك الأولوية هذا عن وحدات التحكّم بسياسة الجهاز (DPC) المخصّصة التي تستخدم حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات لإدارة Android (AMAPI)، حيث
يكون لإعدادات SystemUpdatePolicy في نظام Android المفتوح المصدر (AOSP) الأولوية على إعدادات "التحديثات غير المقيَّدة" (UUC) في ما يتعلّق بالتحديثات عبر اتصال لاسلكي التي يوفّرها المصنّعون الأصليون للأجهزة.
لمعرفة التفاصيل، يُرجى الاطّلاع على أولوية SystemUpdatePolicy في مشروع Android المفتوح المصدر (AOSP). إذا كانت هناك خدمة إدارة تحديثات خاصة بالمصنّع الأصلي للجهاز (مثل حلّ OTA للمؤسسات) نشطة على الجهاز، تكون لهذه الخدمة أيضًا الأولوية على UUC لتحديثات نظام التشغيل من المصنّع الأصلي للجهاز (OS_UPDATE_WITH_API_LEVEL_CHANGE وOS_UPDATE_WITHOUT_API_LEVEL_CHANGE).
ضبط سياسة UUC
يمكنك ضبط حقل unifiedUpdatePolicy واسترداده ومحوه في مورد السياسة، والتحقّق من امتثال الأجهزة التي تستخدم السياسة.
ضبط سياسة UUC
لضبط ميزة UUC، أضِف عنصر unifiedUpdatePolicy إلى السياسة. لتطبيق سياسة UUC بدون تغيير الإعدادات الأخرى لسياسة حالية، يمكنك استدعاء enterprises.policies.patch باستخدام updateMask=unifiedUpdatePolicy:
PATCH https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}?updateMask=unifiedUpdatePolicy
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Block Policy",
"targets": [
{
"targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
}
],
"predicate": {
"daysOfWeek": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
],
"timeOfDayLowerBound": { "hours": 9 },
"timeOfDayUpperBound": { "hours": 17 }
},
"outcome": {
"outcomeType": "BLOCK"
}
}
]
}
}
يتم تطبيق السياسة المعدَّلة على جميع الأجهزة التي تستخدمها. يقيّم ADP القواعد على كل جهاز عندما يتوفّر تحديث لمكوّن خاضع للتحكّم.
استرداد سياسة UUC
لقراءة قواعد "التحكّم في الاستخدام غير المقصود" التي تم ضبطها، يمكنك استدعاء
enterprises.policies.get وفحص حقل
unifiedUpdatePolicy في السياسة التي تم إرجاعها:
GET https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}
محو سياسة UUC
لإزالة جميع قواعد "المحتوى الذي يحمّله المستخدمون" من سياسة معيّنة، يمكنك طلب
enterprises.policies.patch باستخدام
updateMask=unifiedUpdatePolicy ونص طلب لا يتضمّن
unifiedUpdatePolicy:
PATCH https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}?updateMask=unifiedUpdatePolicy
{}
أمثلة على ضبط السياسات
توضّح الأمثلة التالية عنصر unifiedUpdatePolicy للسيناريوهات الشائعة. طبِّقها باستخدام
enterprises.policies.patch على النحو الموضّح في
ضبط سياسة UUC. تتوفّر السيناريوهات نفسها كرموز برمجية بلغتَي Kotlin وJava في مقالة ضبط عناصر التحكّم الموحّدة في التحديثات باستخدام حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات لإدارة Android.
حظر تحديثات نظام التشغيل الرئيسية خلال ساعات العمل
تحظر القاعدة التالية تحديثات نظام التشغيل الرئيسية (OS_UPDATE_WITH_API_LEVEL_CHANGE)
من الساعة 09:00 إلى الساعة 17:00، من الاثنين إلى الجمعة:
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Block Policy",
"targets": [
{
"targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
}
],
"predicate": {
"daysOfWeek": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
],
"timeOfDayLowerBound": { "hours": 9 },
"timeOfDayUpperBound": { "hours": 17 }
},
"outcome": {
"outcomeType": "BLOCK"
}
}
]
}
}
فرض تحديثات نظام التشغيل حسب عمر التحديث
تفرض القاعدة التالية تحديثات نظام التشغيل الرئيسية التي كانت متاحة للجهاز لمدة تصل إلى 7 أيام (604800s):
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Force Policy",
"targets": [
{
"targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
}
],
"predicate": {
"updateAgeUpperBound": "604800s"
},
"outcome": {
"outcomeType": "FORCE"
}
}
]
}
}
حظر التحديثات لتطبيق واحد من الخدمات التابعة لنظام التشغيل من Google
للتحكّم في تطبيق معيّن ضمن خدمات نظام Google، مثل
Android System WebView (com.google.android.webview)، اضبط targetType على
SINGLE_APP وقدِّم packageName للتطبيق في singleApp. تحظر القاعدة التالية تحديثات WebView من الساعة 9:00 صباحًا حتى الساعة 5:00 مساءً، من الاثنين إلى الجمعة:
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Block Webview Policy",
"targets": [
{
"targetType": "SINGLE_APP",
"singleApp": {
"packageName": "com.google.android.webview"
}
}
],
"predicate": {
"daysOfWeek": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
],
"timeOfDayLowerBound": { "hours": 9 },
"timeOfDayUpperBound": { "hours": 17 }
},
"outcome": {
"outcomeType": "BLOCK"
}
}
]
}
}
دمج قواعد متعددة في جميع أهداف التعديل
بما أنّه يتم تقييم القواعد بالترتيب، يمكنك الجمع بين قواعد متعددة لحظر التحديثات خلال فترات زمنية محدّدة وفرض التحديثات خارج هذه الفترات.
يطبّق المثال التالي قاعدتَين متتاليتَين على الفئات الأربع المستهدَفة (OS_UPDATE_WITH_API_LEVEL_CHANGE وOS_UPDATE_WITHOUT_API_LEVEL_CHANGE وGOOGLE_SYSTEM_SERVICES وGOOGLE_PLAY_SYSTEM_UPDATE):
- حظر جميع التحديثات خلال ساعات العمل (من الاثنين إلى الجمعة، من الساعة 09:00 إلى الساعة 17:00)
- خارج ساعات العمل، يمكنك فرض التحديثات التي كانت متاحة لمدة تصل إلى 7 أيام.
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Block Policy - rule1",
"targets": [
{ "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE" },
{ "targetType": "OS_UPDATE_WITHOUT_API_LEVEL_CHANGE" },
{ "targetType": "GOOGLE_SYSTEM_SERVICES" },
{ "targetType": "GOOGLE_PLAY_SYSTEM_UPDATE" }
],
"predicate": {
"daysOfWeek": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
],
"timeOfDayLowerBound": { "hours": 9 },
"timeOfDayUpperBound": { "hours": 17 }
},
"outcome": {
"outcomeType": "BLOCK"
}
},
{
"id": "Force Policy - rule2",
"targets": [
{ "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE" },
{ "targetType": "OS_UPDATE_WITHOUT_API_LEVEL_CHANGE" },
{ "targetType": "GOOGLE_SYSTEM_SERVICES" },
{ "targetType": "GOOGLE_PLAY_SYSTEM_UPDATE" }
],
"predicate": {
"updateAgeUpperBound": "604800s"
},
"outcome": {
"outcomeType": "FORCE"
}
}
]
}
}
حظر التحديثات حتى تاريخ معيّن في التقويم
يمكنك استخدام dateLowerBound وdateUpperBound لتقييد التحديثات أو السماح بها
ضمن نطاق زمني محدّد في التقويم في المنطقة الزمنية المحلية للجهاز. تحظر القاعدة التالية التحديثات لأهداف الفئات الأربعة حتى 14 مارس 2026:
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "block_until_date",
"targets": [
{ "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE" },
{ "targetType": "OS_UPDATE_WITHOUT_API_LEVEL_CHANGE" },
{ "targetType": "GOOGLE_SYSTEM_SERVICES" },
{ "targetType": "GOOGLE_PLAY_SYSTEM_UPDATE" }
],
"predicate": {
"dateUpperBound": { "year": 2026, "month": 3, "day": 14 }
},
"outcome": {
"outcomeType": "BLOCK"
}
}
]
}
}