Làm thế nào để root hoạt động?


23

Hoặc, làm cách nào để root thiết bị của tôi mà không cần trình khởi chạy?

Hướng dẫn root cho các thiết bị Android mà tôi đã thấy thường có dạng sau:

  1. Tải về Gingerbreak.apk
  2. Chạy Gingerbreak, nhấp vào thiết bị root
  3. Quan sát rằng Superuser.apkđã được cài đặt một cách kỳ diệu, có thể cùng với busyboxvà những thứ khác, và tận hưởng lòng tốt của bạn.

Điều tôi muốn biết là đây: việc root thực sự xảy ra như thế nào? Gingerbreak làm gì?

Tôi hiểu kết quả cuối cùng của root:

  • su có mặt và làm việc
  • Superuser.apk được cài đặt và kiểm soát truy cập vào su
  • Nhiều tiện ích có mặt, được cung cấp bởi BusyBox (tùy chọn?)

Tôi cũng nghĩ rằng tôi hiểu ý tưởng cơ bản về cách Gingerbreak bắt đầu - nó khai thác một số lỗ hổng leo thang đặc quyền địa phương và sử dụng các quyền hạn mới được tìm thấy để triển khai Superuser và bất cứ điều gì khác là cần thiết.

Vì vậy, trừ khi tôi sai trong một số cách hiểu tôi đã trình bày ở trên, cốt lõi của điều tôi muốn biết là trình cài đặt gốc làm gì để triển khai và kích hoạt Superuser. Có vẻ như chỉ cần đặt Superuser.apkđúng chỗ sẽ không đủ - làm thế nào để nó được phép truy cập root? Làm thế nào để nó được nối lên để kiểm duyệt quyền truy cập cho các ứng dụng khác?

Gingerbreak làm gì sau khai thác để kích hoạt và bảo mật quyền truy cập root?


Câu trả lời:


16

APK và khai thác làm gì (thường) như sau:

  • APK đặt đúng tệp vào đúng nơi để chạy khai thác
  • APK chạy khai thác
  • Các nỗ lực khai thác để đạt được quyền truy cập root
  • Nếu thành công, khai thác / hệ thống khai thác dưới dạng đọc-ghi và chạy tập lệnh cài đặt
  • Tập lệnh cài đặt cố gắng cài đặt APK nhị phân và siêu người dùng su và khởi động lại

Ví dụ, trang này nêu chi tiết cách khai thác của rageagainstthecage để đạt được các đặc quyền nâng cao.


2
Cảm ơn. Tôi nghĩ điều này thu hẹp câu hỏi thực sự của tôi hơn nữa - chính xác thì kịch bản cài đặt làm gì? Hoặc tôi có thể tìm một bản sao để đọc ở đâu? Hầu hết các tài liệu tôi thấy đều rất mờ - Tải xuống APK này, nó hoạt động với một liên kết đến một số trang chia sẻ tệp ngẫu nhiên.
Michael Ekstrand

su cho phép nâng cao các đặc quyền trong các môi trường giống như Unix (Android dựa trên cái gì). Khi nhị phân su được cài đặt, ứng dụng / tập lệnh sau đó có thể sử dụng các lệnh su và sudo để chạy và truy cập các phần của hệ thống tệp thường bị hạn chế cho người dùng thông thường. Về bản chất, đó là lý do tại sao một người sử dụng điện thoại - để có thể truy cập vào các phần "bị hạn chế" của hệ thống và có thể thực hiện các lệnh mà người dùng thông thường không được phép thực hiện.
Sparx

9

Sau khi đào nhiều, cuối cùng tôi đã tìm ra nó. Tôi đã sai về nơi phép thuật - nó không có trong tập lệnh cài đặt; tất cả những gì phải làm là đặt suSuperuser.apknhị phân vào đúng chỗ và đặt quyền của chúng. Vì vậy, nó thực sự đơn giản như thả tập tin vào vị trí và thiết lập quyền. Không có dây ma thuật.

Phép thuật xảy ra trong sunhị phân (xem nguồncâu hỏi này ). Tôi đã (không chính xác) nghĩ rằng đó sulà một tiêu chuẩn su, và mọi thứ bằng cách nào đó được nối với nhau để truy cập vừa phải vào nhị phân đó Superuser.apk.

Sai rồi. Điều thực sự xảy ra đơn giản hơn nhiều: Superuser cung cấp một triển khai tùy chỉnh suxác thực quyền truy cập thông qua Superuser và cơ sở dữ liệu ứng dụng được ủy quyền của nó.

Vì vậy, quá trình root rất đơn giản như @Sparx đã nói. Phần mềm được triển khai có chứa phép thuật.


Tôi nghĩ điều này bỏ lỡ một điều quan trọng: subản thân nó không phải là phép thuật, điều kỳ diệu duy nhất về nó là HĐH đối xử với nó đặc biệt. Tất cả những gì phải làm là trả về "OK" hoặc "Không ổn" khi được HĐH hỏi liệu có cho phép một ứng dụng cụ thể nâng cao quyền hay không. Nếu nó bị thiếu hoặc luôn trả về "Không ổn" thì các ứng dụng thông thường không bao giờ có thể root được. Vì vậy, root về cơ bản là quá trình đặt sunhị phân đôi khi có thể trả về "OK", vào vị trí được bảo vệ trên một hệ thống không được phép thực hiện.
RomanSt

4
all that has to do is put the su and Superuser.apk binaries in the right place and set their permissionsnhư thể điều này sẽ dễ dàng mà không cần khai thác, khai thác là ma thuật.
Alex

1
@Alex Không hẳn. Tôi đã đặc biệt cố gắng tìm ra những gì một người khai thác sau khai thác . Trong trường hợp này, vì tôi có quyền truy cập root thông qua ADB, vì vậy tôi không muốn chạy khai thác một cách không cần thiết.
Michael Ekstrand
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.