কম্পিউটার

উইন্ডোজ 10 এ অ্যান্ড্রয়েড কার্নেল কীভাবে তৈরি করবেন

Appual-এর অ্যান্ড্রয়েড ডেভেলপমেন্টের কিছু দুর্দান্ত গাইড রয়েছে, যেমন অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট থেকে কীভাবে একটি কাস্টম রম তৈরি করবেন – তবে এই গাইডগুলি সাধারণত একটি খাঁটি লিনাক্স বিল্ড পরিবেশের দিকে পরিচালিত হয়৷

এই নির্দেশিকায়, আমরা আপনাকে দেখাতে যাচ্ছি কিভাবে উইন্ডোজ 10-এ একটি অ্যান্ড্রয়েড কার্নেল তৈরি করতে হয় - হ্যাঁ, আমরা এখনও একটি লিনাক্স বিল্ড এনভায়রনমেন্ট ব্যবহার করব, তবে এটি উইন্ডোজ 10-এর মধ্যে একটি লিনাক্স সাবসিস্টেম হবে। তাই আপনি যদি উইন্ডোজ 10 অ্যান্ড্রয়েডের জন্য বিকাশে আগ্রহী ব্যবহারকারী, সাবধানে আমাদের নির্দেশিকা অনুসরণ করুন৷

এই নির্দেশিকাতে, আমরা বিশেষভাবে শিখব কিভাবে ARM এবং MediaTek ডিভাইসের জন্য একটি কার্নেল তৈরি করতে হয়, বৈশিষ্ট্য যোগ করতে হয়, এবং Git ব্যবহার করার প্রাথমিক ওভারভিউ।

প্রয়োজনীয়তা

  • Windows 10 x64 (Fall Creator এর আপডেট সহ)

লিনাক্স এনভায়রনমেন্ট সেট আপ করা হচ্ছে

  1. Windows 10 এ, সেটিংস> আপডেট এবং নিরাপত্তা> বিকাশকারীদের জন্য> বিকাশকারী মোড সক্ষম করুন এ যান।
  2. এখন কন্ট্রোল প্যানেলে যান> প্রোগ্রাম> উইন্ডোজ ফিচার চালু বা বন্ধ করুন> লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম সক্ষম করুন।
  3. আপনার পিসি রিবুট করুন।
  4. লিনাক্স সাবসিস্টেম চালু করুন, এবং এটি ডাউনলোড প্রক্রিয়ার মধ্য দিয়ে যাওয়ার অনুমতি দিন। একটি পাসওয়ার্ড সেট করুন এবং এটি হারাবেন না।
  5. এখন উইন্ডোজ অ্যাপ স্টোরে যান, এবং উবুন্টু ডাউনলোড করুন।
  6. Windows 10 ডেস্কটপে উবুন্টু চালু করুন এবং এটি একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ডের অনুরোধ করবে৷
  7. উবুন্টুতে, নেটিভ টার্মিনাল চালু করুন এবং নিম্নলিখিত কমান্ড টাইপ করুন:apt-get update
  8. এটি অ্যাপ এবং নির্ভরতার জন্য সমস্ত রেপো আপডেট করতে এগিয়ে যাবে।
  9. টার্মিনাল টাইপের পরবর্তী:sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2
  10. সমস্ত নির্ভরতা সঠিকভাবে ইনস্টল করা হয়েছে কিনা তা পরীক্ষা করার জন্য, টার্মিনালে 'gcc' টাইপ করুন (কোনও উদ্ধৃতি নেই)।
  11. যদি "gcc" ইতিমধ্যেই ইনস্টল করা থাকে, তাহলে আপনি দেখতে পাবেন "gcc:মারাত্মক ত্রুটি:কোনো ইনপুট ফাইল নেই"
  12. এখন আপনি টার্মিনালে 'make' টাইপ করতে পারেন। যদি "make" ইতিমধ্যেই ইনস্টল করা থাকে, তাহলে আপনি "make:*** কোন লক্ষ্য নির্দিষ্ট করা নেই এবং কোন মেকফাইল পাওয়া যায়নি" দেখতে হবে। থামো।"
  13. পরবর্তী টাইপ 'গিট', এবং যদি "গিট" ইতিমধ্যেই ইনস্টল করা আছে, তাহলে আপনি মৌলিক গিট কমান্ডের গুচ্ছ দেখতে পাবেন।
  14. এখন আমাদের কিছু টুলচেইন দরকার (এখানে GCC, Linaro এবং মুষ্টিমেয় কাস্টম সহ বেশ কয়েকটি প্রকার রয়েছে)। কিছু ডিভাইসের বিভিন্ন টুলচেনের প্রয়োজন হতে পারে, উদাহরণস্বরূপ, সমস্ত ডিভাইস কার্নেল বুট হবে না বা GCC এর সাথে কম্পাইল হবে না।

