diff --git a/scripts/artifacts/Ph51PossOptimizedAssetsIntResouData.py b/scripts/artifacts/Ph51PossOptimizedAssetsIntResouData.py index ebe40c7a4..73302b159 100644 --- a/scripts/artifacts/Ph51PossOptimizedAssetsIntResouData.py +++ b/scripts/artifacts/Ph51PossOptimizedAssetsIntResouData.py @@ -22,7 +22,7 @@ import os from packaging import version -from scripts.ilapfuncs import artifact_processor, get_file_path, open_sqlite_db_readonly, get_sqlite_db_records, logfunc, iOS +from scripts.ilapfuncs import artifact_processor, get_file_path, open_sqlite_db_readonly, get_sqlite_db_records, logfunc, iOS, does_column_exist_in_db @artifact_processor def Ph51PossibleOptimizedAssetsIntResouPhDaPsql(files_found, report_folder, seeker, wrap_text, timezone_offset): @@ -38,6 +38,17 @@ def Ph51PossibleOptimizedAssetsIntResouPhDaPsql(files_found, report_folder, seek if version.parse(iosversion) <= version.parse("13.7"): logfunc("Unsupported version for PhotoData-Photos.sqlite from iOS " + iosversion) return (), [], source_path + + + if (version.parse(iosversion) >= version.parse("16")): + required_columns = ['ZDUPLICATEDETECTORPERCEPTUALPROCESSINGSTATE'] + missing_columns = [col for col in required_columns if not does_column_exist_in_db(source_path, 'ZADDITIONALASSETATTRIBUTES', col)] + + if missing_columns: + logfunc(f'Missing columns in ZADDITIONALASSETATTRIBUTES table: {", ".join(missing_columns)}') + return (), [], source_path + + if (version.parse(iosversion) >= version.parse("14")) & (version.parse(iosversion) < version.parse("15")): source_path = get_file_path(files_found, "Photos.sqlite") if source_path is None or not os.path.exists(source_path):