1syntax = "proto3"; 2 3// Schema for the matrix 4 5// Kernel version requirements for devices running at a certain API level. 6// Each string has the format of "android-4.9" or "android14-5.15". 7message RawAndroidReleaseRequirement { 8 // Kernels allowed for devices updated to this API level. 9 repeated string upgrade = 1; 10 11 // Kernels allowed for devices launched at this API level. 12 repeated string launch = 2; 13 14 // Kernels allowed for GRF devices launched at this API level. 15 repeated string launch_grf = 3; 16} 17 18// Mapping from API level (SDK verion) to kernel version requirements 19// for devices running the given API level (SDK version). 20// This is the schema for the raw data. 21message RawKernelVersionMatrix { 22 map<uint64, RawAndroidReleaseRequirement> release_requirements = 1; 23} 24 25// A kernel version, without the minor version. 26message KernelVersion { 27 uint64 major_version = 1; 28 uint64 minor_version = 2; 29} 30 31// Data structures used in test 32 33// Holds structured information for KMI like "android14-5.15". 34message Kmi { 35 KernelVersion kernel_version = 1; 36 uint64 android_release = 2; 37} 38 39// Mapping from API level (SDK verion) to kernel version requirements 40// for devices running the given API level (SDK version), but structured. 41// This schema is used to hold the parsed RawAndroidReleaseRequirement. 42message AndroidReleaseRequirement { 43 repeated Kmi upgrade = 1; 44 repeated Kmi launch = 2; 45 repeated Kmi launch_grf = 3; 46}