FingerMgmt

FingerMgmt is an OS X application that visualizes the raw data from your trackpad or magic mouse.


Finger MGMT

The story

Back in 2009, right after Apple released their Magic Mouse, I got really curious about what data you could get out of the multi-touch inputs available to the computer.

So I started digging around and found the private MultitouchSupport framework. Dumping its symbols yielded some interesting methods:

nm -g /System/Library/PrivateFrameworks/MultitouchSupport.framework/MultitouchSupport
...
0000000000003345 T _MTDeviceCreate
00000000000011c7 T _MTDeviceCreateDefault
00000000000015bd T _MTDeviceCreateFromDeviceID
00000000000013df T _MTDeviceCreateFromGUID
0000000000000d28 T _MTDeviceCreateFromService
0000000000000a60 T _MTDeviceCreateList
...

I plugged a few of them into google and came up with this header uploaded to some pastebin. After that the rest was a breeze, just hook up the callback and badabing badaboom – FingerMgmt.

After showing it to my friend he wrote a blog post about it that got picked up by Gizmodo and a few other tech sites.

Three years and 200,000 downloads later when digging through my backups I found the source code and decided to dust it off and release it on Github... As usual I ended up doing a bit more than I set out to do and rewrote the entire application using OpenGL (shaders are fun :)

Also, there are some symbols in MultitouchSupport that suggest you can get bitmap data out of the sensor! It would be really cool to do something with this data, if you are good at reverse engineering I would love to do some collaboration. Send me an email or just fork away at Github.

_MTRegisterImageCallback
_MTRegisterMultitouchImageCallback
_MTImagePrintCallback
_mt_IssueImageCallback