| // Copyright (C) 2018 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"; |
| |
| // This file must be synchronized between |
| // Emulator (branch aosp/emu-master-dev): |
| // external/qemu/android/android-emu/android/snapshot/proto/snapshot.proto |
| // |
| // Android Studio (branch goog/studio-master-dev): |
| // tools/adt/idea/android/src/com/android/emulator/snapshot.proto |
| // |
| // If you modify one, please modify the other. |
| |
| package emulator_snapshot; |
| |
| option java_package = "com.android.emulator.snapshot"; |
| |
| message Image { |
| enum Type { |
| IMAGE_TYPE_UNKNOWN = 0; |
| IMAGE_TYPE_KERNEL = 1; |
| IMAGE_TYPE_KERNEL_RANCHU = 2; |
| IMAGE_TYPE_SYSTEM = 3; |
| IMAGE_TYPE_SYSTEM_COPY = 4; |
| IMAGE_TYPE_DATA = 5; |
| IMAGE_TYPE_DATA_COPY = 6; |
| IMAGE_TYPE_RAMDISK = 7; |
| IMAGE_TYPE_SDCARD = 8; |
| IMAGE_TYPE_CACHE = 9; |
| IMAGE_TYPE_VENDOR = 10; |
| IMAGE_TYPE_ENCRYPTION_KEY = 11; |
| } |
| |
| optional Type type = 1; |
| optional string path = 2; |
| optional bool present = 3; |
| optional int64 size = 4; |
| optional int64 modification_time = 5; |
| } |
| |
| message Host { |
| optional string gpu_driver = 4; |
| optional int32 hypervisor = 5; |
| } |
| |
| message Config { |
| // Features are int32, not enums here to make sure we don't have to update |
| // one more protobuf definition with every single new feature flag, even |
| // when the code doesn't really care about the actual meaning for them, |
| // only for the values. |
| repeated int32 enabled_features = 1; |
| |
| // This holds the renderer; int32 for the same reason as |enabled_features|. |
| optional int32 selected_renderer = 2; |
| |
| optional int32 cpu_core_count = 3; |
| optional int64 ram_size_bytes = 4; |
| } |
| |
| message SaveStats { |
| // Type of save |
| // 0: non-incremental |
| // 1: incremental |
| optional uint32 incremental = 1; |
| // Time taken to save. |
| optional uint64 duration = 2; |
| // How many changed bytes in RAM. |
| optional uint64 ram_changed_bytes = 3; |
| } |
| |
| message Snapshot { |
| // Update every time when introducing some breaking changes that make the |
| // previous loading code break when trying to load the new snapshot. |
| // NOTE: if the old code is fine with just skipping the new fields or not |
| // getting the meaning of new values, |version| should remain |
| // unchanged. |
| optional int32 version = 1; |
| |
| // Purely informative: when this snapshot was created, Unix timestamp. |
| optional int64 creation_time = 2; |
| |
| // List of mounted disk images used during the snapshot creation. |
| repeated Image images = 3; |
| |
| // Description of the host machine properties needed to load this snapshot. |
| optional Host host = 4; |
| |
| // Description of the emulator configuration needed for this snapshot. |
| // NOTE: try not to duplicate the configuration that's already in |
| // hardware-qemu.ini; only add what's either not there or what |
| // could've been overridden during process initialization. |
| optional Config config = 5; |
| |
| // Set if the snapshot failed to load during the last attempt. |
| // Code is up to the application to define, with 0 meaning 'not failed' just |
| // in case. |
| optional int64 failed_to_load_reason_code = 7; |
| |
| // Set if data image is mounted. |
| // User build and userdebug build mount data partition at different time. |
| // But it should be done before boot finished, so this field is very likely |
| // to be true. |
| // We snapshot it here just in case someday we support snapshot during |
| // booting. |
| optional bool guest_data_partition_mounted = 8; |
| |
| // Emulator rotation angle, in right angles (e.g. 1 is 90 degrees, 2 is 180 |
| // etc). |
| optional int32 rotation = 9; |
| |
| // Number of invalid loads / crashes that happened under this snapshot. |
| optional int32 invalid_loads = 10; |
| |
| // Number of successful loads. |
| optional int32 successful_loads = 11; |
| |
| // The name given to the snapshot by the user. Independent of the |
| // file name. |
| optional string logical_name = 12; |
| |
| // The file name of this snapshot's parent. The parent is the |
| // snapshot that was loaded into the AVD prior to this snapshot |
| // being taken |
| optional string parent = 13; |
| |
| // Arbitrary description added by the user |
| optional string description = 14; |
| |
| // Record of save stats. |
| repeated SaveStats save_stats = 15; |
| |
| // Folded state. |
| optional bool folded = 16; |
| } |