Skip to content
From logical backup to chip-off

Mobile Data Extraction

Smartphones carry more evidentiary density than almost any other device examiners encounter — messages, location history, cached credentials, and deleted records recoverable long after a user thinks they're gone.

3
Extraction tiers
SQLite
Common DB format
WAL / Freelist
Recovery surface

What is mobile forensics?

Mobile forensics is the acquisition and analysis of data stored on smartphones and tablets — contacts, messages, call logs, media, application databases, and system artifacts. Unlike a traditional desktop, a modern smartphone is a sealed, encrypted, tightly sandboxed device, which makes acquisition tier selection the single most consequential decision an examiner makes.

The three acquisition tiers — logical, file-system, and physical — trade off access depth against invasiveness, cost, and legal risk. Choosing the right tier for a given device, OS version, and case requires understanding what each tier can and cannot see.

Logical Extraction

OS-exposed data via backup APIs — fast, low-risk, but no deleted records.

File-System Extraction

Full access to live files and app databases, including SQLite WAL files.

Physical Extraction

Raw flash bit-for-bit — deleted, unallocated, and slack space included.

Step-by-Step Methodology

The sequence a careful examiner follows, in order.

  1. 1

    Preserve before you touch it

    Place the device in a Faraday bag immediately, engage airplane mode where safe to do so, and maintain power via an isolated battery pack to prevent both remote wipe and lock-triggered encryption re-engagement.

    • Photograph the device's screen state and physical condition before bagging
    • Note whether the device is unlocked at seizure — this determines available options
  2. 2

    Select the correct extraction tier

    Choose logical, file-system, or physical extraction based on the device model, OS version, lock state, and what evidence category the case actually requires.

    • Logical: adb backup, iTunes/Finder encrypted backup
    • File-system: full sandbox access via checkm8-class exploits or vendor tooling
    • Physical: JTAG, ISP, or chip-off for locked/damaged devices
  3. 3

    Acquire and hash

    Run the extraction with validated tooling (Cellebrite UFED, Magnet AXIOM, MSAB XRY, or open-source equivalents), then hash the resulting extraction package immediately.

  4. 4

    Parse app databases

    Run ALEAPP or iLEAPP against the extraction to automatically decode hundreds of known artifact formats, then manually inspect key SQLite databases (msgstore.db, contacts2.db, call_log) with a SQLite browser for anything the automated parser missed.

  5. 5

    Recover deleted records

    Inspect SQLite Write-Ahead Log (-wal) and rollback journal (-journal) files for unflushed deleted rows, and scan freelist pages within the main database file for remnants of records marked free but not yet overwritten.

  6. 6

    Extract media metadata

    Pull EXIF data (GPS, timestamp, device model) from photos and videos in the native camera roll, noting that shared/downloaded copies from messaging apps are frequently stripped of this metadata.

  7. 7

    Document and report

    Record the exact extraction tier used, tool and version, hash values, and a clear justification for any invasive technique (JTAG/chip-off) given its destructive or higher-risk nature.

Tools Comparison

Sortable — click any column header.

DescriptionLink
Cellebrite UFEDMobile ForensicsWindowsCommercialIndustry-standard mobile extraction suite supporting logical, file-system, and physical acquisition across thousands of device profiles.
Magnet AXIOMMobile ForensicsWindowsCommercialUnified mobile, computer, and cloud forensic platform with artifact-centric analysis and strong timeline/carving capability.
MSAB XRYMobile ForensicsWindowsCommercialMobile extraction and decoding toolkit widely used by law enforcement, with strong app-data parsing.
Oxygen Forensic DetectiveMobile ForensicsWindowsCommercialMobile and cloud extraction platform with deep app support and built-in link-analysis tooling.
ALEAPPMobile ForensicsCross-platformOpen-SourceAndroid Logs Events And Protobuf Parser — automates parsing of Android artifacts from an extraction.
iLEAPPMobile ForensicsCross-platformOpen-SourceiOS Logs Events And Plists Parser — automates parsing of iOS backup and full file-system extractions.
AndrillerMobile ForensicsWindows / LinuxOpen-SourceAndroid forensic acquisition and decoding utility with screen-lock bypass helpers for supported devices.
libimobiledeviceMobile ForensicsCross-platformOpen-SourceCross-platform library for communicating with iOS devices without iTunes — the backbone of many iOS acquisition tools.
ADB (Android Debug Bridge)Mobile ForensicsCross-platformFreeOfficial Android command-line tool used for logical backups, file pulls, and shell-level device interaction.

Commands & Code

Copy-ready snippets used in real workflows.

adb-logical-backup.shbash
# Confirm device is authorized and visible
adb devices

# Full logical backup (legacy API, app-dependent opt-in)
adb backup -apk -shared -all -f evidence_backup.ab

# Pull a specific file/directory (requires elevated shell access)
adb pull /sdcard/DCIM ./extracted_dcim

# Pull WhatsApp's message database on a rooted device
adb shell "su -c 'cp /data/data/com.whatsapp/databases/msgstore.db /sdcard/'"
adb pull /sdcard/msgstore.db ./evidence/
adb backup coverage varies by Android version and app manifest opt-in — treat it as a starting point, not a complete acquisition.
hash-verify.shbash
# Hash the extraction package immediately after acquisition
sha256sum evidence_backup.ab > evidence_backup.ab.sha256

# Re-verify before analysis begins
sha256sum -c evidence_backup.ab.sha256
sqlite-wal-inspect.sqlsql
-- Open the WAL directly alongside the main database
-- (do not let SQLite auto-checkpoint the WAL into the main file first)
PRAGMA journal_mode;

-- Inspect message table row count vs. what the app UI displays
SELECT COUNT(*) FROM message;

-- Look for rows whose key_remote_jid indicates a deleted-for-everyone marker
SELECT _id, key_remote_jid, data, timestamp
FROM message
WHERE remote_resource IS NOT NULL
ORDER BY timestamp DESC
LIMIT 50;
Always work from a copy of the .db and .db-wal files together — separating them before analysis can lose unflushed records.