| /* |
| * Copyright (C) 2024 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| syntax = "proto2"; |
| |
| package com.android.server.art.proto; |
| option java_multiple_files = true; |
| |
| // These protobufs are currently used as an ART-internal API for pre-reboot |
| // dexopt to pass parameters from a version of the ART module to a potentially |
| // more recent version in an OTA package. It's a 1:1 mapping to the |
| // BatchDexoptParams API used for (normal) batch dexopt. That approach does not |
| // add any extra compatibility constraints, because: a) We need to keep the |
| // BatchDexoptParams API for all SDK levels the ART module gets pushed to, and |
| // b) we only allow pre-reboot dexopt from SDK level N to N+1. Since (a) always |
| // has a longer support window than (b), we cannot end up in a situation where |
| // these protobufs forces us to keep support for a feature we wouldn't need to |
| // keep anyway for batch dexopt. |
| |
| // The protobuf representation of `BatchDexoptParams`. See classes in |
| // java/com/android/server/art/model/BatchDexoptParams.java and |
| // java/com/android/server/art/model/DexoptParams.java for details. |
| // Fields added to classes after Android B must be optional in the protos. |
| message BatchDexoptParamsProto { |
| // Required. |
| repeated string package = 1; |
| // Required. |
| optional DexoptParamsProto dexopt_params = 2; |
| } |
| |
| // The protobuf representation of `DexoptParams`. |
| // Note that this is only for batch dexopt. Particularly, it doesn't have a field for the split |
| // name. |
| message DexoptParamsProto { |
| // Required. |
| optional int32 flags = 1; |
| // Required. |
| optional string compiler_filter = 2; |
| // Required. |
| optional int32 priority_class = 3; |
| // Required. |
| optional string reason = 4; |
| } |