Skip to main content

MyAir 4 workaround

ยท 3 min read
Andy Reid
Andy the Muppit

My phone plays Elsa's secret siren call from Frozen 2 when Charlotte sends me a message. She has to have the air con on all the time in our room and it's often 15-17 degrees in there. It's bloody cold, but she needs it and our air con is very important, so when the MyAir 4 control app wouldn't start yesterday that was a problem.

Unfortunately the trusted "turning it off and on again" was not going to fix it. None of these worked: powering off the system, rebooting and clearing the tablet's cache, or reinstalling Google Play.

IT Crowd "Have you tried turning it off and on again?"

If you have a MyAir 4 air con system running on an older Android tablet you may want to read on.

The air con software could have been designed to be tolerant of non-existent domains or remote databases. Instead a clock was ticking down without me knowing that triggered yesterday and rendered the whole system off-line. This feels like engineered obsolescence.

Physically everything was still functioning except for the Android app crashing within a second of starting up.

These systems have no physical controls outside of the modified Android tablet. It has an Ethernet port at the back, no battery or USB connectors, and connects directly to the unit in the roof via an Ethernet cable, where it gets its power.

It cannot be upgraded either, running a 12 year old OS, which restricted my ability to diagnose on the tablet.

Watching the network logs showed the tablet doing DNS lookups for hostnames that no longer resolved, the app didn't like that, restarted once, then stopped trying.

It turns out that the Fabric era Crashlytics SDK shut down on 15 November 2020. DNS for the legacy endpoint was retained for years, but no longer.

I started an Ubuntu VM on my Mac, installed nginx and openssl, generated a self-signed cert, then created a new DNS zone on my router and added a record for settings to my VM IP. Then I needed to install the cert onto the tablet, without USB or the ability to install apps.

For that I started a Python web server running on port 8080 and used Chrome on the tablet to download it and install via security settings.

Once the connection wasn't dropped I then worked on the response to the API requests, modelling it on a 2017 captured response.

But something else was now causing the app to crash. For visibility I installed DNS (dnsmasq) on the VM with verbose logging and manually changed the tablet wifi to use it. Now I could see it looking up the MyAir 4 Firebase database. However, this returned HTTP 423 Locked with the message "The Firebase database 'aastringsv3' has been deactivated".

I updated the cert with all the hostnames and intercepted the records on the server.

The app started and hasn't crashed since. No-one was up at 1am to hear my shout of joy.

If you have a MyAir 4 system more than 10 years old and the control app started crashing in the last few days, this could be what is happening. Send me a message and I will step you through my workaround.

I'm Andy, I will find a way to get it working.


Read more: Andy the Muppit