Helpex - Trao đổi & giúp đỡ Đăng nhập
24

Tôi cần tạo một tập lệnh thực thi nhiều thứ trên thiết bị Android, thiết bị của tôi đã được root, khi tôi nhập trên shell, tôi có thể đưa ra lệnh su và nó hoạt động nhưng tôi cần chuyển lệnh này như:

adb shell "
su;
mv /sdcard/Download/app_test /data/local;
cd /data/local;
./app_test;
exit;
exit;
"

Khi tôi đặt một số lệnh trước khi su hoạt động, theo những gì tôi đọc được thì su tạo ra một trình bao mới trả về ngay lập tức, nhưng tôi cần đưa ra các lệnh trên trình bao su, làm thế nào tôi có thể làm điều đó?

24 hữu ích 2 bình luận 121k xem chia sẻ
31

Vâng, nếu điện thoại của bạn đã được root, bạn có thể chạy lệnh bằng su -clệnh.

Dưới đây là ví dụ về một catlệnh trên build.proptệp để lấy thông tin sản phẩm của điện thoại.

adb shell "su -c 'cat /system/build.prop |grep "product"'"

Điều này gọi quyền root và chạy lệnh bên trong ' '.

Lưu ý 5 dấu ngoặc kép, bạn phải đóng TẤT CẢ các dấu ngoặc kép cuối nếu không bạn sẽ gặp lỗi.

Để làm rõ, định dạng là như thế này.

adb shell "su -c '[your command goes here]'"

Đảm bảo rằng bạn nhập lệnh CHÍNH XÁC theo cách bạn thường làm khi chạy nó trong trình bao.

31 hữu ích 1 bình luận chia sẻ
6

Các sulệnh không thực hiện bất cứ điều gì, nó chỉ nâng cao đặc quyền của bạn.

Cố gắng adb shell su -c YOUR_COMMAND.

6 hữu ích 0 bình luận chia sẻ
6

Trên Linux của mình, tôi gặp lỗi với

adb shell "su -c '[your command goes here]'"

su: uid / gid '-c' không hợp lệ

Các giải pháp là trên Linux

adb shell su 0 '[your command goes here]'
6 hữu ích 0 bình luận chia sẻ
2

Theo mặc định, CM10 chỉ cho phép truy cập root từ Ứng dụng không phải ADB. Đi tới Cài đặt -> Tùy chọn nhà phát triển -> Quyền truy cập gốc và thay đổi tùy chọn thành "Ứng dụng và ADB".

2 hữu ích 0 bình luận chia sẻ
0

đối với trường hợp sử dụng của tôi, tôi muốn lấy hàm băm SHA1 từ tệp cấu hình magisk. dưới đây làm việc cho tôi.

adb shell "su -c "cat /sbin/.magisk/config | grep SHA | awk -F= '{ print $2 }'""
0 hữu ích 0 bình luận chia sẻ
0

1. adb shell su

thắng cmd

C:\>adb shell id
uid=2000(shell) gid=2000(shell)

C:\>adb shell 'su -c id'
/system/bin/sh: su -c id: inaccessible or not found

C:\>adb shell "su -c id"
uid=0(root) gid=0(root) groups=0(root) context=u:r:magisk:s0

C:\>adb shell su -c id   
uid=0(root) gid=0(root) groups=0(root) context=u:r:magisk:s0

thắng msys bash

msys2@bash:~$ adb shell 'su -c id'
uid=0(root) gid=0(root) groups=0(root) context=u:r:magisk:s0
msys2@bash:~$ adb shell "su -c id"
uid=0(root) gid=0(root) groups=0(root) context=u:r:magisk:s0
msys2@bash:~$ adb shell su -c id
uid=0(root) gid=0(root) groups=0(root) context=u:r:magisk:s0

2. adb shell -t

nếu muốn chạy amcmd, -tcó thể yêu cầu tùy chọn:

C:\>adb shell su -c am stack list
cmd: Failure calling service activity: Failed transaction (2147483646)

C:\>adb shell -t su -c am stack list
Stack id=0 bounds=[0,0][1200,1920] displayId=0 userId=0
...

tùy chọn vỏ:

 shell [-e ESCAPE] [-n] [-Tt] [-x] [COMMAND...]
     run remote shell command (interactive shell if no command given)
     -e: choose escape character, or "none"; default '~'
     -n: don't read from stdin
     -T: disable pty allocation
     -t: allocate a pty if on a tty (-tt: force pty allocation)
     -x: disable remote exit codes and stdout/stderr separation

Android Debug Bridge phiên bản 1.0.41
Phiên bản 30.0.5-6877874

0 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ android linux shell android-ndk adb , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading