Skip to content

Releases: ReagentX/imessage-exporter

Whispering Bells

16 Jan 22:13
8ccf732
Compare
Choose a tag to compare

Version 2.3.0 Whispering Bells contains the following fixes and improvements:

This release is dedicated to the firefighters and first responders who faced the Los Angeles fires with unwavering courage. Your service has not only protected our communities but also, like the plant, symbolized hope and renewal rising from the ashes.

  • Query optimization
    • 70% reduction in processing time when using filters -s, -e, and/or -t
    • Enhanced database query performance and reliability, especially against legacy schemas
  • Enhanced sticker handling with improved source detection and display for #412 and #413
    • Genmoji stickers now show prompts
    • Memoji stickers are properly identified
    • App-sourced stickers show originating app name
    • User-generated stickers display effects
  • Fixes:
    • Database
      • Fix total_bytes calculation issues #390 and #391
      • Fix message recovery with active filters for #426
    • Messages
      • Fix Satellite (iMessageLite) messages rendering for #404
      • Fix attachment file name extension logic for #431
      • Fix display of attributed text in edited messages for #434
      • Properly render HTML entities in edited messages
      • Fix conversation side detection in legacy schemas for #437
    • Platform
      • Improve converter detection on Linux for #420
  • Miscellaneous
    • API changes
      • New features
        • Add GetBlob trait for standardized BLOB data access
        • Add new StickerSource enum and related functionality
      • Refactoring
        • Rename parse_plist to parse_ns_keyed_archiver
        • Move bundle ID parsing to dedicated module
        • Rework the EditedEvent portion of an EditedMessage
    • Improve test organization and coverage
    • Bump dependencies
    • Build with latest rustc

Live Oak

17 Dec 00:10
4ccbdcd
Compare
Choose a tag to compare

Version 2.2.2 Live Oak contains the following fixes and improvements:

  • Support filtering conversations to export for #61
    • Adds --conversation-filter CLI arg to filter conversations based on a specified string pattern
    • Supports partial matches and multiple patterns
      • --conversation-filter "steve@apple.com" exports conversations with steve@apple.com
      • --conversation-filter "steve@apple.com,+15558675309" exports all conversations with steve@apple.com or +15558675309
      • --conversation-filter "@apple.com" exports all conversations where the participant info contains @apple.com
      • Group conversations with selected participants are always included
  • Expand compatibility mode for #346 and #365
    • More compatibility conversions supported
      • video/quicktimevideo/mp4
      • audio/x-cafaudio/mp4
      • image/heic-sequenceimage/gif
    • Refactor --copy-method CLI arg:
      • -c clone copies files without converting
      • -c basic converts HEIC files to JPEG
      • -c full converts HEIC files to JPEG, CAF to MP4, and MOV to MP4
  • Improvements
    • Support detecting different types of Digital Touch messages
      • Example display

    • Support Audio Message transcriptions in #374
    • Support Genmoji Prompts in #378
  • Fixes
    • Resolve missing RCS message background color for #361
    • Fix missing TLDs in export file names for #355
    • Resolve a divide by zero error for #360
    • Resolve #390 and #391
    • Resolve #404
  • Miscellaneous
    • Rework test fixtures
    • Refactor file compatibility modules
    • Add diagnostics for detected encoders/converters
    • Bump dependencies
    • Build with latest rustc

Live Oak

26 Nov 19:20
0c75df4
Compare
Choose a tag to compare

Version 2.2.1 Live Oak contains the following fixes and improvements:

  • Support filtering conversations to export for #61
    • Adds --conversation-filter CLI arg to filter conversations based on a specified string pattern
    • Supports partial matches and multiple patterns
      • --conversation-filter "steve@apple.com" exports conversations with steve@apple.com
      • --conversation-filter "steve@apple.com,+15558675309" exports all conversations with steve@apple.com or +15558675309
      • --conversation-filter "@apple.com" exports all conversations where the participant info contains @apple.com
      • Group conversations with selected participants are always included
  • Expand compatibility mode for #346 and #365
    • More compatibility conversions supported
      • video/quicktimevideo/mp4
      • audio/x-cafaudio/mp4
      • image/heic-sequenceimage/gif
    • Refactor --copy-method CLI arg:
      • -c clone copies files without converting
      • -c basic converts HEIC files to JPEG
      • -c full converts HEIC files to JPEG, CAF to MP4, and MOV to MP4
  • Improvements
    • Support detecting different types of Digital Touch messages
      • Example display

    • Support Audio Message transcriptions in #374
    • Support Genmoji Prompts in #378
  • Fixes
    • Resolve missing RCS message background color for #361
    • Fix missing TLDs in export file names for #355
    • Resolve a divide by zero error for #360
    • Resolve #390 and #391
  • Miscellaneous
    • Rework test fixtures
    • Refactor file compatibility modules
    • Add diagnostics for detected encoders/converters
    • Bump dependencies
    • Build with latest rustc

