xref: /aosp_15_r20/prebuilts/android-emulator/linux-x86_64/lib/snapshot.proto (revision d870e0501505f2fc9999364ffe386a6b6151adc1)
1*d870e050SAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project
2*d870e050SAndroid Build Coastguard Worker//
3*d870e050SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d870e050SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d870e050SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d870e050SAndroid Build Coastguard Worker//
7*d870e050SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*d870e050SAndroid Build Coastguard Worker//
9*d870e050SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d870e050SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d870e050SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d870e050SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d870e050SAndroid Build Coastguard Worker// limitations under the License.
14*d870e050SAndroid Build Coastguard Worker
15*d870e050SAndroid Build Coastguard Workersyntax = "proto2";
16*d870e050SAndroid Build Coastguard Worker
17*d870e050SAndroid Build Coastguard Worker// This file must be synchronized between
18*d870e050SAndroid Build Coastguard Worker//    Emulator (branch aosp/emu-master-dev):
19*d870e050SAndroid Build Coastguard Worker//        external/qemu/android/android-emu/android/snapshot/proto/snapshot.proto
20*d870e050SAndroid Build Coastguard Worker//
21*d870e050SAndroid Build Coastguard Worker//    Android Studio (branch goog/studio-master-dev):
22*d870e050SAndroid Build Coastguard Worker//        tools/adt/idea/android/src/com/android/emulator/snapshot.proto
23*d870e050SAndroid Build Coastguard Worker//
24*d870e050SAndroid Build Coastguard Worker// If you modify one, please modify the other.
25*d870e050SAndroid Build Coastguard Worker
26*d870e050SAndroid Build Coastguard Workerpackage emulator_snapshot;
27*d870e050SAndroid Build Coastguard Worker
28*d870e050SAndroid Build Coastguard Workeroption java_package = "com.android.emulator.snapshot";
29*d870e050SAndroid Build Coastguard Worker
30*d870e050SAndroid Build Coastguard Workermessage Image {
31*d870e050SAndroid Build Coastguard Worker    enum Type {
32*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_UNKNOWN = 0;
33*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_KERNEL = 1;
34*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_KERNEL_RANCHU = 2;
35*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_SYSTEM = 3;
36*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_SYSTEM_COPY = 4;
37*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_DATA = 5;
38*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_DATA_COPY = 6;
39*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_RAMDISK = 7;
40*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_SDCARD = 8;
41*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_CACHE = 9;
42*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_VENDOR = 10;
43*d870e050SAndroid Build Coastguard Worker        IMAGE_TYPE_ENCRYPTION_KEY = 11;
44*d870e050SAndroid Build Coastguard Worker    }
45*d870e050SAndroid Build Coastguard Worker
46*d870e050SAndroid Build Coastguard Worker    optional Type type = 1;
47*d870e050SAndroid Build Coastguard Worker    optional string path = 2;
48*d870e050SAndroid Build Coastguard Worker    optional bool present = 3;
49*d870e050SAndroid Build Coastguard Worker    optional int64 size = 4;
50*d870e050SAndroid Build Coastguard Worker    optional int64 modification_time = 5;
51*d870e050SAndroid Build Coastguard Worker}
52*d870e050SAndroid Build Coastguard Worker
53*d870e050SAndroid Build Coastguard Workermessage Host {
54*d870e050SAndroid Build Coastguard Worker    optional string gpu_driver = 4;
55*d870e050SAndroid Build Coastguard Worker    optional int32 hypervisor = 5;
56*d870e050SAndroid Build Coastguard Worker}
57*d870e050SAndroid Build Coastguard Worker
58*d870e050SAndroid Build Coastguard Workermessage Config {
59*d870e050SAndroid Build Coastguard Worker    // Features are int32, not enums here to make sure we don't have to update
60*d870e050SAndroid Build Coastguard Worker    // one more protobuf definition with every single new feature flag, even
61*d870e050SAndroid Build Coastguard Worker    // when the code doesn't really care about the actual meaning for them,
62*d870e050SAndroid Build Coastguard Worker    // only for the values.
63*d870e050SAndroid Build Coastguard Worker    repeated int32 enabled_features = 1;
64*d870e050SAndroid Build Coastguard Worker
65*d870e050SAndroid Build Coastguard Worker    // This holds the renderer; int32 for the same reason as |enabled_features|.
66*d870e050SAndroid Build Coastguard Worker    optional int32 selected_renderer = 2;
67*d870e050SAndroid Build Coastguard Worker
68*d870e050SAndroid Build Coastguard Worker    optional int32 cpu_core_count = 3;
69*d870e050SAndroid Build Coastguard Worker    optional int64 ram_size_bytes = 4;
70*d870e050SAndroid Build Coastguard Worker}
71*d870e050SAndroid Build Coastguard Worker
72*d870e050SAndroid Build Coastguard Workermessage SaveStats {
73*d870e050SAndroid Build Coastguard Worker    // Type of save
74*d870e050SAndroid Build Coastguard Worker    // 0: non-incremental
75*d870e050SAndroid Build Coastguard Worker    // 1: incremental
76*d870e050SAndroid Build Coastguard Worker    optional uint32 incremental = 1;
77*d870e050SAndroid Build Coastguard Worker    // Time taken to save.
78*d870e050SAndroid Build Coastguard Worker    optional uint64 duration = 2;
79*d870e050SAndroid Build Coastguard Worker    // How many changed bytes in RAM.
80*d870e050SAndroid Build Coastguard Worker    optional uint64 ram_changed_bytes = 3;
81*d870e050SAndroid Build Coastguard Worker}
82*d870e050SAndroid Build Coastguard Worker
83*d870e050SAndroid Build Coastguard Workermessage Snapshot {
84*d870e050SAndroid Build Coastguard Worker    // Update every time when introducing some breaking changes that make the
85*d870e050SAndroid Build Coastguard Worker    // previous loading code break when trying to load the new snapshot.
86*d870e050SAndroid Build Coastguard Worker    // NOTE: if the old code is fine with just skipping the new fields or not
87*d870e050SAndroid Build Coastguard Worker    //       getting the meaning of new values, |version| should remain
88*d870e050SAndroid Build Coastguard Worker    //       unchanged.
89*d870e050SAndroid Build Coastguard Worker    optional int32 version = 1;
90*d870e050SAndroid Build Coastguard Worker
91*d870e050SAndroid Build Coastguard Worker    // Purely informative: when this snapshot was created, Unix timestamp.
92*d870e050SAndroid Build Coastguard Worker    optional int64 creation_time = 2;
93*d870e050SAndroid Build Coastguard Worker
94*d870e050SAndroid Build Coastguard Worker    // List of mounted disk images used during the snapshot creation.
95*d870e050SAndroid Build Coastguard Worker    repeated Image images = 3;
96*d870e050SAndroid Build Coastguard Worker
97*d870e050SAndroid Build Coastguard Worker    // Description of the host machine properties needed to load this snapshot.
98*d870e050SAndroid Build Coastguard Worker    optional Host host = 4;
99*d870e050SAndroid Build Coastguard Worker
100*d870e050SAndroid Build Coastguard Worker    // Description of the emulator configuration needed for this snapshot.
101*d870e050SAndroid Build Coastguard Worker    // NOTE: try not to duplicate the configuration that's already in
102*d870e050SAndroid Build Coastguard Worker    //       hardware-qemu.ini; only add what's either not there or what
103*d870e050SAndroid Build Coastguard Worker    //       could've been overridden during process initialization.
104*d870e050SAndroid Build Coastguard Worker    optional Config config = 5;
105*d870e050SAndroid Build Coastguard Worker
106*d870e050SAndroid Build Coastguard Worker    // Set if the snapshot failed to load during the last attempt.
107*d870e050SAndroid Build Coastguard Worker    // Code is up to the application to define, with 0 meaning 'not failed' just
108*d870e050SAndroid Build Coastguard Worker    // in case.
109*d870e050SAndroid Build Coastguard Worker    optional int64 failed_to_load_reason_code = 7;
110*d870e050SAndroid Build Coastguard Worker
111*d870e050SAndroid Build Coastguard Worker    // Set if data image is mounted.
112*d870e050SAndroid Build Coastguard Worker    // User build and userdebug build mount data partition at different time.
113*d870e050SAndroid Build Coastguard Worker    // But it should be done before boot finished, so this field is very likely
114*d870e050SAndroid Build Coastguard Worker    // to be true.
115*d870e050SAndroid Build Coastguard Worker    // We snapshot it here just in case someday we support snapshot during
116*d870e050SAndroid Build Coastguard Worker    // booting.
117*d870e050SAndroid Build Coastguard Worker    optional bool guest_data_partition_mounted = 8;
118*d870e050SAndroid Build Coastguard Worker
119*d870e050SAndroid Build Coastguard Worker    // Emulator rotation angle, in right angles (e.g. 1 is 90 degrees, 2 is 180
120*d870e050SAndroid Build Coastguard Worker    // etc).
121*d870e050SAndroid Build Coastguard Worker    optional int32 rotation = 9;
122*d870e050SAndroid Build Coastguard Worker
123*d870e050SAndroid Build Coastguard Worker    // Number of invalid loads / crashes that happened under this snapshot.
124*d870e050SAndroid Build Coastguard Worker    optional int32 invalid_loads = 10;
125*d870e050SAndroid Build Coastguard Worker
126*d870e050SAndroid Build Coastguard Worker    // Number of successful loads.
127*d870e050SAndroid Build Coastguard Worker    optional int32 successful_loads = 11;
128*d870e050SAndroid Build Coastguard Worker
129*d870e050SAndroid Build Coastguard Worker    // The name given to the snapshot by the user. Independent of the
130*d870e050SAndroid Build Coastguard Worker    // file name.
131*d870e050SAndroid Build Coastguard Worker    optional string logical_name = 12;
132*d870e050SAndroid Build Coastguard Worker
133*d870e050SAndroid Build Coastguard Worker    // The file name of this snapshot's parent. The parent is the
134*d870e050SAndroid Build Coastguard Worker    // snapshot that was loaded into the AVD prior to this snapshot
135*d870e050SAndroid Build Coastguard Worker    // being taken
136*d870e050SAndroid Build Coastguard Worker    optional string parent = 13;
137*d870e050SAndroid Build Coastguard Worker
138*d870e050SAndroid Build Coastguard Worker    // Arbitrary description added by the user
139*d870e050SAndroid Build Coastguard Worker    optional string description = 14;
140*d870e050SAndroid Build Coastguard Worker
141*d870e050SAndroid Build Coastguard Worker    // Record of save stats.
142*d870e050SAndroid Build Coastguard Worker    repeated SaveStats save_stats = 15;
143*d870e050SAndroid Build Coastguard Worker
144*d870e050SAndroid Build Coastguard Worker    // Folded state.
145*d870e050SAndroid Build Coastguard Worker    optional bool folded = 16;
146*d870e050SAndroid Build Coastguard Worker
147*d870e050SAndroid Build Coastguard Worker    // Emulator boot parameters
148*d870e050SAndroid Build Coastguard Worker    repeated string launch_parameters = 17;
149*d870e050SAndroid Build Coastguard Worker
150*d870e050SAndroid Build Coastguard Worker    // Emulator build ID
151*d870e050SAndroid Build Coastguard Worker    optional string emulator_build_id = 18;
152*d870e050SAndroid Build Coastguard Worker
153*d870e050SAndroid Build Coastguard Worker    // System image build ID
154*d870e050SAndroid Build Coastguard Worker    optional string system_image_build_id = 19;
155*d870e050SAndroid Build Coastguard Worker
156*d870e050SAndroid Build Coastguard Worker    // True if emulator was built with gfxstream backend
157*d870e050SAndroid Build Coastguard Worker    optional bool gfxstream = 20;
158*d870e050SAndroid Build Coastguard Worker
159*d870e050SAndroid Build Coastguard Worker    // resizable config
160*d870e050SAndroid Build Coastguard Worker    optional int32 resizable_display = 21;
161*d870e050SAndroid Build Coastguard Worker}
162