Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37fbc4ae authored by David Anderson's avatar David Anderson Committed by Automerger Merge Worker
Browse files

Merge "Add a helper script for dumping snapshot protos." am: 381c0fc0 am: d2cff5a1

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1783370

Change-Id: I9a8d43b6d9dc29a5708541905335c75c96f0e208
parents 48d11dc7 d2cff5a1
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -504,3 +504,13 @@ cc_binary {
        "inspect_cow.cpp",
    ],
}

python_library_host {
    name: "snapshot_proto_python",
    srcs: [
        "android/snapshot/snapshot.proto",
    ],
    proto: {
        canonical_path_from_root: false,
    },
}
+26 −0
Original line number Diff line number Diff line
//
// Copyright (C) 2021 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.
//

python_binary_host {
    name: "dump_snapshot_proto",
    main: "dump_snapshot_proto.py",
    srcs: [
        "dump_snapshot_proto.py",
    ],
    libs: [
        "snapshot_proto_python",
    ],
}
+39 −0
Original line number Diff line number Diff line
# Copyright (C) 2021 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.

import argparse

from android.snapshot import snapshot_pb2

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('type', type = str, help = 'Type (snapshot or update)')
    parser.add_argument('file', type = str, help = 'Input file')
    args = parser.parse_args()

    with open(args.file, 'rb') as fp:
        data = fp.read()

    if args.type == 'snapshot':
        msg = snapshot_pb2.SnapshotStatus()
    elif args.type == 'update':
        msg = snapshot_pb2.SnapshotUpdateStatus()
    else:
        raise Exception('Unknown proto type')

    msg.ParseFromString(data)
    print(msg)

if __name__ == '__main__':
    main()