Dành cho thiết bị Android đã root
Bạn có thể xem xét việc cài đặt ứng dụng BusyBox của Stephen. Trên mỗi Play Store, phiên bản Android tối thiểu được ứng dụng hỗ trợ là Android 1.6 và đây là một ứng dụng được cập nhật tốt. Về bản chất, nó cài đặt nhị phân busybox vào /system/xbin
và đặt các liên kết tượng trưng trong cùng thư mục cho tất cả các tiện ích mà nó có.
Là gì BusyBox (không phải là ứng dụng)?
BusyBox kết hợp các phiên bản nhỏ của nhiều tiện ích UNIX phổ biến thành một tệp thực thi nhỏ. Nó cung cấp thay thế cho hầu hết các tiện ích bạn thường tìm thấy trong tập tin GNU, shellutils, v.v ... Các tiện ích trong BusyBox thường có ít tùy chọn hơn so với anh em GNU đầy đủ tính năng của chúng; tuy nhiên, các tùy chọn được bao gồm cung cấp chức năng mong đợi và hoạt động rất giống với các đối tác GNU của chúng. BusyBox cung cấp một môi trường khá hoàn chỉnh cho bất kỳ hệ thống nhỏ hoặc nhúng nào.
Dưới đây là danh sách chính thức của các tiện ích nó cung cấp. find
công cụ có thể được tìm thấy ở đó.
Một thay thế có thẩm quyền cho BusyBox là Toybox, đã thay thế Toolbox trong bản phát hành Marshmallow.
Toybox kết hợp nhiều tiện ích dòng lệnh Linux phổ biến lại với nhau thành một tệp thực thi được cấp phép BSD. Nó đơn giản, nhỏ, nhanh và tuân thủ các tiêu chuẩn hợp lý ( POSIX-2008 và LSB 4.1 ).
Dưới đây là danh sách chính thức của các tiện ích toybox hỗ trợ. Hiện tại, BusyBox dường như hỗ trợ nhiều công cụ hơn Toybox.
Tôi không nghĩ có một ứng dụng tồn tại để cài đặt nhị phân Toybox, vì vậy bạn có thể sử dụng câu trả lời của tôi ở đây cho mục đích cài đặt. Lưu ý rằng câu trả lời có thể được sử dụng để cài đặt cả Toybox và BusyBox. Chỉ điều kiện tiên quyết là tải xuống nhị phân từ các nguồn chính thức.
Liên kết tải xuống chính thức:
Dành cho thiết bị Android chưa root
Tôi không biết liệu có một cách tiếp cận phổ quát cho tất cả các phiên bản Android hay không. Điều đó nói rằng, đối với Android 4.0 trở lên BusyBox Install (Không root) yêu cầu hoạt động. Có thể có một số ứng dụng đầu cuối đi kèm với nhị phân BusyBox. Tôi đã không thử nghiệm cá nhân bất kỳ ứng dụng thiết bị đầu cuối nào như vậy nhưng thật dễ hiểu rằng nhược điểm lớn nhất của chúng là: bạn không thể sử dụng bất kỳ hoặc sử dụng tốt chúng bằng adb .
Tuy nhiên, có một cách tiếp cận, dường như hoạt động cho mọi phiên bản Android trên 4.2 (dựa trên các thử nghiệm của tôi). /data/local/tmp
là một thư mục có thể được chỉnh sửa bởi shell
người dùng. adb shell
cấp cho bạn shell từ xa trên thiết bị và đăng nhập với cùng một người dùng.
Tất cả những gì bạn cần làm là đặt nhị phân BusyBox / Toybox /data/local/tmp
và tạo liên kết tượng trưng cho các tiện ích trong cùng thư mục. Bạn có thể sử dụng các bước sau cho điều đó.
(Yêu cầu thiết lập adb trong PC.)
adb đẩy LOCAL_FILE / data / local / tmp / # thay thế LOCAL_FILE bằng đường dẫn tệp của nhị phân toybox / busybox trong PC
vỏ adb
chmod 755 / data / local / tmp / FILE # thiết lập quyền thích hợp cho tệp nhị phân được đẩy. Thay thế FILE bằng tên của nhị phân bạn đã đẩy trong bước đầu tiên. Khuyến nghị là sử dụng một từ duy nhất làm tên với tất cả các chữ cái viết thường
box = / data / local / tmp / FILE # thiết lập một biến cục bộ để sử dụng trong bước tiếp theo. Thay thế FILE khi thích hợp
$ hộp | $ hộp sed 's / \ / \ n / g' | $ hộp sed '$ d' | trong khi đọc dòng; làm $ box ln -sf / data / local / tmp / FILE / data / local / tmp / $ line; xong # Chúng tôi đang thực hiện nhị phân được tham chiếu bởi $ box để liệt kê tất cả các tiện ích, sau đó là tạo một danh sách và sau đó cho mỗi mục trong danh sách, chúng tôi đang tạo một liên kết tượng trưng trong một thư mục.
Izzy đã đề xuất cách đơn giản nhất để đặt liên kết tượng trưng cho nhị phân BusyBox .
adb shell / data / local / tmp / FILE --install -s / data / local / tmp / # Thay thế FILE cho phù hợp. --install -s sẽ tạo các liên kết tượng trưng mong muốn cho bạn trong một thư mục. Đường dẫn của thư mục được cung cấp bên cạnh nó.
Tất cả những công cụ đó bây giờ có thể được truy cập bằng cách sử dụng đường dẫn tuyệt đối /data/local/tmp/TOOL
. Thay thế CÔNG CỤ bằng tên tiện ích. Ví dụ sử dụng lệnh gọi find find:
adb shell /data/local/tmp/find --help
adb shell /data/local/tmp/FILE find --help # alternative way of using a tool
Đối với các phiên shell tương tác, bạn có thể thêm vị trí của FILE vào $ PATH bằng lệnh xuất:
export PATH = / data / local / tmp: $ PATH # đây là tiền tố / data / local / tmp vào giá trị hiện có của $ PATH. xuất sẽ đảm bảo rằng các vỏ con nhìn thấy cùng một giá trị trong $ PATH
Xong việc đó, giờ đây bạn có thể sử dụng find hoặc một tiện ích BusyBox / Toybox khác theo cách này:
vỏ adb
tìm - giúp
Cần lưu ý rằng những thay đổi trong $ PATH chỉ được áp dụng cho phiên shell hiện tại. Điều đó có nghĩa là mỗi khi bạn khởi chạy shell bằng adb, bạn sẽ xuất $ PATH.
Điều đó nói rằng, không có giải pháp nào chỉ dành cho Android cho các phiên shell không tương tác ngoài việc tìm cách tạo biến mà sự tồn tại và giá trị của nó sẽ tồn tại ngoài phiên shell hiện tại trong PC của bạn chứ không phải Android . Thí dụ:
adb shell $lolcat # $lolcat is a temporary variable in my shell on PC and it was assigned the value /system/xbin/toybox. My bash shell is replacing $lolcat with its value and then passing it to adb shell (or you can say, it first expanded the variable and then executed the whole command)