Blog icon indicating copy to clipboard operation
Blog copied to clipboard

adb shell 下使用 termux

Open alwaystest opened this issue 6 years ago • 12 comments

adb shell termux htop

标签(空格分隔): shell android


玩了一下termux这个软件,记录一下经验。

首先,要在adb shell中调用termux,需要按照https://github.com/termux/termux-app/issues/77 给出的方案。

adb shell连接成功之后,我们希望在环境变量包含的PATH中直接就有一个脚本可以帮我们打开termux的bash。

所以用到mount -o rw,remount /system 重新挂载 system 为可写,然后在 xbin 文件夹下面写一个 shell脚本,一样是从Github上找到的(我的Linux基础还是比较差啊,鸟哥的书大略过了一遍还是不够的):

 #!/system/bin/sh
su $(stat -c %u /data/data/com.termux) /data/data/com.termux/files/home/bin/termux-shell.sh

最后别忘了把system重新挂载为只读 mount -o ro,remount /system

这样就可以方便的在连接上adb shell之后快速调起termux的bash,然后为所欲为了。

需要记录的一点是我在安装了htop之后发现bash里面调起的界面并没有全屏。

然后继续查,偶然在安装了fish之后,启动fish,警告提示默认的terminal的size是没有的。

顺藤摸瓜发现 stty size这个命令可以查看当前terminal中设置的行数和列数。

发现果然adb shell之后是没有配置size这个信息的。

解决方案是在 termux-shell.sh 中加入一条命令 resize,重设terminal的宽高信息。

所以最后的termux-shell.sh 的内容是这样的。

#!/system/bin/sh
resize > /dev/null
export PREFIX='/data/data/com.termux/files/usr'
export HOME='/data/data/com.termux/files/home'
export LD_LIBRARY_PATH='/data/data/com.termux/files/usr/lib'
export PATH="/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:$PATH"
export LANG='en_US.UTF-8'
export SHELL='/data/data/com.termux/files/usr/bin/bash'
cd "$HOME"
exec "$SHELL" -l

alwaystest avatar Sep 01 '17 12:09 alwaystest