[Android] SuperUser (Root) - สิทธิที่เหนือกว่า



เรื่องราวของ Android Tip มาอีกแล้วครับ วันนี้ขอเสนอ การให้สิทธิ์ root โทรศัพท์ Android ของเรากัน
การ root คือ สิทธิความสามารถให้การเข้าถึง / หรือเรียกว่า root (ถ้าใครเคยใช้ linux คงเข้าใจ) ซึ่งเป็น folder ใหญ่สุดของเครื่องก็ว่าได้ ซึ่งจะมีเฉพาะผู้มีสิทธิ์ SuperUser เท่านั้นจึงจะสามารถเข้าถึงได้ และมีสิทธิ์ปรับแต่งตามต้องการ สำหรับ Android นั้น ก็ทำงานเช่นเดียวกัน  เพราะฉะนั้น การ root Android ก็คือ การให้สิทธิ์ SuperUser กับเครื่องนั้นๆนั่นเอง
สำหรับผู้ใช้มือใหม่หัด root
การให้สิทธิ์ root กับเครื่อง Android ของเรานั้น ทำได้ 2 วิธี คือ

1) ใช้ App. ชื่อว่า Universal Androot ติดตั้งลงบนโทรศัพท์เหมือน App. ทั่วไป และเพียงแค่กดปุ่ม root ก็จะได้สิทธิ์ SuperUser มาครอบครองง่ายๆ แต่ว่า App. นี้บางเครื่องก็ใช้ไม่ได้นะครับ

2)ใช้โปรแกรม SuperOneClick สำหรับติดตั้งบน PC อันนี้ต้องต่อสาย USB นะครับ ติดตั้ง Driver โทรศัพท์ให้เรียบร้อย(ถ้าเคย Sync โทรศัพท์กับคอมฯผ่าน USB ก็ไม่ต้องติดตั้งใหม่ครับ) จากนั้นเปิดโปรแกรม SuperOneClick แล้วกดปุ่ม Root เท่านี้ก็เรียบร้อยครับ รอโปรแกรมทำงานไม่กี่วิฯ ก็เสร็จแล้วครับ

Root แล้วแนะนำให้ restart เครื่องครับ จากนั้นจะเห็นโปรแกรม superuser เป็นรูปเดียวกับด้านบนเลยครับ




การส่งไฟล์เข้า read-only file system ครับ
ถ้าส่งปกติทั่วไปจะทำไม่ได้ครับ ประมาณว่า move to /system/app.............. มันจะไม่ยอมครับ แต่ถ้าใครใช้ Root Explorer (อย่าลืม Allow Superuser) ก็อาจจะย้ายได้ แต่สำหรับผม ผมทำไม่ได้ครับ ผมเลยใช้วิธีย้ายผ่าน Debugger ที่มากับ Android SDK เป็นตัวย้ายแทนครับ ตัวที่ว่านี้คือ adb.exe ครับ สำหรับวิธีการก็ทำตามนี้เลยครับ

1. เปิด cmd แล้ว cd ไปที่ adb.exe ครับ สำหรับผมเก็บไว้ที่ drive C:\android-sdk-windows\platform-tools

2. เรียก adb shell (คำสั่งใน adb shell จะเป็น unix เหมือน linux แทบทั้งหมด)

3. พิมพ์ su เพิ่อขอสิทธิ์ superuser สำหรับ adb shell ไปที่เครื่อง (สัญลักษณ์ข้างหน้ามันขึ้นมาเองเมื่อเราเข้าสู่ shell แล้วนะครับ ถ้าเป็น $ คือ user ปกติ ถ้าเป็น # คือ superuser)

4. ทำการ mount /system เพื่อให้สามารถดำเนินการต่างๆ ภายใน /system ได้

5. จะลบจะ copy จะ move หรือปรับ permission อะไรก็ทำได้เลยนะครับ ลองศึกษาคำสั่ง unix ดูก็จะรู้ว่าคำสั่งไหนใช้ยังไงครับ สมมุติว่าผมลองย้าย spareparts.apk จาก /sdcard ไปที่ /system/app แล้วกันนะครับ

cd c:\android-sdk-windows\platform-tools
adb shell
$ su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# cp /sdcard/spareparts.apk /system/app/spareparts.apk


*การ root สามารถทำการกระทำหลายๆอย่างที่ user ปกติไม่สามารถทำได้ เช่น สั่ง reboot เครื่อง, เข้าถึง file system, overclock และอื่นๆ เพื่อเพิ่มประสิทธิภาพในการใช้งาน แต่สิทธิ์นี้ ความเป็นจริงแล้ว มันเป็นของบริษัทเจ้าของผลิตภัณฑ์ ดังนั้นการ root อาจทำให้เครื่องหมดประกันได้ สอบถามเจ้าหน้าที่ให้ดี นอกจากนี้ การ root มีความเสี่ยงค่อนข้างสูง ทั้งด้าน software และ hardware ดังนั้นควร backup ข้อมูลให้ดีก่อนการ root และความผิดพลาดอันเนื่องมาจากการ root อาจทำให้เครื่องเสียหายได้ ผู้เขียน blog เพียงแต่แนะนำวิธีการ ไม่อาจรับผิดชอบกรณีใดๆทั้งสิ้น

แถมอันนี้ให้ดูกันครับ
อยากทำ Android Rotate แบบงามๆ ใครทำได้แนะนำด้วยครับ พยายามหลายรอบแล้ว T-T


แหล่งข้อมูล
root ด้วย Universal Androot https://forum.xda-developers.com/showthread.php?t=747598
root ด้วย SuperOneClick https://forum.xda-developers.com/showthread.php?t=803682
สารพัดเทคนิคการเป็น root https://www.droidsans.com/content/how-to-gain-root-access-on-g1
parameter ของการ mount https://linux.die.net/man/8/mount
https://android-tricks.blogspot.com/2009/01/mount-filesystem-read-write.html

Facebook Comment

Popular post of 7 days

[Android] เปิดเครื่องไม่ได้ โลโก้ค้าง (Boot Loop)

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