توفّر "عناصر التحكّم الموحّدة في التحديثات" (UUC) لمشرفي تكنولوجيا المعلومات طريقة واحدة ومتّسقة للتحكّم في وقت تنزيل تحديثات البرامج وتطبيقها على أجهزة Android المملوكة للشركة، وذلك لكي لا تؤدي التحديثات إلى تعطيل العمليات التجارية.
باستخدام سياسة واحدة من "عناصر التحكّم في التحديثات الموحّدة"، يمكنك التحكّم في تحديثات مكوّنات البرامج التالية:
- تحديثات نظام التشغيل التي تصدرها الشركة المصنّعة للجهاز (المصنّع الأصلي للجهاز)، بما في ذلك تحديثات نظام التشغيل الرئيسية وتحديثات نظام التشغيل البسيطة وتحديثات الأمان
- تحديثات نظام Google Play (Mainline)
- خدمات نظام Google، مثل "خدمات Google Play" وAndroid System WebView، إما كمجموعة أو تطبيق واحد في كل مرة
يمكنك تحديد قواعد UUC في حقل unifiedUpdatePolicy لمورد
Policy. تطبيق Android Device Policy (ADP) هو
نقطة اتخاذ القرار المركزية على الجهاز في ما يتعلّق بـ UUC.
المتطلبات الأساسية
قبل ضبط ميزة UUC، تأكَّد من استيفاء المتطلبات التالية:
- يمكن لحلّ "إدارة الخدمات الجوّالة للمؤسسات" (EMM) إنشاء السياسات وتعديلها لمؤسسة معيّنة.
- الأجهزة مملوكة للشركة، ويتم ضبطها إما على أنّها أجهزة مُدارة بالكامل أو باستخدام ملف عمل على جهاز مملوك للشركة. لا يتوفّر هذا الإعداد على الأجهزة المملوكة شخصيًا.
- تستوفي الأجهزة الحدّ الأدنى لإصدار 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:
- معالج الإعداد الأولي: لا يتم فرض سياسات 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) - أهداف تحديث برامج واحدة أو أكثر
- مراحل التقييم الاختيارية
- عبارات اختيارية واحدة أو أكثر تحتوي على شروط مستندة إلى الوقت
- نتيجة تحدّد كيفية التعامل مع التعديل
تقييم القاعدة
عند تقييم تحديث في انتظار المراجعة، تأخذ ADP في الاعتبار جميع القواعد التي تنطبق على هدف التحديث ومرحلته، بالترتيب الذي تظهر به في 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.
النتائج
يحدّد outcome كيف يوجّه ADP وكيل التحديث للمتابعة عندما يتم تقييم دالة القاعدة على أنّها true. يوضّح الجدول التالي قيم outcomeType المسموح بها:
قيمة outcomeType |
الوصف |
|---|---|
BLOCK |
يمنع تنزيل التحديث أو تطبيقه. بالنسبة إلى التحديثات التي يتم إجراؤها من خلال Google Play (GOOGLE_SYSTEM_SERVICES وSINGLE_APP وGOOGLE_PLAY_SYSTEM_UPDATE)، لا تؤثر السياسة BLOCK إلا في التحديثات التلقائية ولا تمنع التحديثات اليدوية التي يجريها المستخدم. بالنسبة إلى تحديثات نظام التشغيل من المصنّع الأصلي للجهاز، يمنع BLOCK التحديثات اليدوية والتلقائية. |
USER_PROMPT |
لا يتّخذ إجراء التحديث بدون موافقة المستخدم، ويطلب من المستخدم متابعة التحديث. |
FORCE |
يبدأ الإجراء فورًا للمرحلة التي تم تقييمها، مثل تنزيل التحديث أو إعادة تشغيل الجهاز لتطبيقه. |
الحدّ الأقصى المسموح به للتأجيل
تسمح ميزة UUC بتأجيل التحديثات التي تؤدي إلى النتيجة BLOCK أو USER_PROMPT لمدة تصل إلى
الحد الأقصى لفترة التأجيل لكل هدف تحديث. بعد أن يصبح التحديث متاحًا لفترة أطول من الحد الأقصى لفترة التأجيل، يتم إلغاء أي نتيجة BLOCK أو USER_PROMPT إلى الإعداد التلقائي، ويدير برنامج التحديث التحديث بشكل طبيعي.
يسرد الجدول التالي الحد الأقصى للتأجيل حسب الهدف ووضع الإدارة:
| المجموعة المستهدَفة | تعديل الهدف | جهاز مُدار بالكامل | ملف العمل على جهاز مملوك للشركة |
|---|---|---|---|
| التحديثات بدون تغييرات في مستوى واجهة برمجة التطبيقات | خدمات نظام Google (مثل WebView) | 5 أيام | 5 أيام |
| التحديثات بدون تغييرات في مستوى واجهة برمجة التطبيقات | تحديثات نظام Google Play (Mainline) وتحديثات نظام المصنّع الأصلي للجهاز عبر شبكة غير سلكية بدون تغيير مستوى واجهة برمجة التطبيقات (بما في ذلك رموز التصحيح الشهرية المُهمّة) | 25 يومًا | 25 يومًا |
| التحديثات التي تتضمّن تغييرات في مستوى واجهة برمجة التطبيقات | تحديثات النظام عبر شبكة غير سلكية (OTA) من المصنّع الأصلي للجهاز مع تغيير مستوى واجهة برمجة التطبيقات | 180 يومًا | 90 يومًا |
أولوية systemUpdate
قبل إضافة unifiedUpdatePolicy إلى سياسة حالية، يُرجى مراجعة إعدادات
systemUpdate وإعادة إنشاء السلوك المطلوب باستخدام قواعد "التحكّم في استخدام المستخدم". على سبيل المثال، لمنع تحديثات نظام التشغيل خارج ساعات العمل، يمكنك استخدام قاعدة BLOCK مثل القاعدة الواردة في حظر تحديثات نظام التشغيل الرئيسية خلال ساعات العمل.
يختلف سلوك الأولوية هذا عن وحدات التحكّم بسياسة الجهاز (DPC) المخصّصة التي تستخدم حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات لإدارة Android (AMAPI)، حيث
يكون لإعداد SystemUpdatePolicy في نظام Android المفتوح المصدر (AOSP) الأولوية على إعداد UUC في ما يتعلّق بالتحديثات عبر اتصال لاسلكي التي يوفّرها المصنّعون الأصليون للأجهزة.
لمعرفة التفاصيل، يُرجى الاطّلاع على أولوية SystemUpdatePolicy في مشروع Android المفتوح المصدر (AOSP).
ضبط سياسة 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
لقراءة قواعد UUC التي تم ضبطها، يمكنك استدعاء
enterprises.policies.get وفحص
حقل unifiedUpdatePolicy للسياسة التي تم إرجاعها:
GET https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}
محو سياسة UUC
لإزالة جميع قواعد 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"
}
}
]
}
}