통합 업데이트 제어 (UUC)는 IT 관리자에게 회사 소유 Android 기기에서 소프트웨어 업데이트가 다운로드되고 적용되는 시점을 제어하는 일관된 단일 방법을 제공하므로 업데이트가 비즈니스 운영을 방해하지 않습니다.
하나의 UUC 정책으로 다음 소프트웨어 구성요소의 업데이트를 제어할 수 있습니다.
- 주요 OS 업데이트와 마이너 OS 및 보안 업데이트를 포함하여 기기 제조업체 (OEM)에서 제공하는 OS 업데이트입니다.
- Google Play 시스템 업데이트 (Mainline)
- Google 시스템 서비스(예: Google Play 서비스 및 Android 시스템 WebView)를 그룹으로 또는 한 번에 하나의 앱으로 업데이트합니다.
Policy 리소스의 unifiedUpdatePolicy 필드에서 UUC 규칙을 정의합니다. Android 기기 정책 (ADP) 앱은 UUC의 중앙 온디바이스 결정 지점입니다.
기본 요건
UUC를 구성하기 전에 다음 요구사항을 확인하세요.
- EMM 솔루션은 기업의 정책을 만들고 업데이트할 수 있습니다.
- 기기는 회사 소유이며 완전 관리형 기기 또는 회사 소유 기기의 직장 프로필로 구성됩니다. UUC는 개인 소유 기기에서 지원되지 않습니다.
- 기기가 제어하려는 각 업데이트 대상에 대해 지원되는 최소 Android 버전을 충족합니다(다음 표 참고).
| 타겟 업데이트 | 완전 관리형 (기기 소유자) | 회사 소유 기기의 직장 프로필 (COPE) |
|---|---|---|
Google Play 시스템 서비스 (GOOGLE_SYSTEM_SERVICES, SINGLE_APP) |
Android 13(API 수준 33) 및 이후 버전 | Android 15 (API 수준 35) 이상 |
Google Play 시스템 업데이트/Mainline (GOOGLE_PLAY_SYSTEM_UPDATE) |
Android 13(API 수준 33) 및 이후 버전 | Android 15 (API 수준 35) 이상 |
OS 업데이트 — Google Pixel (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE)과 같이 Google OTA 에이전트를 사용하는 OEM |
Android 13(API 수준 33) 및 이후 버전 | Android 15 (API 수준 35) 이상 |
OS 업데이트 — 기타 OEM (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) |
Android 17 (API 수준 37) 이상 | Android 17 (API 수준 37) 이상 |
고려사항 및 제한사항
UUC 통합을 계획하기 전에 다음 고려사항과 제한사항을 검토하세요.
- 초기 설정 마법사: 기기가 초기 설정 마법사에 있는 동안에는 UUC 정책이 시행되지 않습니다. 기기 설정 중에 Google Play 또는 OEM OTA 에이전트의 중요 업데이트가 발생할 수 있습니다.
- 설정 후 조기 업데이트: 정책이 ADP에 도달하기 전에 Google Play 서비스의 조기 업데이트와 같이 기기 설정 직후에 시작되는 자동 업데이트에는 UUC 정책이 적용되지 않을 수 있습니다.
- 번들 OTA 모듈: OEM OTA 업데이트에는 Mainline 모듈 및 Google 시스템 서비스의 업데이트된 버전이 포함될 수 있습니다. OEM OTA 업데이트를 설치하면 번들 구성요소가 자동으로 업데이트됩니다.
- Google Play 시스템 업데이트 (Mainline): UUC는 Mainline 업데이트를 단일 단위로 제어하므로 개별 Mainline 패키지를 독립적으로 제어할 수 없습니다. UUC는 다운로드 단계의 시작만 제어합니다. Mainline 다운로드가 시작되면 중지할 수 없습니다. 다운로드가 시작된 후
BLOCK규칙이 적용되면 다음 기기 재부팅 시 업데이트가 완료됩니다. - 차단 기간 중 수동 업데이트: Google Play 시스템 업데이트(Mainline) 및 Google 시스템 서비스의 경우
BLOCK규칙은 자동 업데이트만 차단합니다.BLOCK규칙이 활성 상태인 경우에도 사용자는 이러한 구성요소를 수동으로 업데이트할 수 있습니다. 이 문제는 향후 출시에서 해결될 예정입니다. - 예외 애플리케이션: UUC는 Google Play 스토어 앱 또는 ADP 앱의 업데이트를 관리하지 않습니다.
UUC 정책 이해하기
UnifiedUpdatePolicy는 순서가 지정된 Rule 객체 목록으로 구성됩니다. 각 규칙은 다음을 지정합니다.
- EMM 솔루션에서 정의한 식별자 (
id) - 하나 이상의 소프트웨어 업데이트 대상
- 단계를 선택적으로 포함할 수 있습니다.
- 시간 기반 조건을 포함하는 하나 이상의 선택적 조건자
- 업데이트 처리 방식을 결정하는 결과
규칙 평가
대기 중인 업데이트를 평가할 때 ADP는 해당 업데이트의 대상 및 단계에 적용되는 모든 규칙을 rules에 표시되는 순서대로 고려합니다. ADP는 조건자가 true로 평가되는 첫 번째 규칙을 선택하고 연결된 if-else 문과 같이 결과를 적용합니다. true로 평가되는 규칙 조건자가 없으면 구성요소를 담당하는 업데이트 클라이언트가 업데이트를 정상적으로 관리합니다.
규칙 식별자
각 규칙에는 EMM 솔루션에서 정의하는 최대 64자(영문 기준)의 id가 필요합니다. id은 비워 둘 수 없으며 정책 규칙 중에서 고유해야 합니다.
타겟 업데이트
각 규칙은 중복 없이 비어 있지 않은 targets 목록을 지정해야 합니다.
단일 규칙에 여러 대상을 지정하는 것은 동일한 순서로 각각 단일 대상이 있는 여러 규칙을 순서대로 정의하는 것과 같습니다.
다음 표에서는 지원되는 targetType 값을 설명합니다.
targetType 값 |
설명 |
|---|---|
OS_UPDATE_WITH_API_LEVEL_CHANGE |
기기의 Android API 수준을 변경하는 OEM에서 제공하는 OS 업데이트 (주요 OS 업데이트)입니다. |
OS_UPDATE_WITHOUT_API_LEVEL_CHANGE |
기기의 Android API 수준을 변경하지 않는 OEM에서 제공하는 OS 업데이트입니다 (부 OS 및 보안 업데이트). |
GOOGLE_PLAY_SYSTEM_UPDATE |
Google Play 시스템 업데이트 (Mainline) Mainline 업데이트를 단일 항목으로 제어합니다. |
GOOGLE_SYSTEM_SERVICES |
Google Play 서비스 및 Android 시스템 WebView와 같이 Google Play에서 업데이트된 Google 시스템 서비스 |
SINGLE_APP |
GOOGLE_SYSTEM_SERVICES에 속하는 Google Play 서비스의 패키지 이름입니다(예: com.google.android.webview). 앱의 packageName로 singleApp를 설정해야 합니다. |
평가 단계
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는 규칙의 조건자가 true로 평가될 때 ADP가 업데이트 에이전트에게 진행 방법을 지시하는 방법을 지정합니다. 다음 표에서는 지원되는 outcomeType 값을 설명합니다.
outcomeType 값 |
설명 |
|---|---|
BLOCK |
업데이트가 다운로드되거나 적용되지 않습니다. Google Play (GOOGLE_SYSTEM_SERVICES, SINGLE_APP, GOOGLE_PLAY_SYSTEM_UPDATE)를 통해 제공되는 업데이트의 경우 BLOCK는 자동 업데이트에만 영향을 미치며 사용자의 수동 업데이트를 차단하지 않습니다. OEM OS 업데이트의 경우 BLOCK는 수동 및 자동 업데이트를 모두 차단합니다. |
USER_PROMPT |
사용자 동의 없이 업데이트 작업을 실행하지 않으며 사용자에게 업데이트를 진행하라는 메시지를 표시합니다. |
FORCE |
업데이트 다운로드 또는 기기 재부팅과 같이 평가된 단계에 대한 작업을 즉시 시작하여 적용합니다. |
최대 연기 한도
UUC를 사용하면 각 업데이트 대상의 최대 지연 기간까지 BLOCK 또는 USER_PROMPT 결과로 업데이트를 지연할 수 있습니다. 업데이트가 최대 연기 기간보다 오래 제공되면 BLOCK 또는 USER_PROMPT 결과가 기본값으로 재정의되고 업데이트 클라이언트가 업데이트를 정상적으로 관리합니다.
다음 표에는 타겟 및 관리 모드별 최대 지연 한도가 나와 있습니다.
| 대상 그룹 | 타겟 업데이트 | 완전히 관리되는 기기 | 회사 소유 기기의 직장 프로필 |
|---|---|---|---|
| API 수준 변경이 없는 업데이트 | Google 시스템 서비스 (예: WebView) | 5일 | 5일 |
| API 수준 변경이 없는 업데이트 | Google Play 시스템 업데이트 (Mainline) 및 API 수준 변경이 없는 OEM OTA 시스템 업데이트 (중요한 월간 패치 포함) | 25일 | 25일 |
| API 수준 변경사항이 포함된 업데이트 | API 수준 변경이 포함된 OEM OTA 시스템 업데이트 | 180일 | 90일 |
systemUpdate의 우선순위
기존 정책에 unifiedUpdatePolicy를 추가하기 전에 systemUpdate 설정을 검토하고 UUC 규칙을 사용하여 필요한 동작을 다시 만드세요. 예를 들어 업무 시간 외에 OS 업데이트를 유지하려면 업무 시간 중 주요 OS 업데이트 차단의 BLOCK 규칙을 사용합니다.
이 우선순위 동작은 AMAPI SDK를 사용하는 맞춤 DPC와 다릅니다. 맞춤 DPC에서는 OEM OTA 업데이트의 경우 AOSP SystemUpdatePolicy가 UUC보다 우선합니다.
자세한 내용은 AOSP SystemUpdatePolicy 우선순위를 참고하세요.
UUC 정책 구성
정책 리소스에서 unifiedUpdatePolicy 필드를 설정, 검색, 삭제하고 정책을 사용하는 기기의 기기 규정 준수를 확인할 수 있습니다.
UUC 정책 설정
UUC를 구성하려면 정책에 unifiedUpdatePolicy 객체를 추가합니다. 기존 정책의 다른 설정을 변경하지 않고 UUC 정책을 적용하려면 updateMask=unifiedUpdatePolicy를 사용하여 enterprises.policies.patch를 호출합니다.
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 규칙을 삭제하려면 updateMask=unifiedUpdatePolicy 및 unifiedUpdatePolicy가 포함되지 않은 요청 본문으로 enterprises.policies.patch를 호출합니다.
PATCH https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}?updateMask=unifiedUpdatePolicy
{}
정책 구성 예시
다음 예시에서는 일반적인 시나리오의 unifiedUpdatePolicy 객체를 보여줍니다. UUC 정책 설정에 설명된 대로 enterprises.policies.patch을 사용하여 적용합니다. AMAPI SDK를 사용하여 통합 업데이트 제어 구성에서 동일한 시나리오를 Kotlin 및 Java 코드로 사용할 수 있습니다.
업무 시간 중 주요 OS 업데이트 차단
다음 규칙은 월요일부터 금요일까지 오전 9시부터 오후 5시까지 주요 OS 업데이트 (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"
}
}
]
}
}
업데이트 기간별 OS 업데이트 강제 적용
다음 규칙은 최대 7일 동안 기기에서 사용할 수 있는 주요 OS 업데이트를 강제 적용합니다 (604800s).
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Force Policy",
"targets": [
{
"targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
}
],
"predicate": {
"updateAgeUpperBound": "604800s"
},
"outcome": {
"outcomeType": "FORCE"
}
}
]
}
}
단일 Google 시스템 서비스 앱의 업데이트 차단하기
Android System WebView (com.google.android.webview)와 같은 Google 시스템 서비스의 일부인 특정 앱을 제어하려면 targetType를 SINGLE_APP로 설정하고 singleApp에 앱의 packageName를 제공합니다. 다음 규칙은 월요일부터 금요일까지 09:00~17:00에 WebView 업데이트를 차단합니다.
{
"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"
}
}
]
}
}
모든 업데이트 타겟에서 여러 규칙 결합
규칙은 순서대로 평가되므로 여러 규칙을 결합하여 특정 기간 동안 업데이트를 차단하고 해당 기간 외에는 업데이트를 강제할 수 있습니다.
다음 예시에서는 4개의 카테고리 타겟 (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE, GOOGLE_SYSTEM_SERVICES, GOOGLE_PLAY_SYSTEM_UPDATE)에 두 개의 순차적 규칙을 적용합니다.
- 영업시간 (월요일~금요일, 오전 9시~오후 5시) 동안 모든 업데이트를 차단합니다.
- 영업시간 외에는 최대 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를 사용하여 기기의 현지 시간대에서 특정 달력 날짜 범위 내에서 업데이트를 제한하거나 허용할 수 있습니다. 다음 규칙은 2026년 3월 14일까지 4가지 카테고리 타겟의 업데이트를 차단합니다.
{
"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"
}
}
]
}
}