Live Oak

24 Nov 21:23
083b83c
Compare
Choose a tag to compare

Version 2.2.0 Live Oak contains the following fixes and improvements:

  • Support filtering conversations to export for #61
    • Adds --conversation-filter CLI arg to filter conversations based on a specified string pattern
    • Supports partial matches and multiple patterns
      • --conversation-filter "steve@apple.com" exports conversations with steve@apple.com
      • --conversation-filter "steve@apple.com,+15558675309" exports all conversations with steve@apple.com or +15558675309
      • --conversation-filter "@apple.com" exports all conversations where the participant info contains @apple.com
      • Group conversations with selected participants are always included
  • Expand compatibility mode for #346 and #365
    • More compatibility conversions supported
      • video/quicktimevideo/mp4
      • audio/x-cafaudio/mp4
      • image/heic-sequenceimage/gif
    • Refactor --copy-method CLI arg:
      • -c clone copies files without converting
      • -c basic converts HEIC files to JPEG
      • -c full converts HEIC files to JPEG, CAF to MP4, and MOV to MP4
  • Improvements
    • Support detecting different types of Digital Touch messages
      • Example display

    • Support Audio Message transcriptions in #374
    • Support Genmoji Prompts in #378
  • Fixes
    • Resolve missing RCS message background color for #361
    • Fix missing TLDs in export file names for #355
    • Resolve a divide by zero error for #360
  • Miscellaneous
    • Rework test fixtures
    • Refactor file compatibility modules
    • Add diagnostics for detected encoders/converters
    • Bump dependencies
    • Build with latest rustc

Prickly Pear

06 Oct 21:03
d254e55
Compare
Choose a tag to compare

Version 2.1.1 Prickly Pear contains the following fixes and improvements:

  • Support new iOS 18 features
    • Custom tapbacks for #274
    • Text Effects for #275
  • Support Handwritten messages for #31
    • Contributed by @trymoose
    • Reverse engineering writeup located here
  • Improvements
    • Make deduplication deterministic for chats and handles
      • As a side effect, this also makes exported filenames deterministic
    • Increase performance of HTML entity sanitization logic
    • Reduced export size with improved attachment handling
      • Only copy attachments in threaded messages once
      • Share attachments across TXT and HTML exports in the same directory
    • Improve file creation error messages
    • Attribute old style sticker reactions to senders
  • Fixes
    • Better Windows support for #318 and #331
    • Display URL balloons that contain malformed payloads
    • Always deserialize typedstream data even if text column is already populated
    • Fix typedstream deserializer object reference handling for embedded data
    • Fix #348
  • Miscellaneous
    • Documentation updates
    • Reaction has been renamed Tapback throughout the library
    • Build with latest rustc

Prickly Pear

19 Sep 20:54
3567424
Compare
Choose a tag to compare

Version 2.1.0 Prickly Pear contains the following fixes and improvements:

  • Support new iOS 18 features
    • Custom tapbacks for #274
    • Text Effects for #275
  • Support Handwritten messages for #31
    • Contributed by @trymoose
    • Reverse engineering writeup located here
  • Improvements
    • Make deduplication deterministic for chats and handles
      • As a side effect, this also makes exported filenames deterministic
    • Increase performance of HTML entity sanitization logic
    • Reduced export size with improved attachment handling
      • Only copy attachments in threaded messages once
      • Share attachments across TXT and HTML exports in the same directory
    • Improve file creation error messages
    • Attribute old style sticker reactions to senders
  • Fixes
    • Better Windows support for #318 and #331
    • Display URL balloons that contain malformed payloads
    • Always deserialize typedstream data even if text column is already populated
    • Fix typedstream deserializer object reference handling for embedded data
  • Miscellaneous
    • Documentation updates
    • Reaction has been renamed Tapback throughout the library
    • Build with latest rustc

California Poppy

03 Aug 22:39
c327e6f
Compare
Choose a tag to compare

