diff options
author | Gao Xiang <hsiangkao@redhat.com> | 2020-06-17 10:57:19 +0800 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2021-08-31 15:54:40 +0800 |
commit | 006457b9eb88104122c2320f3c46df6316890cd5 (patch) | |
tree | 1728ef0330c15ef44e2ea06fcd51f09198a8c858 | |
parent | 912fab7dcb5819211570ed25b6f60a9001364831 (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.bp | 80 | ||||
-rwxr-xr-x | mkerofsimage.sh | 111 |
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 + |