Есть busybox и эмуляторы терминала, включающие grep , но для их запуска требуется root. Было бы лучше, если бы они тоже могли работать без рута, но с ограниченным доступом. Мне нужно только grep (доступ только для чтения) файлы в хранилище пользовательских данных.
Уже существует множество текстовых редакторов, но они поддерживают только обычный текстовый поиск путем перехода к текстовой позиции, что далеко не так удобно, как grep , где можно получить желаемые результаты в списке в одном месте.
Вы смешиваете две вещи:
Установщики Busybox на основе приложений по умолчанию требуют root-доступа для установки busybox в масштабах всей системы. Это правда, однако это только потому, что это приложение. После установки бинарника вам не нужен root-доступ.
Кроме того, даже без рута вы также можете установить на свое устройство двоичный файл busybox (или что-то еще):
adb push busybox /sdcard/
/data/local
или /data/local/tmp
: adb shell "cat /sdcard/busybox > /data/local/busybox
«.adb shell chmod 0555 /data/local/busybox
Теперь вы можете выполнить его, используя полный путь из терминального приложения или внутри adb shell
:
/data/local/busybox grep ...
.
chmod
недоступно в версиях Android до Lollipop.cat
копируете файл вместо cp
?adb shell cat
что-то будет на компьютере, а не на телефоне.adb shell "cat foo > /sdcard/bar"
останется на устройстве. Но уберите кавычки, и он может пожаловаться, что пропускает /sdcard
на вашем компьютере :)cp
команды. Однако cat
был на каждом доступном устройстве, которое мне когда-либо попадалось в руки.busybox cp
здесь было бы проблемой курицы и яйца #D // Если вы объедините факты из комментариев со своим ответом, пожалуйста, отправьте мне пинг для очистки комментариев :)Если вы используете Android Lollipop или более позднюю версию, установите Termux , установите grep (если он еще не установлен), набрав apt install grep
, дайте разрешение на хранение Termux из приложения «Настройки», чтобы можно было получить доступ к внутреннему хранилищу. Вот и все. Наслаждайтесь своим grep. Вы также можете установить busybox таким же образом в Termux (похоже, он устанавливается вместе с Termux для каждого пользователя iBug) и использовать его утилиты. Установка и использование не требуют повышенных привилегий.
Если вы используете версию Android до Lollipop, ответ Роберта предлагает хороший способ, но некоторые шаги можно исключить. Просто скачайте отсюда бинарный файл Android, совместимый с вашим процессором , переименуйте его в busybox и вставьте в Android с помощью adb :
adb push busybox /data/local/tmp/ # не помещайте его в /sdcard/, так как он не нужен и удаляет исполняемый бит из двоичного файла, который вы не можете добавить, не имея утилиты busybox или toybox'x chmod.
Теперь вы можете использовать busybox. Вы хотели бы настроить псевдоним или изменить переменную ENVIRONMENT вашей оболочки соответственно, чтобы отобразить этот файл.
В качестве альтернативы, хотя я не пробовал их, некоторые приложения на основе grep доступны в Play Store и их можно найти здесь .
Повелитель огня
пользователь108993
NeverMind9
NeverMind9
пользователь108993
NeverMind9
jackpal.androidterm
)