Skip to main content

ทำให้ iPhone แสดงค่าแบตเตอรี่ที่เหลือ

Submitted by ezybzy on

เกิดอาการมันเคี้ยว iPhone ของตัวเอง อยากให้มันแสดงว่า Battery ตอนนี้เหลืออยู่กี่เปอร์เซ็นต์แต่ไม่อยาก Jailbreak (เพราะยังทำไม่ได้)

จำได้ว่าเมื่อก่อน มีคนเคยทำ FakeCarrier กับ FakeTimeString โดยไม่ต้องทำการ Jailbreak แถมยังใช้โปรแกรมบนฝั่ง Mac ทำเสียด้วย ก็เลยลองค้นดูหลักการว่าเขาทำอย่างไร ผลก็คือจริงๆ เขาแค่แก้ไฟล์ com.apple.springboard.plist ที่จริงๆ แล้วไฟล์นี้อยู่ในเครื่องที่ใช้ Sync เจ้า iPhone นั่นแหละ แต่ปัญหาคือวิธีที่ iTunes ทำการ Backup ตัวข้อมูลในเครื่อง มันจะถูกเก็บเป็นไฟล์ที่เราอ่านชื่อไม่ออกจำนวนมากมาย (ก็คือทุกอย่างใน /var/mobile) แต่ตัวข้อมูลไม่ได้มีการดัดแปลงให้พิสดารแต่ประการใด!

ทีนี้ปัญหาก็คือ เออแล้วไฟล์ที่เราต้องการมันคือไฟล์ไหนล่ะ? Spotlight ช่วยได้ไหม? ไม่ได้ แล้วจะทำอย่างไรก็เลยลองค้นหาวิธีก็พบว่า ใช้แค่สองคำสั่งผสมกันคือ ใช้คำสั่ง find ในการวิ่งไปตามไฟล์ใน Folder ที่ต้องการผสมกับคำสั่ง grep ซึ่งใช้ในการค้นหา String ได้ดีอยู่แล้ว ทีนี้ก็ต้องไปดูว่าแล้ว com.apple.springboard.plist มีอะไรที่น่าสนใจพอจะให้เดาได้ว่าคือมัน ตอนแรกลองค้นหาคำว่า SB ก็เจอบานตะไทเลย เลยเปลี่ยนเป็นอะไรที่เจาะจงขึ้นเลยค้นคำว่า SBLanguageRestart ก็พบไฟล์ที่ต้องการ

find . -type f -name "*.mddata" -exec grep -il "SBLanguageRestart" {} \;

เสร็จแล้วก็จัดแจง ใช้ Property List Editor แก้ซะจนเรียบร้อย (น่าแปลกใจตรงที่ Apple ได้ใส่ค่า SBShowBatteryLevel มาให้แล้ว แต่กลับยังไม่มีช่องทางในการเปลี่ยนค่านี้ให้จากโปรแกรมในตัว iPhone) แล้วทำการ Restore เครื่องกลับ ปรากฏว่าเหมือนเดิม!

ก็เลยค้นต่อไปพบว่า จริงๆ แล้วเราต้องเพิ่ม SBShowBatteryPercentage เข้าไปอีกอัน ก็เลยทำใหม่อีกรอบ จัดการ Restore ก็ยังใช้ไม่ได้ อะไรของมันหว่า? (หรือมัน Restore ลงไปยังที่ที่มันไม่ควรอยู่?)

ประหลาดใจตรงที่ iPhone Simulator ใส่แค่ SBShowBatteryLevel มันก็ใช้ได้แล้วนะ ทำไมเครื่องจริงต้องใส่เพิ่มเข้าไปอีกอัน?

มีคนพูดถึงเรื่องนี้ไว้ด้วยแฮะ ทำไปคนละทิศคนละทางเลย!

Tags