Skip to content

Instantly share code, notes, and snippets.

@ChronoMonochrome
Created May 10, 2019 21:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ChronoMonochrome/c5a7d1c5816427c0e79a1045b79dc049 to your computer and use it in GitHub Desktop.
Save ChronoMonochrome/c5a7d1c5816427c0e79a1045b79dc049 to your computer and use it in GitHub Desktop.
Midas TWRP build script
SRC=/media/system/root/LOS15/kernel/samsung/midas
KERNEL_OUT=/ramdisk
ANDROID_OUT=/media/system/root/LOS15/out
GCC=/media/system/root/LOS15/prebuilts/gcc/linux-x86/arm/arm-eabi-7.4/bin/arm-linux-gnueabi-
TARGET=midas
#$ANDROID_OUT/host/linux-x86/bin/mkbootfs -d $ANDROID_OUT/target/product/$TARGET/system \
# $ANDROID_OUT/target/product/$TARGET/recovery/root | $ANDROID_OUT/host/linux-x86/bin/minigzip > \
# $ANDROID_OUT/target/product/$TARGET/recovery-ramdisk.img
make -j8 CFLAGS_MODULE="-fno-pic" -C $SRC O=$KERNEL_OUT ARCH=arm CROSS_COMPILE="`which ccache` $GCC" lineageos_i9300_defconfig
make -j8 CFLAGS_MODULE="-fno-pic" -C $SRC O=$KERNEL_OUT ARCH=arm CROSS_COMPILE="`which ccache` $GCC" zImage-dtb
if grep -q '^CONFIG_OF=y' $KERNEL_OUT/.config; then \
echo "Building DTBs"; \
make CFLAGS_MODULE="-fno-pic" -C $SRC O=$KERNEL_OUT ARCH=arm CROSS_COMPILE="`which ccache` $GCC" dtbs; \
fi
OUTPUT=$ANDROID_OUT/target/product/$TARGET/recovery-$(git rev-parse --abbrev-ref HEAD).img
cp $KERNEL_OUT/arch/arm/boot/zImage-dtb $ANDROID_OUT/target/product/$TARGET/kernel
$ANDROID_OUT/host/linux-x86/bin/mkbootimg \
--kernel $ANDROID_OUT/target/product/$TARGET/kernel \
--ramdisk $ANDROID_OUT/target/product/$TARGET/ramdisk-recovery.img \
--base 0x40000000 \
--pagesize 2048 \
--cmdline "console=ttySAC2,115200 buildvariant=userdebug" \
--os_version 7.1.2 \
--os_patch_level 2018-09-05 \
--output $OUTPUT
size=$(for i in $OUTPUT; do stat --format "%s" "$i" | tr -d '\n'; echo +; done; echo 0);
total=$(( $( echo "$size" ) ));
printname=$(echo -n "$OUTPUT" | tr " " +);
img_blocksize=4224;
twoblocks=$((img_blocksize * 2)); onepct=$(((((8650752 / 100) - 1) / img_blocksize + 1) * img_blocksize));
reserve=$((twoblocks > onepct ? twoblocks : onepct));
maxsize=$((8650752 - reserve));
echo "$printname maxsize=$maxsize blocksize=$img_blocksize total=$total reserve=$reserve";
if [ "$total" -gt "$maxsize" ]; then
echo "error: $printname too large ($total > [8650752 - $reserve])"; false;
elif [ "$total" -gt $((maxsize - 32768)) ]; then
echo "WARNING: $printname approaching size limit ($total now; limit $maxsize)";
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment