วันปิยะมหาราช

[Knowledge] เจาะลึก Root คืออะไร ทำไมต้อง Root

กระทู้สนทนา
วันนี้ผมขอนำเสนอเรื่องใหม่ตามหัวข้อครับ

NOTE : เรื่องนี้มีการนำบทความที่แล้วมาเป็นพื้นฐานด้วย ไปดูกันที่นี่ครับ http://pantip.com/topic/30640990
NOTE 2: เพื่อให้เข้าใจมากขึ้น ลองโหลดแอพ terminal emulator มาใช้งานครับ
https://play.google.com/store/apps/details?id=jackpal.androidterm&hl=th

จริงๆเรื่องนี้มันก็นานถมถืดแล้วครับ มีเว็บไซต์ในไทยที่นำเสนอเรื่องนี้มาหลายแห่ง ย้ำก็แล้ว มีหลายที่ให้เทียบก็แล้ว มันก็ยังมีคำถามเดิมๆอยู่ "root มันคืออะไรอ่ะ มันเอาไปทำอะไร root แล้วเครื่องจะแรงขึ้นจริงเหรอ" วันนี้ผมจะมาเจาะลึกกับคำว่า root ในระบบปฏิบัติการ Android กันว่าจริงๆแล้วมันเอาไปทำอะไร แล้วมันทำให้เทพขึ้นตามข่าวลือหรือไม่ ติดตามรับชมกันได้เลยครับ

---------------------- เท้าความก่อน ----------------------------
เอารูปโครงสร้างแอนดรอยด์ขึ้นมา (อีกแล้ว)

ในกระทู้ที่แล้วเราได้นำเสนอโครงสร้างระบบไปบ้างแล้ว แต่มีส่วนหนึ่งที่ยังไม่ได้พูดถึงนั่นก็คือส่วนล่างสุดของระบบ Linux Kernel นั่นเอง
ระบบปฏิบัติการ(Operating System : OS) แอนดรอยด์นั้นนั้นไม่ได้เป็น OS ตรงๆครับ (จริงๆมันไม่น่าจะเรียกมันเป็น OS เลยด้วยซ้ำ) แต่เป็น Software ที่ไปขี่อยู่บน OS หนึ่งซึ่งเรียกกันว่า Software Stack ครับเพราะ Android นั้นไม่ได้ติดต่อกับ Hardware โดยตรงครับ แต่จะใช้ความสามารถของ Linux ในการติดต่อกับ Hardware ไปอีกทีนึง
ที่มา : http://stackoverflow.com/questions/10283725/what-is-difference-between-software-stack-and-os-why-android-is-not-an-os-but
สาเหตุที่ต้องนำ Linux มาเป็นส่วนล่างของระบบเพราะว่าจะได้ลดเวลาในการพัฒนา OS ไปได้เยอะเลยครับ เพราะคนพัฒนา Linux กับคนพัฒนาแอนดรอยด์เป็นคนละคนและคนละกลุ่มครับ ต่างคนต่างก็ทำของตัวเอง แล้วก็นำมารวมร่างกันจนกลายเป็นระบบปฏิบัติการแอนดรอยด์ที่สิงสถิตอยู่ในสมาร์ทโฟนของใครหลายๆคน และ Linux เองก็ไม่ได้อยู่ในมือถืออย่างเดียว มันก็ไปอยู่ในคอมพิวเตอร์ PC (เครื่อง จขกท เองก็ใช้ Linux ครับ) อยู่ในเครื่องเซิฟเวอร์ หรือแม้แต่ออุปกรณ์ฝังตัวอย่าง Router หรือแม้แต่ระบบสั่งการในรถยนต์(แต่รุ่นไหนผมไม่ทราบแต่เคยมี) อ่ะ โม้มาเยอะแล้ว มาดูคุณสมบัติพื้นๆของ Linux บ้าง
1. มัลติทาสกิ้ง (Multi-tasking) คือ ทำงานหลายๆ อย่างพร้อมกันได้ในเวลาเดียวกัน
2. มัลติยูสเซอร์ (Multi-user) คือสามารถใช้งานได้หลายคนพร้อมกันนั่นเองครับ << และเป็นประเด็นในเรื่องนี้ครับ
3. มีระบบ Unified Memory Pool สำหรับโปรแกรมและ Cache ทำให้ Cache ปรับเพิ่ม-ลดขนาดได้โดยอัตโนมัติ ขณะที่มีการเรียกใช้หรือไม่ใช้โปรแกรมใดๆ
และอื่นๆอีกมาก
และนี่คือโครงสร้างของ Linux ครับ

