Automotive Software

소프트웨어 패키지 매니페스트 (Software Package Manifest) 본문

아답티브 오토사 (Adaptive AUTOSAR)/업데이트 및 형상 관리자 (Update and Configuration)

소프트웨어 패키지 매니페스트 (Software Package Manifest)

AutoSW 2023. 12. 7. 18:20

아답티브 오토사에서는 OTA (Over the Air)를 통한 소프트웨어 업데이트(신규 설치, 갱신, 삭제)를 지원하기 위해 UCM (Update and Configuration Management) FC를 정의하고 있으며, UCMS (UCM Subordinate)에 전달될 소프트웨어의 패키지 형식에 대한 개괄적인 정보를 제공한다. 실제 사용되는 소프트웨어 패키지 형식은 차량 제조사의 내부 스펙에 따라 서명 방식 및 세부 형식에 차이가 있을 수 있다.

아답티브 오토사에서는 왼쪽 그림에서와 같이 기본적인 형식을 제안하고 있는데,

  • 애플리케이션(들) : 실제 업데이트 대상 실행 파일
  • 애플리케이션 데이터(들) : 애플리케이션에서 참조할 데이터 파일
  • 애플리케이션 매니페스트(들) : 애플리케이션 구동에 필요한 설정 파일
  • 소프트웨어 패키지 매니페스트 (Software Package Manifest) : 업데이트 대상 객체(소프트웨어 클러스터)의 처리방식 및 패키지 관련 정보 파일
  • 서명된 컨테이너 (Signed Container) : 상기 파일들을 모두 포함하는 하나의 파일의 보안을 위해 서명 처리한 파일 (파일 데이터의 무결성 확인, Integrity check)
  • 인증 값 (Authentication Tag) : 해당 패키지 인증에 대한 보증을 위해 컨테이너와 함께 제공되는 문자열 값 (패키지 생성자의 인증 확인)
  • 소프트웨어 패키지 (Software Package) : UCMS에게 실제 전달되는 파일로 상기 기술된 파일을 포함하는 압축 또는 다른 형태의 단일 파일

 

그중 소프트웨어 패키지 매니페스트는 해당 패키지에 대한 정보(버전, 파일 크기) 뿐만 아니라 업데이트 처리방식에 대한 내용도 기술한다.

  • 소프트웨어 매니페스트 설정 (AR 21-11) : 메타 클래스 모델링을 통해 기술
    • 소프트웨어 분배 (Software Distribution)
      • M2::AUTOSARTemplates::AdaptivePlatform::SoftwareDistribution
      • 소프트웨어 클러스터 (SoftwareCluster)
        • 업데이트될 소프트웨어 구조 집중 기술
        • SoftwareClusterDesign을 통해 상세히 기술되며 메타 클래스의 존재 자체가 해당 소프트웨어 클러스터의 업데이트 가능여부를 나타냄
        • 메타 클래스 모델링 (Meta-class Modeling)
          • SoftwareCluster (Bold : Mandatory)
            • +typeApproval : String
            • +vendorId : AUTOSAR에서 정의
            • +version : 점으로 구분된 세 자리 숫자, Major.Minor.Patch (와 추가 라벨) 예, 1.0.0-alpha
            • +moduleInstantiation
              • AdaptiveModuleInstantiation : 해당 SC의 업데이트를 위해 필요한 플랫폼 자원의 인스턴스 정보
            • +containedProcess
              • Process : 해당 SC에 포함된 프로세스들의 정보
            • +containedPackageElement
              • UploadablePackageElement : SoftwareCluster의 복잡도를 줄이기 위해 설계된 추상화된 메타 클래스
            • +containedFibexElement : FibexElement
            • +vendorSignature : CryptoServiceCertificate
            • +license : Documentation
            • +releaseNotes : Documentation
            • +사용자 정의 요소(스펙상 비명시) : 추가 기술 정보 또는 업데이트 대상 객체 파일명 등
      • 소프트웨어 패키지 (Software Package)
        • 소프트웨어 클러스터를 참조하여 해당 클러스터의 업데이트 수행에 필요 정보를 포함하는 메타 클래스
        • 하나의 소프트웨어 패키지는 하나의 소프트웨어 클러스터만 참조 가능
        • 메타 클래스 모델링 (Meta-class Modeling)
          • SoftwareCluster (Bold : Mandatory)
            • +actionType : 업데이트 방식 정의, install, remove, update
            • +activationAction : 업데이트 후  동작, nothing, reboot, restartApplication
            • +compressedSoftwarePackageSize : 소프트웨어 패키지의 압축 크기
            • +uncompressedSoftwareClusterSize : 소프트웨어 패키지의 압축해제 크기
            • +deltaPackageApplicationVersion
            • +estimatedDurationOfOperation : 업데이트 예상 소요 시간
            • +minimumSupportedUcmVersion : 최소 지원 UCM 버전
            • +packagerId : 소프트웨어 패키지 제공 벤터, AUTOSAR에서 정의
            • +purposeOfUpdate : Documentation
            • +softwareCluster : SoftwareCluster, 전술된 SC 참조자
            • +packageSignature : CryptoServiceCertificate, 서명 암호 알고리즘등의 정보
  • 매니페스트 설정 후 사용 방식
    • 전술된 메타 클래스에 따라 소프트웨어 패키지 매니페스트에 기술이 완료되면, AP 플랫폼 소프트웨어 제공자에 따라 특정 파일 형식으로 변환 또는 저장(e.g. myPackage_Manifest.json)하고, 해당 파일을 포함하는 소프트웨어 패키지(e.g. myPackage_Manifest.zip)를 생성하여 실제 업데이트 시 사용
    • AP 플랫폼 소프트웨어 제공자에 따라 매니페스트 포맷 그리고 소프트웨어 패키지 생성 포맷이 상이할 수 있으므로, 특정 플랫폼 제공자의 단일 툴만을 사용하여 생성 과정 진행 필요

소프트웨어 패키지 생성 절차 및 구성 요소