Add error handling for artifact parsing #634
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Enhance artifacts, update core funcs, add Turbo artifacts
This pull request introduces two new artifacts for Google Device Health Services and significantly enhances several existing artifacts by adding fallback queries, improving data extraction, and modernizing core utility functions for better compatibility and reporting.
Core Changes (scripts/ilapfuncs.py):
@artifact_processordecorator on new and existing v2 artifacts to standardize logging, reporting (HTML, TSV, Timeline, KML, LAVA), and streamline argument handling.convert_local_to_utcfunction for robust parsing and conversion of timezone-offset timestamps (e.g.,YYYY-MM-DD HH:MM:SS+ZZZZ) to UTC.get_results_with_extra_sourcepath_if_needed) to correctly append the source file path when merging data from multiple files.New Artifacts:
Turbo_Battery): Parses battery events, including battery level, charge type, battery saver status, and timezone fromturbo.db.Turbo_Bluetooth): Parses Bluetooth connection data, including MAC address, device ID, battery/volume level, and timezone frombluetooth.db.Artifact Enhancements:
msys_databasefor chats (omittingReaction Timecolumn if missing).threads_db2contacts (omittingfriendship_statusandcontact_relationship_statusif missing columns).<audio>tag) for call recordings in the report.Transcripttable access to gracefully handle missinglastModifiedMillisandaudioRecordingFilePathcolumns.note_changestable if the primarytext_search_note_content_contenttable is unavailable.EventsandURL Events) for standardized timeline generation.