পিক্সেল কার্নেল তৈরি করুন

এই নির্দেশিকাটি বিকাশের জন্য একটি কাস্টম পিক্সেল কার্নেল কিভাবে ডাউনলোড, কম্পাইল এবং ফ্ল্যাশ করতে হয় সে সম্পর্কে ধাপে ধাপে নির্দেশনা প্রদান করে। GKI এর কারণে, এখন Android প্লাটফর্ম বিল্ড থেকে স্বাধীনভাবে কার্নেল আপডেট করা সম্ভব। এই ধাপগুলি শুধুমাত্র Pixel 6 এবং পরবর্তী ডিভাইসগুলির জন্য প্রযোজ্য। এর কারণ হল Pixel 5 এবং আগের ডিভাইসগুলির জন্য vendor পার্টিশনে কার্নেল মডিউলগুলি আপডেট করতে হবে, যা সেই ডিভাইসগুলির জন্য Android প্ল্যাটফর্ম বিল্ডের উপর নির্ভরশীল। GKI সমর্থিত পিক্সেল কার্নেল শাখা সারণীতে প্রতিটি GKI সমর্থিত পিক্সেল ডিভাইসের জন্য কার্নেল রিপোজিটরি ম্যানিফেস্ট শাখা অন্তর্ভুক্ত রয়েছে। Pixel 5 এবং পূর্ববর্তী কার্নেল ম্যানিফেস্ট শাখাগুলির জন্য লিগ্যাসি পিক্সেল কার্নেল বিভাগটি পড়ুন।

GKI পিক্সেল কার্নেল শাখা সমর্থিত
ডিভাইস সংগ্রহশালা শাখা GKI কার্নেল
Pixel 9a (tegu) android-gs-tegu-6.1-android16 android14-6.1
Pixel 9 Pro ফোল্ড (ধূমকেতু) android-gs-comet-6.1-android16 android14-6.1
পিক্সেল 9 (টোকে)
Pixel 9 Pro (caiman)
Pixel 9 Pro XL (কোমোডো)
android-gs-caimito-6.1-android16 android14-6.1
Pixel 8a (আকিটা) android-gs-akita-6.1-android16 android14-6.1
পিক্সেল 8 (শিবা)
Pixel 8 Pro (হস্কি)
android-gs-shusky-6.1-android16 android14-6.1
পিক্সেল ফোল্ড (ফেলিক্স) android-gs-felix-6.1-android16 android14-6.1
পিক্সেল ট্যাবলেট (ট্যাংগোরপ্রো) android-gs-tangorpro-6.1-android16 android14-6.1
Pixel 7a (lynx) android-gs-lynx-6.1-android16 android14-6.1
Pixel 7 (প্যান্থার)
Pixel 7 Pro (চিতা)
android-gs-pantah-6.1-android16 android14-6.1
Pixel 6a (ব্লুজে) android-gs-bluejay-6.1-android16 android14-6.1
পিক্সেল 6 (ওরিওল)
Pixel 6 Pro (Raven)
android-gs-raviole-6.1-android16 android14-6.1

ফ্যাক্টরি সমর্থিত কার্নেলগুলি ছাড়াও, পিক্সেল 6 এবং 6 প্রো ডিভাইসগুলি GKI বিকাশের উদ্দেশ্যে সমর্থিত পিক্সেল 6/6 প্রো অ্যান্ড্রয়েড প্ল্যাটফর্ম এবং কার্নেল কম্বিনেশন টেবিলের অন্তর্ভুক্ত Android সাধারণ কার্নেল শাখাগুলিতে সমর্থিত। অ্যান্ড্রয়েড প্ল্যাটফর্ম HALs এবং Pixel কার্নেল ড্রাইভারের মধ্যে বিক্রেতার UAPI পার্থক্যের কারণে, টেবিলটি সমর্থিত বিল্ড সমন্বয় প্রদান করে।

সমর্থিত Pixel 6/6 Pro Android প্ল্যাটফর্ম এবং কার্নেল সমন্বয়
পিক্সেল কার্নেল ম্যানিফেস্ট শাখা জিকেআই শাখা অ্যান্ড্রয়েড প্ল্যাটফর্ম বিল্ড
gs-android-gs-raviole-mainline অ্যান্ড্রয়েড-মেইনলাইন android-সর্বশেষ-রিলিজ
android16-6.12-gs101 android16-6.12 android-সর্বশেষ-রিলিজ
gs-android13-gs-raviole-5.15 android13-5.15 TQ1A.230205.002 (9471150)

আপনার Pixel ডিভাইস প্রস্তুত করুন

