Skip to main content

Jailbreak

Jailbreak iOS กับคำถามที่ขี้เกียจอธิบาย

Submitted by ezybzy on

คำถามที่ขี้เกียจตอบแล้วคือ

เครื่องฉัน Jailbreak ได้ไหม?

ซึ่งก็ต้องดูเป็นกรณีๆ ไปตามนี้

  1. ดูรุ่นเครื่อง เป็นเครื่องอะไรรุ่นที่ผลิตเมื่อไร ยิ่งเป็นเครื่องรุ่นใหม่ๆ โอกาสในการ Jailbreak ได้ก็จะมีน้อยลงไปเรื่อยๆ (คำอธิบายอยู่หัวข้อถัดไป)
  2. ดูรุ่น iOS ซึ่งตรงนี้จะสร้างความสับสนเยอะเพราะผู้ใช้มักจะเผลอเรออัพ OS โดยไม่ได้ตั้งใจ (ขนาดกว่าจะอัพได้ต้องกดถึงประมาณ 3 คลิ้กนะ ก็ยังเผลอกันได้)

ทำไมถึง Jailbreak ไม่ได้?

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

การ Jailbreak เป็นการอาศัยช่องโหว่เข้าไปแก้ไขในตัวระบบ iOS เพื่อทำลายตัวป้องกันการแก้ไขระบบ สำหรับวิธีในการทำลายตัวป้องกันนี้ น่าจะถือได้ว่านิ่งแล้วตั้งแต่สมัย iOS 2 กล่าวคือจะออก iOS ใหม่มากี่รุ่น สำหรับเครื่องรุ่นเก่าๆ จะไม่มีปัญหาในการออกเครื่องมือสำหรับ Jailbreak เลยเพราะใช้วิธีการเดิมๆ ในการทำลายข้อจำกัดนี้ ซึ่งในกระบวนการนี้ถือว่าเป็นขั้นตอนพื้นฐานของกระบวนการ Jailbreak

อีกส่วนที่หลายๆ คนไม่ค่อยจะเข้าใจกันก็คือช่องโหว่ เพราะถ้าไม่มีช่องโหว่ก็ไม่สามารถแก้ไขตัวระบบ iOS ได้ ตัวช่องโหว่แบ่งได้ออกเป็น 2 ประเภทใหญ่ๆ คือช่องโหว่บนตัวอุปกรณ์ (ถ้าใช้คำเต็มๆ ต้องบอกว่าซอฟท์แวร์บนอุปกรณ์) กับอีกส่วนคือช่องโหว่บนตัว iOS เอง

ในตัวอุปกรณ์รุ่นเก่าๆ ช่องโหว่บนตัวอุปกรณ์ถือเป็นปัจจัยสำคัญในการ Jailbreak เนื่องจากทาง Apple ไม่สามารถแก้ไขข้อบกพร่องในส่วนนี้ได้เมื่อมีการผลิตเครื่องออกไปแล้ว เพราะไม่มีประเพณีในการตามอัพเดตซอฟท์แวร์ระดับตัวอุปกรณ์เกิดขึ้นมาก่อน แต่เมื่อ Apple ออกอุปกรณ์รุ่นใหม่มาวางขาย ช่องโหว่เหล่านี้ก็จะถูกปิดลง ทำให้ไม่สามารถใช้ช่องโหว่เดิมได้ต้องค้นหาช่องโหว่ใหม่ แทบจะกล่าวได้ว่าในปัจจุบันการหาช่องโหว่ในระดับนี้ยุติลงที่ iPod touch รุ่นที่สอง (ปี 2008) และ iPhone 3GS รุ่นผลิตก่อนเดือนธันวาคม 2009 เนื่องจาก Apple ได้มีการอัพเดตซอฟท์แวร์บนอุปกรณ์บางตัวหลังจากที่ iPhone 3GS วางขายไปแล้ว ซึ่งจะว่าไปนี่ก็ไม่ใช่ครั้งแรกที่ Apple ทำเพราะเรื่องนี้ได้เกิดขึ้นกับ iPhone รุ่นแรกแล้ว (ถ้ายังจำเรื่อง Baseband Boot Loader 4.6 กันได้นะ ซึ่งตอนนั้นก็ทำให้ Unlock กันไม่ได้อยู่พักหนึ่ง แต่ก็ยังไม่เกี่ยวกับการ Jailbreak เท่าใดนัก)

