1
0
mirror of https://github.com/topjohnwu/Magisk.git synced 2025-03-21 05:40:50 +00:00

Introduce KEEPVBMETAFLAG env variable

Close , close , close , close 
This commit is contained in:
topjohnwu 2021-11-23 22:14:12 -08:00
parent 65a79610aa
commit 228570640e
4 changed files with 20 additions and 11 deletions

@ -768,7 +768,9 @@ void repack(const char *src_img, const char *out_img, bool skip_comp) {
memcpy(footer, boot.avb_footer, sizeof(AvbFooter));
footer->original_image_size = __builtin_bswap64(off.total);
footer->vbmeta_offset = __builtin_bswap64(off.vbmeta);
vbmeta->flags = __builtin_bswap32(3);
if (!check_env("KEEPVBMETAFLAG")) {
vbmeta->flags = __builtin_bswap32(3);
}
}
if (boot.flags[DHTB_FLAG]) {

@ -6,7 +6,7 @@
using namespace std;
static void print_methods() {
static void print_formats() {
for (int fmt = GZIP; fmt < LZOP; ++fmt) {
fprintf(stderr, "%s ", fmt2name[(format_t) fmt]);
}
@ -33,8 +33,10 @@ Supported actions:
Repack boot image components from current directory
to [outbootimg], or new-boot.img if not specified.
If '-n' is provided, it will not attempt to recompress ramdisk.cpio,
otherwise it will compress ramdisk.cpio and kernel with the same method
in <origbootimg> if the file provided is not already compressed.
otherwise it will compress ramdisk.cpio and kernel with the same format
as in <origbootimg> if the file provided is not already compressed.
All disable flags will be set in the vbmeta header, unless env variable
KEEPVBMETAFLAG is set to true.
hexpatch <file> <hexpattern1> <hexpattern2>
Search <hexpattern1> in <file>, and replace with <hexpattern2>
@ -91,21 +93,21 @@ Supported actions:
cleanup
Cleanup the current working directory
compress[=method] <infile> [outfile]
Compress <infile> with [method] (default: gzip), optionally to [outfile]
compress[=format] <infile> [outfile]
Compress <infile> with [format] (default: gzip), optionally to [outfile]
<infile>/[outfile] can be '-' to be STDIN/STDOUT
Supported methods: )EOF", arg0);
Supported formats: )EOF", arg0);
print_methods();
print_formats();
fprintf(stderr, R"EOF(
decompress <infile> [outfile]
Detect method and decompress <infile>, optionally to [outfile]
Detect format and decompress <infile>, optionally to [outfile]
<infile>/[outfile] can be '-' to be STDIN/STDOUT
Supported methods: )EOF");
Supported formats: )EOF");
print_methods();
print_formats();
fprintf(stderr, "\n\n");
exit(1);

@ -70,9 +70,11 @@ fi
# Flags
[ -z $KEEPVERITY ] && KEEPVERITY=false
[ -z $KEEPFORCEENCRYPT ] && KEEPFORCEENCRYPT=false
[ -z $KEEPVBMETAFLAG ] && KEEPVBMETAFLAG=false
[ -z $RECOVERYMODE ] && RECOVERYMODE=false
export KEEPVERITY
export KEEPFORCEENCRYPT
export KEEPVBMETAFLAG
chmod -R 755 .
@ -149,6 +151,7 @@ ui_print "- Patching ramdisk"
echo "KEEPVERITY=$KEEPVERITY" > config
echo "KEEPFORCEENCRYPT=$KEEPFORCEENCRYPT" >> config
echo "KEEPVBMETAFLAG=$KEEPVBMETAFLAG" >> config
echo "RECOVERYMODE=$RECOVERYMODE" >> config
[ ! -z $SHA1 ] && echo "SHA1=$SHA1" >> config

@ -382,6 +382,7 @@ get_flags() {
getvar KEEPVERITY
getvar KEEPFORCEENCRYPT
getvar RECOVERYMODE
getvar KEEPVBMETAFLAG
if [ -z $KEEPVERITY ]; then
if $SYSTEM_ROOT; then
KEEPVERITY=true
@ -402,6 +403,7 @@ get_flags() {
KEEPFORCEENCRYPT=false
fi
fi
[ -z $KEEPVBMETAFLAG ] && KEEPVBMETAFLAG=false
[ -z $RECOVERYMODE ] && RECOVERYMODE=false
}