之前用Linux Deploy 部署了Kali Linux 。让我这阵子拿到平板有一半的时间是在用终端模拟器(Terminal Emulator)连接。
安卓的终端模拟器,对我来说有3个比较重要的用途:第一个是进入本地的终端,进行一些安卓系统的操作,不过这类操作不会多;第二个是连接localhost 的Kali linux 来进行一系列工具的使用;还有一个就是使用Vim。
下面是我用过的几个可以满足其中一个或者几个要求的几个模拟器 Terminal IDE ,Android Terminal Emulator, ConnectBot ,VXConnectBot。
ConnectBot是安卓平台下的一款开源的SSH Client,也是我第一个这方面的软件。因为它有一个我比较无法容忍的的缺陷,所以这个软件我没用多久。那就是决定要提升码字速度的时候,我毅然决然的外接了一个USB键盘。想不到它对小键盘的123456789对应的特殊字符!@#$%^&*()这些支持非常差。当我在它的Google Project 页面 里面找到了不少人也有遇到类似的问题,在查看Issues页面时,发现有人推荐了一款VXConnectBot。
VXConnectBot是一款加强版的ConnectBot,几乎把ConnectBot的缺点(物理键盘支持)都给弥补上了。
我们知道,在linux下面使用shell时会需要有一些快捷键使用到Ctrl、Shift和Alt 。而这个软件的机制,按一下Ctrl然后光标就变成Ctrl专有的光标,接着按完一下 C它就是代表了Ctrl+C,按一下Ctrl然后再按一下L 就是Ctrl+L。每次一个组合快捷键要分2下按。严重的拖慢了码字速度。如果要在平板上码代码之类的操作,那感觉有点像不定时经常便秘….接着就开始寻找替代品
Terminal IDE 是一款在找能够在Android 上使用Gcc而找到的软件,这软件给人的感觉出乎意料的好(除了它200MB+的容量以外)。键盘键位支持,快捷键等都挺好的,但它有一个缺点就是没办法支持中文,目前我还找不到解决的方法(如果有人知道,请给我留言:) )
Android Terminal Emulator 这软件放在平板里也挺久了,一直都把它当成使用系统自带和BusyBox的一些命令而用的。对键盘支持好,支持中文,快捷键也完美。不过要让它连接上Linux Deploy的kali linux 还要麻烦一点,因为busybox默认没有包含ssh,要手动下载android 下面原生的SSH Client 。在搜索的时候,我找到了StackexChange上的一个问题《Are there any command line SSH clients available for rooted Android phones?》回复里有不少答案,其中最简单的就是把 Better Terminal Emulator Pro 里面包含的ssh,scp等文件直接拷过来。
安装后 用Root Explorer 把
/data/data/com.magicandroidapps.bettertermpro/bin/
里面的SCP和SSH(这里的SCP和SSH Client 是Dropbear版)拷到/system/bin/目录下 注意要挂载对/system/的读写
(或者拷贝同目录下的OpenSSH和OpenSCP)
或者直接在终端模拟器或开启调试模式在adb shell下输入
su #使用管理员权限要设备已root
mount -o rw,remount yassf2 /system/ #挂载对/system/目录的读写
find /data/data/com.magicandroidapps.bettertermpro/bin/ -perm 0755 -type f ! -name "busybox*" -exec cp {} /system/bin/ \; #把bin目录下除了busybox以外的程序都拷到/system/bin/目录下
#其中包含不少使用工具如(ssh,openssh,dropbear,dropbearkey等具体可以执行)
find /data/data/com.magicandroidapps.bettertermpro/bin/ -perm 0755 #查看
有人可能会问,为什么我不直接使用Better Terminal Emulator Pro 呢?有两个原因,第一个我已经遇到了几乎能满足我所有需要的Android Terminal Emulator 而我最后接触的是Better Terminal Emulator Pro 发现其实它挺好的。如果Pro版本免费的话。(当然天朝里安卓付费软件的现状大家都懂~)看个人喜好吧。
执行了之前复制的操作,Android Terminal Emulator 也可以将默认的shell换成bash。
而现在用Android Terminal Emulator 连接到Kali 进行操作都挺顺滑的
Busybox应该不用说都会安装的吧。而android系统默认的toolbox有些功能就感觉有点阉割,比如ls 不能指定–color 如果遇到了命令功能不够用的情况,可以自行吧原来链接到toolbox的命令删掉,换成链接到busybox的较完整版命令。
#以ls这个命令为例
su
cd /system/bin/
rm ls
ln -s busybox ls
以后执行ls就是高端版本了~
附加一个Tip:Android 4.4 原生支持的Screenrecord 很多网站是说只能在电脑上,通过
adb shell screenrecord /sdcard/test.mp4
实践证明在终端模拟器下面
su #取得root权限(前提已root)
screenrecord /sdcard/test.mp4 #也能成功录像