ช่องโหว่อีกประเภทคือช่องโหว่บนตัว iOS ซึ่งไม่ค่อยได้รับความสนใจเท่าใดนับแต่ที่เริ่มมีการคิดค้นกระบวนการ Jailbreak โดยใช้ช่องโหว่ประเภทแรก เนื่องจากช่องโหว่ประเภทนี้ถูกอุดได้ง่ายเมื่อ Apple ออกอัพเดตตัว iOS หรือ iTunes แต่ช่องโหว่ประเภทนี้เพิ่งได้รับความสนใจอีกครั้งจาก Spirit ซึ่งถือว่าเป็นช่องโหว่ประเภทนี้ตัวแรกในรอบหลายปีนับแต่สมัย iOS 1.1.3 มา เพราะในขณะนั้นน่าจะถือว่าเป็นช่องโหว่เดียวที่สามารถใช้ในการ Jailbreak ตัว iPad และทำให้การ Jailbreak สำหรับ iPod touch รุ่นใหม่ผลิตปี 2009 และ iPhone 3GS รุ่นหลัง มีความสมบูรณ์ดังเช่นการ Jailbreak ในยุคก่อนๆ (เปิด/ปิดเครื่องได้โดยไม่มีปัญหา) อันเนื่องจาก Apple ได้วางระบบเพื่อทำการตรวจสอบสถานะของระบบไว้อีกชั้นหนึ่งทำให้วิธีการทำลายตัวป้องกันระบบขั้นพื้นฐานนั้นไม่เพียงพอสำหรับการ Jailbreak อุปกรณ์รุ่นใหม่ๆ)

ก็หวังว่าคุณผู้อ่านจะได้เข้าใจอะไรมากขึ้นว่า Jailbreak ที่เห็นว่ามี Tool ทำไว้ใช้ง่ายๆ จริงมันไม่ได้ง่ายเหมือน Tool ที่คุณเห็น มันมีกระบวนการคิดแก้ปัญหามากมายอยู่หลังปุ่มที่คุณกดแล้วนั่งกระดิกนิ้วรออีกเยอะแยะเลย สำหรับเครื่องที่ยัง Jailbreak ไม่ได้ ก็มีคำแนะนำข้อเดียวคือ ก็ต้องรอกันต่อไปครับ รอจนกว่าจะมีช่องโหว่ใหม่ๆ ที่เอามาใช้ในการเข้าไปแก้ไขระบบเพื่อที่จะ Jailbreak ได้ ถ้าไม่มีช่องโหว่ที่มีประโยชน์ กระบวนการ Jailbreak ในระดับที่เรียกว่าสมบูรณ์ก็จะไม่เกิดขึ้น เราก็คงจะมีแค่การ Jailbreak แล้วห้ามปิดเครื่อง เพราะถ้าเปิดเครื่องใหม่ก็ต้องหาคอมพิวเตอร์จัดการบูตตัวอุปกรณ์ของเราให้ขึ้นมาใช้งานได้เหมือนเดิม

Tags

Recovery Jailbroken iDevice from Scratch

Submitted by ezybzy on

เมื่อวานได้นำเครื่อง iPhone ของพี่ที่รู้จักที่นี่มากู้ข้อมูลเพื่อเตรียมอัพเกรด เลยขอรวบรวมความรู้ที่กระจัดกระจายเสียหน่อยว่าทำอะไรไปบ้าง (คำบรรยายต่อไปนี้ไม่เหมาะแก่ผู้ไม่มีประสบการณ์)

ค่าเริ่มต้น

เครื่อง iPhone เครื่องนี้เป็นเครื่องจากจากสหรัฐอเมริกาสัปดาห์ที่ 51 ของปี 2007 ถูกติดตั้ง Firmware 2.0 มา ปัญหาคือเขาบอกว่าเขาต้องกรอกรหัสบางอย่างทุกครั้งที่ต่อเข้ากับ iTunes ทำให้ไม่สามารถ Sync ข้อมูลบนเครื่องได้

