GKI 1.0: संगतता परीक्षण

इस पेज पर, काम करने की जांच के लिए, कर्नेल बिल्ड आर्टफ़ैक्ट के साथ बूट इमेज पाने का तरीका बताया गया है.

बूट इमेज पाना

AOSP में, ci.android.com से पहले से बने बूट इमेज मिल सकते हैं. ये बूट इमेज, aosp_arm64 बिल्ड टारगेट में aosp_arm64-img-*.zip संग्रह में इस तरह मौजूद होती हैं:

पार्टनर, हस्ताक्षर की गई या बिना हस्ताक्षर वाली बूट इमेज इस तरह से पा सकते हैं:

  • android12-5.4 के आधार पर, aosp-main शाखा से हस्ताक्षर नहीं की गई बूट इमेज पाएं. इसके लिए, ci.android.com पर जाएं और aosp_arm64 बिल्ड टारगेट देखें. इन बूट इमेज में, AOSP main शाखा से बनाई गई रैमडिस्क शामिल होती है. boot-debug इमेज का इस्तेमाल न करें. ये सिर्फ़ जीकेआई से पहले के डिवाइसों के लिए हैं.
  • partner.android.com से, android11-5.4 पर आधारित हस्ताक्षर वाली बूट इमेज पाएं. इन बूट इमेज में, r-fs-release शाखा से बनाई गई रामडिस्क शामिल होती है. boot.img साइन करने की प्रोसेस, जीएसआई साइन करने की प्रोसेस जैसी ही है.

हस्ताक्षर की गई और हस्ताक्षर नहीं की गई, दोनों तरह की बूट इमेज में, कर्नेल कंप्रेस करने के ये विकल्प होते हैं:

  • boot-5.4.img एक अनकंप्रेस किया गया कर्नेल है.
  • boot-5.4-gz, gzip से कंप्रेस किया गया कर्नेल है.
  • boot-5.4-lz4, lz4 से कंप्रेस किया गया कर्नेल है.
काम करने की जांच के लिए, उन कर्नेल के साथ बूट इमेज का इस्तेमाल करें जो सिर्फ़ उन सिंबल को एक्सपोर्ट करते हैं जो KMI सिंबल की सूची में दिखते हैं. ये सिंबल trimmed होते हैं.

डेवलपमेंट के लिए, ऐसे कर्नेल प्रीबिल्ट और GKI बूट इमेज का इस्तेमाल किया जा सकता है जो कर्नेल में मौजूद सभी सिंबल एक्सपोर्ट करती हैं. ये सिंबल untrimmed होते हैं. ci.android.com पर किसी खास कर्नेल बिल्ड के लिए, बिना काटे गए कर्नेल प्रीबिल्ट, kernel_debug_aarch64 टारगेट में जनरेट किए जाते हैं. बिना काटे गए GKI बूट इमेज, सामान्य तौर पर काटी गई GKI बूट इमेज के साथ-साथ userdebug बिल्ड में जनरेट की जाती हैं. इनके फ़ाइल नाम -allsyms.img पर खत्म होते हैं.

कर्नेल बिल्ड आर्टफ़ैक्ट पाना

GKI boot.img फ़ाइल में समस्याओं को डीबग करते समय, उस फ़ाइल में मौजूद कर्नेल से जुड़े बिल्ड आर्टफ़ैक्ट का भी होना फ़ायदेमंद होता है. उदाहरण के लिए, डिबग करने के लिए, बिना हटाए गए vmlinux का इस्तेमाल किया जा सकता है. साथ ही, GKI के कर्नेल को स्थानीय तौर पर फिर से बनाने के लिए, मेनिफ़ेस्ट का इस्तेमाल किया जा सकता है. बिल्ड आर्टफ़ैक्ट पाने के लिए:

  1. उस पहले से बने कर्नेल के बिल्ड नंबर का पता लगाएं जिसका इस्तेमाल GKI boot.img बनाने के लिए किया गया था. बिल्ड नंबर, कर्नेल वर्शन के आखिर में दिखता है. इसके पहले ab अक्षर होते हैं. नीचे दिए गए उदाहरण में, बिल्ड नंबर को बोल्ड में दिखाया गया है:

    [ 0.000000] Linux version 5.4.49-00947-g9d21bcd4897b-ab6638796

    grep का इस्तेमाल करके, बिना कंप्रेस किए गए कर्नेल वाली बूट इमेज ढूंढकर, कर्नेल के बिल्ड नंबर का पता लगाया जा सकता है:

    grep -a "Linux version " boot-5.4.img
  2. नीचे दिए गए यूआरएल में मौजूद बिल्ड नंबर का इस्तेमाल करके, पहले से बने कर्नेल का बिल्ड खोलें: https://ci.android.com/builds/submitted/<number>/kernel_aarch64/latest

    उदाहरण के लिए, पहले चरण में दिए गए बिल्ड नंबर का इस्तेमाल करके, यूआरएल इस तरह दिखेगा: https://ci.android.com/builds/submitted/6638796/kernel_aarch64/latest

    बिना काटे गए वर्शन का इस्तेमाल करते समय, लिंक में kernel_aarch64 को kernel_debug_aarch64 से बदलें.