1#!/bin/bash 2# 3# To call this script, make sure make_f2fs is somewhere in PATH 4 5function usage() { 6cat<<EOT 7Usage: 8${0##*/} OUTPUT_FILE SIZE 9 [-C FS_CONFIG] [-f SRC_DIR] [-D PRODUCT_OUT] 10 [-s FILE_CONTEXTS] [-t MOUNT_POINT] [-T TIMESTAMP] 11 [-L LABEL] 12EOT 13} 14 15echo "in mkf2fsuserimg.sh PATH=$PATH" 16 17MKFS_OPTS="" 18SLOAD_OPTS="" 19 20if [ $# -lt 2 ]; then 21 usage 22 exit 1 23fi 24 25OUTPUT_FILE=$1 26SIZE=$2 27shift; shift 28 29if [[ "$1" == "-C" ]]; then 30 SLOAD_OPTS+=" -C $2" 31 shift; shift 32fi 33if [[ "$1" == "-f" ]]; then 34 SLOAD_OPTS+=" -f $2" 35 shift; shift 36fi 37if [[ "$1" == "-D" ]]; then 38 SLOAD_OPTS+=" -p $2" 39 shift; shift 40fi 41if [[ "$1" == "-s" ]]; then 42 SLOAD_OPTS+=" -s $2" 43 shift; shift 44fi 45if [[ "$1" == "-t" ]]; then 46 MOUNT_POINT=$2 47 shift; shift 48fi 49 50if [ -z $MOUNT_POINT ]; then 51 echo "Mount point is required" 52 exit 2 53fi 54 55if [[ ${MOUNT_POINT:0:1} != "/" ]]; then 56 MOUNT_POINT="/"$MOUNT_POINT 57fi 58 59SLOAD_OPTS+=" -t $MOUNT_POINT" 60 61if [[ "$1" == "-T" ]]; then 62 SLOAD_OPTS+=" -T $2" 63 shift; shift 64fi 65 66if [[ "$1" == "-L" ]]; then 67 MKFS_OPTS+=" -l $2" 68 shift; shift 69fi 70 71if [ -z $SIZE ]; then 72 echo "Need size of filesystem" 73 exit 2 74fi 75 76MAKE_F2FS_CMD="make_f2fs -S $SIZE -f -O encrypt -O quota -O verity $MKFS_OPTS $OUTPUT_FILE" 77echo $MAKE_F2FS_CMD 78$MAKE_F2FS_CMD 79if [ $? -ne 0 ]; then 80 exit 4 81fi 82 83SLOAD_F2FS_CMD="sload_f2fs -S $SLOAD_OPTS $OUTPUT_FILE" 84echo $SLOAD_F2FS_CMD 85$SLOAD_F2FS_CMD 86if [ $? -ne 0 ]; then 87 rm -f $OUTPUT_FILE 88 exit 4 89fi 90