1#!/usr/bin/env python3 2# 3# Copyright 2021 - The Android Open Source Project 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16 17"""Abstract class that reads build file.""" 18 19class AbstractBuildFileHandler(object): 20 """Build file handler interface.""" 21 22 def __init__(self, build_file): 23 self.build_file = build_file 24 25 def get_file_hash(self, file_names, hash_func=None): 26 """Get hash value of file's content. 27 28 Args: 29 file_names: list of file names inside build file, the format should be 30 consistent with the file in device, e.g. /system/build.prop. 31 hash_func: optional hash function. 32 Returns: 33 A dictionary where key is file name and value is hash value of its content. 34 """ 35 raise NotImplementedError('You need to implement GetFileHash function.') 36 37