The knowledge_app_usage module extracts application usage patterns from the knowledgeC.db database on iOS and macOS platforms. It identifies which applications were in use, their duration, and associated metadata.
Supported Platforms and Versions
- Platforms:
IOS, MACOS - Versions:
12, 13, 10.14, 10.15, 10.16, 14
When running the knowledge_app_usage query, the following information is retrieved:
START: The timestamp when application usage began.END: The timestamp when application usage ended.BUNDLE ID: The unique identifier for the application.USAGE IN SECONDS: Total duration of usage in seconds.USAGE IN MINUTES: Total duration of usage in minutes.DEVICE ID (HARDWARE UUID): The hardware UUID of the device.NAME: Metadata name associated with the event.VALUE: Metadata value associated with the event.DAY OF WEEK: The human-readable day (e.g., Monday, Tuesday).GMT OFFSET: The GMT offset in hours.ENTRY CREATION: The timestamp when the database entry was created.UUID: The unique identifier for the object.ZMETADATAHASH: The metadata hash from ZSTRUCTUREDMETADATA.ZOBJECT TABLE ID: The primary key (Z_PK) from the ZOBJECT table.
SELECT
DATETIME(ZOBJECT.ZSTARTDATE+978307200,'UNIXEPOCH') AS "START",
DATETIME(ZOBJECT.ZENDDATE+978307200,'UNIXEPOCH') AS "END",
ZOBJECT.ZVALUESTRING AS "BUNDLE ID",
(ZOBJECT.ZENDDATE - ZOBJECT.ZSTARTDATE) AS "USAGE IN SECONDS",
(ZOBJECT.ZENDDATE - ZOBJECT.ZSTARTDATE)/60.00 AS "USAGE IN MINUTES",
ZSOURCE.ZDEVICEID AS "DEVICE ID (HARDWARE UUID)",
ZCUSTOMMETADATA.ZNAME AS "NAME",
ZCUSTOMMETADATA.ZDOUBLEVALUE AS "VALUE",
CASE ZOBJECT.ZSTARTDAYOFWEEK
WHEN "1" THEN "Sunday"
WHEN "2" THEN "Monday"
WHEN "3" THEN "Tuesday"
WHEN "4" THEN "Wednesday"
WHEN "5" THEN "Thursday"
WHEN "6" THEN "Friday"
WHEN "7" THEN "Saturday"
END "DAY OF WEEK",
ZOBJECT.ZSECONDSFROMGMT/3600 AS "GMT OFFSET",
DATETIME(ZOBJECT.ZCREATIONDATE+978307200,'UNIXEPOCH') AS "ENTRY CREATION",
ZOBJECT.ZUUID AS "UUID",
ZSTRUCTUREDMETADATA.ZMETADATAHASH,
ZOBJECT.Z_PK AS "ZOBJECT TABLE ID"
FROM ZOBJECT
LEFT JOIN ZSTRUCTUREDMETADATA ON ZOBJECT.ZSTRUCTUREDMETADATA = ZSTRUCTUREDMETADATA.Z_PK
LEFT JOIN ZSOURCE ON ZOBJECT.ZSOURCE = ZSOURCE.Z_PK
LEFT JOIN Z_4EVENT ON ZOBJECT.Z_PK = Z_4EVENT.Z_11EVENT
LEFT JOIN ZCUSTOMMETADATA ON Z_4EVENT.Z_4CUSTOMMETADATA = ZCUSTOMMETADATA.Z_PK
WHERE ZSTREAMNAME = "/app/usage"