Magisk/scripts/update_binary.sh

38 lines
825 B
Bash
Raw Normal View History

#!/sbin/sh
X86_CNT=__X86_CNT__
2018-05-13 14:26:28 +08:00
extract_bb() {
case `uname -m` in
x*) dd if="$0" of="$BBBIN" bs=1024 skip=1 count=$X86_CNT ;;
*) dd if="$0" of="$BBBIN" bs=1024 skip=$(($X86_CNT + 1));;
esac
chmod 755 "$BBBIN"
2018-05-13 14:26:28 +08:00
}
setup_bb() {
BBDIR=$TMPDIR/bin
BBBIN=$BBDIR/busybox
mkdir -p $BBDIR 2>/dev/null
2018-05-13 14:26:28 +08:00
extract_bb
$BBBIN --install -s $BBDIR
export PATH=$BBDIR:$PATH
}
case "$1" in
"extract"|"-x")
[ -z "$2" ] && BBBIN=./busybox || BBBIN="$2"
2018-05-13 14:26:28 +08:00
extract_bb
;;
"indep"|"sh")
TMPDIR=.;setup_bb;shift
exec /system/bin/sh "$@"
2018-05-13 14:26:28 +08:00
;;
*)
export TMPDIR=/dev/tmp
rm -rf $TMPDIR 2>/dev/null
setup_bb
export INSTALLER=$TMPDIR/install
mkdir -p $INSTALLER
unzip -o "$3" -d $INSTALLER >&2
exec sh $INSTALLER/META-INF/com/google/android/updater-script "$@"
2018-05-13 14:26:28 +08:00
;;
esac
exit