पिक्सेल कर्नेल बनाएँ

यह मार्गदर्शिका विकास के लिए कस्टम पिक्सेल कर्नेल को डाउनलोड करने, संकलित करने और फ़्लैश करने के बारे में चरण-दर-चरण निर्देश प्रदान करती है। GKI के कारण, अब कर्नेल को एंड्रॉइड प्लेटफ़ॉर्म बिल्ड से स्वतंत्र रूप से अपडेट करना संभव है। ये चरण केवल Pixel 6 और बाद के उपकरणों के लिए लागू हैं। ऐसा इसलिए है क्योंकि Pixel 5 और इससे पहले के डिवाइसों को vendor विभाजन पर कर्नेल मॉड्यूल को अपडेट करने की आवश्यकता होती है, जो उन डिवाइसों के लिए एंड्रॉइड प्लेटफ़ॉर्म बिल्ड पर निर्भर है। GKI समर्थित पिक्सेल कर्नेल शाखाएँ तालिका में प्रत्येक GKI समर्थित पिक्सेल डिवाइस के लिए कर्नेल रिपॉजिटरी मेनिफेस्ट शाखा शामिल है। Pixel 5 और पिछली कर्नेल मेनिफेस्ट शाखाओं के लिए लीगेसी पिक्सेल कर्नेल अनुभाग देखें।

GKI समर्थित पिक्सेल कर्नेल शाखाएँ
उपकरण AOSP ट्री में बाइनरी पथ भंडार शाखाएँ जीकेआई कर्नेल
पिक्सेल 8 (शीबा)
पिक्सेल 8 प्रो (हस्की)
डिवाइस/गूगल/शुस्की-कर्नेल android-gs-shusky-5.15-android14-d1 android14-5.15
पिक्सेल फ़ोल्ड (फ़ेलिक्स) डिवाइस/गूगल/फेलिक्स-कर्नेल android-gs-felix-5.10-android14 android13-5.10
पिक्सेल टैबलेट (टैंगोरप्रो) डिवाइस/गूगल/टैंगोरप्रो-कर्नेल android-gs-tangorpro-5.10-android14 android13-5.10
पिक्सेल 7ए (लिंक्स) डिवाइस/गूगल/लिंक्स-कर्नेल android-gs-lynx-5.10-android14 android13-5.10
पिक्सेल 7 (पैंथर)
पिक्सेल 7 प्रो (चीता)
डिवाइस/गूगल/पंटाह-कर्नेल android-gs-pantah-5.10-android14 android13-5.10
पिक्सेल 6ए (ब्लूजे) डिवाइस/गूगल/ब्लूजे-कर्नेल android-gs-bluejay-5.10-android14 android13-5.10
पिक्सेल 6 (ओरिओल)
पिक्सेल 6 प्रो (रेवेन)
डिवाइस/गूगल/रैविओल-कर्नेल android-gs-raviole-5.10-android14 android13-5.10

फ़ैक्टरी समर्थित कर्नेल के अलावा, पिक्सेल 6 और 6 प्रो डिवाइस केवल समर्थित पिक्सेल 6/6 प्रो एंड्रॉइड प्लेटफ़ॉर्म और कर्नेल संयोजन तालिका में शामिल एंड्रॉइड कॉमन कर्नेल शाखाओं पर जीकेआई विकास उद्देश्यों के लिए समर्थित हैं। एंड्रॉइड प्लेटफ़ॉर्म एचएएल और पिक्सेल कर्नेल ड्राइवरों के बीच विक्रेता यूएपीआई अंतर के कारण, तालिका समर्थित बिल्ड संयोजन प्रदान करती है।

समर्थित पिक्सेल 6/6 प्रो एंड्रॉइड प्लेटफ़ॉर्म और कर्नेल संयोजन
पिक्सेल कर्नेल प्रकट शाखा जीकेआई शाखा एंड्रॉइड प्लेटफ़ॉर्म बिल्ड aosp-main समर्थन?
जीएस-एंड्रॉइड-जीएस-रैविओल-मेनलाइन एंड्रॉइड-मेनलाइन ( v6.7 टैग ) UP1A.231005.007.A1 (10762838) हाँ
android14-gs-पिक्सेल-6.1 android14-6.1 UP1A.231005.007.A1 (10762838) हाँ
जीएस-एंड्रॉइड13-जीएस-रेविओल-5.15 android13-5.15 TQ1A.230205.002 (9471150) नहीं