নিম্নলিখিত ফ্লো চার্ট Pixel 6 এবং পরবর্তী ডিভাইসে কার্নেল আপডেট করার প্রক্রিয়া বর্ণনা করে:

**চিত্র 1.** কার্নেল আপডেট ফ্লো চার্ট

flash.android.com ব্যবহার করে ডিভাইস ফ্ল্যাশ করুন

  1. flash.android.com- এ নেভিগেট করুন
  2. সমর্থিত অ্যান্ড্রয়েড প্ল্যাটফর্ম এবং কার্নেল সমন্বয়ের উপর ভিত্তি করে অ্যান্ড্রয়েড বিল্ড বেছে নিন।
  3. নিম্নলিখিত বিকল্পগুলি নির্বাচন করুন:
    • ডিভাইস মুছা
    • ফোর্স ফ্ল্যাশ সব পার্টিশন
    • যাচাইকরণ অক্ষম করুন
  4. ডিভাইসটি ফ্ল্যাশ করতে ইনস্টল বিল্ড বোতাম টিপুন।

**চিত্র 2.** ফ্ল্যাশ স্টেশন উদাহরণ

কার্নেল ডাউনলোড এবং কম্পাইল করুন

কার্নেল সংগ্রহস্থল সিঙ্ক করুন

কার্নেল সোর্স কোড ডাউনলোড করতে নিম্নলিখিত কমান্ডগুলি চালান। Pixel KERNEL_MANIFEST_BRANCH এর জন্য সমর্থিত Pixel 6/6 Pro Android প্ল্যাটফর্ম এবং কার্নেল কম্বিনেশন টেবিল দেখুন।

repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags

বিক্রেতা রামডিস্ক আপডেট করুন

ডিভাইসে ফ্ল্যাশ করা অ্যান্ড্রয়েড প্ল্যাটফর্ম বিল্ডের সাথে মেলে কার্নেল রিপোজিটরিতে vendor_ramdisk- DEVICE .img ফাইলটি আপডেট করুন। vendor_ramdisk- DEVICE .img ফাইলটি আপডেট করার জন্য কয়েকটি বিকল্প রয়েছে। আপনি যদি Android 15 QPR2 (BP11.241025.006) বা তার পরে ব্যবহার করেন তবে বিকল্প (1) ব্যবহার করুন। অন্যথায়, বিকল্প (2) ব্যবহার করুন।

  • বিকল্প 1) ভেন্ডর_বুট পার্টিশনের শুধুমাত্র DTB এবং DLKM রামডিস্ক বিট আপডেট করুন

    ফাস্টবুট সংস্করণ 35.0.2-12583183 দিয়ে শুরু করে, আপনি vendor_boot পার্টিশনে সরাসরি DTB এবং DLKM ramdisk ফ্ল্যাশ করতে পারেন। sdk-repo- HOST_OS -platform-tools-12583183.zip থেকে v35.0.2-12583183 আর্টিফ্যাক্টগুলিকে আপনার হোস্ট মেশিনের পরিবেশে ব্যবহারের জন্য ডাউনলোড করুন এবং বের করুন৷

    কার্নেলের ফ্ল্যাশ চিত্রগুলিতে DTB এবং vendor_boot:dlkm ফ্ল্যাশ করতে নির্দেশাবলী অনুসরণ করুন।

  • বিকল্প 2) Pixel ফ্যাক্টরি ইমেজ থেকে ভেন্ডর রামডিস্ক ইমেজ বের করুন।

    1. https://developers.google.com/android/images থেকে আপনার ডিভাইসের জন্য সমর্থিত ফ্যাক্টরি ছবি ডাউনলোড করুন।

    2. vendor_boot.img বের করুন:

      নিম্নলিখিত কমান্ডগুলি উদাহরণ হিসাবে Pixel 6 Pro AP1A.240505.004 ব্যবহার করে৷ আপনার ডাউনলোড করা ফ্যাক্টরি ইমেজের ফাইলের নাম দিয়ে জিপফাইল নামটি প্রতিস্থাপন করুন।

        unzip raven-ap1a.240505.004-factory-9d783215.zip
      
        cd raven-ap1a.240505.004
      
        unzip image-raven-ap1a.240505.004.zip vendor_boot.img
      
    3. ভেন্ডর রামডিস্ক পেতে vendor_boot.img আনপ্যাক করুন।

        KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \
            --out vendor_boot_out
      
    4. Pixel কার্নেল সংগ্রহস্থলে নিষ্কাশিত vendor-ramdisk-by-name/ramdisk_ ফাইলটি কপি করুন।

      ডিভাইস DEVICE_RAMDISK_PATH
      পিক্সেল 6 (ওরিওল)
      Pixel 6 Pro (Raven)
      prebuilts/boot-artifacts/ramdisks/vendor_ramdisk- oriole.img
      Pixel 6a (ব্লুজে) private/devices/google/bluejay/vendor_ramdisk- bluejay.img
        cp vendor_boot_out/vendor-ramdisk-by-name/ramdisk_ \
            KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH
      

