แฮ่ม…… หลังจากที่ลองคุ้ยแคะแกะเกามาหลายวัน ในที่สุดผมก็หาฟังก์ชัน Font::selectionRectForComplexText() ของไฟล์ webkit/WebCore/platform/graphics/android/FontAndroid.cpp ที่จะต้องเข้าไปแก้ตาม patch
http://android.git.kernel.org/?p=platform/external/webkit.git;a=blobdiff;f=WebCore/platform/graphics/android/FontAndroid.cpp;h=e9cf4c8f81eea9c4d0c6a001a0e0dab3afbcacd8;hp=a430b072354d8c9f835246c833cf6ff1f927bddc;hb=733e4cfb8b3cae83daff5cc7a426ee901227dbc6;hpb=18342a41ab72e2c21931afaaab6f1b9bdbedb9fa
เจอแล้วครับ!!! สำหรับคนที่อยากไปคุ้ยดูบ้าง.. มันอยู่ที่ offset 0x104644 ในไฟล์ libwebcore.so ครับ
ผมก็เลยจัดการใช้ hex editor เข้าไปแก้เรียบร้อย.. 🙂
จากที่ลองใช้งานมายังไม่เจอว่ามีปัญหาใดๆนะครับ (แก้แค่ 4byte เอง ไม่น่ากระทบฟังก์ชันอื่น) สามารถกดลิ้งค์ภาษาไทยได้อย่างมีความสุขซะที ถ้าใครสนใจอยากเอาไปลองก็นี่เลยครับ
http://aet.ath.cx/~aet/libwebcore.so
วิธีลง.
1.ต้อง root เครื่องก่อนนะครับ
1.5 ก๊อปปี้ไฟล์ libwebcore.so ที่โหลดมาไปไว้ในโฟลเดอร์ tools ของ SDK
2.ต่อสาย usb กับเครื่องแล้วสั่งตามนี้เลย
adb push libwebcore.so /sdcard/libwebcore.so-mod
adb shell
su
cd /sdcard
cat /system/lib/libwebcore.so > libwebcore.so-orig
cat libwebcore.so-mod > /system/lib/libwebcore.so
reboot
ตอนสั่ง su ถ้าพึ่ง root ครั้งแรกที่หน้าจอมือถือจะมี popup ของ superuser permissions ขึ้นมาถามว่าจะอนุญาตให้เป็น root หรือเปล่าให้กด allow ครับ
ใช้แล้วได้ผลเป็นงัยบอกด้วยนะครับ ถ้ามีใครสนใจวิธีคุ้ยแคะ เดี๋ยวผมจะพยายาม post วิธีทำอย่างละเอียดให้ 🙂
รูปตัวอย่างหน้าจอครับ
ก่อนแก้
หลังแก้
ขอบคุณทุกท่านที่ติชมครับ
โหลดไฟล์ libwebcore.so
แล้วนำไปวางไว้ตรงไหนครับ
ขอบคุณครับ 🙂
ได้แล้วครับ เอาไปวางไว้ในfolder tools ของ SDK นี่เอง ^^ (ถามเองตอบเอง)
ตอนนี้ลิงค์ตรงแล้วครับ ดีใจมากมาย 😀
ขอบคุณอีกทีคับ ^^
เจ๋งคร้าบ 😀
โอ้ววสุดยอดครับ
ขอวิธีอย่างละเอียด blog ไว้ก็ดีครับเป็นแนวทางที่ดีผมจะได้ดูด้วย ฮาาาาาาาาาา
ต้องขอเวลาไปเรียบเรียงหน่อยว่าทำงัยมาบ้าง 😛 เล่นเอามึนไปหลายวันเหมือนกันครับ
ขอบคุณครับ link ตรงแล้วครับ
ผมมือใหม่เพิ่ง root แล้วก็ลองแก้ libwebcore เพิ่งสำเร็จ
สำหรับมือใหม่ขอเพิ่มข้อ 1.5 นะครับว่า ให้เอาไฟล์ libwebcore.so ที่โหลดมาใส่ไว้ในที่
C:\android\tools ก่อน (ตามที่ extract SDK มา)
แล้วค่อยต่อข้อ 2 ครับ
—–
และหลังกดคำสั่ง su ให้มาเปิดโปรแกรม superuser permission ดูที่เครื่องครับ
แล้วกด Allow ไป ถึงจะดำเนินการต่อได้
ถ้าผิดถูกยังไงก็แนะนำทีครับ
🙂
ต้องเปลี่ยน permission ด้วยปล่าวเพราะมัน read only อยู่นะ
พอ su เป็น root แล้วมันเขียนได้หมดอยู่แล้วครับ
ผมก้็ root permission แล้วนะแต่มันยังแจ้งว่า read only เลยงง น่าจะอนุญาตแล้วนี่หน่า เลยมาบอกเผื่อมี
คนเจอแบบผม
ขอบคุณที่แนะนำครับ พอดีผม root ไว้หลายวันละเลยไม่ต้องกด allow ใน superuser permissions
เดี๋ยวแก้ข้างบนให้ครับ
เอ่อใช้ root explorer เอาไปวางได้ปล่าวครับง่ายกว่า
ผมไม่เคยใช้ app นี้อ่ะครับ ปกติถนัด command line มากกว่า 😛
ลองละใช้root explorer ได้ครับ copy อันเก่าเก้็ บ ไว้แล้วเอาอันใหม่ไปวางทับสำหรับ
คนไม่ถนัด command line
อ่ะโห สุโก้ยๆ เมพขิงๆ ขอบคุณครับที่หาทางแก้จนได้
ปล. ผมยังพยายามนั่ง compile อยู่เลย (มีคนมาช่วยคลายปมอีกเปราะนึง เลยลอง build ใหม่, นั่งรออยู่เนี่ย ยังไม่เสร็จ) =P
เรื่อง compile ใหม่ผมคงต้องรออีกซักพัก ตอนนี้มันยังไม่มี full source จาก samsung (ไม่รู้จะมีหรือเปล่า) มั่วมากไปกลัวบูตไม่ขึ้นครับ 😛 ตอนนี้ยังเห่อเครื่องอยู่ ยังไม่อยากเอาไปเป็นที่ทับกระดาษ 555
อีกอย่างเห็นว่าตอน flash มันต้องใช้ app บน windows แต่ตอนนี้ที่บ้านมีแต่ mac กับ ubuntu อ่ะครับ ไม่รู้ flash จาก virtual box ได้หรือเปล่า
flash จาก virtualbox ไม่ work ครับ ลองแล้ว =) ผมใช้ Ubuntu หากิน
ต้องไปแอบใช้เครื่องแฟนที่เป็น Window, Odin3 (ตัว flash) มีแต่ window platform
ผม compile มันสำเร็จได้ไฟล์ libwebcore.so มาแล้วหล่ะครับ แต่ได้มาตอนนี้ก็ไม่ได้เป็นประโยชน์กับท่านอื่นแต่อย่างใดแล้ว, ทำเองใช้เอง 555 =P
แปะลิงค์ไว้ให้ http://db.tt/skyluP เผื่อจะสนใจเอาไป compare กันดู
อย่าเพิ่งไปนอน ช่วยผมก่อน กระทู้ห้องซัมซุงเอสครับ
555 ผมคงไม่ได้ compare ทั้งหมดหรอกครับ… ไม่รู้จะ compare อะไร.. ว่าแต่ libwebcore.so อันนี้แก้อะไรไปบ้างอ่ะครับ? ดู size แล้วมันเล็กกว่าอันที่ติดมากับ ssgs ตั้งเกือบ 400k นะครับ ผมละเสียวว่าเอาไปใช้แล้วมันจะมีอะไรไม่ครบครับ
เดี๋ยวผมใช้ไปเรื่อยๆ หากมีปัญหาจะมารายงานก็แล้วกัน ผมใช้ตัวนี้ของผมแหละ =)
ที่ compile ออกมา source ก้อมาจาก google aosp + samsung opensource + FontAndroid patch ครับ ไม่น่าจะมีปัญหากับ galaxy s
แนะนำวิธีคอมไพล์หน่อยสิครับ อยากเอามาลองบ้าง 🙂
อ่อ อยากทำแต่ไม่อยากรูทกลัวจะมีปัญหาในการอัพ 2.2 เดือนหน้า T_T
เดือนหน้าจริงอะ
วิธีรูทที่ทำๆกันอยู่ ไม่น่าจะสร้างปัญหาอะไรที่ทำให้เคลมเครื่องไม่ได้นะครับ
ส่วนเรื่อง Froyo ผมไม่ตั้งความหวังเลยครับว่าเดือนหน้าจะมา.. =) ตั้งไว้ปีหน้า 2011 Q1
N1 เค้ายังเพิ่งได้กันเลย (final จริงๆรึยังไม่รู้)
ขอบคุณครับ link ตรงแล้ววว
เย้ๆ ตรงแล้วครับ เป๊ะเลย
แอบเอาขึ้นหน้าแรกนะ อิอิ
ขอบคุณคับ… แอบเขินเล็กน้อยไม่เคยเป็นข่าวหน้าหนึ่ง อิอิอิ
ใช้ hex แก้จากอะไรเป็นอะไรหรอครับ เผื่อจะแก้เครื่องอื่นได้ด้วย
ผมกำลังเขียนวิธีที่ผมทำใน blog ของผมอยู่ครับ เดี๋ยวเสร็จแล้วเอาลิ้งค์มาแปะให้อ่านกันครับ วิธีการมันค่อนข้างซับซ้อน คร่าวๆคือจาก code ภาษา C++
point.y() – floorf(SkScalarToFloat(-metrics.fAscent))
เราต้องแก้ให้เหลือแค่
point.y()
วิธีคือผมก็ไปหา code ตรงที่มันจะลบกัน แล้วเปลี่ยนคำสั่งจากลบด้วยค่า floorf(…) เป็นลบด้วย 0 แทนครับ คือถ้าดูเป็นภาษา assembly ของ arm มันจะเปลี่ยนจาก
fmrs r0, s3
[register s3 เป็นค่าที่คำนวณมาแล้วจาก floor(…)] แปลงคำสั่งนี้เป็น hex ได้เป็น 11 ee 90 0a โดยคำสั่งนี้จะเริ่มต้นอยู่ที่ offset 0x1046a0 ครับ (offset 0x104644 ตามที่บอกข้างบนเป็นตำแหน่งเริ่มต้นฟังก์ชัน) แล้วเปลี่ยนเป็น
movs r0, #0
movs r0, #0
แปลง 2 คำสั่งนี้เป็น hex ได้เป็น 00 20 00 20 ที่ต้องเปลี่ยนเป็น 2 คำสั่งก็เพราะคำสั่ง fmrs … มันมีขนาด 4 bytes แต่ movs … มันมีขนาดแค่ 2 ไบต์ครับ
ประมาณนี้ครับที่ผมแก้ไป 🙂
อ่อ พอเข้าใจแต่ผมยอมท่านจริงๆ ควานหาจนเจอจากฟังชั่น c++ ไปเป็นแอสแซมบี้ หาลำบากพอดูพยายามสุดๆ ว่าแต่ว่าเค้าไม่มีต้นฉบับแจกหรอครับใจร้ายจังต้องแกะเองพลาดนี้เป็นเรื่องได้เหมือนกันนะเนี้ย
ขอบคุณมากครับ
ผมเคยคิดแบบนี้เหมือนกัน แต่ไล่หา CODE ไม่เจอเลยล้มเลิกความคิดไป
วิธีนี้น่าจะใช้ได้กับหลาย ๆ รุ่นด้วยครับ
ลองกับ Milestone (True) ตัวล่าสุดแล้วใช้ได้
ใครอยากให้ลองทำรุ่นอื่นลอง post ไฟล์ libwebcore.so ที่ใช้อยู่ครับ
จะลองดูว่าทำได้หรือเปล่า
ผมลอง Search 11 EE 90 0A ใน libwebcore ของ milestone 2.1 Update 1 ( OTA 2.36.0 ) มันเจอต้อง 3 ที่เลยครับ เลยยังไม่กล้าเปลี่ยน มีคำแนะนำไหมครับ รบกวนด้วยครับ
ของ milestone มีคุณ too ทำไว้แล้วครับ ไปดูที่
http://www.pdamobiz.com/forum/forum_posts.asp?TID=326184&PN=1&TPN=1
root???????????
😥
😥
😥
😥
😥
😥
งั้นรอก่อน เพราะมือใหม่มาก ๆ รอคล่องมือกว่านี้
แล้วรูทจะมีปัญหาอะไรกับประกันเครื่องไหม
และถ้ารูทแล้วจะอัพเวอร์ชั่นใหม่ 2.2 ได้ไหม
ถ้ารูทแล้วจะกลับมาทำให้เป็นปกติเหมือนเครื่องเดิมได้ไหม
สมาชิกที่มีประสบการณ์ช่วยตอบผมด้วยครับ
ไม่กล้ารับประกันว่า flash กลับแล้วเค้าจะไม่รับเคลมรึเปล่า แต่ผมเคย flash กลับแล้ว (ตัว DXJF4) มันก็เหมือนเดิมนะ (ตอนที่ทำรูทแบบยากๆหน่ะ, พลาดไปทีนึง)
ถ้าดูที่หน้า about phone; ถ้าค้นๆ forum ดูผมเคย post รูป หน้านี้ก่อนรูทเอาไว้ครับ รูทเสร็จหน้า about phone มันก้อเหมือนเดิม เว้นแต่ข้างในมีไฟล์ su, busybox เพิ่ม
ถ้า flash rom original กลับลงไปได้ ผมว่า rom ตัวใหม่มาก็ update ได้, หลักการ/วิธีเดียวกัน
หรือถ้าจะเป็น FOTA ก็ flash DXJF4 กลับลงไปก่อน root ก้อหายไปแล้ว มันก็น่าจะ FOTA ได้
ได้ Froyo มา ก็แค่อ่านไทยได้ แต่ link ring ยังไม่ได้แก้ครับ (คุณเนยยังต้องทำมาแจกอยู่เลย)
[color=red] ความคิดเห็นส่วนตัวล้วนๆครับ จะตัดสินใจรูทหรือไม่ ท่านผู้เป็นเจ้าของต้องตัดสินใจเองนะครับ =) [/color]
ผมใช้เครื่องศูนย์ root เลยในคืนวันที่รับเครื่องมาวันแรก =P ต้องการใช้มันอย่างเต็มที่ และไม่รำคาญใจครับ
ปล. คุณ @aet ผม compile source code จาก sumsung เสร็จแล้ว..เดี๋ยวค่ำมาแจ้งผล ถ้ามันใช้งานได้เหมือนกัน อาจจะฝากเอาไฟล์ไป compare กับตัวที่คุณ aet ใช้ hex editor เข้าไปแก้ไขนะครับ; คือผมไม่สันทัดกับไฟล์ที่ดูเป็น hex อ่ะ ลองเปิดด้วย hex editor แล้วลองหาตาม address ที่คุณบอก..ก็ยัง งงๆ มานตรงไหนกันแน่ เนี่ย =P
ขอบคุณครับ
ตอนนี้ 50 : 50
เรื่องแฟลชนี้ไม่ค่อยห่วงเท่าไหร่เพราะตอนใช้โนเกียก็แฟลชไฟล์โมเป็นว่าเล่น
ห่วงอย่างเดียวคือกลัวไม่มีไฟล์ต้นฉบับไว้แฟลชกลับเท่านั้นเอง
ตอนนี้ขอทำความรู้จักกับมันสักเดือนหนึ่งก่อนหลังจากนั้นเสร็จแน่ ๆ
firmware ของ ssgs มีคนรวบรวมไว้ให้ที่ http://samsung-firmware.webs.com แล้วครับ
ผมเข้าใจว่า Froyo เค้า patch webkit แล้วไม่ใช่เหรอครับ?
ในส่วนไฟล์ที่คอมไพล์เองนั้ จะให้ดูตรงส่วนไหนอ่ะครับ?
ทำเสร็จแล้วครับ
เด๋วจะลองหาโปรแกรมจับภาพหน้าจอมาใช้งานดู
ขอบคุณสำหรับเทคนิคดี ๆ
ไม่กล้ารูททททท T_______________________T
Root แล้วทำกลับให้เหมือนยังไม่ root ได้มั้ยครับ ?
เยี่ยมมากเลยครับ work มาก ๆ ครับ
ใครก็ได้ช่วยทำให้ acer liquid บ้างได้ไหมคราบบบบบบ
ลอง copy libwebcore.so ไปขอให้เจ้าของกระทู้ช่วยแกะดูสิครับแต่เค้าไม่มีเครื่องเทสนี่ยากอยู่นา
ถ้า root แล้วก็ลองเอาของที่นู๋เนยทำไปลองก่อนได้นิ่ครับ ถ้า Acer ไม่ได้ทำอะไรพิเศษกับ lib ตัวนี้ Liquid ก็ใช้ได้เลย ถ้าไม่ได้ สงสัยต้องลำบากคุณ aet แล้วหล่ะครับ =P
ลอง post ไฟล์ libwebcore.so ในเครื่องมาหน่อยสิครับ ผมจะลองคุ้ยดูว่าจะแก้ได้หรือเปล่า 🙂 แต่แก้แล้วผมไม่มีเครื่อง test นะครับ คงต้องเอาไปลองลงดูเองว่าจะใช้ได้หรือเปล่า
ปัญหาเดียวกัน ไม่มีเครื่องเทสต์เลยไม่กล้าแก้ 🙁
ขอบคุณมากครับ ที่ทำมาให้ใช้กัน
แจ่มไปเลย ขอบคุณมากครับ