mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-01-11 21:43:36 +00:00
Force kernel to load rootfs only for legacy SAR devices
This commit is contained in:
parent
275208e81b
commit
d12d9e82f1
@ -28,6 +28,7 @@ object Info {
|
|||||||
// Device state
|
// Device state
|
||||||
@JvmStatic val env by lazy { loadState() }
|
@JvmStatic val env by lazy { loadState() }
|
||||||
@JvmField var isSAR = false
|
@JvmField var isSAR = false
|
||||||
|
var legacySAR = false
|
||||||
var isAB = false
|
var isAB = false
|
||||||
@JvmField val isZygiskEnabled = System.getenv("ZYGISK_ENABLED") == "1"
|
@JvmField val isZygiskEnabled = System.getenv("ZYGISK_ENABLED") == "1"
|
||||||
@JvmStatic val isFDE get() = crypto == "block"
|
@JvmStatic val isFDE get() = crypto == "block"
|
||||||
|
@ -492,7 +492,7 @@ abstract class MagiskInstallImpl protected constructor(
|
|||||||
"KEEPVERITY=${Config.keepVerity} " +
|
"KEEPVERITY=${Config.keepVerity} " +
|
||||||
"PATCHVBMETAFLAG=${Config.patchVbmeta} " +
|
"PATCHVBMETAFLAG=${Config.patchVbmeta} " +
|
||||||
"RECOVERYMODE=${Config.recovery} " +
|
"RECOVERYMODE=${Config.recovery} " +
|
||||||
"SYSTEM_ROOT=${Info.isSAR} " +
|
"LEGACYSAR=${Info.legacySAR} " +
|
||||||
"sh boot_patch.sh $srcBoot")
|
"sh boot_patch.sh $srcBoot")
|
||||||
val isSuccess = cmds.sh().isSuccess
|
val isSuccess = cmds.sh().isSuccess
|
||||||
|
|
||||||
|
@ -78,6 +78,7 @@ class ShellInit : Shell.Initializer() {
|
|||||||
Info.vbmeta = getBool("VBMETAEXIST")
|
Info.vbmeta = getBool("VBMETAEXIST")
|
||||||
Info.isAB = getBool("ISAB")
|
Info.isAB = getBool("ISAB")
|
||||||
Info.crypto = getVar("CRYPTOTYPE")
|
Info.crypto = getVar("CRYPTOTYPE")
|
||||||
|
Info.legacySAR = getBool("LEGACYSAR")
|
||||||
|
|
||||||
// Default presets
|
// Default presets
|
||||||
Config.recovery = getBool("RECOVERYMODE")
|
Config.recovery = getBool("RECOVERYMODE")
|
||||||
|
@ -154,7 +154,7 @@ check_boot_ramdisk() {
|
|||||||
$ISAB && return 0
|
$ISAB && return 0
|
||||||
|
|
||||||
# If we are using legacy SAR, but not A/B, assume we do not have ramdisk
|
# If we are using legacy SAR, but not A/B, assume we do not have ramdisk
|
||||||
if grep ' / ' /proc/mounts | grep -q '/dev/root'; then
|
if $LEGACYSAR; then
|
||||||
# Override recovery mode to true
|
# Override recovery mode to true
|
||||||
RECOVERYMODE=true
|
RECOVERYMODE=true
|
||||||
return 1
|
return 1
|
||||||
@ -211,6 +211,11 @@ get_flags() {
|
|||||||
PATCHVBMETAFLAG=false
|
PATCHVBMETAFLAG=false
|
||||||
# Make sure RECOVERYMODE has value
|
# Make sure RECOVERYMODE has value
|
||||||
[ -z $RECOVERYMODE ] && RECOVERYMODE=false
|
[ -z $RECOVERYMODE ] && RECOVERYMODE=false
|
||||||
|
if grep ' / ' /proc/mounts | grep -q '/dev/root'; then
|
||||||
|
LEGACYSAR=true
|
||||||
|
else
|
||||||
|
LEGACYSAR=false
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
run_migrations() { return; }
|
run_migrations() { return; }
|
||||||
@ -223,9 +228,9 @@ grep_prop() { return; }
|
|||||||
|
|
||||||
app_init() {
|
app_init() {
|
||||||
mount_partitions
|
mount_partitions
|
||||||
|
get_flags
|
||||||
RAMDISKEXIST=false
|
RAMDISKEXIST=false
|
||||||
check_boot_ramdisk && RAMDISKEXIST=true
|
check_boot_ramdisk && RAMDISKEXIST=true
|
||||||
get_flags
|
|
||||||
run_migrations
|
run_migrations
|
||||||
SHA1=$(grep_prop SHA1 $MAGISKTMP/.magisk/config)
|
SHA1=$(grep_prop SHA1 $MAGISKTMP/.magisk/config)
|
||||||
check_encryption
|
check_encryption
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
# Usage: boot_patch.sh <bootimage>
|
# Usage: boot_patch.sh <bootimage>
|
||||||
#
|
#
|
||||||
# The following flags can be set in environment variables:
|
# The following flags can be set in environment variables:
|
||||||
# KEEPVERITY, KEEPFORCEENCRYPT, PATCHVBMETAFLAG, RECOVERYMODE, SYSTEM_ROOT
|
# KEEPVERITY, KEEPFORCEENCRYPT, PATCHVBMETAFLAG, RECOVERYMODE, LEGACYSAR
|
||||||
#
|
#
|
||||||
# This script should be placed in a directory with the following files:
|
# This script should be placed in a directory with the following files:
|
||||||
#
|
#
|
||||||
@ -73,7 +73,7 @@ fi
|
|||||||
[ -z $KEEPFORCEENCRYPT ] && KEEPFORCEENCRYPT=false
|
[ -z $KEEPFORCEENCRYPT ] && KEEPFORCEENCRYPT=false
|
||||||
[ -z $PATCHVBMETAFLAG ] && PATCHVBMETAFLAG=false
|
[ -z $PATCHVBMETAFLAG ] && PATCHVBMETAFLAG=false
|
||||||
[ -z $RECOVERYMODE ] && RECOVERYMODE=false
|
[ -z $RECOVERYMODE ] && RECOVERYMODE=false
|
||||||
[ -z $SYSTEM_ROOT ] && SYSTEM_ROOT=false
|
[ -z $LEGACYSAR ] && LEGACYSAR=false
|
||||||
export KEEPVERITY
|
export KEEPVERITY
|
||||||
export KEEPFORCEENCRYPT
|
export KEEPFORCEENCRYPT
|
||||||
export PATCHVBMETAFLAG
|
export PATCHVBMETAFLAG
|
||||||
@ -233,7 +233,7 @@ if [ -f kernel ]; then
|
|||||||
|
|
||||||
# Force kernel to load rootfs for legacy SAR devices
|
# Force kernel to load rootfs for legacy SAR devices
|
||||||
# skip_initramfs -> want_initramfs
|
# skip_initramfs -> want_initramfs
|
||||||
$SYSTEM_ROOT && ./magiskboot hexpatch kernel \
|
$LEGACYSAR && ./magiskboot hexpatch kernel \
|
||||||
736B69705F696E697472616D667300 \
|
736B69705F696E697472616D667300 \
|
||||||
77616E745F696E697472616D667300 \
|
77616E745F696E697472616D667300 \
|
||||||
&& PATCHEDKERNEL=true
|
&& PATCHEDKERNEL=true
|
||||||
|
@ -312,7 +312,7 @@ mount_partitions() {
|
|||||||
|
|
||||||
# After calling this method, the following variables will be set:
|
# After calling this method, the following variables will be set:
|
||||||
# KEEPVERITY, KEEPFORCEENCRYPT, RECOVERYMODE, PATCHVBMETAFLAG,
|
# KEEPVERITY, KEEPFORCEENCRYPT, RECOVERYMODE, PATCHVBMETAFLAG,
|
||||||
# ISENCRYPTED, VBMETAEXIST
|
# ISENCRYPTED, VBMETAEXIST, LEGACYSAR
|
||||||
get_flags() {
|
get_flags() {
|
||||||
getvar KEEPVERITY
|
getvar KEEPVERITY
|
||||||
getvar KEEPFORCEENCRYPT
|
getvar KEEPFORCEENCRYPT
|
||||||
@ -350,6 +350,15 @@ get_flags() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[ -z $RECOVERYMODE ] && RECOVERYMODE=false
|
[ -z $RECOVERYMODE ] && RECOVERYMODE=false
|
||||||
|
local IS_DYNAMIC=false
|
||||||
|
grep -q 'androidboot.super_partition' /proc/cmdline && IS_DYNAMIC=true
|
||||||
|
[ -b "/dev/block/by-name/super" ] && IS_DYNAMIC=true
|
||||||
|
if $SYSTEM_ROOT && ! $IS_DYNAMIC; then
|
||||||
|
LEGACYSAR=true
|
||||||
|
ui_print "- legacy SAR, force kernel to load rootfs"
|
||||||
|
else
|
||||||
|
LEGACYSAR=false
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
find_boot_image() {
|
find_boot_image() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user