서비스 번들은 전체 시스템 업데이트와 별개로 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의 대상 파티션 (공개 키가 사전 설치된 동일한 파티션)에 배치해야 합니다. 각 파티션에는 자체 전용 차단 목록 파일이 있습니다.