এআরএম ডিভাইসের জন্য

আমরা এর জন্য GCC 4.7 ব্যবহার করব৷

  1. লিনাক্স টার্মিনাল খুলুন এবং টাইপ করুন:mkdir kernel
  2. এখন টাইপ করুন:cd kernel
  3. (এটি 'কার্নেল' হতে হবে না, এটি সরলতার জন্য, আপনি যা খুশি নাম দিতে পারেন।)
  4. এখন টাইপ করুন:git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7

ARM 64 ডিভাইসের জন্য

ARM 64 ডিভাইসের জন্য আপনার একটি 64-বিট কার্নেল কম্পাইলার প্রয়োজন, উদাহরণস্বরূপ aarch64৷

আপনার ডিভাইসের জন্য সোর্স ফাইল পাওয়া

এটি একটি জটিল অংশ, কারণ আপনাকে একটি গিটহাব রেপো খুঁজে বের করতে হবে যা আপনার কার্নেল উত্স হোস্ট করে। আপনাকে অবশ্যই এটি অনুসন্ধান করতে হবে, সম্ভবত এটি XDA ফোরামে পাওয়া যাবে৷

এখানে কার্নেল সোর্স গিট-এর একটি উদাহরণ।

উপরের বাম দিকে, আপনি "শাখা:xxxx দ্বারা সম্পূর্ণ" দেখতে পাবেন।

একটি কার্নেল/প্রজেক্টের বিভিন্ন সংস্করণ রয়েছে, সাধারণত "টেস্টিং", "বিটা", "ফাইনাল রিলিজ" ইত্যাদি দ্বারা আলাদা করা হয়৷

কার্নেল ফোল্ডারগুলি সাধারণত নিম্নরূপ:

  • /arch/arm/configs :এতে ডিভাইসের জন্য বিভিন্ন কনফিগার ফাইল রয়েছে, যেমন গভর্নর ইত্যাদি।
  • /output/arch/arm/boot/ :এখানেই জিমেজ সংরক্ষণ করা হবে।
  • build.sh :একটি স্ক্রিপ্ট যা বিল্ডিং প্রক্রিয়াকে সহজ করবে।
  • /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2 :এটি সাধারণত কার্নেল উত্সে স্থাপন করা একটি টুলচেইন, এইভাবে এটি খুঁজে পাওয়া সহজ করে তোলে৷

আপনাকে আপনার কার্নেল উৎস ডাউনলোড করতে হবে।

লিনাক্স টার্মিনাল খুলুন এবং নিশ্চিত করুন যে আপনি পূর্বে তৈরি করা কার্নেল ফোল্ডারে আছেন (সিডি কার্নেল)।

তারপর টার্মিনালে টাইপ করুন:“git ক্লোন “গিথুব কার্নেলের URL” -b “শাখার নাম”

উদাহরণের জন্য:“git ক্লোন https://github.com/atxoxx/android_ke…amsung_msm8974 -b xenomTW”

কার্নেল তৈরি করা

এটি সহজ করার জন্য, আপনি ফাইল এক্সপ্লোরারের অবস্থানে নেভিগেট করতে পারেন। এটি /home/user ID/kernel হওয়া উচিত (অথবা আপনি কার্নেল ফোল্ডারের যে নাম দিয়েছেন)।

টুলচেইন এবং কার্নেল উৎসের জন্য আপনার ভিতরে দুটি ফোল্ডার দেখতে হবে। কার্নেল সোর্স ফোল্ডারের ভিতরে যান।

ARM ডিভাইসের জন্য

একটি টার্মিনালে, নিম্নলিখিত কমান্ড টাইপ করুন:

#!/bin/bashexport ARCH=armexport CROSS_COMPILE=mkdir outputmake -C $(pwd) O=output "defconfig এর নাম এবং প্রয়োজনে ভেরিয়েন্ট" মেক -j4 -C $(pwd) O=output

