Dolnor/mifit-data-export

script results with empty mi.ab

Opened this issue · 3 comments

At a line

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

After executing manually

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

The backup procedure is recognised ( I get the query for authorising it on the phone screen).
My resulting mi.ab is

$ cat mi.ab
ANDROID BACKUP
3
1
none
x?c`?`?T

Which further results with empty archive. I tried to debug script myself, I made sure package name is correct

$ adb shell 'pm list packages -f' | grep health
package:/data/app/com.xiaomi.hm.health-1/base.apk=com.xiaomi.hm.health

My MiFit app is 2.2.10, my phone is MI4LTE, Android 6.0.1 MMB29M, MIUI MIUI 8.1 | Stable 8.1.3.0(MXDCNDI)

I extracted some debug logs from logcat

01-16 17:34:50.364 26036 26036 D AndroidRuntime: Calling main entry com.android.commands.bu.Backup
01-16 17:34:50.366 26036 26036 D bu      : Beginning: backup
01-16 17:34:50.361 26036 26036 W main    : type=1400 audit(0.0:1262): avc: denied { ioctl } for path="socket:[284547]" dev="sockfs" ino=284547 ioctlcmd=7704 scontext=u:r:shell:s0 tcontext=u:r:adbd:s0 tclass=unix_stream_socket permissive=0
01-16 17:34:50.368  1633  3281 V BackupManagerService: Requesting full backup: apks=false obb=false shared=false all=false system=true pkgs=[Ljava.lang.String;@542d227
01-16 17:34:50.369  1633  3281 I BackupManagerService: Beginning full backup...
01-16 17:34:50.369  1633  3281 D BackupManagerService: Starting backup confirmation UI, token=2090823965
01-16 17:34:50.370  1633  3281 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.startActivity:668 com.android.server.backup.BackupManagerService.startConfirmationUi:8877 com.android.server.backup.BackupManagerServiceInjector.startConfirmationUi:37 com.android.server.backup.BackupManagerService.fullBackup:8740 com.android.server.backup.Trampoline.fullBackup:230 
01-16 17:34:50.370  1633  3281 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.startActivity:680 android.app.ContextImpl.startActivity:669 com.android.server.backup.BackupManagerService.startConfirmationUi:8877 com.android.server.backup.BackupManagerServiceInjector.startConfirmationUi:37 com.android.server.backup.BackupManagerService.fullBackup:8740 
01-16 17:34:50.373  1633  3281 I ActivityManager: START u0 {act=fullback flg=0x10000000 cmp=com.android.backupconfirm/.BackupRestoreConfirmation (has extras)} from uid 1000 on display 0
01-16 17:34:50.382  1633  1689 V BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@475df1f
01-16 17:34:50.383  1633  1689 V BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@125a26c
01-16 17:34:50.383  1633  3281 E ActivityManager: Invalid thumbnail dimensions: 0x0
01-16 17:34:50.404  1633  3708 I Timeline: Timeline: App_transition_ready time:6884550
01-16 17:34:50.405  1633  3281 D BackupManagerService: Waiting for full backup completion...
01-16 17:34:50.424  1633  1647 D CryptdConnector: SND -> {8 cryptfs cryptocomplete}
01-16 17:34:50.424  1633  2858 D CryptdConnector: RCV <- {200 8 1}
01-16 17:34:50.428  1633  1689 I Timeline: Timeline: App_transition_ready time:6884574
01-16 17:34:50.429  1633  1689 I Timeline: Timeline: App_transition_ready time:6884575
01-16 17:34:50.446  1633  1689 I Timeline: Timeline: App_transition_ready time:6884591
01-16 17:34:50.482  1633  1689 I ActivityManager: Displayed com.android.backupconfirm/.BackupRestoreConfirmation: +86ms
01-16 17:34:51.172  1633  1689 I Timeline: Timeline: Activity_windows_visible id: ActivityRecord{aa58cd4 u0 com.android.backupconfirm/.BackupRestoreConfirmation t1566} time:6885318
01-16 17:34:51.176  1633  1689 I Timeline: Timeline: App_transition_stopped time:6885322
01-16 17:34:51.442  1633  3822 D BackupManagerService: acknowledgeFullBackupOrRestore : token=2090823965 allow=true
01-16 17:34:51.448  1633 26062 I BackupManagerService: --- Performing full-dataset adb backup ---
01-16 17:34:51.449  1633 26062 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1295 com.android.server.backup.BackupManagerService$FullBackupObbConnection.establish:3164 com.android.server.backup.BackupManagerService$PerformAdbBackupTask.run:3818 java.lang.Thread.run:818 <bottom of call stack> 
01-16 17:34:51.473  1633 26062 D CryptdConnector: SND -> {9 cryptfs cryptocomplete}
01-16 17:34:51.474  1633  2858 D CryptdConnector: RCV <- {200 9 1}
01-16 17:34:51.480  1633  3281 D BackupManagerService: Full backup processing complete.

I tried ADB versions 1.0.26, 1.0.29, 1.0.31, 1.0.32, 1.0.36

howff commented

I also have the same problem, even with different versions.
:-(

manio commented

Same here, recent adb from Arch Linux... :(