ดูแล้วก็เวียนหัวใช่ไหมครับ ผมก็ไม่กล่าวเจาะลึกเรื่องนี้มาก ใครสนใจก็ไปค้นหาข้อมูลเพิ่มเติมได้ครับ ค้นใน google เยอะมากมาย หนังสือภาษาไทยก็มีอยู่แต่หายากนิดนึงครับ

----------------- Root คืออะไร ----------------------
หลังจากโม้เรื่องตัวระบบ Linux มาซะแล้วมันเกี่ยวอะไร ลองย้อนไปอ่านคุณสมบัติมันดูครับ ซึ่งมีคำว่า Multi-User ครับหรือรองรับการใช้งานหลายคน แล้วยังไง ให้เปรียบเทียบ Linux เหมือนประเทศ
ประเทศก็ต้องมีประชากร(user)ซึ่งก็มีมากน้อยก็ขึ้นอยู่กับพื้นที่ ในเมื่อมีประเทศและประชากร ก็ต้องมี "ผู้นำประเทศ" ซึ่งผู้นำมีสิทธิ์สูงสุด สามารถจัดสรรทรัพยากร จัดการสาธารณูปโภคให้ประชากรแต่ละคน หรือแม้แต่จัดการประชากร อย่างแจ้งเกิด ย้ายที่อยู่ แบ่งกลุ่ม หรือฆ่าให้ตาย และตัวผู้นำเองสามารถจัดการประเทศอย่างจัดสรรพื้นที่ จัดทำระบบการปกครอง หรือแม้แต่เผาทำลายประเทศให้สูญสิ้น
เพราะฉะนั้น root ก็คือ "ผู้นำ" ของประเทศ Linux นั่นเอง root เป็น user ขั้นสูงสุดที่เรียกว่า superuser สามารถทำอะไรได้ "ทุกอย่าง" ในระบบ ถ้าเปรียบกับ windows ซึ่งก็คือชื่อ administrator นั่นเองครับ

-----------------ทำไมต้อง Root --------------------
เนื่องจากระบบแอนดรอยด์นั้นทำงานในโหมด user ใน Linux ครับ เพราะทางกูเกิลป้องกันไม่ให้ผู้ใช้เผลอตั้งค่าระบบที่ผิดพลาดซึ่งจะทำให้เกิดความเสียหายได้ครับ แต่ทว่าในสมัยก่อนระบบแอนดรอย์นั้นก็มีความสามารถแบบจำกัดจำเขี่ย เรียกได้ว่าไม่ได้ต่างไปจาก iOS ไปซักเท่าไหร่จึงมีผู้พัฒนาภายนอกพยายามทำให้ระบบแอนดรอยด์เข้าถึงสิทธิ์ขั้นสูงสุดในระบบได้ซึ่งก็คือการ Root ครับ
เรามาดูกันว่าเขา root กันทำไม(มีเทียบอดีตกับปัจจุบันครับ)
1. ให้แอพเข้าเมมได้ เมื่อก่อน(android version 2.1 ลงมา) แอพที่ติดตั้งนั้นย้ายเข้าเมมไม่ได้แถมขนาด rom ก็จำกัดจำเขี่ย จึงมีคนไปแกะทำให้มันเอาแอพเข้าเมมได้ครับ ปัจจุบันไม่ต้องทำแล้วเพราะเวอร์ชันใหม่ๆจะมีความสามารถนี้อยู่แล้วครับ
2. ทำให้ซื้อแอพได้ เพราะเมื่อก่อนทางกูเกิลยังไม่ให้เครื่องในไทยซื้อแอพได้ครับ ก็เลยต้องไปหลอกว่าเป็นเครื่องที่ใช้เครือข่ายในอเมริกาหรือประเทศอื่นเพื่อซื้อแอพครับ ปัจจุบัน สโตร์มีแอพเป็นเงินบาทด้วย ซื้อไปสิ แต่ว่ายังต้อง root เพื่อให้ซื้อแอพที่มันไม่โชว์ในสโตร์ในประเทศไทย ซึ่งมีวิธีการยุ่งยากกว่ามาก
3. ลง font ภาษาไทย แอนดรอยด์เวอร์ชันแรกๆยังอ่านไทยไม่ได้หรืออ่านยังไม่สมบูรณ์ จึงต้องทำให้มันลงฟอนต์ภาษาไทยลงไป ปัจจุบัน อ่านไทยได้ เมนูไทย พิมพ์ไทยได้ในตัว จบแล้วครับ นอกจากว่าฟอนต์ที่มีให้มันกาก อ่านยากก็เท่านั้นเองครับ
4. จับภาพหน้าจอ หลายๆคนคงจะอยากเอารูปหน้าจอที่แต่งมาซะงามเริดมา แต่หาวิธีจับภาพหน้าจอไม่ได้ซะที เลยต้องลงแอพจับภาพหน้าจอซึ่งก็ต้อง root ครับ ปัจจุบันตั้งแต่แอนดรอยด์ 4.0 ขึ้นไปสามารถจับภาพหน้าจอได้แล้วโดยกดปุ่มปิดเครื่องพร้อมกับปุ่มลดเสียงประมาณ 2 วินาที ที่เหลือก็แล้วแต่รุ่นครับ
5. แชร์เน็ตผ่าน wifi มันอาจจะธรรมดาสำหรับในปัจจุบัน แต่เมื่อก่อนมันทำไม่ได้ครับ (ในตอนนั้นผมหงุดหงิดมาก)
6. modify ครับพวกปรับแต่ง cpu ,Low Level memory Killer,ลง recovery ลงรอมโมสารพัด ลบแอพที่ไม่ได้ใช้แต่อยู่ใน system ซึ่งในปัจจุบันมีคน root เพื่อสิ่งนี้มากที่สุดครับ
7.ความสามารถอื่นๆที่เครื่องเดิมๆไม่มี เช่นการ backup rom , firewall, แชร์ไฟล์ ฯลฯ ในปัจจุบันก็ยังต้องพึ่ง root เหมือนเดิมครับ

