การรูตทำงานอย่างไร


23

หรือฉันจะรูทอุปกรณ์โดยไม่มีรูทเลอร์ได้อย่างไร?

คำแนะนำในการรูทสำหรับอุปกรณ์ Android ที่ฉันเห็นเป็นแบบฟอร์มต่อไปนี้:

  1. ดาวน์โหลด Gingerbreak.apk
  2. เรียกใช้ Gingerbreak คลิก "อุปกรณ์รูท"
  3. สังเกตว่าSuperuser.apkได้รับการติดตั้งอย่างน่าอัศจรรย์อาจจะพร้อมกับbusyboxและสิ่งอื่น ๆ และเพลิดเพลินไปกับความดีงามของคุณ

สิ่งที่ฉันอยากรู้ก็คือ: การรูตเกิดขึ้นได้อย่างไร? Gingerbreak ทำหน้าที่อะไร?

ฉันเข้าใจผลลัพธ์สุดท้ายของการรูท:

  • su เป็นปัจจุบันและทำงานอยู่
  • Superuser.apk มีการติดตั้งและควบคุมการเข้าถึง su
  • มีสาธารณูปโภคต่าง ๆ ให้บริการโดย BusyBox (เป็นทางเลือกหรือไม่)

ฉันยังคิดว่าฉันเข้าใจแนวคิดพื้นฐานของวิธีการเริ่มต้นของ Gingerbreak - ใช้ประโยชน์จากช่องโหว่การเพิ่มระดับสิทธิพิเศษในพื้นที่และใช้พลังที่ค้นพบใหม่เพื่อปรับใช้ Superuser และสิ่งอื่น ๆ ที่จำเป็น

ดังนั้นหากฉันเข้าใจผิดเกี่ยวกับความเข้าใจที่ฉันวางไว้ข้างต้นหลักของสิ่งที่ฉันอยากรู้คือสิ่งที่ผู้ติดตั้งรูททำเพื่อปรับใช้และเปิดใช้งาน Superuser ดูเหมือนว่าเพียงแค่วางSuperuser.apkในสถานที่ที่เหมาะสมจะไม่เพียงพอ - มันจะได้รับอนุญาตการเข้าถึงรากได้อย่างไร มันจะถูกเชื่อมโยงถึงปานกลางเพื่อเข้าถึงแอพพลิเคชั่นอื่น ๆ ได้อย่างไร?

Gingerbreak โพสต์เอาเปรียบเพื่อเปิดใช้งานและรักษาความปลอดภัยการเข้าถึงรูทอย่างไร


1
ดูเพิ่มเติม: android.stackexchange.com/questions/236/...
เบียร์

คำตอบ:


16

สิ่งที่ APK และการใช้ประโยชน์ทำ (ปกติ) มีดังต่อไปนี้:

  • APK วางไฟล์ที่ถูกต้องในตำแหน่งที่ถูกต้องเพื่อเรียกใช้ช่องโหว่
  • APK ใช้การหาประโยชน์
  • การใช้ประโยชน์พยายามเข้าถึงการเข้าถึงรูท
  • หากประสบความสำเร็จช่องโหว่จะทำการ remounts / ระบบเป็นอ่าน - เขียนและรันสคริปต์ตัวติดตั้ง
  • สคริปต์ตัวติดตั้งพยายามติดตั้ง su binary และ superuser APK และทำการ reboots

ตัวอย่างเช่นหน้านี้แสดงรายละเอียดเกี่ยวกับวิธีการใช้ประโยชน์จาก rageagainstthecage พยายามรับสิทธิ์ยกระดับ


2
ขอบคุณ ผมคิดว่านี่แคบคำถามที่แท้จริงของฉันต่อไป - สิ่งที่ว่าไม่สคริปต์ติดตั้งทำอย่างไร หรือฉันจะหาสำเนาอ่านได้ที่ไหน เอกสารส่วนใหญ่ที่ฉันเห็นนั้นทึบมาก - "ดาวน์โหลด APK นี้ใช้งานได้" พร้อมลิงก์ไปยังเว็บไซต์แบ่งปันไฟล์แบบสุ่ม
Michael Ekstrand

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

9

หลังจากขุดมามากฉันก็คิดออก ฉันผิดเกี่ยวกับเวทมนตร์อยู่ที่ไหน - มันไม่ได้อยู่ในสคริปต์ของตัวติดตั้ง สิ่งที่ต้องทำคือใส่suและSuperuser.apkไบนารีในสถานที่ที่เหมาะสมและกำหนดสิทธิ์ของพวกเขา ดังนั้นจึงเป็นเรื่องง่ายเพียงวางไฟล์ในสถานที่และการตั้งค่าการอนุญาต ไม่มีสายมายากล

ความมหัศจรรย์เกิดขึ้นในsuไบนารี (ดูแหล่งที่มาและคำถามนี้ ) ฉันถูก (ถูก) ความคิดที่suเป็นมาตรฐานและสิ่งที่ได้รับสายอย่างใดขึ้นอยู่กับการเข้าถึงในระดับปานกลางที่ผ่านไบนารีsuSuperuser.apk

ไม่ถูกต้อง. สิ่งที่เกิดขึ้นจริงนั้นง่ายกว่ามาก: Superuser มอบการใช้งานที่กำหนดเองของการsuตรวจสอบสิทธิ์การเข้าถึงผ่าน Superuser และฐานข้อมูลแอปพลิเคชันที่ได้รับอนุญาต

ดังนั้นกระบวนการรูตจึงง่ายเหมือนที่ @Sparx พูด ซอฟต์แวร์ที่ใช้งานมีความมหัศจรรย์


ฉันคิดว่านี่เป็นสิ่งสำคัญที่ขาดหายไป: suตัวมันเองไม่ใช่เวทมนต์เลยเวทมนตร์เพียงอย่างเดียวเกี่ยวกับมันคือระบบปฏิบัติการปฏิบัติต่อมันเป็นพิเศษ สิ่งที่ต้องทำคือส่งคืน "ตกลง" หรือ "ไม่ตกลง" เมื่อถามโดยระบบปฏิบัติการว่าจะอนุญาตให้แอปพลิเคชันบางตัวยกระดับการอนุญาตหรือไม่ หากมันหายไปหรือส่งคืน "ไม่ตกลง" แสดงว่าแอปทั่วไปไม่สามารถรูทได้ ดังนั้นการรูทนั้นเป็นกระบวนการวางsuไบนารีที่บางครั้งสามารถส่งคืน "ตกลง" ในตำแหน่งที่ได้รับการป้องกันในระบบซึ่งไม่ควรอนุญาตให้ทำสิ่งนี้
RomanSt

4
all that has to do is put the su and Superuser.apk binaries in the right place and set their permissionsราวกับว่ามันจะง่ายถ้าไม่มีช่องโหว่การหาประโยชน์เป็นเวทมนตร์
อเล็กซ์

1
@Alex ไม่มาก ผมก็เฉพาะพยายามที่จะคิดออกสิ่งที่ Rooter ไม่โพสต์ใช้ประโยชน์ ในกรณีนี้เนื่องจากฉันมีการเข้าถึงรูทผ่าน ADB ดังนั้นฉันจึงไม่ต้องการใช้ช่องโหว่
Michael Ekstrand
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.