অ্যান্ড্রয়েড ডেভেলপমেন্ট গাইডগুলো সাধারণত Linux পরিবেশে লেখা থাকে। এই গাইডে Windows 10-এ Linux Subsystem (WSL) ব্যবহার করে Android Kernel বিল্ড করা শেখানো হয়েছে, বিশেষ করে ARM ও MediaTek ডিভাইসের জন্য।
প্রয়োজনীয়
- Windows 10 x64 (Fall Creators Update)
Linux Environment সেটআপ (WSL)
- Settings > Update & Security > For Developers > Developer Mode অন।
- Control Panel > Programs > Turn Windows Features On/Off > Windows Subsystem for Linux অন।
- রিবুট, Linux subsystem চালু করুন, পাসওয়ার্ড সেট করুন।
- Windows Store থেকে Ubuntu ইনস্টল করুন, লঞ্চ করে یوزারনেম/পাসওয়ার্ড দিন।
- টার্মিনালে:
apt-get update sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2- চেক করুন:
gcc(error: no input file),make(no target specified),git(commands list) দেখলেই ইনস্টল্ড। - Toolchain প্রয়োজন (GCC, Linaro, custom)। সব ডিভাইস একই toolchain-এ বিল্ড হয় না।
ARM ডিভাইসের জন্য (GCC 4.7)
mkdir kernel && cd kernel git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7
ARM64 ডিভাইসের জন্য
aarch64 compiler প্রয়োজন।
Kernel Source পাওয়া
GitHub/XDA-এ আপনার ডিভাইসের kernel source repo খুঁজুন। উদাহরণ:
git clone "github_url" -b "branch_name" # উদাহরণ: git clone https://github.com/atxoxx/android_ke...amsung_msm8974 -b xenomTW
Kernel ফোল্ডার স্ট্রাকচার:
/arch/arm/configs: ডিভাইস কনফিগ (governors ইত্যাদি)/output/arch/arm/boot/: zImage সংরক্ষণ হবেbuild.sh: বিল্ড স্ক্রিপ্ট/arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2: টুলচেইন
Kernel বিল্ড করা
ARM ডিভাইস
#!/bin/bash export ARCH=arm export CROSS_COMPILE=/path/to/toolchain/bin/arm-eabi- mkdir output make -C $(pwd) O=output "defconfig_name" make -j4 -C $(pwd) O=output cp output/arch/arm/boot/Image $(pwd)/arch/arm/boot/zImage
export ARCH=arm: আর্কিটেকচারexport CROSS_COMPILE: টুলচেইন পাথ (শেষে ড্যাশ বাধ্যতামূলক)make -j4: ৪ কোর ব্যবহার (CPU অনুযায়ী ঠিক করুন)
ARM64 ডিভাইস
export ARCH=arm64 export CROSS_COMPILE="path/to/toolchain" # শেষে "arch-something-" থাকবে
Mediatek (MTK) ডিভাইস
export CROSS_COMPILE="path/to/toolchain" export ARCH=arm export ARCH_MTK_PLATFORM= make "defconfig_name" make -j4
বিল্ড শুরু: sudo bash build.sh (পাসওয়ার্ড দিন)। AMD Phenom X4 3.4GHz/8GB RAM-এ ~১০ মিনিট লাগে। শেষে "zimage is ready" মেসেজ আসবে।
আউটপুট লোকেশন
- ARM/ARM64:
/Output/arch/arm/boot/ - MTK:
/arch/arm/boot/
পুনরায় বিল্ডের আগে: make clean && make mrproper
Kernel বুটেবল করা
AnyKernel মেথড (XDA @osm0sis): zImage, dtb/dtbo, ramdisk, modules, patch ফাইল সংযোজন → zip তৈরি।
Boot.img 리패ক মেথড: Stock boot.img আনপ্যাক → ramdisk মডিফাই → রিপ্যাক → ফ্ল্যাশ।
ফ্ল্যাশের আগে stock boot.img ব্যাকআপ নিন।
Kernel-এ ফিচার যোগ করা
CPU governors, IO schedulers, GPU overclocking, audio enhancements ইত্যাদি যোগ করা যায়।
উদাহরণ: Intellimm governor যোগ করতে arch/arm/configs/msm8974_sec_defconfig-এ লাইন ১৪০-১৪১-এর মাঝপথে যোগ করুন: CONFIG_CPU_FREQ_GOV_INTELLIMM=y
Git commit-এ সব পরিবর্তন দেখা যায়।
জেনারেল টিপস
Kernel নাম/ভার্সন পরিবর্তন
সিম্পল: defconfig-এ CONFIG_LOCALVERSION="-XenomTW-3.2.6"
অ্যাডভান্সড: Root Makefile-এ CONFIG_LOCALVERSION="name" LOCALVERSION="version" (Version, PatchLevel, Sublevel, Extraversion ছুঁয়বেন না)।
অль্টারনেটিভ: scripts/mkcompile_h-এ LINUX_COMPILE_BY="name" LINUX_COMPILE_HOST="name"
PATH সমস্যা সমাধান
export PATH="path/to/toolchain/bin:$PATH"
Windows 10 থেকে Ubuntu ফোল্ডার এক্সেস
Path: C:\Users\NAME\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home
সতর্কতা: Windows- থেকে ফাইল এডিট করলে পারমিশন ভাঙতে পারে, Linux টার্মিনাল থেকে রিসেট করতে হয়।