Logo th.androidermagazine.com
Logo th.androidermagazine.com

การรูทโทรศัพท์ของคุณหมายความว่าอย่างไร

สารบัญ:

Anonim

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

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

สิทธิ์

ก่อนที่เราจะนิยามรูทมันเป็นสิ่งสำคัญที่จะต้องเข้าใจว่าทำไมมันถึงมีอยู่และมันทำงานอย่างไร เป็นเพราะ Android ใช้การอนุญาต (การอนุญาตบน Linux เป็นที่แน่นอน) ในโครงสร้างไฟล์ ทุกไฟล์ทุกโฟลเดอร์และทุกพาร์ติชันมีชุดของการอนุญาต สิทธิ์เหล่านี้จะตัดสินว่าใครสามารถอ่านไฟล์ (ดูหรือเข้าถึงเนื้อหาโดยไม่ต้องเปลี่ยนแปลง) เขียนลงไฟล์ (สามารถเปลี่ยนเนื้อหาของไฟล์นั้นหรือสร้างไฟล์ใหม่ภายในโฟลเดอร์หรือพาร์ติชัน) และเรียกใช้ไฟล์ (เรียกใช้ไฟล์หากเป็นประเภทที่สามารถเรียกใช้ได้เช่นแอป) สิ่งนี้ทำตามผู้ใช้และการอนุญาต - ผู้ใช้บางคนมีสิทธิ์เข้าถึงในขณะที่ผู้ใช้ที่ไม่มีสิทธิ์ที่เหมาะสมจะถูกบล็อกไม่ให้เข้าถึง

เมื่อคุณตั้งค่าโทรศัพท์เป็นครั้งแรกและเปิดเครื่องครั้งแรกคุณจะได้รับ ID ผู้ใช้ หากผู้ใช้รายอื่นลงชื่อเข้าใช้ผ่าน Google พวกเขาจะได้รับ ID ผู้ใช้อื่น เมื่อติดตั้งแอพในโทรศัพท์ของคุณแล้วมันจะกำหนด ID ผู้ใช้ของตัวเองด้วย ระบบนั้นเป็นผู้ใช้และกระบวนการอื่น ๆ ที่จำเป็นต้องใช้บนโทรศัพท์ของคุณอาจมี ID ผู้ใช้ของตัวเอง ทุกสิ่งที่สามารถทำอะไรกับไฟล์ใด ๆ บน Android ของคุณคือผู้ใช้

ระบบของผู้ใช้และการอนุญาตคือ Android ติดตามว่าใครสามารถทำอะไรได้บ้าง

สมมติว่าคุณติดตั้งแอพส่งข้อความ มันจะได้รับ ID ผู้ใช้เมื่อคุณติดตั้ง นอกจากนี้ยังได้รับจุดบนพาร์ติชันข้อมูลของคุณเองว่ามีเพียงการเข้าถึง คุณมีสิทธิ์ดำเนินการแอพและเมื่อแอพทำงานนั้นจะมีสิทธิ์เข้าถึงโฟลเดอร์ข้อมูลและไฟล์ของตัวเอง แอพอาจขออนุญาตในการเข้าถึงสิ่งต่างๆเช่นสมุดที่อยู่หรือการ์ด SD หรือคลังภาพ ถ้าคุณตอบว่าใช่สำหรับคำขอเหล่านี้ (หรือถ้าคุณเห็นด้วยกับสิทธิ์ของ Android รุ่นเก่า) ID ผู้ใช้ของแอปจะได้รับอนุญาตให้ใช้ไฟล์ข้อมูลของสิ่งต่าง ๆ ซึ่งหมายความว่ามันสามารถดูที่โฟลเดอร์ข้อมูลและเนื้อหา พวกเขาหรือเพิ่มไฟล์ใหม่ แอปไม่สามารถเข้าถึงไฟล์ข้อมูลใด ๆ ที่ไม่ได้รับอนุญาตให้ "ดู" ได้ นั่นหมายถึง (ในตัวอย่างของเรา) มันไม่สามารถทำสิ่งต่าง ๆ เช่นดูที่ฐานข้อมูลการตั้งค่าหรือเข้าถึงโฟลเดอร์ข้อมูลของแอปพลิเคชันอื่น แซนด์บ็อกซ์มักใช้คำนี้ - แอปถูกแซนด์บ็อกซ์และสามารถเล่นในแซนด์บ็อกซ์ที่ได้รับอนุญาตเท่านั้น

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

การเปลี่ยนการอนุญาต

แม้ว่าจะเป็นไปได้ในทางเทคนิคที่จะเปลี่ยนวิธีการบู๊ตโทรศัพท์ของคุณและไฟล์ที่ใช้ในการเริ่มระบบการทำงานและกำหนดสิทธิ์ผู้ใช้ของคุณให้สูงขึ้น แต่นั่นก็ไม่ปลอดภัย แต่ Android (และระบบที่ใช้ Unix หรือ Linux ส่วนใหญ่) มีสิ่งที่เรียกว่าผู้ใช้รูทและสนับสนุน SubstituteUser binary (คิดว่าไบนารีเป็นแอปขนาดเล็ก) เพื่อเปลี่ยน ID ผู้ใช้ สิ่งเหล่านี้ถูกใช้เพื่อจัดการระบบในระดับแกนกลาง

เนื่องจากผู้ที่ทำโทรศัพท์ของคุณไม่ต้องการให้คุณเข้าถึง ID ผู้ใช้รูทได้ง่าย - และเหตุผลทั้งหมดนั้นไม่เห็นแก่ตัวเพราะมันยังช่วยปกป้องคุณและข้อมูลส่วนตัวของคุณด้วย - ไบนารี SubstitUser ไม่รวมอยู่ในงานสร้างส่วนใหญ่ของ Android หากไม่มีผู้ใช้ทดแทนเราจะไม่สามารถเปลี่ยน ID ผู้ใช้ของเราได้ สิ่งที่ระดับระบบส่วนใหญ่ใน Android มีชื่อง่ายคล้ายกันโดยวิธี ความปลอดภัยหลัก (ไฟล์ใน bootloader และ / หรือเคอร์เนลเอง) ถูกสร้างขึ้นเพื่อป้องกันไม่ให้คุณเปลี่ยน ID ผู้ใช้เป็นส่วนหนึ่งของ SELinux (S ecurity- E nhanced Linux - บอกชื่อง่าย ๆ) โมดูลเคอร์เนล. โทรศัพท์บางรุ่น (Knox ของ Samsung อยู่ในใจ) มีการป้องกันเพิ่มเติมและเกือบทุก บริษัท ที่สร้าง Android จำเป็นต้องมีเพื่อที่จะทำการเปลี่ยนแปลง bootloader จะต้องถูกปลดล็อคเพื่อให้สามารถเปลี่ยนไฟล์เหล่านี้และอนุญาตให้คุณเปลี่ยนรหัสผู้ใช้. โทรศัพท์บางรุ่นเช่น BlackBerry Priv จะก้าวไปอีกขั้นและจะไม่บู๊ตหากเราเปลี่ยนอะไรเลย (แม้ว่าเราจะทำได้)

ในการเป็นรูทคุณต้องเปลี่ยน ID ผู้ใช้ของคุณ

เมื่อเราผ่านพ้นสิ่งนั้น - โดยการปลดล็อก bootloader ด้วยวิธีการที่ได้รับอนุญาตหรือการใช้ประโยชน์บางอย่าง - เราสามารถวาง SU binary (SubstitUser) ในจุดที่มันสามารถทำงานได้เมื่อมันถูกเรียกให้ทำงาน - ที่เรียกว่า PATH หากแอพใด ๆ อยู่ใน PATH ID ผู้ใช้ของคุณแอปนั้นจะทำงานโดยไม่บอกระบบว่ามันอยู่ตรงไหน คุณต้องตรวจสอบให้แน่ใจว่าไบนารี SU อยู่ในจุดที่ ID ผู้ใช้ของคุณมีสิทธิ์ในการเรียกใช้ไฟล์ (เรียกใช้) แอปอื่น ๆ (Google Play มีแอปจำนวนมากที่ต้องการการอนุญาตรูท) จะต้องมีการเข้าถึงแบบเดียวกัน เมื่อคุณใช้วิธีการรูทโทรศัพท์ของคุณทั้งหมดนี้จะถูกแยกออกโดยคนที่สร้างวิธีการรูท

เมื่อทั้งหมดที่อยู่ในสถานที่เราสามารถเรียกใช้ไบนารี SU (หรือแอปอื่นสามารถเรียกใช้ไบนารี SU)

การเข้าถึงรูท

นี่คือตำแหน่งที่รูทเข้ามาไบนารี SU ใช้แฟล็กเมื่อระบบรันเพื่อบอกระบบว่า ID ผู้ใช้ใดที่คุณต้องการเปลี่ยน ตัวอย่างเช่นถ้าฉันใช้ไบนารี SU บนคอมพิวเตอร์ Ubuntu ของฉันเช่นนี้ "su Jim -c nano" ฉันจะเรียกใช้คำสั่ง nano ในฐานะผู้ใช้ Jim (หลังจากส่งรหัสผ่านของ Jim) หากคุณรันไบนารี SU โดยไม่มีแฟล็กหรืออาร์กิวเมนต์มันจะสลับคุณไปที่ผู้ใช้รูท โดยปกติคุณจะต้องระบุรหัสผ่าน แต่เนื่องจาก "root" เป็นผู้ใช้ที่ไม่ได้ใช้บน Android จึงไม่มีรหัสผ่าน การรันคำสั่ง "su" จะสลับคุณไปที่รูทผู้ใช้และกำหนด ID ผู้ใช้เป็น 0 และทำให้คุณอยู่ในกลุ่มรูท ตอนนี้คุณเป็นผู้ใช้ขั้นสูง

