«کنترلهای بهروزرسانی یکپارچه» (UUC) روشی واحد و منسجم برای کنترل زمان بارگیری و اعمال بهروزرسانیهای نرمافزار در دستگاههای Android تحت مالکیت شرکت در اختیار سرپرستان فناوری اطلاعات قرار میدهد تا بهروزرسانیها باعث اختلال در فعالیتهای تجاری نشود.
با یک خطمشی UUC، میتوانید بهروزرسانیهای مؤلفههای نرمافزاری زیر را کنترل کنید:
- بهروزرسانیهای سیستمعامل که توسط سازنده دستگاه (OEM) صادر میشود، ازجمله بهروزرسانیهای اصلی سیستمعامل و بهروزرسانیهای امنیتی و سیستمعامل جزئی.
- بهروزرسانیهای سیستم Google Play (Mainline).
- سرویسهای سیستم Google، مثل خدمات Google Play و Android System WebView، بهصورت گروهی یا یک برنامه در هر بار.
قوانین «محتوای بارگذاریشده توسط کاربر» را در فیلد unifiedUpdatePolicy منبع Policy تعریف میکنید. برنامه Android Device Policy (ADP) نقطه تصمیمگیری مرکزی دروندستگاهی برای UUC است.
پیشنیازها
قبلاز پیکربندی UUC، شرایط لازم زیر را تأیید کنید:
- راهکار EMM شما میتواند برای یک سازمان خطمشی ایجاد و بهروز کند.
- دستگاهها متعلق به شرکت هستند و بهعنوان دستگاه کاملاً مدیریتشده یا با نمایه کاری در دستگاه متعلق به شرکت پیکربندی شدهاند. UUC در دستگاههای شخصی پشتیبانی نمیشود.
- دستگاهها حداقل نسخه Android پشتیبانیشده را برای هر هدف بهروزرسانی که میخواهید کنترل کنید داشته باشند، همانطور که در جدول زیر نشان داده شده است:
| بهروزرسانی هدف | کاملاً مدیریتشده (مالک دستگاه) | نمایه کاری در دستگاههای متعلق به شرکت (COPE) |
|---|---|---|
خدمات سیستم Google Play (GOOGLE_SYSTEM_SERVICES، SINGLE_APP) |
Android 13 (سطح میانای برنامهسازی کاربردی ۳۳) و بالاتر | Android 15 (سطح میانای برنامهسازی کاربردی ۳۵) و بالاتر |
بهروزرسانیهای سیستم Google Play / Mainline (GOOGLE_PLAY_SYSTEM_UPDATE) |
Android 13 (سطح میانای برنامهسازی کاربردی ۳۳) و بالاتر | Android 15 (سطح میانای برنامهسازی کاربردی ۳۵) و بالاتر |
بهروزرسانیهای سیستمعامل — سازندگان اصلی تجهیزات که از عامل Google OTA استفاده میکنند، مانند Google Pixel (OS_UPDATE_WITH_API_LEVEL_CHANGE، OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) |
Android 13 (سطح میانای برنامهسازی کاربردی ۳۳) و بالاتر | Android 15 (سطح میانای برنامهسازی کاربردی ۳۵) و بالاتر |
بهروزرسانیهای سیستمعامل — سایر سازندگان اصلی محصول (OS_UPDATE_WITH_API_LEVEL_CHANGE، OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) |
Android 17 (سطح API ۳۷) و بالاتر | Android 17 (سطح API ۳۷) و بالاتر |
ملاحظات و محدودیتها
قبلاز برنامهریزی برای ادغام UUC، ملاحظات و محدودیتهای زیر را مرور کنید:
- دستیار راهاندازی اولیه: خطمشیهای UUC تا زمانی که دستگاه در دستیار راهاندازی اولیه است اجرا نمیشوند. بهروزرسانیهای مهم از Google Play یا عامل OEM OTA میتواند درحین راهاندازی دستگاه انجام شود.
- بهروزرسانیهای اولیه پساز راهاندازی: ممکن است خطمشیهای UUC برای بهروزرسانیهای خودکاری که بلافاصله پساز راهاندازی دستگاه شروع میشوند (مثل بهروزرسانیهای اولیه «خدمات Google Play» قبلاز اینکه خطمشی به ADP برسد) اعمال نشود.
- مدولهای OTA بستهای: بهروزرسانیهای OTA سازنده اصلی تجهیزات میتواند حاوی نسخههای بهروزشده مدولهای Mainline و خدمات سیستم Google باشد. نصب بهروزرسانی OTA سازنده اصلی محصول بهطور خودکار آن مؤلفههای بستهبندیشده را بهروز میکند.
- بهروزرسانیهای سیستم Google Play (خط اصلی): UUC بهروزرسانی «خط اصلی» را بهعنوان یک واحد تکی کنترل میکند، بنابراین بستههای «خط اصلی» را نمیتوان بهطور مستقل کنترل کرد. 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 با حداکثر ۶۴ نویسه نیاز دارد که راهکار EMM شما
تعریف میکند. id نباید خالی باشد و باید در بین قوانین خطمشی منحصربهفرد باشد.
بهروزرسانی هدفها
هر قانون باید فهرست غیرخالی از targets بدون تکرار را مشخص کند.
مشخص کردن چندین هدف در یک قانون معادل تعریف چندین قانون بهصورت متوالی است که هرکدام یک هدف واحد دارند و به همان ترتیب هستند.
جدول زیر مقادیر targetType پشتیبانیشده را شرح میدهد:
بهارزش targetType |
شرح |
|---|---|
OS_UPDATE_WITH_API_LEVEL_CHANGE |
بهروزرسانی سیستمعامل که توسط OEM صادر شده است و سطح میانای برنامهسازی کاربردی Android دستگاه را تغییر میدهد (بهروزرسانی اصلی سیستمعامل). |
OS_UPDATE_WITHOUT_API_LEVEL_CHANGE |
بهروزرسانی سیستمعامل که توسط OEM صادر شده است و سطح میانای برنامهسازی کاربردی 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 شرایط مبتنی بر زمان را تعریف میکند که تحت آن قانون مطابقت دارد—مانند
روزهای هفته، پنجره زمانی روز (با جزئیات ساعت)، محدوده تاریخ تقویم
در منطقه زمانی محلی دستگاه، یا مدت زمانی که بهروزرسانی برای دستگاه دردسترس بوده است (بهصورت مضربی از ۲۴ ساعت).
همه شرایط تنظیمشده در یک گزاره بااستفاده از AND منطقی ترکیب میشوند.
گزاره خالی یا حذفشده همیشه به true ارزیابی میشود. برای مشاهده فهرست کامل
فیلدهای گزاره و محدودیتهای آنها، به Predicate
اسناد مرجع مراجعه کنید.
نتایج
outcome مشخص میکند که ADP چگونه به عامل بهروزرسانی دستور میدهد تا زمانی که گزاره قانون به true ارزیابی میشود، ادامه دهد. جدول زیر مقادیر outcomeType پشتیبانیشده را شرح میدهد:
بهارزش outcomeType |
شرح |
|---|---|
BLOCK |
از بارگیری یا اعمال بهروزرسانی جلوگیری میکند. برای بهروزرسانیهایی که ازطریق Google Play ارائه میشوند (GOOGLE_SYSTEM_SERVICES، SINGLE_APP، GOOGLE_PLAY_SYSTEM_UPDATE)، BLOCK فقط بر بهروزرسانیهای خودکار تأثیر میگذارد و مانع بهروزرسانیهای دستی توسط کاربر نمیشود. برای بهروزرسانیهای سیستمعامل OEM، BLOCK از بهروزرسانیهای دستی و خودکار جلوگیری میکند. |
USER_PROMPT |
بدون رضایت کاربر اقدام به بهروزرسانی نمیکند و از کاربر میخواهد برای بهروزرسانی اقدام کند. |
FORCE |
فوراً اقدام مربوط به مرحله ارزیابیشده را آغاز میکند، مثلاً بارگیری بهروزرسانی یا بازراهاندازی دستگاه برای اعمال آن. |
حداکثر حد تعویق
UUC امکان بهتعویق انداختن بهروزرسانیها با نتیجه BLOCK یا USER_PROMPT را تا حداکثر دوره تعویق برای هر هدف بهروزرسانی فراهم میکند. وقتی بهروزرسانیای بیشتر از حداکثر دوره تعویقش دردسترس باشد، هر نتیجه BLOCK یا USER_PROMPT به پیشفرض لغو میشود و کارخواه بهروزرسانی، بهروزرسانی را بهطور عادی مدیریت میکند.
جدول زیر حداکثر محدودیتهای تعویق را براساس هدف و حالت مدیریت فهرست میکند:
| گروه هدف | بهروزرسانی هدف | دستگاه کاملاً مدیریتشده | نمایه کاری در دستگاه متعلق به شرکت |
|---|---|---|---|
| بهروزرسانیهای بدون تغییر سطح میانای برنامهسازی کاربردی | خدمات سیستم Google (مانند WebView) | ۵ روز | ۵ روز |
| بهروزرسانیهای بدون تغییر سطح میانای برنامهسازی کاربردی | بهروزرسانیهای سیستم Google Play (خط اصلی) و بهروزرسانیهای سیستم OEM OTA بدون تغییر سطح میانای برنامهسازی کاربردی (ازجمله وصلههای ماهانه مهم) | ۲۵ روز | ۲۵ روز |
| بهروزرسانیها با تغییرات سطح میانای برنامهسازی کاربردی | بهروزرسانیهای سیستم OTA سازنده اصلی محصول با تغییر سطح میانای برنامهسازی کاربردی | ۱۸۰ روز | ۹۰ روز |
اولویت systemUpdate
قبلاز افزودن unifiedUpdatePolicy به خطمشی موجود، تنظیمات
systemUpdate آن را مرور کنید و رفتار موردنیازتان را با قوانین UUC بازآفرینی کنید. برای مثال، برای اینکه بهروزرسانیهای سیستمعامل در ساعات کاری انجام نشود، از قانون BLOCK مانند قانون موجود در مسدود کردن بهروزرسانیهای اصلی سیستمعامل در ساعات کاری استفاده کنید.
این رفتار اولویت با «کنترلکنندههای خطمشی دستگاه» سفارشی که از «کیت توسعه نرمافزار AMAPI» استفاده میکنند متفاوت است، که در آن
SystemUpdatePolicy AOSP بر UUC برای بهروزرسانیهای OTA سازنده اصلی تجهیزات اولویت دارد.
برای جزئیات،
اولویت SystemUpdatePolicy در AOSP را ببینید.
پیکربندی خطمشی UUC
میتوانید فیلد unifiedUpdatePolicy را در منبع خطمشی تنظیم، بازیابی، و پاک کنید و مطابقت دستگاه را برای دستگاههایی که از خطمشی استفاده میکنند بررسی کنید.
تنظیم خطمشی «محتوای بارگذاریشده توسط کاربر»
برای پیکربندی UUC، شیء unifiedUpdatePolicy را به خطمشی اضافه کنید. برای اعمال خطمشی «محتوای تولیدشده توسط کاربر» بدون تغییر دادن تنظیمات دیگر
خطمشی موجود، 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 در
پیکربندی کنترلهای بهروزرسانی یکپارچه با کیت توسعه نرمافزار AMAPI دردسترس است.
مسدود کردن بهروزرسانیهای اصلی سیستمعامل درطول ساعت کاری
قانون زیر بهروزرسانیهای اصلی سیستمعامل (OS_UPDATE_WITH_API_LEVEL_CHANGE)
را از ساعت ۹:۰۰ تا ۱۷:۰۰، از دوشنبه تا جمعه مسدود میکند:
{
"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"
}
}
]
}
}
اجباری کردن بهروزرسانیهای سیستمعامل براساس سن بهروزرسانی
قانون زیر بهروزرسانیهای اصلی سیستمعامل را که تا ۷ روز برای دستگاه دردسترس بودهاند اجباری میکند (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 ارائه دهید. قانون زیر
بهروزرسانیهای «وبنما» را از ساعت ۹:۰۰ تا ۱۷:۰۰، از دوشنبه تا جمعه مسدود میکند:
{
"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) اعمال میکند:
- مسدود کردن همه بهروزرسانیها درطول ساعت کاری (دوشنبه تا جمعه، ۹:۰۰ تا ۱۷:۰۰).
- خارج از ساعت کاری، بهروزرسانیهایی را که تا ۷ روز دردسترس بودهاند اجباری کنید.
{
"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 برای محدود کردن یا مجاز کردن بهروزرسانیها
در محدوده تاریخ تقویم خاصی در منطقه زمانی محلی دستگاه استفاده کنید. قانون زیر بهروزرسانیهای چهار هدف دستهای را تا ۱۴ مارس ۲۰۲۶ مسدود میکند:
{
"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"
}
}
]
}
}