diff --git a/arch/arm64/configs/wasabi_defconfig b/arch/arm64/configs/wasabi_defconfig index ac8eb509eea4..98656ce0bcbb 100644 --- a/arch/arm64/configs/wasabi_defconfig +++ b/arch/arm64/configs/wasabi_defconfig @@ -149,7 +149,7 @@ CONFIG_PAGE_COUNTER=y CONFIG_MEMCG=y CONFIG_MEMCG_SWAP=y CONFIG_MEMCG_SWAP_ENABLED=y -# CONFIG_BLK_CGROUP is not set +CONFIG_BLK_CGROUP=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y # CONFIG_CFS_BANDWIDTH is not set @@ -4740,7 +4740,7 @@ CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y -# CONFIG_FANOTIFY is not set +CONFIG_FANOTIFY=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y @@ -4796,7 +4796,8 @@ CONFIG_OPPO_JANK_INFO=y CONFIG_KERNFS=y CONFIG_SYSFS=y CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_POSIX_ACL=y + # CONFIG_TMPFS_XATTR is not set # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set @@ -5425,3 +5426,27 @@ CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_SBITMAP=y # CONFIG_STRING_SELFTEST is not set +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y + + +# +# Container Features +# + +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_DEVICE=y + +CONFIG_FANOTIFY=y + +CONFIG_TMPFS_POSIX_ACL=y + +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 index 533c0855ab3b..dab8ac41c978 --- a/build.sh +++ b/build.sh @@ -1,52 +1,130 @@ #!/bin/bash -function compile() -{ -rm -rf AnyKernel -source ~/.bashrc && source ~/.profile -export LC_ALL=C && export USE_CCACHE=1 -ccache -M 100G +set -e + +KERNEL_DIR=$(pwd) + export ARCH=arm64 -export KBUILD_BUILD_HOST=neolit -export KBUILD_BUILD_USER="sarthakroy2002" -if [ ! -d "clang" ]; then - wget https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/heads/master/clang-r487747.tar.gz -O "aosp-clang.tar.gz" - mkdir clang && tar -xf aosp-clang.tar.gz -C clang && rm -rf aosp-clang.tar.gz -fi -git clone --depth=1 https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9 los-4.9-64 -git clone --depth=1 https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.9 los-4.9-32 - - -[ -d "out" ] && rm -rf out || mkdir -p out - -make O=out ARCH=arm64 wasabi_defconfig - -PATH="${PWD}/clang/bin:${PATH}:${PWD}/los-4.9-32/bin:${PATH}:${PWD}/los-4.9-64/bin:${PATH}" \ -make -j$(nproc --all) O=out \ - ARCH=$ARCH \ - CC="clang" \ - CLANG_TRIPLE=aarch64-linux-gnu- \ - CROSS_COMPILE="${PWD}/los-4.9-64/bin/aarch64-linux-android-" \ - CROSS_COMPILE_ARM32="${PWD}/los-4.9-32/bin/arm-linux-androideabi-" \ - LLVM=1 \ - LD=ld.lld \ - AR=llvm-ar \ - NM=llvm-nm \ - OBJCOPY=llvm-objcopy \ - OBJDUMP=llvm-objdump \ - STRIP=llvm-strip \ - CONFIG_NO_ERROR_ON_MISMATCH=y +export LC_ALL=C +export USE_CCACHE=1 + +export KBUILD_BUILD_HOST="op-VirtualBox" +export KBUILD_BUILD_USER="premj01" + +function prepare() +{ + echo "==== Checking Toolchain ====" + + command -v clang >/dev/null || { + echo "clang missing" + exit 1 + } + + command -v ld.lld >/dev/null || { + echo "lld missing" + exit 1 + } + + command -v llvm-ar >/dev/null || { + echo "llvm-ar missing" + exit 1 + } + + echo "" + clang --version | head -1 + ld.lld --version | head -1 + + echo "" + echo "==== Checking GCC Android toolchain ====" + + if [ ! -d "los-4.9-64" ]; then + git clone --depth=1 \ + https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9 \ + los-4.9-64 + fi + + if [ ! -d "los-4.9-32" ]; then + git clone --depth=1 \ + https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.9 \ + los-4.9-32 + fi + + echo "" + echo "==== Cleaning old output ====" + rm -rf out + mkdir out +} + +function build_kernel() +{ + echo "" + echo "==== Generating Defconfig ====" + make O=out ARCH=arm64 wasabi_defconfig + + echo "" + echo "==== Starting Kernel Build ====" + + # Added LLVM_IAS=1 to enforce Clang internal assembly parsing + PATH="${PATH}:${KERNEL_DIR}/los-4.9-64/bin:${KERNEL_DIR}/los-4.9-32/bin" \ + make \ + -j$(nproc --all) \ + O=out \ + ARCH=arm64 \ + CC="ccache clang" \ + LLVM=1 \ + LLVM_IAS=1 \ + CLANG_TRIPLE=aarch64-linux-gnu- \ + CROSS_COMPILE="${KERNEL_DIR}/los-4.9-64/bin/aarch64-linux-android-" \ + CROSS_COMPILE_ARM32="${KERNEL_DIR}/los-4.9-32/bin/arm-linux-androideabi-" \ + LD=ld.lld \ + AR=llvm-ar \ + NM=llvm-nm \ + OBJCOPY=llvm-objcopy \ + OBJDUMP=llvm-objdump \ + STRIP=llvm-strip \ + CONFIG_NO_ERROR_ON_MISMATCH=y + + echo "" + echo "==== Build Finished ====" + ls -lh out/arch/arm64/boot/ } -function zupload() +function package_kernel() { -git clone --depth=1 https://github.com/sarthakroy2002/AnyKernel3.git -b RMX2001 AnyKernel -cp out/arch/arm64/boot/Image.gz-dtb AnyKernel -cd AnyKernel -zip -r9 Test-OSS-KERNEL-wasabi-NEOLIT.zip * -curl -sL https://git.io/file-transfer | sh -./transfer wet Test-OSS-KERNEL-wasabi-NEOLIT.zip + echo "" + echo "==== Packaging AnyKernel ====" + rm -rf AnyKernel + + # Switched to the standard upstream AnyKernel3 repository to bypass missing branch errors + git clone --depth=1 \ + https://github.com/osm0sis/AnyKernel3.git \ + AnyKernel + + # Safety Fix: Grabs Image.gz or Image.gz-dtb dynamically + if [ -f "out/arch/arm64/boot/Image.gz-dtb" ]; then + cp out/arch/arm64/boot/Image.gz-dtb AnyKernel/ + elif [ -f "out/arch/arm64/boot/Image.gz" ]; then + cp out/arch/arm64/boot/Image.gz AnyKernel/ + else + echo "Error: Kernel build image binaries not found!" + exit 1 + fi + + cd AnyKernel + + # Configures the package template specifically for your Realme Wasabi + sed -i 's/device.name1=/device.name1=wasabi/g' anykernel.sh + sed -i 's/device.name2=/device.name2=RMX2001/g' anykernel.sh + + zip -r9 \ + Test-OSS-KERNEL-wasabi-custom.zip \ + * + + echo "" + echo "Kernel ZIP created:" + ls -lh *.zip } -compile -zupload +prepare +build_kernel +package_kernel diff --git a/buildOld123.sh b/buildOld123.sh new file mode 100755 index 000000000000..17a2b5b7fb08 --- /dev/null +++ b/buildOld123.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +function compile() +{ +rm -rf AnyKernel +source ~/.bashrc && source ~/.profile +export LC_ALL=C && export USE_CCACHE=1 +ccache -M 100G +export ARCH=arm64 +export KBUILD_BUILD_HOST=neolit +export KBUILD_BUILD_USER="sarthakroy2002" + +git clone --depth=1 https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9 los-4.9-64 +git clone --depth=1 https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.9 los-4.9-32 + + +[ -d "out" ] && rm -rf out || mkdir -p out + +make O=out ARCH=arm64 wasabi_defconfig + +PATH="${PATH}:${PWD}/los-4.9-32/bin:${PWD}/los-4.9-64/bin" \ +make -j$(nproc --all) O=out \ + ARCH=$ARCH \ + CC="clang" \ + CLANG_TRIPLE=aarch64-linux-gnu- \ + CROSS_COMPILE="${PWD}/los-4.9-64/bin/aarch64-linux-android-" \ + CROSS_COMPILE_ARM32="${PWD}/los-4.9-32/bin/arm-linux-androideabi-" \ + LLVM=1 \ + LD=ld.lld \ + AR=llvm-ar \ + NM=llvm-nm \ + OBJCOPY=llvm-objcopy \ + OBJDUMP=llvm-objdump \ + STRIP=llvm-strip \ + CONFIG_NO_ERROR_ON_MISMATCH=y +} + +function zupload() +{ +git clone --depth=1 https://github.com/sarthakroy2002/AnyKernel3.git -b RMX2001 AnyKernel +cp out/arch/arm64/boot/Image.gz-dtb AnyKernel +cd AnyKernel +zip -r9 Test-OSS-KERNEL-wasabi-NEOLIT.zip * +curl -sL https://git.io/file-transfer | sh +./transfer wet Test-OSS-KERNEL-wasabi-NEOLIT.zip +} + +compile diff --git a/buildOld234 b/buildOld234 new file mode 100755 index 000000000000..adca546206da --- /dev/null +++ b/buildOld234 @@ -0,0 +1,126 @@ +#!/bin/bash + +set -e + +KERNEL_DIR=$(pwd) + +export ARCH=arm64 +export LC_ALL=C +export USE_CCACHE=1 + +export KBUILD_BUILD_HOST="op-VirtualBox" +export KBUILD_BUILD_USER="op" + +function prepare() +{ + echo "==== Checking Toolchain ====" + + command -v clang >/dev/null || { + echo "clang missing" + exit 1 + } + + command -v ld.lld >/dev/null || { + echo "lld missing" + exit 1 + } + + command -v llvm-ar >/dev/null || { + echo "llvm-ar missing" + exit 1 + } + + echo "" + clang --version | head -1 + ld.lld --version | head -1 + + echo "" + echo "==== Checking GCC Android toolchain ====" + + if [ ! -d "los-4.9-64" ]; then + git clone --depth=1 \ + https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9 \ + los-4.9-64 + fi + + if [ ! -d "los-4.9-32" ]; then + git clone --depth=1 \ + https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.9 \ + los-4.9-32 + fi + + echo "" + echo "==== Cleaning old output ====" + rm -rf out + mkdir out +} + +function build_kernel() +{ + echo "" + echo "==== Generating Defconfig ====" + make O=out ARCH=arm64 wasabi_defconfig + + echo "" + echo "==== Starting Kernel Build ====" + + # Added LLVM_IAS=1 to enforce Clang internal assembly parsing + PATH="${PATH}:${KERNEL_DIR}/los-4.9-64/bin:${KERNEL_DIR}/los-4.9-32/bin" \ + make \ + -j$(nproc --all) \ + O=out \ + ARCH=arm64 \ + CC="ccache clang" \ + LLVM=1 \ + LLVM_IAS=1 \ + CLANG_TRIPLE=aarch64-linux-gnu- \ + CROSS_COMPILE="${KERNEL_DIR}/los-4.9-64/bin/aarch64-linux-android-" \ + CROSS_COMPILE_ARM32="${KERNEL_DIR}/los-4.9-32/bin/arm-linux-androideabi-" \ + LD=ld.lld \ + AR=llvm-ar \ + NM=llvm-nm \ + OBJCOPY=llvm-objcopy \ + OBJDUMP=llvm-objdump \ + STRIP=llvm-strip \ + CONFIG_NO_ERROR_ON_MISMATCH=y + + echo "" + echo "==== Build Finished ====" + ls -lh out/arch/arm64/boot/ +} + +function package_kernel() +{ + echo "" + echo "==== Packaging AnyKernel ====" + rm -rf AnyKernel + + git clone --depth=1 \ + -b RMX2001 \ + https://github.com/sarthakroy2002/AnyKernel3.git \ + AnyKernel + + # Safety Fix: Grabs Image.gz or Image.gz-dtb dynamically + if [ -f "out/arch/arm64/boot/Image.gz-dtb" ]; then + cp out/arch/arm64/boot/Image.gz-dtb AnyKernel/ + elif [ -f "out/arch/arm64/boot/Image.gz" ]; then + cp out/arch/arm64/boot/Image.gz AnyKernel/ + else + echo "Error: Kernel build image binaries not found!" + exit 1 + fi + + cd AnyKernel + + zip -r9 \ + Test-OSS-KERNEL-wasabi-custom.zip \ + * + + echo "" + echo "Kernel ZIP created:" + ls -lh *.zip +} + +prepare +build_kernel +package_kernel