From f049389e2e9d2ae378cf5efdb689abe86ffb3adf Mon Sep 17 00:00:00 2001 From: Wei Li Date: Fri, 7 Apr 2023 00:18:56 -0700 Subject: [PATCH] Check if an installed file exists and report error if not. So far there is only one case happened in b/277039235 that an installed file in that product is moved to another directory in LOCAL_POST_INSTALL_CMD. The team agreed to convert to Android.bp, but better to add a check and report the error. Bug: 277039235 Test: m sbom Test: build/soong/tests/sbom_test.sh Change-Id: I9a2302ced6dd605e60e54c49a8778426444dcc4f --- tools/generate-sbom.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tools/generate-sbom.py b/tools/generate-sbom.py index eae7945588..c22175c9af 100755 --- a/tools/generate-sbom.py +++ b/tools/generate-sbom.py @@ -87,6 +87,7 @@ ISSUE_NO_METADATA = 'No metadata generated in Make for installed files:' ISSUE_NO_METADATA_FILE = 'No METADATA file found for installed file:' ISSUE_METADATA_FILE_INCOMPLETE = 'METADATA file incomplete:' ISSUE_UNKNOWN_SECURITY_TAG_TYPE = 'Unknown security tag type:' +ISSUE_INSTALLED_FILE_NOT_EXIST = 'Non-exist installed files:' INFO_METADATA_FOUND_FOR_PACKAGE = 'METADATA file found for packages:' @@ -597,11 +598,12 @@ def main(): # Report on some issues and information report = { - ISSUE_NO_METADATA: [], - ISSUE_NO_METADATA_FILE: [], - ISSUE_METADATA_FILE_INCOMPLETE: [], - ISSUE_UNKNOWN_SECURITY_TAG_TYPE: [], - INFO_METADATA_FOUND_FOR_PACKAGE: [] + ISSUE_NO_METADATA: [], + ISSUE_NO_METADATA_FILE: [], + ISSUE_METADATA_FILE_INCOMPLETE: [], + ISSUE_UNKNOWN_SECURITY_TAG_TYPE: [], + ISSUE_INSTALLED_FILE_NOT_EXIST: [], + INFO_METADATA_FOUND_FOR_PACKAGE: [], } # Scan the metadata in CSV file and create the corresponding package and file records in SPDX @@ -619,6 +621,9 @@ def main(): if not installed_file_has_metadata(installed_file_metadata, report): continue + if not os.path.isfile(installed_file): + report[ISSUE_INSTALLED_FILE_NOT_EXIST].append(installed_file) + continue file_id = new_file_id(installed_file) product_files.append(new_file_record(file_id, installed_file, checksum(installed_file)))