วิธีดำเนินการ

  1. ทำการติดตั้ง OpenSSH ลงใน iPhone เครื่องนี้ เพื่อให้สามารถเข้าไปดึงข้อมูลที่จำเป็นได้โดยง่าย
  2. ผมทำการทำสำเนา /private/var/mobile/Library และ /private/var/mobile/Media ออกมา ซึ่งจะมีปัญหาเกี่ยวกับ Symbolic link ภายใน /private/var/mobile/Library รวมถึงจะมีไฟล์บางอย่างที่ไม่สามารถดึงออกมาได้เพราะถูกใช้งานอยู่โดยระบบ (อ่านข้อควรระวังให้ละเอียดก่อนจะดำเนินการ Restore นะ)
  3. ทำการสร้าง Custom Firmware ด้วย PwnageTool 3.1.4 โดยใช้ Firmware 3.1.2 และกำหนดให้ทำการ Activate/Unlock ไปในคราวเดียวกัน
  4. เนื่องจากเครื่องนี้ผ่านการ Pwned มาแล้ว จึงทำแค่ Restore ด้วย Custom Firmware ตัวนี้ (ควรจะตั้งให้ iTunes เข้าเป็นหมด StoreGeniusMode เพื่อไม่ให้ข้อมูลเช่น iTunes Account ของเครื่องที่ใช้ทำงาน ไหลลงไปในเครื่องดังกล่าว)
  5. เมื่อทำการ Restore เสร็จ รอให้การ Unlock ด้วย BootNeuter เรียบร้อย แล้วจึงทำการติดตั้ง OpenSSH เข้าไปอีกครั้ง (อาจจะติดตั้ง SBSetting ไปด้วย)
  6. ทยอยนำของที่ได้ทำสำเนา ย้อนกลับไปในเครื่องทีละรายการ
  7. (แถม) ลง “Native MMS iPhone 2G” สำหรับ Firmware 3.1.2 จาก apt source ชื่อ http://cydia.ifoneguide.nl
  8. ปิดหรือถอนการติดตั้ง OpenSSH

ข้อควรระวัง

สำหรับรูปภาพจากกล้อง จะพบปัญหาว่าเมื่อโยนรูปกลับเข้าไปใน Media/DCIM จะไม่ได้ Thumbnail ในหน้า Camera Roll และรูปตัวอย่างด้านในเป็นสีดำทั้งหมด เนื่องจากมีการเปลี่ยนแปลงวิธีจัดการ Thumbnail รูปในเฟิร์มแวร์ 2 กับ 3 วิธีแก้คือ ให้ทำการสร้างโฟลเดอร์ .MISC ภายใต้โฟล์เดอร์ย่อย 1xxAPPLE แล้วทำการย้ายไฟล์ที่ไม่ใช่ไฟล์รูปไปไว้ด้านในนั้น แล้วรูปภาพด้านใน Camera Roll จะแสดงผลอีกครั้ง สำหรับ Thumbnail ที่หน้าแรกของ Camera Roll ให้ทำการดึงสำเนาของ Media/DCIM/.MISC มาด้วย (ห้ามลืมตอนทำสำเนาข้อมูล) ไม่เช่นนั้นอาจจะต้องถ่ายภาพเล่นๆ ซักภาพแล้วลบทิ้ง เพื่อให้มีการสร้างตัว Thumbnail ที่ถูกต้อง ซึ่งผลกระทบจากการลืมทำสำเนาโฟลเดอร์ดังกล่าวคือ รูปภาพที่ถ่ายเพิ่มไปอาจจะทับกับรูปเดิมได้

นอกจากนี้ให้ตรวจสอบสิทธิ์ของไฟล์ที่นำไปวางกลับสู่ใน iPhone ซึ่งควรจะมีสิทธิ์ของผู้ใช้เป็น mobile:mobile และสิทธิ์การเข้าถึงเป็น 600 ตามสิ่งที่ควรจะเป็นในระบบที่ไม่ถูกแทรกแซง สำหรับ Preferences ของ com.apple.springboard.plist (เช่น นาฬิกาปลุก) จำเป็นต้อง Restart เครื่องเพื่อให้ระบบนำ Setting ที่ตั้งไว้ไปใช้ รวมไปถึง Preferences อื่นๆ เช่น com.apple.Preferences.plist อาจจะต้อง Restart ด้วยเช่นกัน

การเปิด StoreGeniusMode ให้ปิด iTunes แล้วจึงพิมพ์คำสั่งดังนี้ (บน Mac OS X) ลงใน Terminal

defaults write com.apple.iTunes StoreGeniusMode -bool yes

เมื่อเลิกใช้งานให้ปิด iTunes แล้วจึงพิมพ์คำสั่งต่อไปนี้เพื่อยกเลิก

defaults delete com.apple.iTunes StoreGeniusMode

สำหรับ Windows ให้พิมพ์คำสั่งนี้เพื่อเปิดใช้งาน iTunes

"%ProgramFiles%\iTunes\iTunes.exe" /StoreGeniusMode 1

หรือ

"%ProgramFiles(x86)\iTunes\iTunes.exe" /StoreGeniusMode 1

ข้อควรระวังสำหรับ StoreGeniusMode คือ มันจะล้าง Backup เดิมของ User account นั้นออกด้วย ดังนั้นถ้าจะใช้งานกรุณาสร้าง Account ใหม่ขึ้นมาจัดการน่าจะดีกว่า

สำหรับหลังจากนี้อยากจะทำอะไรเพิ่มเติมก็ตามสะดวกครับ