summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGao Xiang <hsiangkao@redhat.com>2020-06-17 10:57:19 +0800
committeralk3pInjection <webmaster@raspii.tech>2021-08-31 15:54:40 +0800
commit006457b9eb88104122c2320f3c46df6316890cd5 (patch)
tree1728ef0330c15ef44e2ea06fcd51f09198a8c858
parent912fab7dcb5819211570ed25b6f60a9001364831 (diff)
AOSP: erofs-utils: adapt for android build
Squashed commit of the following: Author: Huang Jianan <huangjianan@oppo.com> Date: Fri Feb 19 16:34:28 2021 +0800 erofs-utils: support pre-defined timestamp and UUID in Android build Bug: 180682930 Test: erofs image can be set to input timestamp and UUID Change-Id: Ib93cf422c0410ba46867c5a1b91a7c40b06a281e Signed-off-by: Huang Jianan <huangjianan@oppo.com> Author: Alistair Delva <adelva@google.com> Date: Mon Nov 2 10:39:22 2020 -0800 Suppress darwin build of mkfs.erofs Bug: 172023026 Change-Id: Id051e0c504a896fbf7ebc34491f577a0766547b6 Author: Gao Xiang <hsiangkao@redhat.com> Date: Wed Jun 17 13:39:39 2020 +0800 Add Android build script Change-Id: I3e97e1040003728483ab73ef222c06b59800a2f3 Author: Gao Xiang <hsiangkao@redhat.com> Date: Wed Jun 17 10:57:19 2020 +0800 Add necessary Android.bp file Change-Id: If06b4849babb1806205cb26208407aea7e24e98f Change-Id: Iae92b719e58d5e5db4bf4382c8c803989953eb20 Signed-off-by: alk3pInjection <webmaster@raspii.tech>
-rw-r--r--Android.bp80
-rwxr-xr-xmkerofsimage.sh111
2 files changed, 191 insertions, 0 deletions
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..d759ec3
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,80 @@
+//
+// Copyright (C) 2020 Gao Xiang
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+cc_defaults {
+ name: "erofs-utils_defaults",
+
+ cflags: [
+ "-Wall",
+ "-Werror",
+ "-Wno-ignored-qualifiers",
+ "-Wno-pointer-arith",
+ "-Wno-unused-parameter",
+ "-DPACKAGE_VERSION=\"1.1\"",
+ "-DHAVE_FALLOCATE",
+ "-DHAVE_LINUX_TYPES_H",
+ "-DHAVE_LIBSELINUX",
+ "-DHAVE_LIBUUID",
+ "-DLZ4_ENABLED",
+ "-DLZ4HC_ENABLED",
+ "-DWITH_ANDROID",
+ ],
+ local_include_dirs: [
+ "include",
+ ],
+ include_dirs: [
+ "external/e2fsprogs/lib/",
+ ],
+ shared_libs: [
+ "libcutils",
+ "libext2_uuid",
+ "libselinux",
+ ],
+ static_libs: [
+ "liblz4",
+ ],
+}
+
+cc_binary_host {
+ name: "mkfs.erofs",
+
+ defaults: ["erofs-utils_defaults"],
+
+ srcs: [
+ "lib/*.c",
+ "mkfs/*.c",
+ ],
+
+ target: {
+ darwin: {
+ enabled: false,
+ },
+ },
+}
+
+sh_binary_host {
+ name: "mkerofsimage.sh",
+ src: "mkerofsimage.sh",
+ required: [
+ "img2simg",
+ "mkfs.erofs",
+ ],
+
+ target: {
+ darwin: {
+ enabled: false,
+ },
+ },
+}
diff --git a/mkerofsimage.sh b/mkerofsimage.sh
new file mode 100755
index 0000000..89bf40e
--- /dev/null
+++ b/mkerofsimage.sh
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# To call this script, make sure mkfs.erofs is somewhere in PATH
+
+function usage() {
+cat<<EOT
+Usage:
+${0##*/} SRC_DIR OUTPUT_FILE [-s] [-m MOUNT_POINT] [-d PRODUCT_OUT] [-C FS_CONFIG ] [-c FILE_CONTEXTS] [-z COMPRESSOR] [-T TIMESTAMP] [-U UUID]
+EOT
+}
+
+echo "in mkerofsimage.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
+
+SPARSE=false
+if [[ "$1" == "-s" ]]; then
+ SPARSE=true
+ shift;
+fi
+
+MOUNT_POINT=
+if [[ "$1" == "-m" ]]; then
+ MOUNT_POINT=$2
+ shift; shift
+fi
+
+PRODUCT_OUT=
+if [[ "$1" == "-d" ]]; then
+ PRODUCT_OUT=$2
+ shift; shift
+fi
+
+FS_CONFIG=
+if [[ "$1" == "-C" ]]; then
+ FS_CONFIG=$2
+ shift; shift
+fi
+
+FILE_CONTEXTS=
+if [[ "$1" == "-c" ]]; then
+ FILE_CONTEXTS=$2
+ shift; shift
+fi
+
+COMPRESSOR="lz4hc"
+if [[ "$1" == "-z" ]]; then
+ COMPRESSOR=$2
+ shift; shift
+fi
+
+TIMESTAMP=
+if [[ "$1" == "-T" ]]; then
+ TIMESTAMP=$2
+ shift; shift
+fi
+
+UUID=
+if [[ "$1" == "-U" ]]; then
+ UUID=$2
+ shift; shift
+fi
+
+OPT=""
+if [ -n "$MOUNT_POINT" ]; then
+ OPT="$OPT --mount-point $MOUNT_POINT"
+fi
+if [ -n "$PRODUCT_OUT" ]; then
+ OPT="$OPT --product-out $PRODUCT_OUT"
+fi
+if [ -n "$FS_CONFIG" ]; then
+ OPT="$OPT --fs-config-file $FS_CONFIG"
+fi
+if [ -n "$FILE_CONTEXTS" ]; then
+ OPT="$OPT --file-contexts $FILE_CONTEXTS"
+fi
+if [ -n "$TIMESTAMP" ]; then
+ OPT="$OPT -T $TIMESTAMP"
+fi
+if [ -n "$UUID" ]; then
+ OPT="$OPT -U $UUID"
+fi
+
+MAKE_EROFS_CMD="mkfs.erofs -z $COMPRESSOR $OPT $OUTPUT_FILE $SRC_DIR"
+echo $MAKE_EROFS_CMD
+$MAKE_EROFS_CMD
+
+if [ $? -ne 0 ]; then
+ exit 4
+fi
+
+SPARSE_SUFFIX=".sparse"
+if [ "$SPARSE" = true ]; then
+ img2simg $OUTPUT_FILE $OUTPUT_FILE$SPARSE_SUFFIX
+ if [ $? -ne 0 ]; then
+ exit 4
+ fi
+ mv $OUTPUT_FILE$SPARSE_SUFFIX $OUTPUT_FILE
+fi
+