2012-03-05 31 views
5

Sử dụng adb.exe đi kèm với SDK Android, tôi có thể truy cập root vào thiết bị Android. Vì mục đích thử nghiệm, tôi cũng muốn cấp quyền root cho ứng dụng Android. Tôi biết rằng ứng dụng đang chạy trong một tài khoản cụ thể có tên là app_68. Có lệnh adb shell để thêm app_68 vào "nhóm gốc" không?Cho phép ứng dụng Android root

Cảm ơn trước vì nhận xét/giải pháp của bạn.

+1

Tôi tin rằng phương pháp duy nhất là sử dụng dòng lệnh như: 'Runtime.getRuntime(). Exec (" su ");' Điều đó sẽ thay đổi UID của ứng dụng thành 0 để nó có các đặc quyền gốc. (Tất nhiên các tệp nhị phân chính xác phải đã được cài đặt). [This] (http://code.google.com/p/roottools/) là một trợ giúp lớn nếu bạn đang sử dụng thư mục gốc trong ứng dụng của mình. – Jakar

+0

Tôi đã cố thực hiện "Runtime.getRuntime(). Exec (" su ");" từ một ứng dụng Android thử nghiệm và nhận được thông báo lỗi "su: uid 10069 không được phép su". Tôi đoán ứng dụng không thể thay đổi chính nó để chạy dưới tài khoản su. – ytw

+3

Bạn sẽ phải cài đặt SuperUser và BusyBox. Nếu bạn đã thực hiện cả hai, thì có thể bạn đã vô tình từ chối ứng dụng thử nghiệm của mình trong SuperUser – Jakar

Trả lời

0

Bạn cần superuser (su) nhị phân để chạy ứng dụng của bạn với tư cách người dùng root. Đối với chạy bằng root thực hiện điều này:

Process p = Runtime.getRuntime().exec("su"); 
DataOutputStream os = new DataOutputStream(p.getOutputStream()); 

os.writeBytes("yourCommand\n"); 

os.writeBytes("exit\n"); 

os.flush(); 
os.close(); 
try { p.waitFor(); } catch (InterruptedException e) {} 

Nếu bạn nhận được một cái gì đó giống như su: uid xxxx not allowed, sau đó bạn cần phải cập nhật của bạn su-nhị phân sử dụng SuperSU.

Xem thêm https://stackoverflow.com/a/26654728/4479004 nếu bạn muốn có một đầy đủ chi tiết và làm việc source.Just nhìn vào mã bên dưới:

Cập nhật: Để có được kết quả (đầu ra để stdout), sử dụng:

Các vấn đề liên quan