अपना पिक्सेल उपकरण तैयार करें

निम्नलिखित फ़्लो चार्ट 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) पिक्सेल फ़ैक्टरी छवि से विक्रेता रैमडिस्क छवि निकालें।
  1. अपने डिवाइस के लिए समर्थित फ़ैक्टरी छवि https://developers.google.com/android/images से डाउनलोड करें।

  2. vendor_boot.img निकालें:

    • निम्नलिखित कमांड उदाहरण के तौर पर Pixel 6 Pro UP1A.231005.007.a1 का उपयोग करते हैं। ज़िपफ़ाइल नाम को आपके द्वारा डाउनलोड की गई फ़ैक्टरी छवि के फ़ाइल नाम से बदलें।
      unzip raven-up1a.231005.007.a1-factory-5d927f3e.zip
    
      cd raven-up1a.231005.007.a1
    
      unzip image-raven-up1a.231005.007.a1.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. निकाली गई ramdisk_ फ़ाइल को पिक्सेल कर्नेल रिपॉजिटरी में कॉपी करें।

    उपकरण DEVICE_RAMDISK_PATH
    पिक्सेल 6 (ओरिओल)
    पिक्सेल 6 प्रो (रेवेन)
    प्रीबिल्ट्स/बूट-आर्टिफैक्ट्स/रैमडिस्क/वेंडर_रैमडिस्क- ओरिओल.आईएमजी
    पिक्सेल 6ए (ब्लूजे) 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 (ओरिओल)
पिक्सेल 6 प्रो (रेवेन)
प्रीबिल्ट्स/बूट-आर्टिफैक्ट्स/रैमडिस्क/वेंडर_रैमडिस्क- ओरिओल.आईएमजी
पिक्सेल 6ए (ब्लूजे) 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

कर्नेल संकलित करें (क्लीफ)

Android 13 में, build.sh स्क्रिप्ट को Kleaf नामक एक नए कर्नेल बिल्ड सिस्टम से बदल दिया गया था। android13-5.15 और बाद के संस्करण का उपयोग करने वाले उपकरणों के लिए, कर्नेल को क्लीफ़ का उपयोग करके बनाया जाना चाहिए।

android14 और बाद के कर्नेल वाले Pixel 6 और 6 Pro के लिए, क्लीफ़ बिल्ड कमांड चलाएँ:

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

android13-5.15 कर्नेल वाले Pixel 6 और 6 Pro के लिए, क्लीफ़ बिल्ड कमांड चलाएँ:

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

अन्य सभी पिक्सेल कर्नेल के लिए, KERNEL_REPO_ROOT पर मिली build_ DEVICE.sh स्क्रिप्ट चलाएँ। उदाहरण के लिए, शाखा android-gs-raviole-5.10-android14 पर Pixel 6 के लिए कर्नेल बनाने के लिए, आप कमांड चलाएंगे:

build_slider.sh

डिफ़ॉल्ट रूप से, build_ DEVICE .sh स्क्रिप्ट बिल्ड प्रक्रिया को तेज़ करने के लिए प्रीबिल्ट GKI कर्नेल का उपयोग करती है। यदि आप कोर कर्नेल को संशोधित करना चाहते हैं, तो स्थानीय स्रोतों से कर्नेल बनाने के लिए पर्यावरण चर BUILD_AOSP_KERNEL=1 सेट करें।

कर्नेल बिल्ड सिस्टम और बिल्ड को अनुकूलित करने के तरीके के बारे में अधिक जानकारी के लिए, क्लीफ़ डॉक्यूमेंटेशन देखें।

कर्नेल छवियों को फ़्लैश करें

