Skip to content

iOS sysdiagnose archive reference - structure, artifacts, databases, and forensic analysis for iOS 18.1/26.1

Notifications You must be signed in to change notification settings

ImNotClaude/ios-sysdiagnose-reference

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iOS Sysdiagnose Reference

A comprehensive reference for analyzing iOS sysdiagnose archives. Based on analysis of iOS 18.1 / 26.1 (Build 23B85) archives.

Version Note: iOS uses dual versioning. Marketing version (18.1) vs internal version (26.1). Logs and sysdiagnose show the internal version (e.g., "iPhone OS 26.1").

Quick Start

# Extract sysdiagnose
tar -xzf sysdiagnose_*.tar.gz

# Check structure
ls extracted_archive/

# Query unified logs
log show --archive extracted_archive/system_logs.logarchive \
    --predicate 'process == "SpringBoard"' \
    --style json

# Query TCC database
sqlite3 extracted_archive/logs/Accessibility/TCC.db \
    "SELECT service, client, auth_value FROM access"

# View crash reports
ls extracted_archive/crashes_and_spins/*.ips

Documentation Structure

structure/ - Archive Layout

artifacts/ - Key Files

network/ - Network Data

  • wifi.md - WiFi artifacts and history

privacy/ - Privacy Artifacts

  • tcc.md - Permission database (TCC.db)
  • biome.md - Behavioral intelligence

power/ - Power & Telemetry

subsystems/ - Log Subsystems

processes/ - Process Reference

analysis/ - Analysis Workflows

formats/ - File Formats

  • ips.md - Crash report format

databases/ - SQLite Databases


Common Tasks

Find App Permissions

sqlite3 logs/Accessibility/TCC.db "
SELECT service, auth_value FROM access
WHERE client = 'com.example.app'
"

Count Events by Process

log show --archive system_logs.logarchive \
    --predicate 'process == "locationd"' \
    --style json | grep -c '"timestamp"'

Extract Crash Summary

for f in crashes_and_spins/*.ips; do
    head -1 "$f" | python3 -c "
import sys,json
d=json.load(sys.stdin)
print(f\"{d['timestamp']}: {d['app_name']}\")
"
done

Compare Archives

# Event count comparison
for archive in baseline/* enabled/* disabled/*; do
    count=$(log show --archive "$archive/system_logs.logarchive" \
        --predicate 'process == "intelligenceplatformd"' \
        --style json 2>/dev/null | grep -c '"timestamp"')
    echo "$(basename $archive): $count"
done

Key Forensic Artifacts

Artifact Location Use Case
Privacy permissions logs/Accessibility/TCC.db App data access
Unified logs system_logs.logarchive/ System activity
Process list ps.txt Running processes
Crash reports crashes_and_spins/*.ips Crash analysis
WiFi history WiFi/Entity_*_Join.csv Network timeline
Power data logs/powerlogs/*.PLSQL Battery, usage
Trial config logs/Trial/*.log Feature flags

Tools

Required

  • log - Apple's unified log viewer (macOS)
  • sqlite3 - SQLite command-line
  • plutil - Property list utility (macOS)

Recommended

  • jq - JSON processor
  • python3 - Scripting
  • ipsw - iOS firmware tools

iOS Version Notes

This reference is based on iOS 18.1 / 26.1 (Build 23B85). Key differences from earlier versions:

iOS 18+ Additions

  • Apple Intelligence subsystems
  • GenerativeFunctionMetrics_* PowerLog tables
  • logs/GenerativeExperiences/ directory
  • Enhanced Trial namespace structure

iOS 17 Compatibility

  • Most structure remains the same
  • Fewer AI-related artifacts
  • Different PowerLog table set

Contributing

To contribute additional documentation:

  1. Follow existing file structure
  2. Include practical examples
  3. Reference actual sysdiagnose paths
  4. Test commands against real archives

References


License

Documentation provided for educational and research purposes.

About

iOS sysdiagnose archive reference - structure, artifacts, databases, and forensic analysis for iOS 18.1/26.1

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •