ActivitiesCache.db: tipos de actividad y campos del payload
Referencia de campos de ActivitiesCache.db: ActivityType 5, 6, 10 y 16, JSON AppId, claves del payload como activeDurationSeconds y las columnas de fecha.
Resumen. En Activity, la columna ActivityType indica cómo leer la fila: 5 = apertura (aplicación, archivo, página), 6 = en primer plano con activeDurationSeconds, 10 = texto del portapapeles en ClipboardPayload (Base64), 16 = evento de copiar/pegar con Group = Copy o Paste, 2 = notificación. La aplicación está en el array JSON AppId; los detalles, en el JSON Payload. Las fechas son segundos Unix, UTC.
Esta es la referencia de campos de la serie. Si necesita saber qué demuestra una fila, lea después ¿demuestra Windows Timeline la ejecución o el acceso a archivos?.
Tipos de actividad
El tipo de actividad es un entero. Los significados siguientes son observaciones de investigadores, no una especificación de Microsoft: trate como desconocido cualquier valor que no aparezca.
| ActivityType | Significado | Fuente | Qué leer |
|---|---|---|---|
| 2 | Notificación (toast) | kacos2000 | Payload |
| 3 | Uso del sistema (copia de seguridad, relacionado con el inicio de sesión) | repositorio de kacos2000 | Payload |
| 5 | Apertura de aplicación, archivo o página | kacos2000 | displayText, appDisplayName, contentUri |
| 6 | Aplicación en uso / en primer plano | kacos2000 | activeDurationSeconds, userTimezone, StartTime, EndTime |
| 10 | Contenido del portapapeles | kacos2000, inversecos | ClipboardPayload (Base64) |
| 11, 12, 15 | Operaciones del sistema (credenciales, Wi-Fi, personalización) | repositorio de kacos2000 | Payload |
| 16 | Operación de copiar o pegar | kacos2000 | Group (Copy / Paste), clipboardDataId en Payload |
El Windows Timeline Parser asigna el 5 a Apertura (app / archivo), el 6 a En uso (foco), el 10 a Portapapeles, el 16 a Copiar / pegar, el 2 a «Notificación» y todo lo demás a «Otro», conservando el número original en la vista de detalle.
La tabla Activity, columna a columna
| Columna | Contenido | Notas |
|---|---|---|
Id | GUID de la actividad | Enlaza con Activity_PackageId.ActivityId y ActivityOperation.Id |
AppId | Array JSON que identifica la aplicación | Ver más abajo |
AppActivityId | Identificador propio de la aplicación | En archivos abiertos suele terminar con un identificador propio del archivo (kacos2000) |
ActivityType | Tipo entero | Tabla anterior |
ActivityStatus | 1 activa, 2 actualizada, 3 eliminada, (4 ignorada) | Refleja los valores status de Graph (Microsoft Graph) |
Payload | JSON (guardado como BLOB) | Texto mostrado, URI, duraciones, zona horaria |
ClipboardPayload | Array JSON con contenido en Base64 | Tipo 10 (contenido) |
StartTime, EndTime | Segundos Unix, UTC | EndTime puede estar vacío o a 0 en actividades puntuales |
LastModifiedTime, LastModifiedOnClient | Segundos Unix, UTC | Último cambio de la fila |
ExpirationTime | Segundos Unix, UTC | 30 días tras la última modificación; 12 horas para el portapapeles (kacos2000) |
CreatedInCloud | Segundos Unix, UTC | Relevante solo para actividad sincronizada |
PlatformDeviceId | Identificador de dispositivo | Distingue el equipo local de los dispositivos sincronizados |
IsLocalOnly | 0 / 1 | Si la actividad se mantiene fuera de la nube |
Group, Tag | Texto libre | Group = Copy / Paste en el tipo 16 |
ETag | Entero | Cambia cuando cambia la fila; ordenar por él da el orden de escritura, no el de los eventos |
kacos2000 señala que todas las fechas se guardan en UTC y que el ExpirationTime era exactamente 2.592.000 segundos (30 días) posterior a LastModifiedTime en las bases examinadas (kacos2000).
AppId: qué aplicación
AppId es un array JSON de objetos { "application": ..., "platform": ... }. Una misma actividad puede describir la aplicación de varias formas (JSON AppId):
[
{"application": "{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\notepad.exe", "platform": "windows_win32"},
{"application": "{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\notepad.exe", "platform": "packageId"},
{"application": "", "platform": "alternateId"}
]
| Valor de platform | Contenido típico |
|---|---|
windows_win32 | Ruta de una aplicación de escritorio, a menudo con un GUID de carpeta conocida al principio |
x_exe_path | Ejecutable independiente lanzado desde una ruta concreta |
windows_universal | Identidad de aplicación de la Store / UWP (por ejemplo Microsoft.Windows.Explorer) |
packageId | Nombre de paquete o ruta del ejecutable |
alternateId | Suele estar vacío |
El prefijo GUID es un KNOWNFOLDERID (GUID de carpeta conocida). Los más frecuentes:
| GUID | Carpeta |
|---|---|
{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7} | %SystemRoot%\System32 (FOLDERID_System) |
{6D809377-6AF0-444B-8957-A3773F02200E} | Program Files, 64 bits (FOLDERID_ProgramFilesX64) |
{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E} | Program Files (x86) (FOLDERID_ProgramFilesX86) |
{905E63B6-C1BF-494E-B29C-65B732D3D21A} | Program Files (FOLDERID_ProgramFiles) |
{D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27} | %SystemRoot%\SysWOW64 (FOLDERID_SystemX86) |
{F38BF404-1D43-42F2-9305-67DE0B28FC23} | %SystemRoot% (FOLDERID_Windows) |
El GUID de carpeta conocida no registra la letra de unidad, así que la herramienta lo muestra como variable de entorno (%ProgramFiles%\7-Zip\7zFM.exe) en lugar de suponer C:. Un x_exe_path con una ruta literal como C:\Users\Public\rclone.exe merece una segunda mirada: es un ejecutable lanzado fuera de las ubicaciones de instalación habituales.
Payload: los detalles
La columna Payload es JSON. Las claves varían según el tipo de actividad y la aplicación. Las que importan en una investigación:
| Clave | Tipos | Significado |
|---|---|---|
displayText | 5 | Lo que mostraba el mosaico de Timeline: nombre de archivo, título de página |
appDisplayName | 5 | Nombre legible de la aplicación («Notepad», «Excel») |
description | 5 | A menudo la ruta completa del archivo |
contentUri | 5 | URI file:/// del elemento abierto; puede llevar parámetros de consulta adicionales |
activationUri | 5 | Cómo relanzaría Windows la actividad |
activeDurationSeconds | 6 | Segundos de uso activo de la aplicación (duración activa) |
userTimezone | 6 | Zona horaria IANA/Olson del dispositivo al crear la actividad (Microsoft Graph) |
clipboardDataId | 16 | Enlaza los eventos de copia y pegado de un mismo elemento (kacos2000) |
Dos advertencias de las pruebas de kacos2000: la primera entrada de ejecución de una aplicación de escritorio puede no tener duración, y la duración del payload a veces difiere de EndTime - StartTime (kacos2000). Indique en el informe qué campo utilizó.
La herramienta convierte contentUri en una ruta de Windows (file:///E:/exfil/Payroll_2026.xlsx?... pasa a E:\exfil\Payroll_2026.xlsx, file://server/share/x pasa a \\server\share\x), recurre a description cuando parece una ruta y conserva la URI original y el JSON completo del payload en el panel de detalle.
ActivityOperation y Activity_PackageId
ActivityOperation tiene casi todas las columnas anteriores más OperationType (1 inserción, 2 actualización, 3 eliminación) y CreatedTime, el momento en que la operación entró en la cola. kacos2000 comprobó que, cuando un usuario quita un mosaico de Timeline, la entrada se copia en ActivityOperation con un ETag nuevo y estado eliminado (kacos2000). Por eso la tabla ActivityOperation es donde hay que buscar el historial que el usuario intentó limpiar.
Activity_PackageId enumera, por ActivityId, una Platform, un PackageName (a menudo la ruta del ejecutable) y un ExpirationTime. La herramienta asocia estos nombres de paquete a cada actividad.
Fechas: qué convertir y cómo
Todas las columnas de fecha están en segundos Unix (epoch), en UTC. Convierta con un formateador UTC explícito (datetime(StartTime, 'unixepoch') en SQLite) y use userTimezone solo para expresar la hora local que veía el usuario. En la herramienta, el selector UTC / Local solo cambia la visualización; las exportaciones CSV incluyen columnas en UTC (StartTimeUtc, EndTimeUtc, ...).
FAQ
¿Qué es ActivityType 5 en ActivitiesCache.db?
El tipo 5 registra la apertura de una aplicación, un archivo o una página web. El payload incluye el texto mostrado, el nombre visible de la aplicación y, para los archivos, un contentUri con la ruta.
¿Qué es ActivityType 6?
El tipo 6 registra una aplicación en uso, con el foco. El payload contiene activeDurationSeconds y la zona horaria del usuario, y la fila tiene hora de inicio y de fin.
¿Qué formato de fecha usa ActivitiesCache.db?
Segundos Unix (epoch) en UTC para StartTime, EndTime, LastModifiedTime, ExpirationTime y el resto de columnas de fecha.