Close
0%
0%

Mi Band reverse engineering

I want to liberate the thing I'm going to be keeping on my wrist

Similar projects worth following
The Mi Band is a fairly effective little device at keeping track of step count. The problem is that the application used is closed source and obfuscated.

I want to figure out the protocol used to communicate with the band, fetch data about steps, sleep, etc, and be able to aggregate it.

Fundamental project goals:

  • Figure out the protocol for the Xiaomi Mi Band for the purposes of:
    • Reading the step count
    • Reading activity data (even if it's dumped to disk somewhere
    • Writing the firmware
    • Buzzing the device
  • Write a suitable app which
    • Interfaces with the Mi Band
    • Stores information logged from the Mi Band.
    • Displays information from the synchronized data.
    • Shows historical data for steps/sleep/etc.
  • Continue to reverse-engineer Xiaomi protocols
    • Extracted information from APK shows evidence of other Xiaomi devices targeting this app
      • 'shoes.fw'
      • 'mili_hr.fw'
      • 'weight.fw'

View all 3 project logs

Enjoy this project?

Share

Discussions

Yury-MonZon wrote 11/17/2017 at 21:57 point

You can get and many other datasheets it from Dialog's website https://www.dialog-semiconductor.com/products/connectivity/bluetooth-low-energy/smartbond-da14580

  Are you sure? yes | no

Sabas wrote 08/05/2016 at 23:51 point

What chip is the band?

  Are you sure? yes | no

pizza wrote 04/18/2016 at 18:38 point

this link may be helpful.  It's about reverse an app of another wearable fitness bracelet.  


https://www.evilsocket.net/2015/01/29/nike-fuelband-se-ble-protocol-reversed/


i think a lot of funny stuff can be done hacking this bracelet but the hardest part will be understand and change the firmware. 

Let us know. 

  Are you sure? yes | no

Alexey wrote 03/24/2016 at 07:49 point

Is it real to edit original app to make it download band's firmware and save it in phone's storage?

I'm not in android development but quite qualified in embedded system. I think that band has some bootloader that allow to update it's firmware via bluetooth. I'm not sure but i think that firmware is sent to band in quite easy format, not encrypted or something. May be it's XORed.

If we'll know how to decrypt firmware that app downloaded, we can load our firmware to band and get full access to it by dumping whole SoC memory by our modified FW.

Can someone consult me with android app reverse?

  Are you sure? yes | no

Yury-MonZon wrote 09/03/2017 at 21:23 point

Hi! Any updates on firmware uploading? You can use Gadgetbridge in order to upload your own firmware. I've downloaded the compiler and build a simple hello world example, but I'm not entirely sure whether I'm going to brick it or not =)

  Are you sure? yes | no

Alexey wrote 11/17/2017 at 12:49 point

I have one teared down band, but last months i had no time to work with it. May it's completely discharged.

What compiler had you got?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates