Modified Palm phone firmware ( aka ., OS )

For English version there’s someone already written on wiki(here) please go ahead and read there

จริงๆแล้วไม่อยากแทรก อยากเขียนไดอารีต่อให้จบ แล้วค่อยบล็อกตามใจแบบนี้ แต่ทว่า…. หากรอไดอารีจบ ชาตินี้ไม่ได้เขียนแน่ๆ เพราะคงหมดไฟก่อน

เอาเป็นว่ายืม Palm Pre (sprint) มาจาก @nuuneoi แล้วพอจิ้มกับคอม มันก็บอกว่าต้อง


ไม่ทำงานนะจ๊ะส์

เอาแล้วไง กด Just Restart ก็แค่รีสตาท กด Erase All Data ก็ถามยืนยัน แล้วกดอีกที…. มันก็กลับมาหน้านี้เหมือนเดิม

แถมเหมือนจะเป็นเครื่องมี Defect ด้วย วางไว้เฉยๆแล้ว stand by ….. จริงๆคือดับไปเลย ไม่ใช่ sleep ล่ะ…. มีคนเป็นหลายคนในเน็ท

สรุปว่าปวดหัวมาก เลยคุ้ยไปคุ้ยมา เจอ WebOS Doctor เป็นทูลโคตรพ่อโคตรแม่อารมณ์ประมาณยัดเครื่องเข้า Recovery Mode (เทียบเท่า DFU Mode ของไอโฟน) แล้วกดจึ๊กๆ ลงเฟิร์มแวร์เสร็จสรรพ

