Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 28 additions & 3 deletions arch/arm64/configs/wasabi_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
166 changes: 122 additions & 44 deletions build.sh
100644 → 100755
Original file line number Diff line number Diff line change
@@ -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
48 changes: 48 additions & 0 deletions buildOld123.sh
Original file line number Diff line number Diff line change
@@ -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
Loading