1/* 2 * Copyright (C) 2019 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17syntax = "proto3"; 18 19// The version of a single module. 20message SdkVersion { 21 int32 version = 1; 22} 23 24// All the modules that can be used for version requirements. 25// 26// The only modules that should be listed here are non-optional modules that 27// have Java APIs, i.e. their APEX contains a bootclaspath_fragment or a 28// systemserverclasspath_fragment. 29enum SdkModule { 30 UNKNOWN = 0; 31 32 // R modules 33 CONSCRYPT = 10; 34 EXT_SERVICES = 14; 35 IPSEC = 1; 36 MEDIA = 2; 37 MEDIA_PROVIDER = 3; 38 PERMISSIONS = 4; 39 SDK_EXTENSIONS = 5; 40 STATSD = 6; 41 TETHERING = 7; 42 // WIFI - optional 43 44 // S modules 45 ART = 8; 46 SCHEDULING = 9; 47 48 // T modules 49 AD_SERVICES = 11; 50 APPSEARCH = 12; 51 ON_DEVICE_PERSONALIZATION = 13; 52 // UWB - optional 53 54 // U modules 55 // BT_SERVICES - optional 56 CONFIG_INFRASTRUCTURE = 15; 57 HEALTH_FITNESS = 16; 58 // REMOTE_KEY_PROVISIONING - optional 59} 60 61// A single extension version. 62message ExtensionVersion { 63 message ModuleRequirement { 64 SdkModule module = 1; 65 SdkVersion version = 2; 66 } 67 68 // The extension version. 69 int32 version = 1; 70 71 // The modules required for this extension version. 72 repeated ModuleRequirement requirements = 2; 73} 74 75// All the defined extension versions. 76message ExtensionDatabase { 77 repeated ExtensionVersion versions = 1; 78} 79