--------------- เครื่อง Root ไม่ Root ดูยังไง ----------
1. ดูว่าในเครื่องเรามีแอพ superuser หรือ supersu หรือไม่ ส่วนใหญ่จะเป็นรูปเครื่องหมาย # หรือไม่ก็เป็นรูปหัวกระโหลกครับ

2. เนื่องจากแอพ superuser มันโหลดได้จากสโตร์ มันต้องเช็คด้วยวิธีนี้ครับ
เปิด terminal emulator ขึ้นมา มันก็จะขึ้นตัวหนังสือแล้วต่อด้วยเครื่องหมาย $ แล้วตามตัวตัวกระพริบ
ให้พิมพ์ su แล้วกดปุ่ม enter ครับ ถ้ามันขึ้นคำเตือนขึ้นมา ให้กดปุ่ม Allow แล้วเครื่องหมาย $ จะเป็นเครื่องหมาย # แสดงว่าเครื่องนั้น root แล้ว 100% ครับ ถ้าเครื่องที่ยังไม่ root ในหน้า terminal จะฟ้องว่า su : command not found ครับ


----------------วิธีการ Root --------------------
วิธีการ root ผมไม่สามารถตอบคำถามนี้ได้ครับ เพราะการ root ต้องทำเฉพาะรุ่น แต่ละรุ่นก็มีวิธีทำไม่เหมือนกัน วิธีการผมให้ไปค้นหาใน google ดูครับ พวกนี้จะมีวิธีทำโดยละเอียดพร้อมเครื่องมือเสร็จสรรพ ไม่ยากเกินไปสำหรับผู้ใช้ทั่วไปครับ งานนี้ตัวใครตัวมัน เครื่องใครมันครับ

----------------ผลกระทบหลังจากการ Root ------------------
1.แน่นอนว่าเครื่องหมดประกันครับ (แต่ว่ามัน unroot ได้ครับแต่ถ้าดวงซวยมาเสียตอนที่ root แล้วกลับไป unroot ไม่ได้นี่แหละ)
2.ทำให้แอพบางแอพทำงานไม่ได้เนื่องจากมีระบบป้องกันครับ อย่างเกมของ Line ครับ เพราะว่าการ root มันสามารถเข้าถึงหน่วยความจำแบบพิเศษได้ซึ่งก็สามารถโกงเกมได้เช่นเดียวกัน

