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

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

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

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

সমর্থিত Pixel 6/6 Pro Android প্ল্যাটফর্ম এবং কার্নেল সমন্বয়
পিক্সেল কার্নেল ম্যানিফেস্ট শাখা GKI শাখা অ্যান্ড্রয়েড প্ল্যাটফর্ম বিল্ড aosp-main সমর্থন?
gs-android-gs-raviole-mainline অ্যান্ড্রয়েড-মেইনলাইন ( v6.8 ) AP1A.240505.004 (11583682) হ্যাঁ
android14-gs-pixel-6.1 android14-6.1 AP1A.240505.004 (11583682) হ্যাঁ
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 ফাইলটি আপডেট করুন। আপনি অনুসরণ করতে পারেন কয়েকটি বিকল্প আছে.

অপশন 1) 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
    
বিকল্প 2) স্থানীয়ভাবে নির্মিত অ্যান্ড্রয়েড প্ল্যাটফর্ম সংগ্রহস্থল থেকে vendor_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 ANDROID_ROOT/out/target/product/DEVICE/vendor_ramdisk-debug.img \
   KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH/vendor_ramdisk-DEVICE.img

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

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

android14 এবং পরবর্তী কার্নেলের সাথে Pixel 6 এবং 6 Pro-এর জন্য Kleaf build কমান্ডটি চালান:

tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist

android13-5.15 কার্নেল সহ Pixel 6 এবং 6 Pro-এর জন্য Kleaf build কমান্ডটি চালান:

tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist

অন্যান্য সমস্ত পিক্সেল কার্নেলের জন্য, KERNEL_REPO_ROOT এ পাওয়া build_ DEVICE .sh স্ক্রিপ্টটি চালান। বেশিরভাগ ক্ষেত্রে, DEVICE এমন কোড নাম হতে হবে যা GKI সমর্থিত পিক্সেল কার্নেল শাখার টেবিলের AOSP ট্রি কলামের বাইনারি পাথে ব্যবহৃত কোড নামের সাথে মেলে। এটি একটি ডিভাইসের কোড নাম হতে পারে, যেমন "akita" (Pixel 8a), অথবা একটি কোড নাম যা একটি কার্নেল ভাগ করে এমন সম্পর্কিত ডিভাইসগুলির একটি গ্রুপকে প্রতিনিধিত্ব করে, যেমন "caimito" যার অর্থ Pixel 9 (tokay), Pixel 9 Pro (caiman), এবং Pixel 9 Pro XL (komodo)। 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_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 vendor_boot out/slider/dist/vendor_boot.img
fastboot reboot fastboot
fastboot flash vendor_dlkm out/slider/dist/vendor_dlkm.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