多网络和Linux代理的Android无线远程控制系统 03
- UID
- 872238
|
多网络和Linux代理的Android无线远程控制系统 03
管理应用:安装应用分两步实现,第一步接收文件,第二步执行安装。第一步实现与上面所讲的接收文件相同,只是报文为"install‖n ame.apk".默认保存到SD卡上的mnt/sdcard/apk路径下,然后,调用agent执行shell安装命令install mnt/sdeard/apk/name.apk.卸载应用时,直接执行接收到的命令uninstall packagename.启动应用时,通过Android系统接口Intent实现,停止和卸载都是通过被控终端上的Agent代理实现。"start‖appName"启动应用的时候,通过本地包管理获取到appName对应的包名packageName,新建一个Intent,启动包含该包的应用。代码如下:
通过shell命令执行kill PID.PID是应用进程号,通过ActivityManager可以获取到。
设备控制:可以通过命令例如"shell‖reboot"直接控制重启。 3.4 Agent代理实现 在编译系统内核的时候,将agent_server编入到路径/data/agentserver/agent_server下,用以接收命令。调用的时候,通过建立一个本地Socket,通过数据流发送shell命令到agent_setwer所在路径,实现通信。当agent_server接收到命令后,执行shell命令。 4 测试结果 设计的系统在ZTE U880手机上连接WiFi进行测试。图3为控制端界面,图4为控制端发送消息,图5为被控终端接收消息,图6为发送文件,图7为远程安装应用软件,图8为远程卸载应用软件,图9为shell命令界面。测试结果表明,系统能够实现发送消息、发送文件、安装和卸载应用,以及执行shell命令实现系统重启功能。
结语
本文设计了一个采用C/S模式实现的Android远程控制系统。控制端与被控终端之间采用Socket进行网络通信,在知道对方SIM卡号的情况下,也能通过GSM发送短信通信,能够实现多种网络的稳定通信。通过Linux代理能够实现root权限的操作,理论上可以实现对Android系统的完全远程控制。 |
|
|
|
|
|