且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

android - linux 安卓手机的链接

更新时间:2023-02-26 21:52:28

Android的确是一个Linux系统,但Android并不是一个标准的GNU/Linux发行版,不像树莓派Raspbian(基于Debian的ARM架构Linux发行版)可以直接通过ssh客户端连接其上的OpenSSH Server进行管理.

当然,很多GNU/Linux软件都是可以交叉编译到Android上使用的,但是因为Android默认不开放root权限,所以在Android上跑OpenSSH Server不现实.

楼主可以通过Android SDK里提供的adb打开一个Shell来操作Android系统.首先楼主需要在你的电脑上安装Android SDK,然后用USB把你的Android手机接入电脑,并打开Android手机"开发者选项"中的"USB调试",然后通过在命令行输入adb shell打开这个Shell.

当然,楼主可能不想安装Android SDK,也不想通过USB连接手机进行管理,而是想通过无线网络进行管理,那你可以试试下面这个变通的方法.简单说,就是在浏览器里跑Shell,界面无非就是一个文本域textarea用于填写命令,一个AJAX运行按钮,下面显示运行结果,服务器(这里指的是Android端)运行用户输入的命令.

首先,在你的Android手机上安装一个PHP服务器,比如监听0.0.0.0:8181端口,网站根目录为SD卡下的phpdroid.
php -S 0.0.0.0:8181 -t /path/to/sdcard/phpdroid
因为Android没有防火墙的说法,所以无线局域网内的其他设备可以通过Android手机的IP直接访问这个PHP服务器.
PHP这边可以用echo shell_exec('ls');轻松执行命令并返回.

我在Ubuntu上交叉编译打包了Android版本的PHP包,名字叫PHPDroid,具体看我的博文:
用PHP开发Android应用的可行性探究(PHPDroid)
文末有APK和源代码的下载地址.
phpdroid_20160703.apk(5.8M)
phpdroid_20160703.7z(4.7M)
楼主要用的话可能还需要调整下start.sh里的启动参数和auth.php里的认证机制.
因为我本意是用来开发Android应用,所以只监听了127.0.0.2本地地址,并通过随即UserAgent来校验只允许当前应用的WebView访问.如果楼主需要,可以再行通知我重新打包一个APK发布出去.