কার্নেল কম্পাইল করুন (ক্লিফ)

অ্যান্ড্রয়েড 13-এ, build.sh স্ক্রিপ্টটি ক্লিফ নামে একটি নতুন কার্নেল বিল্ড সিস্টেম দিয়ে প্রতিস্থাপিত হয়েছিল। android13-5.15 এবং তার পরের ডিভাইসগুলির জন্য, Kleaf ব্যবহার করে কার্নেল তৈরি করা উচিত।

সুবিধার জন্য, আপনি KERNEL_REPO_ROOT এ পাওয়া build_ DEVICE .sh স্ক্রিপ্টটি চালাতে পারেন। বেশিরভাগ ক্ষেত্রে, DEVICE কোড নাম হওয়া প্রয়োজন, যেটি একটি ডিভাইসের কোড নাম হতে পারে, যেমন "akita" (Pixel 8a), অথবা একটি কোড নাম যা একটি কার্নেল ভাগ করে এমন সম্পর্কিত ডিভাইসগুলির একটি গ্রুপকে প্রতিনিধিত্ব করে, যেমন "caimito" যার অর্থ Pixel 9 (tokay), Pixel 9 Pro (caiman), এবং Pixel 9 Pro XL (Pixel 9 Pro XL)। android14 এবং তার আগের রিলিজের জন্য, Pixel 6 এবং Pixel 6 Pro-এর জন্য build_slider.sh এবং Pixel 7 এবং Pixel 7 Pro-এর জন্য build_cloudripper.sh ব্যবহার করুন।

উদাহরণস্বরূপ, android-gs-raviole-5.10-android14 শাখায় Pixel 6 এর জন্য কার্নেল তৈরি করতে, আপনি কমান্ডটি চালাবেন:

build_slider.sh

প্রোডাকশন কার্নেল শাখায় ডিফল্টরূপে, build_ DEVICE .sh স্ক্রিপ্টগুলি বিল্ড প্রক্রিয়ার গতি বাড়ানোর জন্য পূর্বনির্মাণ করা GKI কার্নেল ব্যবহার করে। আপনি যদি মূল কার্নেল পরিবর্তন করতে চান, তাহলে স্থানীয় উৎস থেকে কার্নেল তৈরি করতে পরিবেশ পরিবর্তনশীল BUILD_AOSP_KERNEL=1 সেট করুন। ডেভেলপমেন্ট কার্নেল শাখাগুলি ডিফল্টরূপে সরাসরি কার্নেল উৎস তৈরি করে।

কার্নেল বিল্ড সিস্টেম এবং কীভাবে বিল্ডটি কাস্টমাইজ করা যায় সে সম্পর্কে আরও বিশদ বিবরণের জন্য, ক্লিফ - বিল্ডিং অ্যান্ড্রয়েড কার্নেল সহ Bazel দেখুন।

কার্নেলের ছবি ফ্ল্যাশ করুন

দ্রষ্টব্য: আপনি যদি যাচাইকরণ নিষ্ক্রিয় না করে থাকেন তবে কাস্টম কার্নেলটি ফ্ল্যাশ করার আগে আপনাকে এটি করতে হবে। এটি করার জন্য এখানে আদেশ রয়েছে:
fastboot oem disable-verification
সতর্কতা: যদি আপনি একটি প্ল্যাটফর্ম বিল্ডের উপরে একটি কাস্টম কার্নেল ফ্ল্যাশ করছেন, তাহলে নতুন কার্নেলের সাথে সম্পর্কিত নিরাপত্তা প্যাচ লেভেল (SPL) ডাউনগ্রেড থাকলে আপনাকে আপনার ডিভাইসটি মুছতে হতে পারে। এই প্রক্রিয়াটি আপনার সমস্ত ব্যক্তিগত ডেটা মুছে দেয়। মোছার আগে আপনার ডেটা ব্যাক আপ করতে ভুলবেন না।
fastboot -w