ভবিষ্যতে এটি সহজ করতে এই কমান্ডগুলি কী করে তার একটি সংক্ষিপ্ত বিবরণ এখানে রয়েছে৷

  • #!/bin/bash: স্ক্রিপ্টকে শেল কমান্ডে চালাতে বলে
  • রপ্তানি করুন ARCH=arm: এটি কোন কার্নেল আর্কিটেকচারের ধরন নির্ধারণ করা (উদাহরণস্বরূপ arm64 ইত্যাদি)
  • রপ্তানি CROSS_COMPILE= :টুলচেইন কোথায় আছে তা চিহ্নিত করুন। এটি অবশ্যই সঠিক পথের সাথে মিলতে হবে, এবং শেষ পর্যন্ত ড্যাশ সত্যিই বাধ্যতামূলক৷
  • mkdir আউটপুট: এটি সংকলিত জিমেজ সংরক্ষণ করার জন্য একটি ডিরেক্টরি তৈরি করে
  • মেক -C $(pwd) O=output :গাইড কার্নেল সংকলনের জন্য defconfig সংজ্ঞায়িত করা।
  • মেক -j4 -C $(pwd) O=output :যখন বিল্ডিং প্রক্রিয়া শুরু হয়, -j# এটিকে বলে যে কত দ্রুত চেষ্টা করতে হবে এবং কম্পাইল করতে হবে। সাধারণত, আপনি আপনার CPU অনুযায়ী এই নম্বর সেট করেন। একটি বাজেট CPU-তে -j32 সেট করা, উদাহরণস্বরূপ, সম্ভবত ব্যাপক অস্থিরতা সৃষ্টি করবে৷
  • cp output/arch/arm/boot/Image $(pwd)/arch/arm/boot/zImage :এটি ছবিকে দ্বিতীয় পথে নিয়ে যাওয়ার জন্য।

আরেকটি উদাহরণ:

#!/bin/bashexport ARCH=armexport CROSS_COMPILE=$(pwd)/arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2/bin/arm-cortex-linux-gnueabi-mkdir outputmake -C $ (pwd) O=আউটপুট msm8974_sec_defconfig VARIANT_DEFCONFIG=msm8974_sec_ks01_skt_defconfig SELINUX_DEFCONFIG=selinux_defconfigmake -j4 -C $(pwd) O=outputcp output//archbootrage/pwarmage 

ARM 64 ডিভাইসের জন্য

#!/bin/bashexport ARCH=arm64export CROSS_COMPILE="আপনার টুলচেইনের পথ" (এটি "nameofarch-something-" এর মত কিছু দিয়ে শেষ করতে হবে)mkdir outputmake -C $(pwd) O=output "defconfig এর নাম এবং প্রয়োজনে ভেরিয়েন্ট" make -j4 -C $(pwd) O=output

Mediatek (MTK) ডিভাইসের জন্য

#!/bin/bashexport CROSS_COMPILE="আপনার টুলচেইনের পথ" (এটি "nameofarch-something-"-এর মতো কিছু দিয়ে শেষ করতে হবে) ARCH=arm ARCH_MTK_PLATFORM=বানান "প্রয়োজন হলে defconfig এর নাম এবং ভেরিয়েন্ট" তৈরি করুন - j4

যখন আপনি আপনার কার্নেল আর্কিটেকচারের জন্য প্রয়োজনীয় পদক্ষেপগুলি সম্পন্ন করেন, আপনি টার্মিনালে টাইপ করতে পারেন:sudo bash build.sh

তারপরে আপনি আপনার ব্যবহারকারীর পাসওয়ার্ড লিখবেন, এবং কম্পাইলিং প্রক্রিয়া শুরু হবে।

এটি কিছুটা সময় নিতে পারে তবে সাধারণত খুব বেশি সময় লাগে না, একটি কার্নেল কম্পাইল করা একটি সম্পূর্ণ অ্যান্ড্রয়েড রম কম্পাইল করার মতো নয়। এটি আসলেই সিপিইউ নির্ভর – উদাহরণস্বরূপ, 8GB RAM সহ একটি AMD Phenom X4 3.4GHz শুরু থেকে শেষ পর্যন্ত কম্পাইল করতে প্রায় 10 মিনিট সময় নেয়৷

এটি শেষ হয়ে গেলে, এটি আপনাকে "জিমেজ রেডি" এর মতো একটি বার্তা দিয়ে অবহিত করবে৷

ARM এবং ARM64 ডিভাইসগুলি

আপনার জিমেজ খুঁজতে “/Output/arch/arm/boot/” এ যান।

মিডিয়াটেক ডিভাইস

আপনার জিমেজ খুঁজতে “/arch/arm/boot/” এ যান।

