Skip to content

Convert mailprotect (Apple Email) to LAVA @artifact_processor (iOS 13+)#1600

Merged
abrignoni merged 2 commits into
mainfrom
lava-funckey-mailprotect
Jun 24, 2026
Merged

Convert mailprotect (Apple Email) to LAVA @artifact_processor (iOS 13+)#1600
abrignoni merged 2 commits into
mainfrom
lava-funckey-mailprotect

Conversation

@abrignoni

Copy link
Copy Markdown
Owner

Summary

Converts the legacy "function"-key Apple Mail parser to @artifact_processor/context.

Changes

  • Dropped the broken legacy iOS <13 path (per maintainer decision). That branch reused a cursor from an already-close()d temp DB and INSERTed into a read-only-attached database — it could not actually run. iOS <13 is no longer supported.
  • iOS 13+ path: attaches Protected Index to Envelope Index via get_sqlite_db_records' attach_query; both opened read-only (evidence is never modified).
  • 🔴 UTC: dropped the convert_utc_human_to_timezone examiner-local shift (SQL emits UTC); removed the manual lava_process_artifact/lava_insert for the @ap pipeline.
  • Removed the deprecated version field and the redundant function key; kept the existing creation_date/last_update_date. Author preserved (@abrignoni - @stark4n6).

Validation

  • pylint 10.00/10.
  • Runtime-tested the Protected Index attach + join: 1 row with correct UTC timestamps and 10/10 column alignment.
  • Reserved-word + CREATE TABLE clean; PluginLoader loads.

Convert the legacy 'function'-key life360 parser into four @artifact_processor
artifacts: Locations (KML), Device Battery, Chat Messages, Members.
- Store UTC: drop convert_utc_human_to_timezone (examiner-local); location time comes
  straight from the geolocation timestamp as aware UTC, chat times via the SQL
  unixepoch + convert_ts_human_to_utc.
- Members: keep the avatar URL as plain text (was wrapped in an inline <img>); tag the
  Phone column with the 'phonenumber' LAVA type; fix the 'Cirle Name' -> 'Circle Name'
  header typo.
- Replace the 'from datetime import *' wildcard with explicit imports.
- creation_date/last_update_date; keys match function names. Author preserved (@KevinPagano3).

Validation: pylint 10.00; log parsing produces UTC location/battery rows on sample data;
reserved-word/CREATE TABLE clean; names unique; PluginLoader loads all 577.
Convert the legacy 'function'-key Apple Mail parser to @artifact_processor/context.
- Drop the broken legacy iOS <13 path (per maintainer decision): it reused a cursor
  from an already-closed temp DB and INSERTed into a read-only-attached database, so it
  could not run; iOS <13 is no longer supported.
- iOS 13+ path: attach Protected Index to Envelope Index via get_sqlite_db_records'
  attach_query; both opened read-only (evidence is never modified).
- Store UTC: drop the convert_utc_human_to_timezone examiner-local shift (SQL emits
  UTC); remove the manual lava_process_artifact/lava_insert in favor of the pipeline.
- Remove the deprecated version field and the redundant function key; keep the existing
  creation_date/last_update_date. Author preserved (@abrignoni - @stark4n6).

Validation: pylint 10.00; runtime-tested the Protected Index attach + join (correct UTC
timestamps and column alignment); reserved-word/CREATE TABLE clean; PluginLoader loads.
@abrignoni abrignoni merged commit f995407 into main Jun 24, 2026
1 check passed
@abrignoni abrignoni deleted the lava-funckey-mailprotect branch June 24, 2026 18:58
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