Wymagania dotyczące systemu gościa (obrazu maszyny wirtualnej)

Wymagania na tej stronie dotyczą systemu gościa.

Pamięć

System ma następujące minimalne wymagania dotyczące pamięci:

  • 1 GB pamięci w przypadku systemu z minimalnymi pakietami usług
  • 2 GB pamięci na maszynę wirtualną (zalecane)

CPU

Procesor musi spełniać te wymagania:

  • Obsługa architektury x86_64 lub arm64-v8a lub nowszej z rozszerzeniami wirtualizacji
  • Co najmniej 2,3 DMIPS/MHz, zalecane 7 DMIPS/MHz

Bąbelki

Jądro musi spełniać te wymagania:

  • System MUSI korzystać z jądra GKI.
  • SDV obsługuje GKI w wersjach 6.6 i 6.12.

Miejsce na dane

System ma te wymagania dotyczące pamięci:

  • System MUSI zapewniać co najmniej 3 GB miejsca na dane.
  • Urządzenie MUSI szyfrować prywatne dane aplikacji:
    • Szyfrowanie pamięci masowej MUSI być domyślnie włączone.
    • Urządzenie MUSI spełniać to wymaganie dotyczące szyfrowania pamięci danych za pomocą jednej z tych metod szyfrowania:
      • Szyfrowanie oparte na plikach (FBE) (dokumentacja FBE) i szyfrowanie metadanych
      • Szyfrowanie na poziomie bloków dla poszczególnych użytkowników
  • Urządzenie MUSI obsługiwać co najmniej zgodność z modelem zabezpieczeń Androida 14 – 9.12 usuwanie danych.

Zarządzanie zasilaniem

System musi spełniać te wymagania dotyczące zarządzania energią:

  • Obsługa przez system zawieszania do pamięci RAM i zawieszania na dysk jest ZDECYDOWANIE ZALECANA.
  • System MUSI reagować na sygnały wybudzania z systemu hosta.

Bezpieczeństwo

System musi spełniać te wymagania dotyczące bezpieczeństwa:

Interfejs binarny

System musi spełniać te wymagania dotyczące interfejsu binarnego:

  • być zgodna z co najmniej jednym zdefiniowanym interfejsem ABI Android NDK,
  • Zgłaszaj podzbiór tych interfejsów ABI i NIE ZGŁASZAJ żadnych interfejsów ABI, których nie ma na liście.
  • Udostępnij aplikacjom, które zawierają wbudowany kod, te biblioteki z natywnymi interfejsami API:
    • libc (biblioteka C)
    • libdl (dynamiczny linker)
    • libicui18n.so
    • libicuuc.so
    • liblog (logowanie w Androidzie)
    • libm (biblioteka matematyczna)
    • libstdc++ (minimalne wsparcie dla C++)
    • libz (kompresja zlib)

Sieci

System:

  • MUSI używać sieci Ethernet do obsługi protokołów TCP i UDP.
  • MUSI obsługiwać komunikację vsock gość–host.
  • POWINNA obsługiwać vsock komunikację między gośćmi.

UID i izolacja procesów

Implementacje urządzeń MUSZĄ obsługiwać:

  • Model piaskownicy aplikacji na Androida, w którym każda aplikacja działa jako unikalny identyfikator UID w stylu systemu Unix i w osobnym procesie. Więcej informacji znajdziesz w odpowiednim dokumencie CDD Androida.
  • Uruchamianie wielu aplikacji jako tego samego użytkownika systemu Linux, pod warunkiem że aplikacje są prawidłowo podpisane i zbudowane zgodnie z dokumentacją dotyczącą bezpieczeństwa i uprawnień. Zapoznaj się z odpowiednim dokumentem CDD Androida.
  • Model uprawnień dostępu do plików na Androidzie zgodnie z definicją w dokumentacji dotyczącej bezpieczeństwa i uprawnień. Zapoznaj się z odpowiednim dokumentem CDD Androida.

Oprogramowanie, które można aktualizować

System hosta (hipernadzorca)

Wymagania w sekcjach poniżej dotyczą systemu hosta i środowiska hiperwizora.

Łączność

System hosta musi spełniać te wymagania dotyczące połączeń:

  • Urządzenie MUSI obsługiwać co najmniej 1 połączenie Ethernet.
  • System MUSI udostępnić gościowi wirtualne urządzenie Ethernet lub zmapować na nie istniejące urządzenie.

Wirtualizacja

System hosta musi spełniać te wymagania dotyczące wirtualizacji:

  • Zdecydowanie zalecamy używanie VirtIO do implementowania urządzeń wirtualnych. System MUSI obsługiwać te urządzenia VirtIO:
    • virtio-blk: w przypadku wirtualnych urządzeń blokowych (pamięci masowej)
    • virtio-console: w przypadku wirtualnej konsoli szeregowej
    • virtio-net: w przypadku wirtualnych interfejsów sieciowych
    • virtio-pci: do wykrywania urządzeń virtio w wirtualnej magistrali PCI.
    • virtio-rng: w przypadku wirtualnego sprzętowego generatora liczb losowych.
    • virtio-vsock: do komunikacji między gospodarzem a gościem
  • Gość i gospodarz MUSZĄ komunikować się z vsock.
  • Gospodarz MUSI włączyć komunikację między gośćmi za pomocą vsock lub Ethernetu.

Synchronizacja czasu

System hosta musi spełniać te wymagania dotyczące synchronizacji czasu:

  • System hosta powinien zapewniać stabilne i spójne źródło czasu dla wszystkich maszyn wirtualnych gościa, aby zapewnić spójność między maszynami wirtualnymi, co ułatwia debugowanie i śledzenie.
  • Aby udostępnić gościom czas na hoście, zalecamy użycie virtio-rtc.

Oprogramowanie, które można aktualizować

  • System hosta MUSI być aktualizowany bezprzewodowo (OTA). Mechanizm aktualizacji MUSI być odporny na utratę zasilania.

Bezpieczeństwo

System hosta musi spełniać te wymagania dotyczące bezpieczeństwa:

  • System hosta MUSI obsługiwać łańcuch OpenDICE, korzystając z profilu SDV dla DICE, który jest rozszerzeniem profilu Androida dla DICE.
  • System hosta MUSI zapewniać bezpieczną izolację kluczy KeyMint między różnymi gośćmi.

Tryby zasilania

System hosta musi spełniać te wymagania dotyczące trybu zasilania:

  • System powinien obsługiwać tryb wstrzymania do pamięci RAM.
  • System hosta MUSI inicjować wybudzanie ze stanu uśpienia (pamięć RAM lub dysk).

Uruchamianie i wyłączanie

System hosta musi spełniać te wymagania dotyczące uruchamiania i zamykania:

  • System hosta powinien być zaprojektowany tak, aby szybko się uruchamiał i spełniał wymagania dotyczące użyteczności w przypadku samochodów (np. dostępność kamery cofania). Oznacza to, że system hosta powinien uruchamiać się w czasie nie dłuższym niż 100 ms.
  • Host MUSI włączać czyste zamykanie maszyn wirtualnych gościa po zdarzeniach wyłączenia zapłonu.

CPU

Urządzenie MUSI deklarować 64-bitowy interfejs ABI:

Urządzenie MUSI obsługiwać rozszerzenia wirtualizacji.