সমস্ত কার্নেল বিল্ডের ফলে একটি জিমেজ ফাইল হবে না, এটি কখনও কখনও অন্যান্য ইমেজ ফর্ম্যাট হিসাবে তৈরি করা যেতে পারে।

গুরুত্বপূর্ণ:আপনি যদি আবার কম্পাইল করতে যাচ্ছেন, তাহলে আবার কম্পাইল প্রক্রিয়া শুরু করার আগে আপনাকে মেক ক্লিন এবং এমআরপ্রপার কমান্ডগুলি প্রবেশ করানো বাঞ্ছনীয়৷

কার্নেল বুট তৈরি করা

আপনার বেছে নেওয়ার জন্য দুটি বিকল্প রয়েছে৷

আপনি যেকোন কার্নেল পদ্ধতি ব্যবহার করতে পারেন (এই XDA থ্রেডে XDA ব্যবহারকারী @osm0sis দ্বারা সংজ্ঞায়িত)। আপনার পুরো টিউটোরিয়ালটি পড়া উচিত, তবে ধাপগুলির একটি সারাংশ নিম্নরূপ:

  1. মূলে zImage রাখুন (dtb এবং/অথবা dtbo-কেও এখানে যেতে হবে এমন ডিভাইসগুলির জন্য যেগুলির জন্য কাস্টম প্রয়োজন, প্রতিটি অন্তর্ভুক্ত না হলে মূলে ফিরে যাবে)
  2. যেকোন প্রয়োজনীয় ramdisk ফাইল /ramdisk এবং /modules এ মডিউল রাখুন (সম্পূর্ণ পাথ যেমন /modules/system/lib/modules সহ)
  3. যেকোন প্রয়োজনীয় প্যাচ ফাইল (সাধারণত আংশিক ফাইল যা কমান্ডের সাথে যায়) /patch এ রাখুন
  4. আপনার কার্নেলের নাম, বুট পার্টিশনের অবস্থান, অন্তর্ভুক্ত রামডিস্ক ফাইলগুলির জন্য অনুমতি যোগ করতে anykernel.sh পরিবর্তন করুন এবং যেকোন প্রয়োজনীয় রামডিস্ক পরিবর্তনের জন্য পদ্ধতি ব্যবহার করুন (ঐচ্ছিকভাবে, রুটে ব্যানার এবং/অথবা সংস্করণ ফাইলগুলিকে প্রদর্শন করার জন্য রাখুন ফ্ল্যাশের সময়)
  5. `zip -r9 UPDATE-AnyKernel2.zip * -x .git README.md *placeholder`

আপনার কাছে উপলব্ধ অন্য পদ্ধতি হল একই রম (যেমন CM, TouchWiz, EMUI ইত্যাদি) এবং একই Android সংস্করণ থেকে boot.img আনপ্যাক করা। আপনি তারপর Zimage অদলবদল হবে. আবার, এটি সত্যিই একটি জটিল প্রক্রিয়া এবং আপনার সঠিক টিউটোরিয়ালটি পড়া উচিত, তবে ধাপগুলির একটি সারাংশ হল:

  1. আনজিপ করুন।
  2. হয় কমান্ড-লাইন "unpackimg " ব্যবহার করুন, অথবা কেবল ছবিটি টেনে আনুন। এটি ইমেজটিকে বিভক্ত করবে এবং রামডিস্কটিকে একটি সাবডিরেক্টরিতে আনপ্যাক করবে।
  3. আপনার পছন্দ মত রামডিস্ক পরিবর্তন করুন।
  4. repackimg ব্যাচ স্ক্রিপ্টের জন্য কোন ইনপুট প্রয়োজন হয় না এবং শুধুমাত্র পূর্বে বিভক্ত zImage কে নতুন প্যাক করা সংশোধিত ramdisk-এর সাথে সমস্ত আসল চিত্র তথ্য ব্যবহার করে পুনরায় সংযুক্ত করে (যা বিভক্ত এবং সংরক্ষিত ছিল)।
  5. ক্লিনআপ ব্যাচ স্ক্রিপ্ট ফোল্ডারটিকে তার প্রাথমিক অবস্থায় রিসেট করে, split_img+ramdisk ডিরেক্টরি এবং নতুন প্যাক করা ramdisk বা ইমেজ ফাইলগুলিকে সরিয়ে দেয়।

আপনি আপনার কার্নেল ফ্ল্যাশ করার আগে, আপনার স্টক boot.img এর একটি ব্যাকআপ তৈরি করা উচিত, এবং তারপর আপনার কার্নেল ফ্ল্যাশ করুন এটি আপনার অ্যান্ড্রয়েড সিস্টেমকে বুট করার অনুমতি দেয় কিনা।

