Android-x86
Fork
Donation

  • R/O
  • HTTP
  • SSH
  • HTTPS

system-extras: 提交

system/extras


Commit MetaInfo

修订版18a2974d6cf3c26ec82cb0b660f9a322369cadb6 (tree)
时间2017-09-28 06:48:26
作者Jin Qian <jinqian@goog...>
CommiterTao Bao

Log Message

ext4_utils: make file system image reproducible

Add flags to set filesystem uuid, hash_seed and mke2fs time.

Bug: 64994964
Change-Id: I38369a3a9dfffefead11c4b8fdd1e6984e61b938
(cherry picked from commit 407a7de4c499ede24dbbeb22d2efe6490a974b0d)

更改概述

差异

--- a/ext4_utils/mkuserimg_mke2fs.sh
+++ b/ext4_utils/mkuserimg_mke2fs.sh
@@ -8,7 +8,8 @@ Usage:
88 mkuserimg.sh [-s] SRC_DIR OUTPUT_FILE EXT_VARIANT MOUNT_POINT SIZE [-j <journal_size>]
99 [-T TIMESTAMP] [-C FS_CONFIG] [-D PRODUCT_OUT] [-B BLOCK_LIST_FILE]
1010 [-d BASE_ALLOC_FILE_IN ] [-A BASE_ALLOC_FILE_OUT ] [-L LABEL]
11- [-i INODES ] [-e ERASE_BLOCK_SIZE] [-o FLASH_BLOCK_SIZE] [FILE_CONTEXTS]
11+ [-i INODES ] [-e ERASE_BLOCK_SIZE] [-o FLASH_BLOCK_SIZE]
12+ [-U MKE2FS_UUID] [-S MKE2FS_HASH_SEED] [FILE_CONTEXTS]
1213 EOT
1314 }
1415
@@ -17,6 +18,7 @@ BLOCKSIZE=4096
1718 MKE2FS_OPTS=""
1819 MKE2FS_EXTENDED_OPTS=""
1920 E2FSDROID_OPTS=""
21+E2FSPROGS_FAKE_TIME=""
2022
2123 if [ "$1" = "-s" ]; then
2224 MKE2FS_EXTENDED_OPTS+="android_sparse"
@@ -53,6 +55,7 @@ fi
5355
5456 if [[ "$1" == "-T" ]]; then
5557 E2FSDROID_OPTS+=" -T $2"
58+ E2FSPROGS_FAKE_TIME=$2
5659 shift; shift
5760 fi
5861
@@ -108,6 +111,19 @@ if [[ "$1" == "-o" ]]; then
108111 shift; shift
109112 fi
110113
114+if [[ "$1" == "-U" ]]; then
115+ MKE2FS_OPTS+=" -U $2"
116+ shift; shift
117+fi
118+
119+if [[ "$1" == "-S" ]]; then
120+ if [[ $MKE2FS_EXTENDED_OPTS ]]; then
121+ MKE2FS_EXTENDED_OPTS+=","
122+ fi
123+ MKE2FS_EXTENDED_OPTS+="hash_seed=$2"
124+ shift; shift
125+fi
126+
111127 if [[ $MKE2FS_EXTENDED_OPTS ]]; then
112128 MKE2FS_OPTS+=" -E $MKE2FS_EXTENDED_OPTS"
113129 fi
@@ -141,16 +157,25 @@ SIZE=$((SIZE / BLOCKSIZE))
141157 # truncate output file since mke2fs will keep verity section in existing file
142158 cat /dev/null >$OUTPUT_FILE
143159
160+MAKE_EXT4FS_ENV="MKE2FS_CONFIG=./system/extras/ext4_utils/mke2fs.conf"
161+if [[ $E2FSPROGS_FAKE_TIME ]]; then
162+ MAKE_EXT4FS_ENV+=" E2FSPROGS_FAKE_TIME=$E2FSPROGS_FAKE_TIME"
163+fi
164+
144165 MAKE_EXT4FS_CMD="mke2fs $MKE2FS_OPTS -t $EXT_VARIANT -b $BLOCKSIZE $OUTPUT_FILE $SIZE"
145-echo $MAKE_EXT4FS_CMD
146-MKE2FS_CONFIG=./system/extras/ext4_utils/mke2fs.conf $MAKE_EXT4FS_CMD
166+echo $MAKE_EXT4FS_ENV $MAKE_EXT4FS_CMD
167+env $MAKE_EXT4FS_ENV $MAKE_EXT4FS_CMD
147168 if [ $? -ne 0 ]; then
148169 exit 4
149170 fi
150171
172+if [[ $E2FSPROGS_FAKE_TIME ]]; then
173+ E2FSDROID_ENV="E2FSPROGS_FAKE_TIME=$E2FSPROGS_FAKE_TIME"
174+fi
175+
151176 E2FSDROID_CMD="e2fsdroid $E2FSDROID_OPTS -f $SRC_DIR -a $MOUNT_POINT $OUTPUT_FILE"
152-echo $E2FSDROID_CMD
153-$E2FSDROID_CMD
177+echo $E2FSDROID_ENV $E2FSDROID_CMD
178+env $E2FSDROID_ENV $E2FSDROID_CMD
154179 if [ $? -ne 0 ]; then
155180 rm -f $OUTPUT_FILE
156181 exit 4
Show on old repository browser