1515
1616
1717from datetime import datetime
18+ from scripts .builds_ids import OS_build
1819from scripts .artifact_report import ArtifactHtmlReport
1920from scripts .ilapfuncs import logfunc , tsv , timeline , open_sqlite_db_readonly , convert_ts_int_to_timezone , convert_ts_human_to_utc , convert_utc_human_to_timezone , convert_bytes_to_unit
2021
@@ -44,7 +45,7 @@ def get_tree_structure(cursor):
4445 while len (ts_p_id ) == 16 :
4546 ts_p_id , ts_name = ts_data_list [ts_p_id ]
4647 ts_path = ts_name + "/" + ts_path
47- ts_paths [ts_key ] = ts_path
48+ ts_paths [ts_key ] = f" { ts_path } /"
4849
4950 return ts_paths
5051
@@ -80,15 +81,15 @@ def get_filesApp_client(file_found, timezone_offset, report_folder):
8081 report = ArtifactHtmlReport ('Files App - iCloud Application List' )
8182 report .start_artifact_report (report_folder , 'Files App - iCloud Application List' , description )
8283 report .add_script ()
83- data_headers = ('Application Bundle ID' , 'Number of folders' , 'Number of files' , 'Total sci_lodate in bytes' , 'Total size' )
84+ data_headers = ('Application Bundle ID' , 'Number of folders' , 'Number of files' , 'Total size in bytes' , 'Total size' )
8485 report .write_artifact_data_table (data_headers , app_data_list , file_found )
8586 report .end_artifact_report ()
8687
8788 tsvname = 'Files App - iCloud Application List'
8889 tsv (report_folder , data_headers , app_data_list , tsvname )
8990
9091 else :
91- logfunc ('No Application in Files App data available ' )
92+ logfunc ('No Application found in Files App' )
9293
9394
9495 # Client Items
@@ -106,34 +107,43 @@ def get_filesApp_client(file_found, timezone_offset, report_folder):
106107 client_items.version_mtime AS 'Modified',
107108 client_items.item_lastusedtime AS 'Last opened',
108109 client_items.version_device AS 'From Device',
109- CASE client_items.item_sharing_options
110- WHEN 0 THEN 'No'
110+ CASE
111+ WHEN client_items.item_sharing_options<=4 THEN 'No'
111112 ELSE 'Yes'
112113 END AS 'Is Shared?',
114+ item_recursive_properties.shared_by_me_count AS 'Shared by me',
115+ item_recursive_properties.shared_to_me_count AS 'Shared with me',
113116 CASE client_items.item_user_visible
114117 WHEN 0 THEN 'No'
115118 WHEN 1 THEN 'Yes'
116119 END AS 'Is Visible?'
117120 FROM client_items
118121 LEFT JOIN app_libraries ON client_items.app_library_rowid = app_libraries.rowid
119- WHERE client_items.version_size IS NOT NULL
122+ LEFT JOIN item_recursive_properties ON client_items.rowid = item_recursive_properties.item_rowid
120123 ''' )
121124
122125 ci_all_rows = cursor .fetchall ()
123126 ci_usageentries = len (ci_all_rows )
124127 ci_data_list = []
128+ shared_data_list = []
129+
125130
126131 if ci_usageentries > 0 :
127132 ci_parents = get_tree_structure (cursor )
128133
129134 for ci_row in ci_all_rows :
130135 ci_app_id , ci_parent_id , ci_filename , ci_ext , ci_size_in_bytes , ci_cdate , \
131- ci_mdate , ci_lodate , ci_device , ci_shared , ci_visible = ci_row
136+ ci_mdate , ci_lodate , ci_device , ci_shared , ci_shared_by_me , ci_shared_to_me , \
137+ ci_visible = ci_row
132138
133139 ci_path = ''
134140 if len (ci_parent_id ) == 16 :
135141 ci_path = ci_parents .get (ci_parent_id , '' )
136142
143+ if not isinstance (ci_size_in_bytes , int ):
144+ ci_path += f"{ ci_filename } /"
145+ ci_filename = ""
146+
137147 ci_size = ci_size_in_bytes
138148 if ci_size :
139149 ci_size = convert_bytes_to_unit (ci_size_in_bytes )
@@ -145,24 +155,66 @@ def get_filesApp_client(file_found, timezone_offset, report_folder):
145155 ci_lodate = convert_ts_int_to_timezone (ci_lodate , timezone_offset ) if ci_lodate else ''
146156
147157 ci_data_list .append ((ci_app_id , ci_path , ci_filename , ci_ext , ci_size_in_bytes , ci_size ,
148- ci_cdate , ci_mdate , ci_lodate , ci_device , ci_shared , ci_visible ))
158+ ci_cdate , ci_mdate , ci_lodate , ci_device , ci_shared , ci_visible ))
149159
150- description = ' Files stored in iCloud Drive with metadata about files . '
151- report = ArtifactHtmlReport ('Files App - iCloud File List ' )
152- report .start_artifact_report (report_folder , 'Files App - iCloud File List ' , description )
160+ description = ' Files stored in iCloud Drive with their metadata . '
161+ report = ArtifactHtmlReport ('Files App - Files stored in iCloud ' )
162+ report .start_artifact_report (report_folder , 'Files App - Files stored in iCloud ' , description )
153163 report .add_script ()
154- data_headers = ('Application Bundle ID' , 'Path' , 'Filename' , 'Hidden extension' , 'size in bytes' ,
155- 'size ' , 'Created' , 'Modified' , 'Last opened' , 'Device' , 'Shared?' , 'Visible' )
164+ data_headers = ('Application Bundle ID' , 'Path' , 'Filename' , 'Hidden extension' , 'Size in bytes' ,
165+ 'Size ' , 'Created' , 'Modified' , 'Last opened' , 'Device' , 'Shared?' , 'Visible? ' )
156166 report .write_artifact_data_table (data_headers , ci_data_list , file_found )
157167 report .end_artifact_report ()
158168
159- tsvname = 'Files App - iCloud File List '
169+ tsvname = 'Files App - Files stored in iCloud '
160170 tsv (report_folder , data_headers , ci_data_list , tsvname )
161171
162- tlactivity = 'Files App - iCloud File List '
172+ tlactivity = 'Files App - Files stored in iCloud '
163173 timeline (report_folder , tlactivity , ci_data_list , data_headers )
174+
175+ else :
176+ logfunc ('No file found in Files App' )
177+
178+
179+ # iOS Updated
180+ cursor .execute ('''
181+ SELECT
182+ boot_history.date,
183+ boot_history.os
184+ FROM boot_history
185+ ''' )
186+
187+ os_all_rows = cursor .fetchall ()
188+ os_usageentries = len (os_all_rows )
189+ os_data_list = []
190+
191+ if os_usageentries > 0 :
192+ for os_row in os_all_rows :
193+ os_date , os_os = os_row
194+
195+ os_date = convert_ts_int_to_timezone (os_date , timezone_offset ) if os_date else ''
196+
197+ os_version = OS_build .get (os_os , '' )
198+
199+ os_data_list .append ((os_date , os_os , os_version ))
200+
201+ description = ' Operating System Updates '
202+ report = ArtifactHtmlReport ('Files App - Operating System Updates' )
203+ report .start_artifact_report (report_folder , 'Files App - Operating System Updates' , description )
204+ report .add_script ()
205+ data_headers = ('Date and Time' , 'OS Build' , 'OS Version' )
206+ report .write_artifact_data_table (data_headers , os_data_list , file_found )
207+ report .end_artifact_report ()
208+
209+ tsvname = 'Files App - Operating System Updates'
210+ tsv (report_folder , data_headers , os_data_list , tsvname )
211+
212+ tlactivity = 'Files App - Operating System Updates'
213+ timeline (report_folder , tlactivity , ci_data_list , data_headers )
214+
215+
164216 else :
165- logfunc ('No Files App - iCloud Client Items data available ' )
217+ logfunc ('No Operating System Update found in Files App ' )
166218
167219
168220def get_filesApp (files_found , report_folder , seeker , wrap_text , timezone_offset ):
0 commit comments