আপনার কার্নেলে বৈশিষ্ট্য যোগ করা

আপনার কার্নেলে বৈশিষ্ট্য যুক্ত করা এটিকে মশলাদার করার একটি দুর্দান্ত উপায়। সিপিইউ গভর্নর, আইও শিডিউলার্স, জিপিইউকে ওভারক্লক করা, অডিও বর্ধিতকরণ ইত্যাদির মতো অনেক কিছু আপনি পরিবর্তন করতে পারেন।

একজন গভর্নর যোগ করার একটি উদাহরণ এখানে রয়েছে (এই গভর্নরের কোডনেম Intellimm)।

আমরা প্রথম 2 টি টেক্সট বক্সে দেখতে পাচ্ছি যে “arch/arm/configs/” “msm8974_sec_defconfig” এবং “cm_msm8974_sec_defconfig”-এ পরিবর্তন করা হয়েছে।

এই ফাইলগুলির 140 এবং 141 লাইনের মধ্যে এই পাঠ্যটি যোগ করা হয়েছে:“CONFIG_CPU_FREQ_GOV_INTELLIMM=y”
(আপনি যখন আপনার কার্নেল কম্পাইল করছেন তখন এই লাইনটি Intellimm সক্ষম করার জন্য)

একই কৌশল অন্যান্য টেক্সট বক্সগুলিতে প্রযোজ্য (কী যোগ করা হয়েছে এবং মুছে ফেলা হয়েছে এবং এটির অবস্থান)

আপনি যে বৈশিষ্ট্যগুলি যোগ করেন তার উপর নির্ভর করে, কম বা বেশি ফাইলগুলি সংশোধন, যুক্ত বা মুছে ফেলা যেতে পারে৷

সুতরাং এটিকে সংক্ষেপে বলতে, একটি প্রতিশ্রুতি আপনাকে যা করা হয়েছে এবং অন্য সবকিছু দেখতে দেয়!

সাধারণ টিপস এবং কৌশল

কার্নেলের নাম এবং সংস্করণ কীভাবে পরিবর্তন করবেন:

সহজ পদ্ধতি:

আপনার defconfig ফাইলে এই লাইনটি সম্পাদনা করুন:

"CONFIG_LOCALVERSION="-" পরে - আপনার ডিফ কনফিগারেশনে

উদাহরণ:CONFIG_LOCALVERSION=”-XenomTW-3.2.6″

উন্নত পদ্ধতি:

আপনার কার্নেল উৎসের রুট ফোল্ডারে মেকফাইলে নেভিগেট করুন।

এই লাইন যোগ করুন:

CONFIG_LOCALVERSION="nameofyourkernel"LOCALVERSION="versionofyourkernel"

লাইন সংস্করণ, প্যাচলেভেল, সাবলেভেল বা এক্সট্রাভার্সন পরিবর্তন করবেন না।

বিকল্প পদ্ধতি:

scripts/mkcompile_h এ যান এবং এই লাইনগুলি যোগ করুন:

LINUX_COMPILE_BY="nameofyourchoice"LINUX_COMPILE_HOST="nameofyourchoice"

PATH সমস্যার সমাধান:

আপনি যদি ত্রুটির সম্মুখীন হন "আপনার পথ কি সঠিক?", লিনাক্স টার্মিনালে এটি চেষ্টা করুন:

"export PATH="pathtotoolchainlocation"/bin:$PATH"

Windows 10 থেকে আপনার উবুন্টু ফোল্ডার অ্যাক্সেস করা

উবুন্টুতে আপনার পথটি সাধারণত হওয়া উচিত:

C:\Users"NAME"\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState \rootfs\home

তবে আপনার উইন্ডোজ থেকে সরাসরি ফাইলগুলি সম্পাদনা করা উচিত নয়, কারণ এটি সাধারণত তাদের অনুমতিগুলিকে ভঙ্গ করবে - তারপরে আপনাকে লিনাক্স টার্মিনাল থেকে অনুমতিগুলি পুনরায় সেট করতে হবে৷


  1. কিভাবে আপনার Android ফোনকে Windows 10 এর সাথে লিঙ্ক করবেন?

  2. Windows 10-এ কার্নেল পাওয়ার 41 কীভাবে সমাধান করবেন?

  3. Windows 10 এ Android Notifications কিভাবে পেতে হয়?

  4. Windows 11 এ Android Apps কিভাবে চালাবেন