Skip to content

Add Ford Sync G4 and BMW connected device artifacts - #153

Merged
abrignoni merged 4 commits into
mainfrom
feat/ford-diagnostics-power
Aug 27, 2026
Merged

Add Ford Sync G4 and BMW connected device artifacts#153
abrignoni merged 4 commits into
mainfrom
feat/ford-diagnostics-power

Conversation

@abrignoni

@abrignoni abrignoni commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Adds twelve artifacts across two vehicle platforms, plus the LevelDB reader they need.

Ford Sync G4:

  • Power and Reset History (reset-history.txt): shutdown time, power-on time, boot count, wake source and target mode per power cycle. Last Shutdown and Last Reset Reason cover the two single-record files beside it.
  • Diagnostic Events, Diagnostic Upload Errors and Diagnostic Identifiers.
  • Installed Software (pacman.db). The asset packages are map regions.
  • Navigation User Settings and Navigation Global Settings (data_manager.sqlite).
  • HMI Local Storage: every version of every key the Chromium based HMI apps stored, with the write batch time from the store's own META records.

BMW:

  • Connected Apple Devices and Connected Device Media, from the iAP2 stores. Devices are identified by the Bluetooth MAC or serial in the store directory name and by the UDID held inside it.

Adds scripts/ccl with ccl_leveldb and ccl_simplesnappy, matching the copies already carried by the sibling extractors, so Local Storage is read through a real reader rather than scanned. Its output was checked against ccl_chromium_reader 0.3.18 with no differences in keys or values and none in timestamps to the second.

Undocumented integers, wake sources and identifier values are reported as stored. The text sources record no timezone, so those timestamps are taken as written. The reset history holds a fixed window, not a complete record.

@abrignoni abrignoni changed the title Add Ford diagnostics and power history artifacts Add Ford Sync G4 artifacts Aug 27, 2026
abrignoni and others added 4 commits August 27, 2026 01:17
Three artifacts for Ford Sync G4 head units.

Diagnostic Events and Diagnostic Upload Errors read events_metadata and
upload_errors from diagnostics_slave.sqlite. The uploaded column is declared
INTEGER but holds a date string once an event has uploaded, so both the parsed
value and the string as stored are reported. create_time is not reported as a
clock because nothing establishes what it counts.

Power and Reset History reads the Reset Details blocks of reset-history.txt:
shutdown time, power-on time, boot count, wake source and target mode per
cycle. Wake source is reported as stored, since some values are words and
others are undocumented numbers. The file holds a fixed window rather than a
complete record.

Neither source records a timezone, so timestamps are taken as written.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Six more artifacts for Ford Sync G4 head units.

Installed Software reads the packages table in pacman.db. The table records no
install time, so it is an inventory rather than a history. The asset packages
are map regions, which bounds where the built-in navigation could route.

Navigation User Settings and Navigation Global Settings read user_setting and
global_setting from the navigation application's data_manager.sqlite. Values
are reported as stored.

Last Shutdown and Last Reset Reason read the two single-record files beside
reset-history.txt. Both carry a millisecond epoch, divided at the call site.

Diagnostic Identifiers reads the three identifier files beside the diagnostics
configuration. Each holds a 64 character hex value. The VIN in the same folder
was tested as a preimage in several spellings and did not match, so no
derivation is asserted.

Notes now record where two stores can be read against each other: the reset
reason and the first navigation settings write fall 22 seconds apart, and the
diagnostics boot counts fall inside the window the reset history covers.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The head unit's HMI applications are Chromium based and keep state in Local
Storage, which is a LevelDB store. Adds scripts/ccl with ccl_leveldb and
ccl_simplesnappy, matching the copies already carried by the sibling
extractors, so the store is read through a real reader.

This matters for correctness, not tidiness. LevelDB table blocks are Snappy
compressed, so scanning the raw files sees only the uncompressed write-ahead
log, cannot recover the key a value belonged to, and cannot separate a live
record from a superseded one.

HMI Local Storage reports every version of every key with the time of the
write batch it belonged to, taken from the store's own META records. On the
tested image one application holds 30 versions of its profile list spanning
2023-05-22 to 2024-03-27.

Output was checked against ccl_chromium_reader 0.3.18: same 35 records, same
keys, no value differences and no timestamp differences to the second.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Two artifacts for BMW head units, from the iAP2 stores the unit keeps under
its entertainment database directory.

Connected Apple Devices reports one row per media library per device, with the
identifier the unit named the store by and the device UDID held inside it, so
the two can be compared rather than one inferred from the other.

Connected Device Media reports the indexed media items joined to their artist,
album, genre and composer. These record what was available to play, not what
was played; the store carries no play count and no last played time.

The store directory name carries a colon that the seeker rewrites to an
underscore when staging, so the identifier is parsed with either separator.
Only backup copies of these stores were present on the tested image.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@abrignoni
abrignoni force-pushed the feat/ford-diagnostics-power branch from 8019f8b to 89d0fa9 Compare August 27, 2026 06:18
@abrignoni abrignoni changed the title Add Ford Sync G4 artifacts Add Ford Sync G4 and BMW connected device artifacts Aug 27, 2026
@abrignoni
abrignoni merged commit f898506 into main Aug 27, 2026
10 checks passed
@abrignoni
abrignoni deleted the feat/ford-diagnostics-power branch August 27, 2026 06:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant