Pixel कर्नेल बनाएं

इस गाइड में सिलसिलेवार निर्देश दिए गए हैं कि किसी रिपोर्ट को डाउनलोड, कंपाइल, और डेवलपमेंट के लिए कस्टम Pixel कर्नेल फ़्लैश करें. जीकेआई की वजह से, अब ऐसा किया जा सकता है कर्नेल को Android प्लैटफ़ॉर्म बिल्ड से अलग अपडेट कर सकता है. यह तरीका अपनाया गया है: यह सुविधा सिर्फ़ Pixel 6 और उसके बाद के वर्शन वाले डिवाइसों पर लागू होती है. ऐसा इसलिए है, क्योंकि Pixel 5 और पहले के डिवाइसों को vendor पार्टिशन में कर्नेल मॉड्यूल अपडेट करने की ज़रूरत होती है, यह Android प्लैटफ़ॉर्म के बिल्ड पर निर्भर करता है. जीकेआई काम करने वाली Pixel Kernel ब्रांच की टेबल में, kernel रिपॉज़िटरी मेनिफ़ेस्ट ब्रांच में बदल सकते हैं. इससे संदर्भ लें Pixel 5 और Pixel 5 के लिए, लेगसी Pixel Kernel सेक्शन पहले की कर्नेल मेनिफ़ेस्ट ब्रांच.

GKI के साथ काम करने वाली Pixel kernel ब्रांच
डिवाइस एओएसपी ट्री में बाइनरी पाथ डेटा स्टोर करने की जगह की शाखाएं जीकेआई कर्नेल
Pixel 9 Pro Fold (कॉमेट) device/google/comet-kernel android-gs-comet-6.1-android14-qpr3-d1 Android14-6.1

Pixel 9 (टोके)
Pixel 9 Pro (केमैन)
Pixel 9 Pro XL (Kkomod) | device/google/caamito-kernel | android-gs-caimeto-6.1-android14-qpr3-d1 | Android14-6.1 Pixel 8a (akita) | device/google/akita-kernel | android-gs-akita-5.15-android14-qpr3 | Android14-5.15 Pixel 8 (शिबा)
Pixel 8 Pro (हस्की) | device/google/shusky-kernel | android-gs-shusky-5.15-android14-qpr3 | Android14-5.15 Pixel Fold (फ़ेलिक्स) | device/google/फ़ेलिक्स-कर्नेल | android-gs-gelix-5.10-android14-qpr3 | Android13-5.10 Pixel Tablet (टैंगोरप्रो) | 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 (bluejay) | device/google/bluejay-kernel | android-gs-bluejay-5.10-android14-qpr3 | Android13-5.10 Pixel 6 (ऑरिओल)
Pixel 6 Pro (रेवन) | device/google/raviole-kernel | android-gs-raviole-5.10-android14-qpr3 | Android13-5.10

फ़ैक्ट्री में काम करने वाले कर्नेल के अलावा, Pixel 6 और 6 Pro डिवाइस यह सुविधा सिर्फ़ Android Common कर्नेल पर, GKI (जीकेआई) डेवलपमेंट के लिए काम करती है Pixel 6/6 Pro Android Platform और Kernel में शामिल ब्रांच कॉम्बिनेशन टेबल. वेंडर के यूएपीआई में अंतर की वजह से Android प्लैटफ़ॉर्म HAL और Pixel कर्नेल ड्राइवर के बीच की टेबल में, इस्तेमाल किए जा सकने वाले बिल्ड कॉम्बिनेशन इस्तेमाल किए जा सकते हैं.

साथ काम करने वाले Pixel 6/6 Pro Android प्लैटफ़ॉर्म और कर्नेल के कॉम्बिनेशन
Pixel कर्नेल मेनिफ़ेस्ट ब्रांच जीकेआई ब्रांच Android प्लैटफ़ॉर्म बिल्ड aosp-main की सहायता टीम से संपर्क करना है?
gs-android-gs-raviole-mainline android-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 और उसके बाद के डिवाइस:

**पहली इमेज.** कर्नेल अपडेट फ़्लो चार्ट

Flash.android.com का इस्तेमाल करके डिवाइस को फ़्लैश करें

  1. flash.android.com पर जाएं
  2. साथ काम करने वाले Android प्लैटफ़ॉर्म और Kernel के हिसाब से Android बिल्ड चुनें कॉम्बिनेशन.
  3. नीचे दिए गए विकल्पों को चुनें:
    • डिवाइस वाइप करें
    • सभी पार्टीशन को फ़्लैश के लिए चालू करें
    • पुष्टि करने की सुविधा बंद करें
  4. डिवाइस को फ़्लैश करने के लिए बिल्ड इंस्टॉल करें बटन दबाएं.

**दूसरी इमेज.** फ़्लैश स्टेशन का उदाहरण

कर्नेल को डाउनलोड और कंपाइल करें

कर्नेल डेटा स्टोर करने की जगह को सिंक करें

कर्नेल सोर्स कोड डाउनलोड करने के लिए, नीचे दिए गए कमांड चलाएं. देखें Pixel 6/6 Pro के साथ काम करने वाला Android प्लैटफ़ॉर्म और Kernel Pixel के लिए कॉम्बिनेशन टेबल KERNEL_MANIFEST_BRANCH.

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

वेंडर के रैम को अपडेट करें

इसमें फ़ाइल vendor_ramdisk-DEVICE.img को अपडेट करें: कर्नेल डेटा संग्रह स्थान डिवाइस. यहां कुछ विकल्प दिए गए हैं, जिन्हें फ़ॉलो किया जा सकता है.

पहला विकल्प) Pixel की फ़ैक्ट्री इमेज से वेंडर रैमडिस्क की इमेज एक्सट्रैक्ट करें.
  1. अपने डिवाइस के लिए समर्थित फैक्ट्री इमेज यहां से डाउनलोड करें https://developers.google.com/android/images पर जाकर Google Play डेवलपर ने साइन इन किया है.

  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. निकाली गई vendor-ramdisk-by-name/ramdisk_ फ़ाइल को Pixel kernel रिपॉज़िटरी में कॉपी करें.

    डिवाइस DEVICE_RAMDISK_PATH
    Pixel 6 (ऑरिओल)
    Pixel 6 Pro (रेवन)
    पहले से बनाया गया/बूट-आर्टफ़ैक्ट/ramdisks/vendor_ramdisk-oriole.img
    Pixel 6a (bluejay) private/devices/google/bluejay/vendor_ramdisk-bluejay.img
      cp vendor_boot_out/vendor-ramdisk-by-name/ramdisk_ \
          KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH
    
दूसरा विकल्प) स्थानीय रूप से बनाए गए Android प्लैटफ़ॉर्म का डेटा स्टोर करने की जगह से vendor_ramdisk को कॉपी करें.
डिवाइस DEVICE_RAMDISK_PATH
Pixel 6 (ऑरिओल)
Pixel 6 Pro (रेवन)
पहले से बनाया गया/बूट-आर्टफ़ैक्ट/ramdisks/vendor_ramdisk-oriole.img
Pixel 6a (bluejay) 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

कर्नेल (Kleaf) को कंपाइल करें

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

android14 और उसके बाद के वर्शन के कर्नेल के साथ Pixel 6 और 6 Pro के लिए, Kleaf बिल्ड चलाएं आदेश:

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

android13-5.15 कर्नेल के साथ Pixel 6 और 6 Pro के लिए, Kleaf बिल्ड इस्तेमाल करें आदेश:

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

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

build_slider.sh

डिफ़ॉल्ट रूप से, build_DEVICE.sh स्क्रिप्ट बनाने की प्रोसेस को तेज़ करने के लिए, पहले से बनाया गया GKI कर्नेल. अगर आप कोर कर्नेल, इसके बाद एनवायरमेंट वैरिएबल BUILD_AOSP_KERNEL=1 को बनाने के लिए सेट करें के बजाय स्थानीय स्रोतों से कर्नेल का उपयोग करें.

कर्नेल बिल्ड सिस्टम के बारे में ज़्यादा जानकारी और बिल्ड को पसंद के मुताबिक बनाने के लिए, Kleaf - Basel की मदद से Android कर्नेल बनाना देखें.

कर्नेल इमेज को फ़्लैश करें

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

कर्नेल इमेज को फ़्लैश करने के लिए, हर कर्नेल के लिए fastboot flash निर्देश चलाएं आपके डिवाइस के लिए सूची में मौजूद पार्टिशन. डाइनैमिक पार्टिशन के लिए, आपको फिर से चालू करना होगा फ़्लैश करने से पहले fastbootd मोड में.

डिवाइस कर्नेल पार्टिशन
Pixel 6 (ऑरिओल)
Pixel 6 Pro (रेवेन)
Pixel 6a (ब्लूजे)
बूट
dtbo
vendor_boot
vendor_dlkm (डाइनैमिक पार्टीशन)
Pixel 8 (शिबा)
Pixel 8 Pro (हस्की)
Pixel फ़ोल्ड (फ़ेलिक्स)
Pixel टैबलेट (टैंगोरप्रो)
Pixel 7a (lynx)
Pixel 7 (पैन्थर)
Pixel 7 Pro (चीता)
बूट
dtbo
vendor_kernel_boot
vendor_dlkm (डाइनैमिक पार्टीशन)
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
वर्शन 5.10 out/mixed/dist
v5.15 और उसके बाद के वर्शन out/DEVICE/dist
ध्यान दें: अगर आपके पास सीरियल डोंगल है और आपको इसकी सुविधा चालू करनी है, तो लॉग रिकॉर्ड करता है, तो आदेश यह होता है:
fastboot oem uart enable
fastboot oem uart config 3000000
होस्ट से कनेक्ट करने के लिए दिए गए निर्देश का उदाहरण:
screen -fn /dev/ttyUSB* 3000000

फ़ैक्ट्री इमेज वापस लाएं

अपने डिवाइस को वापस फ़ैक्ट्री इमेज में लाने के लिए, इसका इस्तेमाल किया जा सकता है फ़्लैश.android.com.

लेगसी Pixel कर्नेल

रेफ़रंस के तौर पर, Pixel के लेगसी कर्नेल ब्रांच टेबल में, Pixel 5 और इससे पहले के वर्शन के लिए कर्नेल डेटा स्टोर करने की जगह की ब्रांच दी गई हैं. इन डिवाइसों पर GKI (जीकेआई) के साथ काम नहीं करता.

लेगसी Pixel कर्नेल ब्रांच
डिवाइस एओएसपी ट्री में बाइनरी पाथ डेटा स्टोर करने की जगह की शाखाएं
Pixel 5a (barbet)
Pixel 4a (5G) (ब्रैंबल)
Pixel 5 (रेडफ़िन)
device/google/redbull-कर्नेल android-msm-redbull-4.19-android14-qpr3
Pixel 4a (सनफ़िश) डिवाइस/google/सनफ़िश-कर्नेल android-msm-sunफ़िश-4.14-android13-qpr3
Pixel 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 (क्रॉसहैच)
डिवाइस/google/क्रॉसहैच-कर्नेल android-msm-क्रॉसहैच-4.9-android12
Pixel 2 (वॉलआई)
Pixel 2 XL (टाइमन)
device/google/wahoo-कर्नेल android-msm-wahoo-4.4-android10-qpr3
Pixel (सेलफ़िश)
Pixel XL (मार्लिन)
डिवाइस/google/marlin-kernel android-msm-marlin-3.18-pie-qpr2