OSDN Git Service

Introduce mksquashfsimage.sh
authorMohamad Ayyash <mkayyash@google.com>
Tue, 3 Mar 2015 20:33:48 +0000 (12:33 -0800)
committerSimon Wilson <simonwilson@google.com>
Tue, 16 Jun 2015 20:20:23 +0000 (13:20 -0700)
Change-Id: I2b916ef3ef60b40f506e1f1be59482f7b071cdb2
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
squashfs_utils/Android.mk [new file with mode: 0644]
squashfs_utils/mksquashfsimage.sh [new file with mode: 0755]

diff --git a/squashfs_utils/Android.mk b/squashfs_utils/Android.mk
new file mode 100644 (file)
index 0000000..7808ec0
--- /dev/null
@@ -0,0 +1,17 @@
+# Copyright 2015 The Android Open Source Project
+
+LOCAL_PATH:= $(call my-dir)
+
+ifeq ($(HOST_OS),linux)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := mksquashfsimage.sh
+LOCAL_SRC_FILES := mksquashfsimage.sh
+LOCAL_MODULE_CLASS := EXECUTABLES
+# We don't need any additional suffix.
+LOCAL_MODULE_SUFFIX :=
+LOCAL_BUILT_MODULE_STEM := $(notdir $(LOCAL_SRC_FILES))
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/squashfs_utils/mksquashfsimage.sh b/squashfs_utils/mksquashfsimage.sh
new file mode 100755 (executable)
index 0000000..7f96cb1
--- /dev/null
@@ -0,0 +1,61 @@
+#!/bin/bash
+#
+# To call this script, make sure mksquashfs is somewhere in PATH
+
+function usage() {
+cat<<EOT
+Usage:
+${0##*/} SRC_DIR OUTPUT_FILE [-m MOUNT_POINT] [-c FILE_CONTEXTS] [-b BLOCK_SIZE]
+EOT
+}
+
+echo "in mksquashfsimage.sh PATH=$PATH"
+
+if [ $# -lt 2 ]; then
+    usage
+    exit 1
+fi
+
+SRC_DIR=$1
+if [ ! -d $SRC_DIR ]; then
+  echo "Can not find directory $SRC_DIR!"
+  exit 2
+fi
+OUTPUT_FILE=$2
+shift; shift
+
+MOUNT_POINT=
+if [[ "$1" == "-m" ]]; then
+    MOUNT_POINT=$2
+    shift; shift
+fi
+
+FILE_CONTEXTS=
+if [[ "$1" == "-c" ]]; then
+    FILE_CONTEXTS=$2
+    shift; shift
+fi
+
+BLOCK_SIZE=131072
+if [[ "$1" == "-b" ]]; then
+    BLOCK_SIZE=$2
+    shift; shift
+fi
+
+OPT=""
+if [ -n "$MOUNT_POINT" ]; then
+  OPT="$OPT -mount-point $MOUNT_POINT"
+fi
+if [ -n "$FILE_CONTEXTS" ]; then
+  OPT="$OPT -context-file $FILE_CONTEXTS"
+fi
+if [ -n "$BLOCK_SIZE" ]; then
+  OPT="$OPT -b $BLOCK_SIZE"
+fi
+
+MAKE_SQUASHFS_CMD="mksquashfs $SRC_DIR $OUTPUT_FILE -no-progress -comp lz4 -Xhc -no-exports -noappend -no-recovery -android-fs-config $OPT"
+echo $MAKE_SQUASHFS_CMD
+$MAKE_SQUASHFS_CMD
+if [ $? -ne 0 ]; then
+    exit 4
+fi