Recently I was contacted regarding my dash cam GPS coordinate extraction script. The request was regarding wrong data being produced. I have addressed something similar in the past, so I decided to have a go at this one (I like a challenge).
Unfortunately I was presented with this:
00052eb0 00 20 00 00 63 6c 75 72 00 00 40 00 66 72 65 65 |. ..clur..@.free|
00052ec0 47 50 53 20 f0 03 00 00 59 6e 64 41 6b 61 73 6f |GPS ....YndAkaso|
00052ed0 43 61 72 00 00 00 00 00 00 00 00 00 00 00 00 00 |Car.............|
00052ee0 00 00 00 00 00 00 00 00 16 00 00 00 16 00 00 00 |................|
00052ef0 39 00 00 00 e5 07 00 00 04 00 00 00 08 00 00 00 |9...............|
00052f00 41 4e 57 00 00 00 00 00 ad bb 79 aa 9f 20 c6 40 |ANW.......y.. .@|
00052f10 c9 fd 0e 45 91 98 c1 40 37 a6 75 41 33 33 a7 41 |...E...@7.uA33.A|
00052f20 33 58 5a 55 4e 4e 31 35 39 35 32 39 37 34 36 35 |3XZUNN1595297465|
00052f30 59 4e 44 53 01 00 00 00 00 00 00 00 00 00 00 00 |YNDS............|
00052f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Poking about I realised the data is not simply obfuscated…
Eventually I stumbled upon this:
According to exiftool forum the player uses an internet service to decode the data, which is a huge bummer.
I will try to decompile the player but at this stage I don’t believe I will have any success.
To add an insult to injury the dash cam manufacturer asked the dash cam owner not a small amount of money to decrypt these coordinates. Actually you could outfit a small fleet with new cameras from Viofo for the amount of money they asked.
So here are the brands so far to avoid (do not buy them):
or any brand that requires their own player to playback the coordinates.
It appears that not only my quick hack of a script is popular but also that the dashcam manufacturers keep changing things.
In this case the biggest change (beyond utterly stupid data obfuscation) is the switch to the TS format.
In retrospect TS format is an obvious choice for something like dashcam as it is very resilient to crashes (no pun intended).
TS format unlike the MP4/MOV format is very simple, it is pretty much made up of fixed 188 byte segments which have ASCII ‘G’ as a header. The actual payload lives in last 184 bytes while the first 4 bytes are reserved for header (of course this is all simplified).
The biggest difficulty of adding TS functionality is that Blueskysea B4K camera was engineered by sadists and they split the payload into two packets (arbitrary cutting off at the seconds 4 bytes). If you are the person at the BlueSkysea who made this obfuscation – fuck you.
In anyway this update is massive rewrite.
Just to make it easy here is the script: nvtk_mp42gpx.py
Recently my phone has been updated to Android 10, with it I found the Digital Wellbeing spyware reinstalled and now fully baked in (no uninstall or disable option).
The prerequisite for this process: you need ADB (the installation of which will not be covered here). No root needed (yet).
Here is the ADB command you need to run:
adb shell pm uninstall -k --user 0 com.google.android.apps.wellbeing
This change is semi-permanent, if you want this nagware back, I can’t really help you (you might be able to reinstall it from the store).
I do not understand the reason one would use this app. If you think you spend too much time on your phone, you don’t need an app to tell you that. My phone is a tool, and having some lock-out and nagging (self-inflicted!) on your own device is absurd.
It is absurd to bake this app in, the only reason is to spy on its users more.
If you hate this app (and everything it stands for) as much as me give it one star on the google play store.
One of my A119 Cameras started to beep while presenting the “Format Yes/Cancel” prompt after long downtime. The date was also reset.
Before pandemic this was not as annoying as it would almost never do it, but with pandemic and work from home it does it pretty much every start up.
The Problem would go away once the date would be updated via GPS and the issue not come back until next very long shut down.
Continue reading Viofo A119 – Beeping with the Format prompt after a long downtime
After the lightning strike on our mains transformer one of the printers (Brother MFC-9320CW) lost Ethernet link.
Upon further troubleshooting I concluded that the PHY chip gave up the ghost.
Continue reading Brother MFC-9320CW No Ethernet Link Repair
The chip in question is ASIX AX88796BLF. It appears from the board it has absolutely no input protection what so ever, hence it gave up the ghost.
A bit of warning: the AX88796BLF comes in QFP64 7mm x 7mm package with a microscopic 0.4mm pin pitch. I would not recommend this repair without hot air.
Surprisingly to me the script that I haphazardly put together turned out to be very popular.
I decided to quickly update it (after multiple feature and bug fixes requests)…
The highlights are:
Continue reading 2020 update of the nvtk_mp42gpx.py script
- Automatic finding of the correct position of the data block (more on that below).
- Introduction of -m flag, which creates separete GPX file per input file (default behaviour is a single GPX output file for multiple input files).
- More robust argument parsing (now it should always display help if wrong arguments are used)
- Introduction of -d flag, which allows to de-obfuscate GPS coordinates.
Our Forester has developed a noise that is similar to a turbo-prop aircraft. This is not the first time it did, as the front bearing have been recently replaced.
Unfortunately this time the noise was not as directional as with the front wheel bearings. The whole cabin was filled with roar above 70km/h, and sometimes it appeared that the noise would come from the front.
Continue reading SJG Forester – tracking down noisy wheel bearings
Here is how I converted north American Dewalt DCB101 to proper supply voltage (warning: do it at your own risk).
Continue reading Converting DeWalt DCB101 110V charger to 240V
I have made this conversion based on many internet forum posts and youtube videos.
Note: there are at least two versions of this charger and newer version requires rewinding the transformer (at least according to internet).
Why? For some stupid reason 240V chargers locally cost 2 to 3 times more than in USA.
I recently bought an Opus BT-C100, as unlike my other Lithium Ion chargers, has a discharge test feature. It also fairly quickly estimates internal resistance of the cell, which is a good health indicator.
Unfortunately due to A123 26650 cell being of upside down construction I released the magic smoke out of the Opus BT-C100 by reversing polarity. The smoke escaped through the battery holder slit.
Continue reading Opus BT-C100 reverse polarity protection
Recently I was experimenting with an ESP8266 board (Wemos D1 Mini) running Micropython.
I connected a HC-SR501 PIR sensor to it only to find it it would false trigger.
Continue reading Mitigating false positive triggers of a HC-SR501 PIR sensor connected to an ESP8266