ในฐานะผู้ใช้ขั้นสูงคุณสามารถทำทุกอย่างกับไฟล์โฟลเดอร์หรือพาร์ติชันบน Android ของคุณ ไม่ว่าอะไรก็ตามเราหมายถึงอะไรอย่างแท้จริง คุณสามารถลบแอป bloatware และคุณยังสามารถลบไฟล์ระบบที่สำคัญที่ทำให้โทรศัพท์ของคุณพัง คุณสามารถทำสิ่งต่าง ๆ กับฮาร์ดแวร์เช่นเปลี่ยนความถี่ของ CPU และทำลายโทรศัพท์ของคุณตลอดไป

รูทเป็นผู้ใช้ระดับสูงที่สามารถทำอะไรได้บ้าง และเราหมายถึงทุกสิ่ง

แอพสามารถทำสิ่งเดียวกัน SU ถูกวางไว้ที่ไหนในแอพพลิเคชั่น PATH และแอพใด ๆ ที่สามารถเรียกมันและเปิดใช้งานได้ แอพนั้นมีสิทธิ์ผู้ใช้ขั้นสูงและสามารถทำสิ่งที่มันชอบกับไฟล์ใดก็ได้ในโทรศัพท์ของคุณ นี่คือเหตุผลที่คนที่ทำให้โทรศัพท์ของคุณไม่ต้องการให้คุณเข้าถึงระดับนี้และ บริษัท ที่อนุญาตให้คุณปลดล็อค bootloader และเปลี่ยนสิ่งต่าง ๆ ยังไม่วาง SU SU บนโทรศัพท์ของคุณเป็นค่าเริ่มต้น การเข้าถึงรูทโดยไม่มีวิธีควบคุมว่าใครสามารถใช้อะไรได้บ้างเป็นอันตรายต่อซอฟต์แวร์โทรศัพท์และข้อมูลส่วนตัวของคุณ

นั่นเป็นเหตุผลที่คุณต้องติดตั้งแอพที่บังคับให้คุณอนุญาตให้เข้าถึงรูทเมื่อใดก็ตามที่คุณหรือแอพอื่นพยายามเรียกใช้สิทธิ์ผู้ใช้ขั้นสูง เวลาส่วนใหญ่เมื่อคุณใช้วิธีรูทสำหรับโทรศัพท์ของคุณจะรวมอยู่ด้วยพร้อมกับไบนารีที่มีประโยชน์อื่น ๆ เช่นชุดเครื่องมือ BusyBox หากคุณทำสิ่งต่างๆด้วยมือคุณจะต้องติดตั้งด้วยตัวเอง SuperSU โดย Chainfire ใน Google Play เป็นโปรแกรมที่ดีในการเริ่มต้น

อัตราต่อรองและสิ้นสุด

โทรศัพท์จำนวนมากและวิธีการรูทบางอย่างทำสิ่งที่แตกต่างออกไปเล็กน้อย (Android 4.3 ทำให้เกิดการเปลี่ยนแปลงจำนวนมาก) และต้องการสคริปต์หรือภูต (คุณจะเห็นคำเช่น daemonsu หรือ su.d ที่กล่าวถึง) แทนที่จะวางไบนารี SU ไว้ สิ่งเหล่านี้ถูกใช้เพื่อเรียก SubstitUser เพื่อให้คุณสามารถสลับไปยังผู้ใช้รูทเช่นเดียวกับวิธีการแบบไบนารีดิบ คนที่คิดวิธีรูทโทรศัพท์ของคุณได้เรียงลำดับทั้งหมดและมันจะทำงานเหมือนกันในด้านที่ผู้ใช้หันเข้าหากัน

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

ในที่สุดฉันต้องการเน้นว่าหากคุณมีคำถามเหล่านี้คุณต้องพิจารณาว่าคุณพร้อมที่จะรูทเครื่อง Android หรือไม่ เราไม่ได้ล้อเล่นเมื่อเราบอกว่ามันง่ายที่จะทำลายโทรศัพท์ของคุณด้วยการเข้าถึง SuperUser ไม่มีเหตุผลที่ต้องละอายใจที่คุณต้องอ่านหนังสือเล็กน้อยหรือถามคำถามเพิ่มเติมอีกสองสามข้อก่อนที่คุณจะทำสิ่งต่าง ๆ ที่อาจทำให้โทรศัพท์ของคุณพังหรือให้แอปเข้าถึงข้อมูลทั้งหมดของคุณ

นั่นคือสิ่งที่เรามาที่นี่เพื่อ