Skip to main content

ปรับแต่งแผ่น Mac OS X Snow Leopard แผ่นเทาให้ใช้ได้กับ Mac ใด ๆ ที่สนับสนุน

Submitted by ezybzy on

UPDATE: ได้เห็นผลข้างเคียงที่ค่อนข้างอันตราย หาก OS Update มีการตรวจสอบรุ่นเครื่องอย่างละเอียด (เช่นกรณี 10.6.7 ที่ออกมาสำหรับเครื่องรุ่นก่อน MBP Early 2011 และรุ่นเฉพาะสำหรับ MBP Early 2011) ซึ่งหากติดตั้งด้วยวิธีที่เสนอนี้ จะพบปัญหาคือไม่สามารถใช้อัพเดตตัวใดได้เลย และหากฝืนติดตั้ง OS Update ตัวใดตัวหนึ่งก็จะไม่สามารถติดตั้งได้ และอาจจะทำให้เครื่องไม่สามารถใช้งานได้ ดังนั้น โปรดใช้วิธีนี้ด้วยความระมัดระวัง

ข้อเขียนนี้ขอจำกัดอยู่แค่ Mac OS X Leopard และ Snow Leopard เท่านั้น เนื่องจากกระบวนการตรวจสอบการติดตั้ง OS X ในแต่ละรุ่นของระบบปฏิบัติการมีการเปลี่ยนแปลงมาเรื่อย ๆ ทำให้ไม่สามารถรับประกันได้ว่าวิธีนี้จะนำไปใช้กับ Lion ได้หรือไม่ (ถ้า Lion ยังใช้วิธีตรวจสอบวิธีเดียวกับที่พบเห็นในแผ่น Beta ก็ไม่จำเป็นต้องใช้วิธีนี้)

การตรวจสอบการติดตั้ง OS X นั้น มีอยู่หลายระดับ ตั้งแต่ระดับการบูทเข้าแผ่นติดตั้ง จนขั้นสุดท้ายคือ การป้องกันการติดตั้งในเครื่องรุ่นที่ไม่สนับสนุนให้ติดตั้ง หรือที่เข้าใจกันง่าย ๆ คือล็อคแผ่นติดตั้งให้ใช้ได้เฉพาะกับเครื่องบางรุ่น ซึ่งจะพบเห็นได้จากแผ่นติดตั้งสีเทาที่แถมมากับเครื่อง

ไฟล์ที่เป็นเป้าหมายของเราคือไฟล์ชื่อ Distribution ซึ่งอยู่ในภาย OSInstall.mpkg ซึ่งเป็นสคริป์ตรวจสอบการติดตั้งที่เขียนด้วยภาษาคล้าย ๆ Javascript (ผมเข้าใจว่ามันเป็น ECMAScript นะ) บนแผ่นล็อคจะมีข้อแตกต่างจากแผ่นไม่ล็อค (แผ่นที่วางขายในร้านตัวแทนจำหน่าย) คือมีฟังก์ชั่นเพิ่มเติม 2 ฟังก์ชั่น คือ hwbeModelCheck() และ hwbeInstallCheck() และตัวแปร hwbeSupportedMachines ซึ่งทำงานประสานงานกัน โดยตรรกะตรวจสอบการติดตั้ง (installCheckScript) จะทำการเรียกใช้งาน hwbeInstallCheck ซึ่งจะทำการเรียกใช้งาน hwbeModelCheck เพื่อทำการตรวจสอบรุ่นเครื่องว่าปรากฏอยู่ในตัวแปร hwbeSupportedMachines หรือไม่

บนแผ่นไม่ล็อคจะไม่มี 3 สิ่งที่ได้กล่าวถึงในย่อหน้าที่แล้ว แต่ตรรกะตรวจสอบการติดตั้งได้ถูกออกแบบมาให้ฉลาดพอที่จะทราบว่ามี 3 สิ่งนั้นไหม หากไม่มีก็จะทำการเพิกเฉยไป ทำให้ไม่เกิด Error ในกระบวนการตรวจสอบข้างต้น

ถ้าหากเรานำไฟล์ OSInstall.mpkg จากแผ่นไม่ล็อคไปแทนที่แผ่นล็อคจะได้เลยหรือไม่ คำตอบคือไม่ได้ เนื่องจากว่าในแผ่นติดตั้งต่างรุ่นกัน จะมีไฟล์ติดตั้งที่แตกต่างกันไป โดยเครื่องรุ่นใหม่จะมีไฟล์ที่มากกว่า (เป็นจำพวกไดรเวอร์รุ่นใหม่) ดังนั้นการแก้ไขไฟล์ OSInstall.pkg ในแผ่นล็อคน่าจะเป็นทางออกที่ดีที่สุด

วิธีแก้ไข คือใช้คำสั่ง xar ขยายไฟล์ OSInstall.mpkg ออกมา แล้วใช้โปรแกรมแก้ไขไฟล์เอกสาร ลบ 3 สิ่งที่ได้กล่าวไปออก แล้วทำการ Pack กลับเข้าไปใน OSInstall.mpkg

ถามว่าแล้วจะแก้ไขให้วุ่นวายไปทำไม เหตุผลง่าย ๆ ก็คือ แผ่นรุ่นใหม่มีความสะดวกในการติดตั้งกว่าแผ่นรุ่นเก่า เพราะไม่ต้องเสียเวลาทำ Software Update ภายหลังจากการติดตั้ง เนื่องจากแผ่นไม่ล็อคมักจะมีการปรับปรุงช้ากว่าแผ่นแบบล็อค อย่างปัจจุบัน Mac OS X รุ่นล่าสุดเป็น 10.6.6 ซึ่งแถมมากับ MacBook Pro Early 2011 แต่แผ่นแบบไม่ล็อคยังคงเป็นรุ่น 10.6.3 เช่นเดิม ซึ่งกว่า Apple จะปรับรุ่นคงอีกซักพักใหญ่เลย

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการแตกไฟล์, รวมไฟล์ สามารถอ่านได้จาก 10.5: Bypass the installer's system requirements check

10J3210 Installation on MBPL2008