Skip to content

knowledgeC vs Biome: dónde guarda macOS el uso de apps

¿knowledgeC.db o Biome? En qué se diferencian los dos almacenes de actividad de macOS, qué flujo de Biome equivale a cada flujo de knowledgeC y qué esperar hoy.

Publicado el 7 min de lectura

Resumen. macOS guarda la actividad en dos lugares. knowledgeC.db es una base de datos SQLite con una fila por intervalo de evento; Biome es un árbol de carpetas de flujos que contienen archivos SEGB de registros protobuf. En las versiones actuales, el foco de las apps se espera en App.InFocus de Biome, no en /app/inFocus de knowledgeC, mientras que estados como el bloqueo y la retroiluminación se siguen leyendo en knowledgeC. Recolecte y examine ambos en cada caso, mantenga aparte los registros sincronizados desde otros dispositivos y trate un flujo vacío como «no registrado aquí», no como un borrado.

Si la base de datos es nueva para usted, empiece por la guía de análisis forense de knowledgeC.db.

Dos almacenes, dos diseños

knowledgeCBiome
ContenedorUna base de datos SQLite por ámbito (almacén de Core Data)Una carpeta por flujo, con archivos SEGB
RegistroUna fila en ZOBJECT con inicio y finUn registro con un estado, marcas de tiempo, un CRC y una carga útil protobuf
Nombres de flujoRutas, por ejemplo /app/inFocusNombres con puntos, por ejemplo App.InFocus
HoraMac absolute time, UTCValores double en Mac absolute time dentro de los registros
Desfase localZSECONDSFROMGMT en cada filaNo figura entre los campos decodificados públicamente
Otros dispositivosFilas de otros dispositivos, que se distinguen por ZSOURCE.ZDEVICEIDCarpetas remote/<device UUID>/ separadas
EliminaciónFilas eliminadas; consulte el WAL para las eliminaciones recientesRegistros marcados como eliminados (estado 3), los datos pueden permanecer; archivos caducados en tombstone/
DecodificaciónColumnas documentadas, lo bastante estables para SQLCampos de la carga útil obtenidos por ingeniería inversa de la comunidad

La consecuencia práctica es que los dos almacenes requieren hábitos distintos. knowledgeC se consulta con SQL sobre una copia, y el -wal debe acompañarla. Biome necesita un parser de SEGB y después un decodificador protobuf por flujo, y los campos que ningún decodificador público cubre siguen siendo desconocidos. La disposición de los bytes se describe en el formato de archivo SEGB de Biome.

Intervalos frente a transiciones

Una fila de knowledgeC ya es un intervalo: de ZSTARTDATE a ZENDDATE. Un registro App.InFocus de Biome es una transición: una app pasó a primer plano (estado 1) o dejó de estarlo (estado 0) en un momento dado. Para obtener duraciones, un parser debe emparejar cada registro de entrada con el siguiente registro de salida de la misma app.

KnowledgeC Parser hace este emparejamiento: un registro de entrada en primer plano termina en el siguiente registro de salida del mismo bundle ID, del mismo usuario y del mismo origen, en un plazo de 24 horas. Una entrada sin salida correspondiente se muestra sin duración en lugar de con una duración supuesta. Téngalo en cuenta cuando un tiempo total en primer plano parezca corto: el último intervalo antes de un apagado o de un fallo puede quedar abierto.

Flujo por flujo

La tabla siguiente empareja flujos que registran el mismo tipo de actividad. Es una comparación funcional para analistas, no un mapa de migración documentado por Apple; el significado de los campos del lado de Biome procede del plugin BIOME de mac_apt y de iLEAPP.

ActividadFlujo de knowledgeCFlujo de BiomeNotas
App en primer plano/app/inFocusApp.InFocusBiome: estado 1 entrada / 0 salida, bundle ID, cadenas de versión
App en uso/app/usageScreenTime.AppUsageBiome: estado y bundle ID
Uso web por app/app/webUsageApp.WebUsageBiome: URL, dominio, bundle ID
Safari/safari/historySafari.*Biome: dominio
Notificaciones/notification/usageNotification.UsageBiome: app, título, subtítulo
Bloqueo, retroiluminación, alimentación/device/isLocked, /display/isBacklit, /device/isPluggedInninguno en la lista decodificadaLéalos en knowledgeC
Wi-FiningunoDevice.Wireless.WiFiSSID y estado de conexión / desconexión
BluetoothningunoDevice.Wireless.BluetoothDirección, nombre, ID de producto, estado
Búsqueda en Ajustes del SistemaningunoSystemSettings.SearchTermsTérmino escrito
Elementos de menú seleccionadosningunoApp.MenuItemDocumentado por Unit 42 en macOS Tahoe 26; sin mapa público de campos