नोट: यदि आपने सत्यापन अक्षम नहीं किया है, तो आपको कस्टम कर्नेल को फ्लैश करने से पहले इसे करना होगा। ऐसा करने का आदेश यहां दिया गया है:
fastboot oem disable-verification
चेतावनी: यदि आप प्लेटफ़ॉर्म बिल्ड के शीर्ष पर एक कस्टम कर्नेल फ्लैश कर रहे हैं, तो नए कर्नेल से जुड़े सुरक्षा पैच स्तर (एसपीएल) डाउनग्रेड होने पर आपको अपने डिवाइस को पोंछने की आवश्यकता हो सकती है। यह प्रक्रिया आपके सभी व्यक्तिगत डेटा को मिटा देती है। पोंछने से पहले अपने डेटा का बैकअप अवश्य लें।
fastboot -w

कर्नेल छवियों को फ़्लैश करने के लिए, अपने डिवाइस के लिए सूचीबद्ध प्रत्येक कर्नेल विभाजन के लिए fastboot flash कमांड चलाएँ। गतिशील विभाजन के लिए, आपको फ़्लैश करने से पहले fastbootd मोड में रीबूट करना होगा।

उपकरण कर्नेल विभाजन
पिक्सेल 6 (ओरिओल)
पिक्सेल 6 प्रो (रेवेन)
पिक्सेल 6ए (ब्लूजे)
गाड़ी की डिक्की
dtbo
विक्रेता_बूट
विक्रेता_डीएलकेएम (गतिशील विभाजन)
पिक्सेल 8 (शीबा)
पिक्सेल 8 प्रो (हस्की)
पिक्सेल फ़ोल्ड (फ़ेलिक्स)
पिक्सेल टैबलेट (टैंगोरप्रो)
पिक्सेल 7ए (लिंक्स)
पिक्सेल 7 (पैंथर)
पिक्सेल 7 प्रो (चीता)
गाड़ी की डिक्की
dtbo
विक्रेता_कर्नेल_बूट
विक्रेता_डीएलकेएम (गतिशील विभाजन)
system_dlkm (गतिशील विभाजन)

android-mainline पर Pixel 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 5 और पुराने उपकरणों के लिए कर्नेल रिपॉजिटरी शाखाएँ प्रदान करती है। ये गैर-जीकेआई समर्थित डिवाइस हैं।

लीगेसी पिक्सेल कर्नेल शाखाएँ
उपकरण AOSP ट्री में बाइनरी पथ भंडार शाखाएँ
पिक्सेल 5ए (बारबेट)
पिक्सेल 4a (5G) (ब्रैम्बल)
पिक्सेल 5 (रेडफिन)
डिवाइस/गूगल/रेडबुल-कर्नेल एंड्रॉइड-एमएसएम-रेडबुल-4.19-एंड्रॉइड14
पिक्सेल 4ए (सनफिश) डिवाइस/गूगल/सनफिश-कर्नेल एंड्रॉइड-एमएसएम-सनफिश-4.14-एंड्रॉइड13-क्यूपीआर3
पिक्सेल 4 (लौ)
पिक्सेल 4 एक्सएल (कोरल)
डिवाइस/गूगल/कोरल-कर्नेल एंड्रॉइड-एमएसएम-कोरल-4.14-एंड्रॉइड13
पिक्सेल 3ए (सारगो)
पिक्सेल 3ए एक्सएल (बोनिटो)
डिवाइस/गूगल/बोनिटो-कर्नेल एंड्रॉइड-एमएसएम-बोनिटो-4.9-एंड्रॉइड12एल
पिक्सेल 3 (ब्लूलाइन)
पिक्सेल 3 एक्सएल (क्रॉसहैच)
डिवाइस/गूगल/क्रॉसहैच-कर्नेल एंड्रॉइड-एमएसएम-क्रॉसहैच-4.9-एंड्रॉइड12
पिक्सेल 2 (वॉलेय)
पिक्सेल 2 एक्सएल (टेइमेन)
डिवाइस/गूगल/वाहू-कर्नेल android-msm-wahoo-4.4-android10-qpr3
पिक्सेल (सेलफ़िश)
पिक्सेल एक्सएल (मार्लिन)
डिवाइस/गूगल/मार्लिन-कर्नेल एंड्रॉइड-एमएसएम-मार्लिन-3.18-पाई-क्यूपीआर2