LINUX.ORG.RU
решено ФорумMobile

как добавить /data/data/com.termux/files/usr/bin в андроидовский ADB sh $PATH?

 , , , ,


0

1

хочу чтобы после того, как я сделал

adb shell

я уже мог запускать всё, что лежит в

/data/data/com.termux/files/usr/bin

я сейчас уже могу это делать, но я вынужден каждый раз делать

cd /data/data/com.termux/files/usr/bin

а потом ещё и запускать бинари через ./

как сделать нормально и удобно?


сейчас $PATH выглядит так

echo $PATH
/odm/bin:
/vendor/bin:
/system/bin:
/vendor/xbin:
/system/xbin:
/system_ext/bin:
/apex/com.android.art/bin:
/product/bin:/apex/com.android.runtime/bin:


как туда добавить путь /data/data/com.termux/files/usr/bin?

★★★★★

Последнее исправление: smilessss (всего исправлений: 9)
export PATH="/data/data/com.termux/files/usr/bin:${PATH}"

/thread

А busybox shell в Android не имеет понятия, что такое пользовательский rc. А системный ты не можешь отредактировать.

Shell тебе предоставляется в целях отладки и только, а не для того, чтобы ты пользовался им на серьёзных щах.

egzakharovich
()
Ответ на: комментарий от egzakharovich

Маленькое дополнение, в Android даже не busybox, а toybox, единственный смысл существования которого – быть под пермессивной лицензией. Busybox хотя бы старается POSIX соблюдать, насколько это возможно.

a1ba ★★
()
Ответ на: комментарий от egzakharovich

export PATH=«/data/data/com.termux/files/usr/bin:${PATH}»

осталось это как-то при старте автоматизировать

А системный ты не можешь отредактировать.

это ещё почему?

у меня там рут и все разделы с r\w

smilessss ★★★★★
() автор топика
Последнее исправление: smilessss (всего исправлений: 2)
Ответ на: комментарий от smilessss

у меня там рут и все разделы с r\w

Ну так найди /system/etc/profile или shrc и впиши туда.

Его можно найти, вызвав например sh -x и sh -lx и посмотрев, какие строки выполняются. Потом эти строки можно найти grep’ом…

Весьма детский вопрос для пятизвёздочного.

egzakharovich
()
Ответ на: комментарий от a1ba

ЪУЪ! В моё время был busybox… Но я перестал заниматься рутованием и прочими прошивками где-то с 6-ого ведроида, как купил Mi5S. А сейчас и вовсе, на Honor 30 Pro Plus всё залочено до нельзя… Но мне и так норм.

Ну, тогда нужно разбираться, как оно устроено в этом конкретном куске. Читать исходники…

egzakharovich
()
Ответ на: комментарий от egzakharovich

Весьма детский вопрос для пятизвёздочного.

так ты напиши рабочий метод)))

нет у меня ни

/system/etc/profile

ни

shrc


если создать просто

/system/etc/profile - он игнорируется

[1728236788.092756] typeset 'e=0'
[1728236788.092920] let ' e '
[1728236788.093039] return 0
zeus:/ #  sh -x
[1728236791.490611] sh -x
+ set +o nohup
+ let ' USER_ID '
+ PS1='#' 
+ PS4='[$EPOCHREALTIME] ' 
[1728236791.506677] PS1=$'${|\n\tlocal e=$?\n\n\t(( e )) && REPLY+="$e|"\n\n\treturn $e\n}$HOSTNAME:${PWD:-?} # ' 
[1728236791.506810] typeset 'e=0'
[1728236791.506828] let ' e '
[1728236791.506844] return 0
zeus:/ # sh -lx
[1728236795.378559] sh -lx
+ set +o nohup
+ let ' USER_ID '
+ PS1='#' 
+ PS4='[$EPOCHREALTIME] ' 
[1728236795.395562] PS1=$'${|\n\tlocal e=$?\n\n\t(( e )) && REPLY+="$e|"\n\n\treturn $e\n}$HOSTNAME:${PWD:-?} # ' 
[1728236795.395700] typeset 'e=0'
[1728236795.395718] let ' e '
[1728236795.395736] return 0

smilessss ★★★★★
() автор топика
Последнее исправление: smilessss (всего исправлений: 1)

глупый вопрос, а что ты хочешь?

1)автозапуск программ при входе в termux(в его шелл) как я понял от обычного пользователя

2)или ты хочешь чтобы твой софт который ты залил на телефон запускался одной командой без вода полного пути?

SPRATAY ★★
()
Ответ на: комментарий от smilessss
alias termux_execute="adb shell `cd /data/data/com.termux/files/usr/bin; ./program`"

С кавычками и тд сам разберешься и аргументами, суть я думаю уловил

zxflux
()
Последнее исправление: zxflux (всего исправлений: 1)
Ответ на: комментарий от smilessss

Тебе уже выше кучу вариантов дали, хоть ssh сервер подними и через адб порт форвардь и тут же подключайся и всё это одним алиасом

zxflux
()
Последнее исправление: zxflux (всего исправлений: 1)
Ответ на: комментарий от smilessss
grep -RF '${|\n\tlocal e=$?\n\n\t(( e )) && REPLY+="$e|"\n\n\treturn $e\n}$HOSTNAME:${PWD:-?} # ' /system

Токо я хз, выдаст тебе toybox путь к файлу, из которого оно это высосало, или нет. Но сцуть басни ясна, я надеюсь.

egzakharovich
()
Последнее исправление: egzakharovich (всего исправлений: 4)
Ответ на: комментарий от egzakharovich

Токо я хз

так шо там детский вопрос?

где не детский ответ?

уников развелось много

да только воз и ныне там

ничего кроме безсмысленого грепа по всему /system выдать не могут

а ещё про «пятизвёздочных» что-то пишут, позорише)))

smilessss ★★★★★
() автор топика
Последнее исправление: smilessss (всего исправлений: 1)
Ответ на: комментарий от smilessss

Дык мобилку насилуете вы, сударь. Не я. Я телепатией к вам подключиться и ввести команду, попробовать, не могу.

Я у себя, в нормальном линуксе, затестил. Способ рабочий, нашёлся злополучный /etc/bashrc по строчке, которую отобразил -x.

А вы сразу язвить, даже не попробовали. Фу таким быть.

Да и возникает подозрение, что вы даже не поняли, что я предлагаю сделать.

egzakharovich
()
Ответ на: комментарий от smilessss

ничего кроме безсмысленого грепа по всему /system выдать не могут

Так грепай по всему корню.

Строка PS1=$'${|\n\tlocal e=$?\n\n\t(( e )) && REPLY+="$e|"\n\n\treturn $e\n}$HOSTNAME:${PWD:-?} # ' откуда-то, да берётся. Не из воздуха уж точно.

Подсказку дал, дальше сам думай.

egzakharovich
()