«Ninguno en la lista decodificada» significa que los decodificadores públicos no cubren ese flujo, no que Biome no pueda contener uno. Liste las carpetas de flujos de su evidencia en lugar de dar por supuestos los nombres.

Qué esperar en cada versión de macOS

La investigación pública ofrece solo unos pocos puntos de referencia firmes, que se resumen aquí sin extrapolar.

VersiónQué se sabe
macOS 10.15 CatalinaBiome aparece como subsistema propio, según una única fuente (Howard Oakley)
macOS 12 Monterey y posterioresBiome se usa ampliamente
macOS 13 a 15 (Ventura, Sonoma, Sequoia)No hay un inventario público de flujos por versión; en las versiones actuales el foco de las apps se espera en App.InFocus y knowledgeC puede estar poco poblado
macOS 26 TahoeNuevos flujos como App.MenuItem (Unit 42)

El propio contenedor SEGB cambió de v1 a v2. En iOS, v1 se describe para iOS 14 a 16 y v2 a partir de iOS 17; el límite equivalente en macOS no está documentado públicamente, así que las herramientas detectan la versión a partir de la cabecera del archivo. En cualquier caso en que importe la versión exacta, compare con datos de prueba de la misma compilación.

Interpretaciones erróneas habituales

  • «knowledgeC está vacío, así que se borró la actividad». Un /app/inFocus escaso en un Mac reciente es lo esperado. Compruebe Biome, y compruebe que se recolectó knowledgeC.db-wal, antes de sacar ninguna conclusión.
  • «Las dos fuentes no coinciden, así que una está mal». Flujos distintos registran cosas distintas con desencadenantes distintos. Un intervalo /app/usage de knowledgeC y un intervalo App.InFocus de Biome para la misma app rara vez coincidirán al segundo. Explique la diferencia; no elija la más conveniente.
  • «Este registro procede del Mac». Las carpetas remote/<device UUID>/ de Biome y las filas de knowledgeC con otro ZDEVICEID proceden de otros dispositivos con la misma Cuenta de Apple. Un iPhone que abre Mapas a las 10:12 no es el Mac abriendo Mapas.
  • «Eliminado significa que el usuario lo eliminó». Los registros de Biome en estado 3 y los archivos de tombstone/ son artefactos normales del ciclo de vida. La retención en ambos almacenes se mide en semanas (unas cuatro semanas para knowledgeC según Sarah Edwards, unos 28 días para la mayoría de los flujos de Biome según la investigación sobre iOS). Mida el registro más antiguo de cada flujo en su evidencia.

Trabajar con ambos en una sola cronología

  1. Recolecte ambos almacenes con sus archivos complementarios: el -wal y el -shm de knowledgeC, y las carpetas restricted/, public/, remote/ y tombstone/ de Biome. Cómo hacerlo se explica en knowledgeC.db: ubicación y adquisición.
  2. Convierta primero todo a UTC. knowledgeC le da el desfase del dispositivo en cada fila; para Biome, tome la zona horaria de knowledgeC o de otros artefactos.
  3. Separe lo local de lo remoto antes de ordenar.
  4. Use los intervalos de bloqueo y retroiluminación de knowledgeC como marco, y los registros de foco de Biome dentro de él.

En el ejemplo sintético FIN-MBP-03, por ejemplo, la ventana de 10:04 a 10:49 UTC muestra el Mac desbloqueado (knowledgeC, /device/isLocked), Terminal, Ajustes del Sistema y Finder en primer plano (App.InFocus de Biome) y registros App.MenuItem que mencionan «Full Disk Access» («Acceso total al disco»). Los registros de Mapas y Mensajes del iPhone de Dana están en remote/ durante esos mismos minutos y deben excluirse de la actividad del Mac. KnowledgeC Parser combina ambos almacenes en una sola cronología y marca el origen de cada fila. Lo que la cronología combinada sigue sin poder decirle es quién estaba sentado delante del Mac; ese razonamiento se trata en quién estaba ante el teclado.

Artículos relacionados

Artículos relacionados

Qué registra knowledgeC.db en macOS, dónde está, cómo funcionan ZOBJECT y sus flujos, cómo convertir sus marcas de tiempo y qué no demuestran los datos.
Paso a paso: cargue knowledgeC.db con su -wal y los flujos SEGB de Biome en un parser gratuito en el navegador, fije un rango, revise sesiones y exporte.
Dónde están knowledgeC.db y los flujos de Biome en macOS y cómo recolectarlos con Terminal, UAC, Velociraptor o una imagen de disco sin perder el WAL.