device_google_zuma/copy_efs_files_to_data.sh
Steven Moreland c97e120d74 copy_efs_files_to_data.sh: handle symlinks
Temporary fix, until dump.f2fs is fixed to handle these as well.

Bug: 352567354
Change-Id: I3fd1815cfca6438a61a26f8afaada77b771e871c
Flag: BUGFIX
Test: husky:/ # getconf PAGE_SIZE
      16384
      husky:/ # ls -l /mnt/vendor/persist/ss/
      total 3044
      lrwxrwxrwx 1 system system      55 2024-07-17 15:12 0 ->
            /dev/block/platform/13200000.ufs/by-name/trusty_persist
      -rwxrwxrwx 1 system system      55 2024-07-17 15:12 0_backup
      -rw-r-x--- 1 system system 3106816 2024-07-17 15:12 nsp
2024-07-17 19:25:08 +00:00

45 lines
1.4 KiB
Bash

#!/vendor/bin/sh
CHECKPOINT_DIR=/data/vendor/copied
export BIN_DIR=/vendor/bin
$BIN_DIR/mkdir -p $CHECKPOINT_DIR
function copy_files_to_data()
{
block_device=$1
partition_name=$(basename $1)
mount_point=$2
tmpdir=$CHECKPOINT_DIR/$partition_name.img
build_checkpoint=$CHECKPOINT_DIR/$partition_name
if [ ! -e $build_checkpoint ]; then
$BIN_DIR/rm -rf $tmpdir
$BIN_DIR/mkdir -p $tmpdir
$BIN_DIR/dump.f2fs -rfPo $tmpdir $block_device
if [ $? -ne 0 ]; then
echo "Failed to $BIN_DIR/dump.f2fs -rfPo $tmpdir $block_device"
return
fi
$BIN_DIR/mv $tmpdir $build_checkpoint
if [ $? -ne 0 ]; then
echo "mv $tmpdir $build_checkpoint"
return
fi
$BIN_DIR/fsync `dirname $build_checkpoint`
fi
echo "Successfully copied $mount_point to $build_checkpoint"
}
copy_files_to_data "/dev/block/by-name/efs" "/mnt/vendor/efs"
copy_files_to_data "/dev/block/by-name/efs_backup" "/mnt/vendor/efs_backup"
copy_files_to_data "/dev/block/by-name/modem_userdata" "/mnt/vendor/modem_userdata"
copy_files_to_data "/dev/block/by-name/persist" "/mnt/vendor/persist"
# TODO(b/352567354): fixup symlinks until dump.f2fs is fixed
a=$($BIN_DIR/cat /data/vendor/copied/persist/ss/0)
$BIN_DIR/mv /data/vendor/copied/persist/ss/0 /data/vendor/copied/persist/ss/0_backup
$BIN_DIR/ln -s $a /data/vendor/copied/persist/ss/0
$BIN_DIR/fsync /data/vendor/copied