Week 37

September 2015—September 2015

This is a post about weeknotes.

Flight to Berlin with a medium suitcase and a carry-on.

Spend my birthday wandering the streets in the sunshine and having a nice dinner.

In holiday-mode now, just taking a few weeks off to relax and reconsider.


I did build a quick toy app that uses the GPS location of the device and tells you whether you're in East of West Germany. This required quite a bit of digging around to find geospatial data sources and some nice javascript library for querying it. Turf is good for this. I used React Native which was really quick to get going with. And now you can install apps on iOS without needing part of the developer programme which makes testing a bit easier. It doesn't quite work yet, and I don't know why so needs further investigation.

Wifi camera

My Pansonic LX100 camera has an iPhone app that allows you do download images over wifi and also remote control the camera. The "Panasonic Image App" itself looks a bit rubbish and you only seem to be able to download single photos. Also, there's no way to get the photos onto my laptop.

I started having a look at reverse engineering the protocol. Pressing the wifi button on the phone creates a wifi network that the device has to join. I used some trickery that enables you to listen in on iPhone network activity via a laptop and used Wireshark to capture the communication between the phone app and the camera.

  1. List Mac laptop network interfaces
    ifconfig -l
  2. Connect iOS device via USB/lightning cable
  3. Use iTunes on Mac to get UUID of device (Summary, click serial, right-click, Copy)
  4. Set-up virtual interface using UUID on mac that routes all traffic:
    rvictl -s
    rvictl -s b81cxx812xxb79aceb893e096912aa19788e3fe6
  5. Interface should appear:
    ifconfig -l
  6. Use wireshark to capture traffic on that interface

After a lot of messing around, I've got a simple proof-of-concept that can get access the photos - both thumbnails and originals. I should write it up in more detail and then figure out what to do next with it.