Wednesday, March 18, 2015

backup - Cloning an application with its full data store between devices


Given a generic application I would like to transfer it, full with its own data, to another device or to the emulator.


After restoring the application and its /data/data/com.app directory it should be supposed to work as normal, provided that its business logic doesn't take into account that the device ID has changed or other facilities (like accounts) are missing.


Copying /data/data/com.app brutally may result in data corruption when app is active.


How do I do that, with or without root?



Answer



Solution one: TitaniumBackup



Both devices must be rooted and use TitaniumBackup application. I have found that Titanium doesn't start on Emulator 2.1


Solution two: use adb backup options


Use adb backup and adb restore properly. This would mean to restrict the backup to the single app to be cloned, including its data, but nothing else. This is important as adb restore is an all-or-nothing, no selective restore possible. Full syntax for adb backup is:


adb backup [-f ] [-apk|-noapk] [-shared|-noshared] [-all] [-system|nosystem] []

So to only have our "Foobar" app included, we need to connect the device and:


adb backup -f MyBackup.ab -apk com.foobar.app

This done, and adb connected to the emulator, the generated backup file MyBackup.ab then can be restored using


adb restore MyBackup.ab

No comments:

Post a Comment

samsung galaxy s 2 - Cannot restore Kies backup after firmware upgrade

I backed up my Samsung Galaxy S2 on Kies before updating to Ice Cream Sandwich. After the upgrade I tried to restore, but the restore fails ...