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").
# 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/*.ipsstructure/ - Archive Layout
- overview.md - Top-level directory map
- system_logs.md - Unified logging (logarchive)
- crashes_and_spins.md - Crash reports
artifacts/ - Key Files
- ps.md - Process snapshot analysis
- spindump.md - Stack sampling
network/ - Network Data
- wifi.md - WiFi artifacts and history
privacy/ - Privacy Artifacts
power/ - Power & Telemetry
- powerlog.md - PowerLog database (PLSQL)
subsystems/ - Log Subsystems
- index.md - All com.apple.* subsystems
- intelligence.md - Apple Intelligence (iOS 18+)
processes/ - Process Reference
- index.md - Process catalog
- by-category/ai-ml.md - AI/ML processes
analysis/ - Analysis Workflows
- common-queries.md - Log query reference
- delta-comparison.md - Comparing archives
formats/ - File Formats
- ips.md - Crash report format
databases/ - SQLite Databases
- overview.md - Database reference
sqlite3 logs/Accessibility/TCC.db "
SELECT service, auth_value FROM access
WHERE client = 'com.example.app'
"log show --archive system_logs.logarchive \
--predicate 'process == "locationd"' \
--style json | grep -c '"timestamp"'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# 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"
donelog- Apple's unified log viewer (macOS)sqlite3- SQLite command-lineplutil- Property list utility (macOS)
jq- JSON processorpython3- Scriptingipsw- iOS firmware tools
This reference is based on iOS 18.1 / 26.1 (Build 23B85). Key differences from earlier versions:
- Apple Intelligence subsystems
GenerativeFunctionMetrics_*PowerLog tableslogs/GenerativeExperiences/directory- Enhanced Trial namespace structure
- Most structure remains the same
- Fewer AI-related artifacts
- Different PowerLog table set
To contribute additional documentation:
- Follow existing file structure
- Include practical examples
- Reference actual sysdiagnose paths
- Test commands against real archives
Documentation provided for educational and research purposes.
