1#!/vendor/bin/sh 2 3CHECKPOINT_DIR=/data/vendor/copied 4 5export BIN_DIR=/vendor/bin 6 7$BIN_DIR/mkdir -p $CHECKPOINT_DIR 8 9function copy_files_to_data() 10{ 11 block_device=$1 12 partition_name=$(basename $1) 13 mount_point=$2 14 tmpdir=$CHECKPOINT_DIR/$partition_name.img 15 build_checkpoint=$CHECKPOINT_DIR/$partition_name 16 if [ ! -e $build_checkpoint ]; then 17 $BIN_DIR/rm -rf $tmpdir 18 $BIN_DIR/mkdir -p $tmpdir 19 $BIN_DIR/dump.f2fs -rfPLo $tmpdir $block_device 20 if [ $? -ne 0 ]; then 21 echo "Failed to $BIN_DIR/dump.f2fs -rfPLo $tmpdir $block_device" 22 return 23 fi 24 $BIN_DIR/mv $tmpdir $build_checkpoint 25 if [ $? -ne 0 ]; then 26 echo "mv $tmpdir $build_checkpoint" 27 return 28 fi 29 $BIN_DIR/fsync `dirname $build_checkpoint` 30 fi 31 echo "Successfully copied $mount_point to $build_checkpoint" 32} 33 34copy_files_to_data "/dev/block/by-name/efs" "/mnt/vendor/efs" 35copy_files_to_data "/dev/block/by-name/efs_backup" "/mnt/vendor/efs_backup" 36copy_files_to_data "/dev/block/by-name/modem_userdata" "/mnt/vendor/modem_userdata" 37 38copy_files_to_data "/dev/block/by-name/persist" "/mnt/vendor/persist" 39 40$BIN_DIR/fsync /data/vendor/copied 41