Version 2.0.1 California Poppy contains the following fixes and improvements:

  • Implement a custom, pure Rust typedstream deserializer
    • Support parsing message body components from deserialized typedstream data
    • Support interactive message text using deserialized attributedBody range attributes:
    • Refactor EditedMessage design to support multi-part messages
      • Support unsending and editing specific message parts for #277
      • Use new typedstream deserializer for edited message body data
  • Fixes
    • Support legacy shared location message display for #271
    • Fix date filter logic for #286
    • Improve -c compatible with iOS backups for #296
    • Fix Message::date_edited() for #311
    • Increase maximum allowed file handles for #314
  • 2x faster performance:
    • Use BufWriter<File> instead of PathBuf in Exporter structs
    • Improves performance by ≈25% (16k/s to 22k/s)

      Before:
      image
      After:
      image

    • Use column names for messages table queries against most recent table schema
    • Improves performance by ≈50% (22k/s to 33k/s)

      Before:
      image
      After:
      image

  • Miscellaneous
    • Update MIME type parsing logic
    • Significantly improve Windows compatibility
    • Do not emit HEIC converter logs if --copy-method is not compatible
    • Major documentation updates
    • Humanize output of CLI progress bar
    • Better HTML sanitization for message body content
    • Add more FAQs
    • Build with latest rustc

Beach Strawberry

10 Jun 15:09
c694773
Compare
Choose a tag to compare

Version 1.9.0 Beach Strawberry contains the following fixes and improvements:

  • Rework edited message parsing logic
  • Improve accuracy of estimated export size for #246
  • Improve backwards compatibly for #188
  • Improve Windows compatibility by removing dependency on HOME environment variable
  • Add diagnostic docs for #223
  • Support Imagemagick v7 for #263
  • Support legacy location sharing messages for #271
  • Improve SharePlay message display
  • Remove last remaining unwrap() calls in library and binary code
    • The only remaining unwrap() calls are in tests
    • None exist in library or app code
  • Add missing viewport tag to improve mobile display:
    • Example mobile display

  • Add missing documentation to table struct fields
  • Miscellaneous docs updates, code cleanups, and small speedups
  • Build with latest rustc

Velvet Ash

04 Dec 00:25
4deeac9
Compare
Choose a tag to compare

Version 1.8.0 Velvet Ash contains the following fixes and improvements:

  • Upgrade Clap from 3.x to 4.x for #198
  • Use PST timezone for tests for #199
  • Check for available disk space before writing export files for #201
    • Prevents exporting if there is not enough disk space
    • Dismissible with --ignore-disk-warning
  • Use correct date offset in Check In messages for #202
  • Improve html escape logic for text to fix #32 and #217
  • Properly render thread originators that were edited for #220
  • Improve exported data quality
    • Simplify Apple Pay and Apple Cash bubbles in html exports
    • Simplify Find My bubbles in html and txt exports
    • Support parsing Placemark data from shared Maps links
    • Properly handle Handwritten message placeholder
    • Properly handle all unsent message types, not just text
  • Add some new diagnostics:
    • Total number of messages
    • Total database size
    • Attachment size referenced in table
    • Attachment size on disk
    Example output

    iMessage Database Diagnostics
      Message diagnostic data:
          Total messages: 97541
          Messages not associated with a chat: 3406
          Messages belonging to more than one chat: 29
      Attachment diagnostic data:
          Total attachments: 36636
              Data referenced in table: 32.11 GB
              Data present on disk: 27.73 GB
          Missing files: 6231 (17%)
              No path provided: 6132
              No file located: 99
      Global diagnostic data:
          Total database size: 199.43 MB
          Duplicated contacts: 76
          Duplicated chats: 16

  • Miscellaneous docs updates, code cleanups, and small speedups

Laurel Sumac

20 Nov 00:02
f907848
Compare
Choose a tag to compare

Version 1.7.0 Laurel Sumac contains the following fixes and improvements:

  • iOS 17 and macOS Sonoma Support!
    • Support Check In messages for #173
      • Support parsing URL query string metadata
    • Support parsing iOS 17 Sticker Effects for #174
      • Properly copy, convert, and display sticker messages
      • Support converting animated and transparent stickers
  • Emit clearer error if the specified database path exists but is not an iMessage database for #177
  • Support custom attachment root for #178
  • Make chat service_name field Optional for #181
  • Downgrade error to warning when no-lazy flag is set for txt exports for #189
  • Support parsing App Store app links for #196
  • Build with latest rustc