Closed redphx closed 2 weeks ago
I know this is not sniffing traffic per se, but have you ran into this API documentation from Divoom: http://doc.divoom-gz.com/web/#/12?page_id=89
I hope you'll find this helpful. Might be able to do traffic capture at some later stage too.
@vhartikainen thank you. I know this site, but unfortunately it's not what I want. It only shows how to communicate with pixoo, not how pixoo communicate with the app and server.
@redphx: Are you able to share the URL where you got the firmware from? I'm currently doing some development with the Pixoo 64 and want to take a deeper look at the device.
Side note, if you've got a Windows machine, you can install Windows Subsystem for Android (WSA) and sideload apps, including the Divoom app. You can then use Wireshark to sniff the traffic. Here's some basic steps:
winget install 9P3395VX91NR
)127.0.0.1:<port number>
)adb connect 127.0.0.1:<whatever port number you found in step 2>
adb install <path-to-APK>
. The app will be sideloaded and show up in the start menuAlternatively, you can do the same with PCAPDroid and the Divoom app on real hardware.
Additionally, you can extract the Android logs by running adb logcat > logs.txt
and then viewing the logs.txt
file when you're done playing around in the app.
Also, once you have the APK, you can also decompile it using a decompiler such as http://www.javadecompilers.com/apk . It's an absolute mess (as most decompilations of APKs are), but if you're persistent, you can find some gold in there
And a quick tip: I think the app is an MQTT client, and / or perhaps acts as an MQTT server for the Pixoo, because there's a LOT of calls in the code to MQTT functions. There's an MQTT server that runs on appin.divoom-gz.com
, but I suspect the Divoom makes an MQTT connection TO the app, and passes info around via topics (e.g. DivoomApp
or possibly DivoomDevice
)
If I discover more, I'll update this comment.
Hi @Grayda, here are some firmwares file I downloaded from their server:
divoom-firmwares.zip
Got it awhile ago and forgot how I did it.
90
, 91
, 92
are device types. I think 90 & 92
are Pixoo64-wifi
, and 91
is pixoo16_wifi
.
Though interesting, I'll have to be sure that the prefixes relate to certain devices. This will be implemented in some way in the future! Though now it'll just try to connect to the "first" Divoom it sees on your LAN if no IP address is set :).
Hi @Grayda, here are some firmwares file I downloaded from their server: divoom-firmwares.zip
Got it awhile ago and forgot how I did it.
90
,91
,92
are device types. I think90 & 92
arePixoo64-wifi
, and91
ispixoo16_wifi
.
Hi @redphx, can i know this firmware is same with Pixoo64-wifi esp32 board? cause my Pixoo64 esp32 is faulty. i want to replace the esp32 module and re-flash it.
Hi @redphx, can i know this firmware is same with Pixoo64-wifi esp32 board? cause my Pixoo64 esp32 is faulty. i want to replace the esp32 module and re-flash it.
@ivan5077 maybe? I downloaded these files from their server. I never tested it myself.
Hi @redphx, can i know this firmware is same with Pixoo64-wifi esp32 board? cause my Pixoo64 esp32 is faulty. i want to replace the esp32 module and re-flash it.
@ivan5077 maybe? I downloaded these files from their server. I never tested it myself.
@redphx ok. thanks. i try to re-flash the esp32 module. thanks alot.
I have an idea: I want to create a project that simulate a Pixoo wifi device, and we can control it using the Divoom app. So in the future we could have our own Pixoo devices running ESP32, RPi...
The thing is I don't have a Pixoo 64 at the moment. I took a look at the firmware and looked like it doesn't use HTTPS when communicating with the server (it calls
http://app.divoom-gz.com/
). So in theory, we can use mitm to sniff HTTP request on the device.I'd be grateful if someone could help me. I only need to know the pairing process where it registers the device. I was able to do the first step by calling
Device/InitV2
, but after that I don't know anything.Thank you.