Skip to content

Commit c7bf75d

Browse files
committed
Update filesApp.py - OS Updates
1 parent c8f6877 commit c7bf75d

2 files changed

Lines changed: 68 additions & 83 deletions

File tree

‎scripts/artifacts/filesApps.py‎

Lines changed: 68 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616

1717
from datetime import datetime
18+
from scripts.builds_ids import OS_build
1819
from scripts.artifact_report import ArtifactHtmlReport
1920
from 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

168220
def get_filesApp(files_found, report_folder, seeker, wrap_text, timezone_offset):

‎scripts/artifacts/filesAppsclient.py‎

Lines changed: 0 additions & 67 deletions
This file was deleted.

0 commit comments

Comments
 (0)