18e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall#!/bin/bash 28e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall# 38e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall# To call this script, make sure make_f2fs is somewhere in PATH 48e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall 58e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallfunction usage() { 68e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallcat<<EOT 78e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP AbgrallUsage: 88e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall${0##*/} OUTPUT_FILE SIZE 91e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim [-C FS_CONFIG] [-f SRC_DIR] [-D PRODUCT_OUT] 101e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim [-s FILE_CONTEXTS] [-t MOUNT_POINT] [-T TIMESTAMP] 111e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim [-L LABEL] 128e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP AbgrallEOT 138e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall} 148e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall 158e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallecho "in mkf2fsuserimg.sh PATH=$PATH" 168e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall 171e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk KimMKFS_OPTS="" 181e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk KimSLOAD_OPTS="" 191e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim 208e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallif [ $# -lt 2 ]; then 218e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall usage 228e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall exit 1 238e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallfi 248e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall 258e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP AbgrallOUTPUT_FILE=$1 268e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP AbgrallSIZE=$2 278e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallshift; shift 288e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall 291e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimif [[ "$1" == "-C" ]]; then 301e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim SLOAD_OPTS+=" -C $2" 311e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim shift; shift 321e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimfi 331e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimif [[ "$1" == "-f" ]]; then 341e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim SLOAD_OPTS+=" -f $2" 351e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim shift; shift 361e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimfi 371e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimif [[ "$1" == "-D" ]]; then 381e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim SLOAD_OPTS+=" -p $2" 391e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim shift; shift 401e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimfi 411e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimif [[ "$1" == "-s" ]]; then 421e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim SLOAD_OPTS+=" -s $2" 431e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim shift; shift 441e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimfi 451e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimif [[ "$1" == "-t" ]]; then 461e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim MOUNT_POINT=$2 471e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim shift; shift 481e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimfi 491e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim 501e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimif [ -z $MOUNT_POINT ]; then 511e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim echo "Mount point is required" 521e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim exit 2 531e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimfi 541e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim 551e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimif [[ ${MOUNT_POINT:0:1} != "/" ]]; then 561e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim MOUNT_POINT="/"$MOUNT_POINT 571e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimfi 581e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim 591e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk KimSLOAD_OPTS+=" -t $MOUNT_POINT" 601e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim 611e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimif [[ "$1" == "-T" ]]; then 621e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim SLOAD_OPTS+=" -T $2" 631e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim shift; shift 641e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimfi 651e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim 661e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimif [[ "$1" == "-L" ]]; then 671e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim MKFS_OPTS+=" -l $2" 681e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim shift; shift 691e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimfi 708e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall 718e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallif [ -z $SIZE ]; then 728e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall echo "Need size of filesystem" 738e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall exit 2 748e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallfi 758e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall 760708cde464d97fc0a1b251f0431f6fe29f07b47dJaegeuk KimMAKE_F2FS_CMD="make_f2fs -S $SIZE -f -O encrypt -O quota -O verity $MKFS_OPTS $OUTPUT_FILE" 778e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallecho $MAKE_F2FS_CMD 788e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall$MAKE_F2FS_CMD 798e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallif [ $? -ne 0 ]; then 808e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrall exit 4 818e9cdda6fcb6a84cffbcc1ab44a7ecec402a9424JP Abgrallfi 821e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim 831e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk KimSLOAD_F2FS_CMD="sload_f2fs -S $SLOAD_OPTS $OUTPUT_FILE" 841e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimecho $SLOAD_F2FS_CMD 851e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim$SLOAD_F2FS_CMD 861e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimif [ $? -ne 0 ]; then 871e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim rm -f $OUTPUT_FILE 881e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kim exit 4 891e4263b9898f8d183b3698f7e553570d53e0ea4eJaegeuk Kimfi 90