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"
done| 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 |
log- 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.