3.การทำงานของเครื่องเปลี่ยนไปเพราะไปเปลี่ยนการตั้งค่าภายในอย่างแบตอยู่นานขึ้นเพราะไปลด cpu , boot logo เปลี่ยนไป(โดยเฉพาะรอมโม) เครื่องกิน data น้อยลงเพราะ firewall ไป block การเชื่อมต่อบางอย่าง , โฆษณาหายไป(หลายคนชอบ)
4.ความเสถียรลดลงเนื่องมาจากการตั้งค่าที่ผิดไปจากการออกแบบจากทีมวิศวกรของค่ายมือถือนั้นๆ (เหมือนกับรถแต่งอ่ะครับ ยิ่งแต่งมากก็ยิ่งพังเร็ว)
5.ต้องยืนอยู่ในความเสี่ยงและความปลอดภัย ไม่ว่าความเสี่ยงที่จะ root ไม่สำเร็จหรือการตั้งค่าที่ผิดพลาดหรือทำผิดวิธี ซึ่งผู้ที่ทำ root มาให้ในแต่ละรุ่นมักจะมีคำเตือนเสมอในเรื่องความเสี่ยงต่อความเสียหายที่มันอาจจะเกิดขึ้นได้และความปลอดภัยที่มีโอกาสติดมัลแวร์ได้สูงกว่าเครื่องปกติหลายเท่า ซึ่งก็ต้องระวังครับ

--------------- ตอนนี้เราควรจะ Root ดีไหม -----------------
มันเหมือนกับคุณซื้อรถมา ก็จะถามว่าซื้อมาแล้วเราจะไปปรับแต่งอะไรมันหรือเปล่าถ้าไม่ ก็ใช้แบบเดิมๆตั้งแต่ออกมาจากโรงงาน แต่ว่าถ้าต้องการให้เครื่องมันกินน้ำมันน้อยลงหรือติดแก๊สหรือทำให้มันแรงขึ้นโดยใช้เครื่องเดิมๆก็ต้องไปจัดการกับ ECU หรือกลไกอื่นๆ แน่นอนว่าความทนทานลดลงด้วย
การรูทก็เหมือนการเข้าไปเปิดฝากระโปรงรถเพื่อที่จะปรับแต่ง ECU ติดเทอร์โบหรือติดแก๊สโดยที่ไม่ได้ยกเครื่องใหม่มาแต่อย่างใด
ฉะนั้น เราก็ต้องไปดูคำถามด้านบนว่า "ทำไมต้อง root" ถ้าคุณไม่ต้องการในสิ่งที่ยกมาก็ไม่จำเป็นต้อง root ครับเพราะฟังก์ชันเดิมๆก็ครอบคลุมการทำงานอยู่แล้ว เพียงแต่มันไม่สามารถปรับแต่งในทางเทคนิคได้ครับ แต่ถ้าต้องการความสามารถเพิ่มเติมมากกว่าปกติอย่างควบคุมการทำงานของแอพ การจัดการพลังงาน หรือแม้แต่ควบคุมจัดการการใช้ข้อมูลเครือข่าย ซึ่งก็มีความจำเป็นต้องรูทเครื่องครับ

--------------แนะนำแอพสำหรับเครื่อง Root แล้วครับ ----------------
1. Titanium Backup เป็นแอพสำรองข้อมูลครับ https://play.google.com/store/apps/details?id=com.keramidas.TitaniumBackup&hl=en

2. SetCPU for Root Users เป็นโปรแกรมปรับแต่ง CPU ครับว่าจะให้แรงหรือลดพลังให้มันประหยัดแบตได้ครับ
https://play.google.com/store/apps/details?id=com.mhuang.overclocking&feature=search_result

ตัวนี้เป็นตัวเสียเงินครับ ถ้าเอาตัวฟรีแนะนำ CPU Tuner ครับ
https://play.google.com/store/apps/details?id=ch.amana.android.cputuner

3. ROM Manager เป็นแอพสำหรับคนใช้รอมโมครับ(ต้องดูรุ่นที่รองรับด้วยครับ)
https://play.google.com/store/apps/details?id=com.koushikdutta.rommanager&hl=en

4. Greenify เป็นแอพที่ใช้แช่แข็งแอพที่กินแรมครับ
https://play.google.com/store/apps/details?id=com.oasisfeng.greenify

5. Root Uninstaller เป็นโปรแกรมถอนแอพที่อยู่ใน system ครับ(ส่วนมากก็เป็นเกมที่มาในเครื่องหรือแอพอื่นๆที่ไม่ใช่ของที่พัฒนาโดยยี่ห้อนั้นๆ)
https://play.google.com/store/apps/details?id=com.rootuninstaller.free


ก็ขอเพียงเท่านี้ก่อน ถ้าอยากรู้ว่าแอพที่ต้องใช้ root มันมีแอพอะไรบ้างก็หาใน google ล่ะครับใช้คำค้นหา app for rooted phone ครับ

ถ้าท่านใดงง ไม่รู้เรื่อง สงสัยตรงไหน จะให้เจาะลึกประเด็นไหนก็แสดงความคิดเห็นได้ครับ (หรือว่าผมเจาะลึกเกินไป งงอีก)
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
Preview