เมล็ดแตกต่างจากผู้ผลิตผู้ผลิต เมล็ดเหล่านั้นจำนวนมากมาจากเคอร์เนลหุ้นบริสุทธิ์แหล่งที่พบใน CAF สิ่งที่ผู้ผลิตเหล่านี้ทำคือนำแหล่งข้อมูลเหล่านั้นมาปรับเปลี่ยนให้เหมาะสมกับบอร์ด / ชิปเซ็ตที่ใช้รวมถึงใช้ไดรเวอร์ของตัวเอง
ลองมองดูรอบ ๆ ตัวคุณดูดีมีหน้าจอทัชสกรีนชุดรูปแบบของชิปเซ็ต wifi ไม่พูดถึงมาตรความเร่งเซ็นเซอร์เซ็นเซอร์แบตเตอรี่เข็มทิศเสียงกราฟิก
การใช้แหล่งที่มาของเคอร์เนลจากแหล่งหนึ่งตัวอย่างเช่น HTC จะไม่ทำงานบน Samsung และในทางกลับกัน
ผู้ผลิตมีอิสระที่จะหยิบเชอร์รี่หรือออกบิตต่าง ๆ ที่รวมอยู่ในแผงวงจร ไม่มีกฎที่ยากหรือเร็วเข้ามาเกี่ยวข้อง ดังนั้นการแฮ็ค / การแก้ไขจำนวนมากเพื่อให้เคอร์เนลทำงานอย่างถูกต้อง
คุณต้องไม่เปรียบเทียบกับเมล็ดกระจาย Linux บนเดสก์ท็อปที่มี PCI, PCI-Express, SATA, VGA, SVGA, USB, อีเธอร์เน็ตเนื่องจากเป็นเกมสวนบอลที่แตกต่างกันโดยสิ้นเชิง ความแตกต่างที่สำคัญกับ CentOS และ Linux Kernel ของ Android คือ - ไดรเวอร์ทั้งหมดจะถูกรวบรวมเป็นโมดูลหรือในตัวดังนั้นการกระจาย Linux ใด ๆ ก็จะ "ทำงานนอกกรอบ" อีกครั้งด้วยการกระจาย Linux บนเดสก์ท็อป - คุณมีสถาปัตยกรรมเดียว - x86 ดังนั้นหนึ่งลินุกซ์เคอร์เนลจากคอมพิวเตอร์ Dell บอกว่าสามารถทำงานได้นอกกรอบบน Lenovo โดยมีการรวบรวมไดรเวอร์ที่เป็นมาตรฐาน
อย่าลืมว่าในโลก Android นั้นมีเคอร์เนลที่สร้างขึ้นสำหรับชิปเซ็ต ARM เฉพาะเช่น ARMv6, ARMv7, มี TEGRA, มี EXYNOS และพวกมันเข้ากันไม่ได้กับไบนารี่ ดังนั้นหากเคอร์เนลถูกคอมไพล์สำหรับ TEGRA ให้ลืมมันจะไม่ทำงานบน ARMv7!
เหตุผลที่เมล็ดบางส่วนใน Android ดูเหมือนจะ "เสีย" ขึ้นอยู่กับผู้ผลิต บางตัว (Zte เป็นหนึ่งในตัวอย่างที่ดีมาก) ปล่อยแหล่งข้อมูล butchered ที่อาจรวบรวมจากแหล่งที่มา แต่ไม่สามารถบูตได้เนื่องจากไดรเวอร์ที่ขาดหายไปซึ่งไม่ครอบคลุมอยู่ในใบอนุญาต GPLv2 หรือ GPLv3 นั่นคือปัญหาดังนั้นแฮกเกอร์บางคนต้องไปเที่ยวรอบ ๆ GitHub เพื่อหาเบาะแส; ผู้ผลิตบางรายถ้าไม่ทั้งหมดทำตาม การจุติมาปัจจุบันของแหล่งกำเนิดของ Zte นั้นมีค่าเท่ากับ 2.6.35.7 แต่ในความเป็นจริงแล้วแหล่งที่มาจริงของ 2.6.32.9 ที่มาพร้อมกับการแก้ไขมากมายดังนั้นจึงไม่ได้เป็นตัวแทนเคอร์เนลจริงสำหรับ 2.6.35.7!
นี่คือที่ผู้ผลิตจะต้องปล่อยแหล่งที่มาของพวกเขาไม่เพียง แต่ไม่สอดคล้องกับ GPLv2 หรือใหม่กว่า แต่สำหรับชุมชนที่จะสามารถแก้ไขได้เช่นการเพิ่มความสามารถในการโอเวอร์คล็อก
ดังนั้นจึงมีการแฮ็คที่เกี่ยวข้องกับเบื้องหลังและยุ่งเกี่ยวกับไดรเวอร์ที่พยายามทำให้มันทำงานได้และมันก็ไม่ง่ายที่จะทำการดีบักเช่นกัน .. ไดรเวอร์บางตัวอาจมีลิขสิทธิ์ข้ามแต่ไม่สามารถแจกจ่ายได้ขึ้นอยู่กับข้อและเงื่อนไขตาม การเจรจาต่อรอง
โชคดีที่ตอนนี้ทุกอย่างเปลี่ยนไปด้วยเคอร์เนลแหล่งที่มา 3.xx เนื่องจากไดรเวอร์ Android ได้รวมเข้ากับแหล่งข้อมูลหลักแล้ว แต่มี gotcha!
ลองย้ายเคอร์เนล 3.xx ไปยังโทรศัพท์ที่มีอยู่ซึ่งมีอายุประมาณ 12-18 เดือน ไม่ใช่โอกาสของสโนว์บอลในนรกที่จะทำงานนั่นเป็นเพราะปัจจัยที่แตกต่างกันแหล่งที่มาที่ 3.xx นั้นแตกต่างอย่างมากกับแหล่ง 2.6.x และจะใช้การแฮ็คจำนวนมากเพื่อให้มันทำงาน - ฉันควรรู้ได้ลองแล้ว การพอร์ต 2.6.38.6 ซอร์สโค้ดสำหรับ Zte Blade และล้มเหลว
ในทำนองเดียวกันเคอร์เนลรุ่นล่าสุด 3.0.1 - เมื่อทำงานในโครงการ ics4blade บน Modaco ได้พยายามหลายครั้งในการพอร์ต แต่มันก็ลงเอยกับความจริงง่ายๆที่ Zte ทำระเบียบที่ไม่ดีมากของแหล่งซึ่งทำให้การย้ายไม่ได้อยู่ใกล้ .