imessage-exporter icon indicating copy to clipboard operation
imessage-exporter copied to clipboard

Digital Touch support

Open trymoose opened this issue 1 year ago • 13 comments

When researching handwritten messages I found digital touch messages were handled in bluebubbles the same way here and here. Piping them through protoscope gives a valid message but it is different and more complex than the handwritten ones.

trymoose avatar Sep 19 '24 01:09 trymoose

~~Digital Touch is already supported—they are sent as gifs.~~

ReagentX avatar Sep 19 '24 02:09 ReagentX

Actually this appears to have changed–they no longer get converted by the system. For what it's worth, they aren't supported by macOS either:

image

ReagentX avatar Sep 19 '24 02:09 ReagentX

They also sometimes seem to not even have the requisite payload:

image

ReagentX avatar Sep 19 '24 02:09 ReagentX

I've been generating and viewing them on iOS. I don't think I've seen one with a NULL payload before.

trymoose avatar Sep 19 '24 02:09 trymoose

Ok, so the one that had a NULL payload used the subject column (the one used for message subject lines) contained a GUID that mapped to an existing Digital Touch message in the conversation:

image

ReagentX avatar Sep 19 '24 02:09 ReagentX

I've made some progress implementing support for these messages.

  • [x] Tap
  • [x] Heartbeat
    • [x] Heartbreak
  • [x] Kiss
  • [x] Sketch
  • [x] Fireball
  • [ ] Photo
  • [ ] Video

trymoose avatar Sep 19 '24 03:09 trymoose

Ok, so the one that had a NULL payload used the subject column (the one used for message subject lines) contained a GUID that mapped to an existing Digital Touch message in the conversation:

image

Was the NULL message copy and pasted in iMessage?

trymoose avatar Sep 19 '24 03:09 trymoose

It was not pasted and also does not show up in the thread.

ReagentX avatar Sep 19 '24 03:09 ReagentX

The only other thought I have right now is that it might be related to the announcements that show up saying "person kept a Digital Touch Message from you."

trymoose avatar Sep 19 '24 03:09 trymoose

~~Those seem to come from one of the date columns.~~

ReagentX avatar Sep 19 '24 03:09 ReagentX

The NULL Digital Touch messages do not have date_played and also have a custom type of 5, which may indicate the "Kept" status as you mentioned:

image

Also, they do not always have the subject field populated and contain no typedstream-encoded body data:

image

They also set this message_action_type field and do not have expiry data:

image

In my database, an item_type of 5 always correlates with a message_action_type of 2.

ReagentX avatar Sep 19 '24 12:09 ReagentX

I found some of the NULL payloads in my databases. I saw the database shows they are not delivered but finished:

Screenshot from 2024-09-19 20-23-50

I had the same item_type of 5 and message_action_type of 2.

trymoose avatar Sep 20 '24 00:09 trymoose

Yes, I see the finished status too—it also appears for messages sent with full-screen expressives.

ReagentX avatar Sep 20 '24 00:09 ReagentX

image

Adding rudimentary support for displaying the type of message for now.

ReagentX avatar Nov 15 '24 21:11 ReagentX