서비스 번들 업데이트

서비스 번들은 전체 시스템 업데이트와 별개로 APEX 패키지로 업데이트할 수 있습니다. SDV에서 이 업데이트 프로세스는 SDV 업데이트 관리자가 관리합니다. 업데이트를 적용하려면 기기를 재부팅해야 합니다.

서비스 번들 업데이트에는 두 가지 유형의 APEX가 지원됩니다.

  • 사전 설치된 APEX: 이전 버전의 APEX 패키지가 읽기 전용 파티션 중 하나 (/system, /system_ext, /product, /vendor, /odm)에 이미 있습니다.

  • 새 APEX: `apex_manifest.json`에 선언된 것과 동일한 이름의 APEX 패키지가 읽기 전용 파티션에 없습니다.apex_manifest.json

사전 설치된 APEX

서비스 번들을 업데이트하는 가장 일반적이고 권장되는 방법입니다. 이 업데이트가 유효하려면 새 APEX 패키지가 다음 요구사항을 충족해야 합니다.

  • 사전 설치된 APEX와 동일한 패키지 이름을 apex_manifest.json에 포함합니다.

  • 사전 설치된 APEX보다 높은 버전 코드를 apex_manifest.json에 선언합니다.

  • 사전 설치된 APEX와 동일한 키 쌍으로 APEX에 서명합니다.

새 APEX

사전 설치된 APEX를 사용하는 것이 보안 권장사항이지만 새 APEX도 지원됩니다. 이 접근 방식을 사용하는 경우 파트너는 포괄적인 보안 프로토콜을 유지해야 합니다. 이러한 책임에는 다음이 포함됩니다.

  • 이러한 APEX에 사용되는 서명 키를 안전하게 관리합니다.

  • 악성 패키지를 식별하고 차단하는 강력한 프로세스를 설정합니다.

  • 가능한 경우 후속 시스템 업데이트에서 새 APEX를 사전 설치된 APEX로 변환합니다.

새 APEX를 설치하거나 업데이트하려면 다음 구성이 필요합니다.

신뢰할 수 있는 공개 키 사전 설치

새 APEX를 설치하려면 공개 서명 키를 대상 파티션에 사전 설치해야 합니다. 공개 키를 /partition/etc/brand_new_apex/에 배치합니다. 여기서 /partition/은 Treble 규칙에 따라 APEX가 연결된 파티션을 나타냅니다. 예를 들어 APEX의 서명이 /vendor/etc/brand_new_apex/의 공개 키에 대해 확인되면 벤더 APEX로 동작합니다. 시스템은 사전 설치된 공개 키에 해당하는 키로 서명되지 않은 새 APEX를 거부합니다.

악성 새 APEX 차단

설치 후 새 APEX가 악성으로 식별되면 시스템 업데이트를 사용하여 차단해야 합니다. 이렇게 하려면 APEX 패키지 이름을 /partition/etc/brand_new_apex/blocklist.json의 차단 목록 파일에 추가합니다. 이 차단 목록은 APEX의 대상 파티션 (공개 키가 사전 설치된 동일한 파티션)에 배치해야 합니다. 각 파티션에는 자체 전용 차단 목록 파일이 있습니다.