h1. BackupsResearch {{>toc}} h2. Introduction The [[BackupTheEFS]] page has instructions to backup the EFS. This page instead tries to document why it is done in that way, and what are the advantages and disadvantages of various other backups methods. This can also be useful to write more generic backup instructions to do a more complete backup. h2. Doing the backup of partitions or other block devices h3. adb shell cat pipe "Old versions of the EFS backup instructions":https://redmine.replicant.us/projects/replicant/wiki/BackupTheEFS used the following command:
adb shell "cat /dev/block/platform/*/by-name/EFS > /EFS.img"At some point or under some condition, this stopped working and the backup were corrupted. h3. adb shell cat adb pull
adb shell "cat /dev/block/platform/*/by-name/EFS /dev/block/platform/*/by-name/EFS" > /EFS.img" EFS.img adb pull /EFS.img ./Doing it in two stages like that seem to be widely used in other instructions (like the ones found in XDA forums). Normally cat should produce a valid backup, however it might be better to use dd for extra safety. On Replicant 6.0 0004, at least the recoveries for the following devices have 'dd': * Galaxy Nexus * Galaxy SIII h3. adb pull the block device The following should also work:
adb pull /dev/block/mmcblk0p3 ./EFS.imgThe advantage is that it can also backup huge partitions like the user data partition or Replicant system partition. TODO: * Validate if doing "adb pull /dev/block/platform/*/by-name/EFS ./EFS.img" work, and if so, validate it for all the devices. h3. Also see * This backup app might be a good option for Replicant 9 or 10: https://github.com/stevesoltys/backup