เสียเวลาโหลด อืดๆ นานมาก (มาพบทีหลังว่าไฟล์ขนาด 200 กว่าเม็ก แต่เน็ทวิ่ง 30-50 k ต่อวิ โดยช่วงหลังๆวิ่งขึ้นมาหน่อย โหลดอยู่สองชั่วโมงก็เล่นได้ แต่ทว่า

ฮว้ากกก ให้ Create Palm Profile (พอๆกับ Android ที่ต้องใช้ Gmail น่ะแหละ)

เอ๊า ก็ครีเอทซะสิ

…..
……
…….
……..

โทรศัพท์ไม่มีสัญญาณ (แหงล่ะ ไม่ได้อยู่ USA นี่หว่า)
กดต่อไวไฟไม่ได้…..
แล้วจะครีเอทยังไงฟะ!!
สุดท้ายก็วางไว้สัปดาห์กว่า เพราะติดไปทำงานกูเกิลที่ TME2010 พฤ – อาทิตย์

พี่เนยเจ้าของเก่าก็บอกว่าต้อง Bypass ไปหาในกูเกิลเอาเอง คำว่า Bypass Activation

ก็หาไปหามา ไปเจอเว็บเจ้าเก่า PreCentral.com แนะนำว่าให้ใช้ MetaDoctor (เป็นคัสตอม ม็อด สำหรับรอมอีกทีนึง)
ทีนี้ก็หามา วิธีเหมือนกันเป๊ะ แต่อันนึงต้องเปลีย่นชื่อไฟล์ แล้วใช้ make=device ส่วนอีกอันไม่ต้อง
ตอนแรกก็นึกว่าสลับไปมาได้ ปรากฏว่าเจ๊งบ๊ง
คือเลือกข้างไปเลยว่าจะใช้เทคนิคของ PreCentral หรือ MetaDoctor ( webOS Internal: Wiki )
ก็สรุปว่าลง VirtualBox แล้วลง Ubuntu ทำตามเป๊ะ
พอ make-device บลาๆๆๆๆ เจ๊ง ผลคือ VirtualBox เดี้ยง ค้างไปเลย (ความผิดของ VirtualBox)

เลยไปจัดแจงหาออริจินัลการ VM ด้วยการโหลดบิท แน่นอนว่าผิดกฏหมาย VMware Workstation
นี่เลย ลงเสร็จปุ๊บ ไม่ต้อง mount image ด้วย Daemon Tools โปรแกรมเมาท์เองได้เลย
ผลคือ….. เสร่อเกิน อวดฉลาดว่ารู้ว่าเป็น ubuntu + แนะนำ vmware plugin บลาๆๆๆ
สุดท้าย ทำไมโหลด Desktop Edition มาแล้วกลายเป็นมีแค่… Terminal วะ… ผมโหลด Desktop ไหงกลายเป็น Server Edition วะ!!

เลย เอาวะ มุกสุดท้ายแล้ว ไปโหลดจาก chrysaor.info มั้ง จำลิงค์ไม่ได้ เป็น image ของ OS (ตอนแรกโหลดไป 297 เม็ก เกือบๆจะโหลดเสร็จละ มองไป อ้าว server edition นี่หว่า) เลยโหลดใหม่ เป็น Desktop Edition (โอ้ว ม่าย 1.1GB แถมต้องโหลดใหม่ มายก๊อด)

สุดท้ายโหลดเสร็จ รันครัฟ
MAKE GIT CORE ไม่ได้!! โอ้ว กูจะร้องไห้แล้ว กูเสียเวลามากว่า 48 ชั่วโมงแล้วนะเว้ยยยยเฮ้ยยยยย

สุดท้ายก็เลยใช้ Cygwin
(เอาละ หมดช่วงโม้ว่าทำไมถึงใช้ cygwin แล้ว เข้าเรื่องละนะ)

เริ่มจาก โหลด cygwin
ที่นี่
install
Next > Install From Internet (Next) > Next > Next > Next > เลือก FTP/HTTP mirror (Next) >

ทำการติดตั้งทีละตัวนะครับ โดยทำการติดตั้ง

  1. Python
  2. Make
  3. Patch
  4. Git
  5. Zip
  6. Unzip

ตามนี้ (ใส่ทีละตัว เช่น Python แล้วมันจะเหลือแต่ไฟล์ที่เกี่ยวข้อง เลือก install ทั้งหมด แล้วไปใส่ตัวต่อไป คือ Make เลือก install ทั้งหมดที่เกี่ยวข้อง ใช้วิธีนี้ไปเรื่อยๆจนกว่าจะครบหกตัว)

เริ่ม Patch รอมกันเลยดีกว่า (ตัวดำเอียงคือพิมพ์ตามนั้น)
Start>Programs>Cygwin>Cygwin Bash Shell
git clone git://git.webos-internals.org/tools/meta-doctor.git
cd meta-doctor
mkdir downloads

แล้วไปโหลดรอมของ Palm Pre เอาเลย ดูลิงค์ ที่นี่ โหลดให้ตรงกับรุ่นนะ แล้วไปโยนในโฟลเดอร์ดาวน์โหลด (ของผมอยู่ที่ C:\cygwin\home\Administrator\meta-doctor\downloads )

ทำการเปลี่ยนชื่อไฟล์โดยเติมเวอร์ชันเข้าไปด้วย เช่นโหลด Sprint เวอร์ชัน 1.4.5 มา ก็พิมพ์ว่า

mv webosdoctorp100ewwsprint.jar webosdoctorp100ewwsprint-1.4.5.jar

แล้วทีนี้ เรามาแก้ไขไฟล์ที่จะ make กันก่อนว่าเราต้องการอะไรบ้าง
โดยเปิด makefile ด้วย TextEditor ตัวไหนก็ได้
# BYPASS_ACTIVATION     = 1
# BYPASS_FIRST_USE_APP  = 1
# ENABLE_DEVELOPER_MODE = 1
# AUTO_INSTALL_PREWARE  = 1
# ENABLE_TESTING_FEEDS  = 1
# INSTALL_SSH_AUTH_KEYS = 1
# INSTALL_WIFI_PROFILES = 1
# DISABLE_UPLOAD_DAEMON = 1
# DISABLE_MODEM_UPDATE  = 1
# ENABLE_USB_NETWORKING = 1
# REMOVE_CARRIER_CHECK  = 1
# REMOVE_MODEL_CHECK    = 1
# INCREASE_VAR_SPACE    = 1
# CHANGE_KEYBOARD_TYPE  = z
# ADD_EXT3FS_PARTITION  = 2GB

# BYPASS_ACTIVATION ก็ตามที่เขียน ทำการบายพาส (สำหรับเครื่องที่ยังไม่เคยเปิดใช้งานเท่านั้น)
# BYPASS_FIRST_USE_APP สำหรับบายพาสหน้าจอ create palm profile (ที่ผมติด)
# ENABLE_DEVELOPER_MODE ทำให้โทรศัพท์เข้าโหมด Developers ได้โดยไม่ต้องใส่โค้ด developer mode activation
# ENABLE_TESTING_FEEDS เลือกอันนี้ ถ้าจะเล่น Homebrew ไม่รู้อะไร
# INSTALL_SSH_AUTH_KEYS ตามที่เขียนลง ssh authentic keys (รายละเอียดไปอ่านเอง ข้างบนไฟล์ตรงนี้มีเขียนชัดมากสำหรับทุกฟังก์ชัน)
# INSTALL_WIFI_PROFILES ทำการ imports wifi profile จาก Home ของ Linux (ต้อง ssh ไฟล์เข้าไปด้วย)
# AUTO_INSTALL_PREWARE เลือกอันนี้ถ้าจะเล่น Homebrew
# DISABLE_UPLOAD_DAEMON ปิดการแอบส่งไฟล์ลับๆไปยังเซอร์เวอร์วิเคราะห์พฤติกรรมของ Palm
# DISABLE_MODEM_UPDATE ไม่อัพเดทโมเด็ม (ส่วน baseband/radio สำหรับ iphone,android นั่นเอง)
# ENABLE_USB_NETWORKING ทำการ activates USB networking (ต้องมี usb net driver และไม่ใช่ tether)
# REMOVE_CARRIER_CHECK เพื่อลงข้ามเครือข่าย เช่น ลง Verizon บน Sprint Palm Pre รวมทั้งลบ app ที่มากับเครือข่าย (เช่น Sprint TV , Sprint NASCAR , รวมทั้ง app catalogue จะไม่ถูกล็อกกับเครือข่ายนั้นๆ)
# REMOVE_MODEL_CHECK เพื่อลงข้ามรุ่น เช่น ลงสำหรับเครื่อง EU ด้วย US firmware
# INCREASE_VAR_SPACE ทำการ repartition ที่ของ /var partition เป็น 2 GB ทำให้โปรแกรมลินุกซ์ทำงานได้ดีขึ้น พร้อมรับไฟล์แนบและอีเมล์สารพัดสารเพ (ปัญหาที่ต้องทำการเพิ่ม var space หมดไปตั้งแต่ app catalogue ถูกแก้ไข ไม่จำเป็นต้องทำอีกต่อไป นอกจากคุณมีอีเมล์เยอะมาก และมีอะไรต่อมิอะไรแนบเป็นล้านๆ ไฟล์ก็สามารถช่วยเหลือให้เร็วขึ้นได้)
# ADD_EXT3FS_PARTITION ตามนั้น
# CHANGE_KEYBOARD_TYPE กรณีคีย์บอร์ด AZERTY หรือ QWERTZ เท่านั้น ( เลือก ‘z’ คือ QWERTY, ‘y’ & ‘y1’ คือ QWERTZ, ‘w1’ คือ AZERTY)

เมื่อเลือกได้แล้วว่าจะทำอะไรบ้างก็เอาเครื่องหมาย # ออก อย่างโค้ดของผมแค่ต้องการเอา create palm profile ออก ก็จะมีหน้าตาดังนี้

# BYPASS_ACTIVATION     = 1
BYPASS_FIRST_USE_APP  = 1
# ENABLE_DEVELOPER_MODE = 1
# AUTO_INSTALL_PREWARE  = 1
# ENABLE_TESTING_FEEDS  = 1
# INSTALL_SSH_AUTH_KEYS = 1
# INSTALL_WIFI_PROFILES = 1
# DISABLE_UPLOAD_DAEMON = 1
# DISABLE_MODEM_UPDATE  = 1
# ENABLE_USB_NETWORKING = 1
# REMOVE_CARRIER_CHECK  = 1
# REMOVE_MODEL_CHECK    = 1
# INCREASE_VAR_SPACE    = 1
# CHANGE_KEYBOARD_TYPE  = z

# ADD_EXT3FS_PARTITION  = 2GB

# Select “pre”, “preplus”, “pixi” or “pixiplus”.
DEVICE = pre

# Select “wr”, “sprint”, “verizonwireless”, “bellmo”, “telcel” or “att”.
CARRIER = Sprint

แน่นอนว่าเลือก Device เป็น Pre และ Carrier เป็น Sprint (แล้วแต่เครื่องคุณว่าเป็นอะไร)

เอาละ แก้ makefile เสร็จแล้ว เลือกเสร็จแล้วก็เริ่ม Build กันเลยดีกว่า

ทำตามขั้นตอนบนใหม่นะ สำหรับคนที่ปิด bash shell ไปแล้ว
โดย cd meta-doctor เอาไว้ (ก็ makefile มันอยู่ที่นี่นี่หว่า)

เริ่มพิมพ์อันใดอันหนึ่ง (ตามรุ่นของเครื่องคุณนะ)

make DEVICE=pre all-wr
make DEVICE=preplus all-wr
make DEVICE=pixiplus all-wr
make DEVICE=pre all-sprint
make DEVICE=pixi all-sprint
make DEVICE=pre all-bellmo
make DEVICE=pre all-telce
make DEVICE=preplus all-verizonwireles
make DEVICE=pixiplus all-verizonwireless
make DEVICE=preplus all-att
make DEVICE=pixiplus all-att

อย่างเครื่องผมเป็น Sprint + Palm Pre ก็พิมพ์ว่า
make DEVICE=pre all-sprint

หมายเหตุ : ใช้ make DEVICE=palm_smartphone_type all-wr สำหรับรุ่น O2 ของ Germany UK และ Ireland / Movistar Spain / SFR France
ไฟล์ที่ถูก patched แล้วจะไปอยู่ที่
meta-doctor\build\pre-p100eww-sprint-1.4.5 ไฟล์จะเป็น .jar (ไฟล์อื่นไม่เกี่ยว ลบไปเลย)

เอาละ ได้รอมแล้ว ยัดลงมือถือกันเหอะ

ปิดเครื่อง กดปุ่มเร่งเสียงค้างไว้ เปิดเครื่อง จนขึ้นหน้าจอ USB ตัวโตๆ

เอาละ พร้อมแฟลช ไปกดทางฟาก PC เลือกคำสั่งที่ใช้ ว่าง่ายๆคือ เน็กซ์ๆๆๆ ยิกๆๆ

ส่วนทางฟากมือถือจะขึ้นจอ

เมื่อเสร็จแล้วจะเข้าหน้าจอนี้เลยโดยไม่ต้องทำการ create Palm Profile แต่ประการใด ไปต่อ wifi แล้วครีเอทกันเองนะจ๊ะ

เชรี่ย กว่าจะทำงาน กูหมดพลังงานไปกับการปล้ำ VirtualBox กับ Vmware ไหนจะดาวน์โหลด image แผ่น ubuntu ไหนจะ image VMware อีก โอย สุดท้ายใช้ cygwin ง่ายสุดละ เป็นบล็อกที่เขียนภาษาคนไม่ค่อยเข้าใจเท่าใหร่ ว่างๆยังไงจะมาอีดิตเป็นภาษาคนนะจ๊ะส์

All the application and how-to credits goes to WebOSinternal : Wiki

Published by bankkung

I'm definitely not the person you're looking for.

ใส่ความเห็น