কার্নেল ইমেজ ফ্ল্যাশ করতে, আপনার ডিভাইসের জন্য তালিকাভুক্ত প্রতিটি কার্নেল পার্টিশনের জন্য fastboot flash কমান্ড চালান। গতিশীল পার্টিশনের জন্য, আপনাকে ফ্ল্যাশ করার আগে fastbootd মোডে রিবুট করতে হবে।

ডিভাইস কার্নেল পার্টিশন
পিক্সেল 6 (ওরিওল)
Pixel 6 Pro (Raven)
Pixel 6a (ব্লুজে)
বুট
dtbo
vendor_boot বা vendor_boot:dlkm
vendor_dlkm (ডাইনামিক পার্টিশন)
পিক্সেল 8 (শিবা)
Pixel 8 Pro (হস্কি)
পিক্সেল ফোল্ড (ফেলিক্স)
পিক্সেল ট্যাবলেট (ট্যাংগোরপ্রো)
Pixel 7a (lynx)
Pixel 7 (প্যান্থার)
Pixel 7 Pro (চিতা)
বুট
dtbo
vendor_kernel_boot
vendor_dlkm (ডাইনামিক পার্টিশন)
system_dlkm (ডাইনামিক পার্টিশন)

android-mainline পিক্সেল 6-এর জন্য ফ্ল্যাশিং কমান্ডগুলি এখানে রয়েছে:

fastboot flash boot        out/slider/dist/boot.img
fastboot flash dtbo        out/slider/dist/dtbo.img
fastboot flash  --dtb out/slider/dist/dtb.img vendor_boot:dlkm out/slider/dist/initramfs.img
fastboot reboot fastboot
fastboot flash vendor_dlkm out/slider/dist/vendor_dlkm.img

Pixel 6/6 Pro/6a-এর জন্য, আপনি যদি বিক্রেতা রামডিস্ক আপডেট করুন বিভাগে vendor_ramdisk আপডেট করেন, তাহলে পরিবর্তে vendor_boot পার্টিশন আপডেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

fastboot flash vendor_boot out/slider/dist/vendor_boot.img

কার্নেলের ছবিগুলি DIST_DIR এ পাওয়া যাবে।

কার্নেল শাখা DIST_DIR
v5.10 out/mixed/dist
v5.15 এবং পরবর্তী out/ DEVICE /dist
দ্রষ্টব্য: আপনার যদি সিরিয়াল ডঙ্গল থাকে এবং সিরিয়াল লগগুলি সক্ষম করতে চান তবে কমান্ডটি হল:
fastboot oem uart enable
fastboot oem uart config 3000000
হোস্ট থেকে সংযোগ করার জন্য উদাহরণ কমান্ড:
screen -fn /dev/ttyUSB* 3000000

কারখানার ছবি পুনরুদ্ধার করুন

আপনার ডিভাইসটিকে কারখানার চিত্রগুলিতে ফিরিয়ে আনতে, আপনি flash.android.com ব্যবহার করতে পারেন৷

লিগ্যাসি পিক্সেল কার্নেল

একটি রেফারেন্স হিসাবে, লিগ্যাসি Pixel কার্নেল শাখা টেবিল Pixel 5 এবং পূর্ববর্তী ডিভাইসগুলির জন্য কার্নেল সংগ্রহস্থলের শাখা প্রদান করে। এগুলি নন-GKI সমর্থিত ডিভাইস।

লিগ্যাসি পিক্সেল কার্নেল শাখা
ডিভাইস AOSP গাছে বাইনারি পথ সংগ্রহশালা শাখা
Pixel 5a (বারবেট)
Pixel 4a (5G) (ব্র্যাম্বল)
Pixel 5 (redfin)
device/google/redbull-kernel android-msm-redbull-4.19-android14-qpr3
Pixel 4a (সানফিশ) device/google/sunfish-kernel android-msm-sunfish-4.14-android13-qpr3
পিক্সেল 4 (শিখা)
Pixel 4 XL (প্রবাল)
device/google/coral-kernel android-msm-coral-4.14-android13
Pixel 3a (সারগো)
Pixel 3a XL (বোনিটো)
device/google/bonito-kernel android-msm-bonito-4.9-android12L
Pixel 3 (ব্লুলাইন)
Pixel 3 XL (ক্রসশ্যাচ)
device/google/crosshatch-kernel android-msm-crosshatch-4.9-android12
পিক্সেল 2 (ওয়ালে)
Pixel 2 XL (টাইমেন)
device/google/wahoo-kernel android-msm-wahoo-4.4-android10-qpr3
পিক্সেল (সেলফিশ)
পিক্সেল এক্সএল (মার্লিন)
device/google/marlin-kernel android-msm-marlin-3.18-pie-qpr2