Skip to content

Problems to extract data in non-root phone #6

Open

Description

@vicmanmo

Hi,

I need to extract MyBand data to create a virtual sensor in OpenIoT.

I have a non-rooted Xioami RedMi Note 2 and I set ForceBackupMode value to Y in run.sh, but in my phone I don't see backup screen. In the other project of author is @XmXm, I see backup screen, but the program doesn't run.

Can you help me?

The result of running run.sh is this:

extraction started on 02/23/2017 09:36
cannot find database files. non-rooted phone? attempting native backup approach
adb server is out of date. killing...

  • daemon started successfully *
    adb: unable to connect for backup
    dd: mi.ab: no se puede saltar al desplazamiento especificado
    0+0 registros leídos
    0+0 registros escritos
    0 bytes copied, 5,8166e-05 s, 0,0 kB/s
    tar: Esto no parece un archivo tar
    tar: apps/com.xiaomi.hm.health/db/origin_db: No se encuentra en el archivo
    tar: apps/com.xiaomi.hm.health/db/origin_db-journal: No se encuentra en el archivo
    tar: Se sale con estado de fallo debido a errores anteriores
    cp: no se puede efectuar `stat' sobre 'apps/com.xiaomi.hm.health/db/origin_db*': No existe el archivo o el directorio
    extracted MiBand database
    deleting temp backup files
    extraction failed
    still cannot find new database files - restoring original database backups

Thank you very much

Activity

  1. vicmanmo commented on Feb 23, 2017

    @vicmanmo
    Author

    I have changed run.sh for using adb of my OS, and now I see backup screen and read registers.

    But tar: apps/com.xiaomi.hm.health/db/origin_db: it doesn't find the file.

    Can you help me?

    The result of running run.sh is this:

    extraction started on 02/23/2017 10:27
    cannot find database files. non-rooted phone? attempting native backup approach
    press Backup My Data button on device...
    adb server is out of date. killing...

    • daemon started successfully *
      Now unlock your device and confirm the backup operation.
      17+0 registros leídos
      17+0 registros escritos
      17 bytes copied, 3,0043e-05 s, 566 kB/s
      tar: apps/com.xiaomi.hm.health/db/origin_db: No se encuentra en el archivo
      tar: apps/com.xiaomi.hm.health/db/origin_db-journal: No se encuentra en el archivo
      tar: Se sale con estado de fallo debido a errores anteriores
      cp: no se puede efectuar `stat' sobre 'apps/com.xiaomi.hm.health/db/origin_db*': No existe el archivo o el directorio
      extracted MiBand database
      deleting temp backup files
      extraction failed
      still cannot find new database files - restoring original database backups

    Thank you very much

  2. vicmanmo commented on Feb 23, 2017

    @vicmanmo
    Author

    When it executed

    adb backup -f mi.ab -noapk -noshared com.xiaomi.hm.health

    The file mi.ab doesn't have data.

    Where is the problem??

  3. jreznik commented on Jun 29, 2018

    @jreznik

    Same here - it doesn't matter if I use system adb or recent platform-tools adb from Google. com.xiaomi.hm.health is even not in the full backup.

  4. ErikBjare commented on Dec 2, 2018

    @ErikBjare

    Same, tried to figure out why but no luck

  5. ironjan commented on Dec 9, 2018

    @ironjan

    Hi,

    the mi fit app now has an export functionality, most like because of GDPR. Through some google search I came across the URL the in-app browser of Mi Fit would be using for the export: https://user.huami.com/hm_account/2.0.0/index.html?loginPlatform=web&platform_app=com.xiaomi.hm.health&v=s3.1.1#/

    You can get your data from there*. I just checked the files and the numbers matched the app so far. The export contained 6 CSV files in my case:

    (NAME OF FILE).csv
    (CSV HEADER)
    
    ACTIVITY_<ID>.csv
    date,lastSyncTime,steps,distance,runDistance,calories
    
    BODY_<ID>.csv
    timestamp,weight,height,bmi,fatRate,bodyWaterRate,boneMass,metabolism,muscleRate,visceralFat,impedance
    
    HEARTRATE_<ID>.csv
    date,lastSyncTime,heartRate,timestamp
    
    SLEEP_<ID>.csv
    date,lastSyncTime,deepSleepTime,shallowSleepTime,wakeTime,start,stop
    
    SPORT_<ID>.csv
    type,startTime,sportTime,distance,maxPace,minPace,avgPace,calories
    
    USER_<ID>.csv
    userId,gender,height,weight,nickName,avatar,birthday
    

    *I did not test the app export functionality itself as it requested me to login again - with my main Google account in an app-internal browser, despite using Google as my "Mi Fit App login".

  6. ErikBjare commented on Dec 9, 2018

    @ErikBjare

    @ironjan That's great news! Trying it out now, thanks a bunch for letting us know ❤️

    Edit: Export worked fine, but disappointed to only find day-resolution data and not minute resolution for steps/heartrate 😞 Was that available in the exports made with the mifit-data-export tool?

  7. ironjan commented on Sep 7, 2019

    @ironjan

    TL;DR: GDPR complaint caused export to gain minute-wise data.


    @ErikBjare Took a while to come back. After your comment I checked the data and verified that it is not minute-wise. Since then I have requested minute-wise data from xiaomi (my mistake; even though the play store privacy agreement states Xiaomi, the data seems to be at Huami). After there was no reaction, I issued a GDPR complaint to the data protection office of Northrhine-Westphalia and received word a few weeks back that "the app has been updated to export minute-wise data". This was untrue then; I tried again today and the most export contained minute wise data. I did not yet verify if the export is complete.


    Extract:

    $ ls
    ACTIVITY.csv  ACTIVITY_MINUTE.csv  ACTIVITY_STAGE.csv  BODY.csv  HEARTRATE_AUTO.csv  HEARTRATE.csv  SLEEP.csv  SPORT.csv  USER.csv
    $ head ACTIVITY_MINUTE.csv
    date,time,steps
    2018-03-24,18:26,12
    2018-03-24,18:29,104
    2018-03-24,18:32,117
    2018-03-24,18:33,37
    2018-03-24,18:34,104
    2018-03-24,18:37,127
    2018-03-24,18:39,116
    2018-03-24,18:40,115
    2018-03-24,18:41,112
    $ head HEARTRATE.csv
    date,lastSyncTime,heartRate,timestamp
    1565020753,70
    1564605323,76
    1554157496,72
    1546406148,62
    1545737025,81
    1545006196,80
    1542865300,78
    1542788260,72
    1542615574,67
    $ head HEARTRATE_AUTO.csv
    date,time,heartRate
    2018-04-12,19:48,47
    2018-04-12,19:50,53
    2018-04-12,19:52,65
    2018-04-12,19:54,53
    2018-04-13,01:52,74
    2018-04-13,01:54,68
    2018-04-13,01:56,71
    2018-04-13,01:58,69
    2018-04-13,02:00,70
    
  8. ErikBjare commented on Sep 8, 2019

    @ErikBjare

    @ironjan Amazing! Thank you so much for putting in the effort!

  9. howff commented on Jan 15, 2022

    @howff

    The new website address is https://mifit.huami.com/t/account_mifit
    (which, for me, redirects to https://user.huami.com/privacy2/index.html?loginPlatform=web&platform_app=com.xiaomi.hm.health&v=4.0.17#/)

    However it still does not include all of the data which is in the app.
    For example sleep data, it only has total minutes in each zone, whereas the app has exact start times of each zone transition.
    Does anyone know how to get huami to update their export with this data?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions