希望写一个apk,该apk能执行一些adb 命令,代码里如何实现?
比如界面里有一个按钮,点了该按钮以后就执行adb命令,如何在click()里写这些adb命令
在电脑上我执行
adb shell
insmod /system/lib/modules/wlan.ko
我现在需要在应用里也达到同样效果,但是
执行
proc = Runtime.getRuntime().exec(“insmod /system/lib/modules/wlan.ko”);
num = proc.waitFor();
num的返回值是255,也就是说没有执行成功,请问如何修改,是否是因为权限问题还是说缺少adb shell这样的类似操作?
ADB接口的作用主要是让电脑等其它设备控制安卓系统的,所以,称为“中间桥”;
不是为安卓自已用的,自已可直接执行称为SHELL,这与ADB无关。
所以安卓JAVA不一定有封装的ADB类。电脑上有ADB服务程序,端口5037,
它是中间程序,与安卓系统上守护进程(Daemon)通讯。
如果要在自已的手机上应该也能执行adb命令,应该直接跟守护进程
(Daemon)通讯了。百度上可以搜到的方法并不满意。
楼主用exec执行CMD命令,这已不是ADB接口了,这是系统的SHELL了!!!
自已用socket/tcp直接发命令效果不知怎样,地址用127.0.0.1, 安卓daemon进程的端口
5555 是奇数开始。
。。。 。至于ADB对话协议百度可以搜到,建议试一试。
楼上其实要的是SHELL,并不是ADB,我搜到一篇文章,但我并没有试过,
是否需要ROOT,不得而知,附上,你试一试 ,回个话。
满意就采纳!
我修改了提问,是否有解决办法?
追答楼主其实要的是SHELL,并不是ADB,我搜到一篇文章,但我并没有试过,
是否需要ROOT,不得而知,
我修改了提问,是否有解决办法?
追答你可以看一下你的apk的UID是不是0,我认为是权限问题,而且我记得android的shell不能执行insmod,需要有busybox才行。
本回答被网友采纳最简单的办法是你可以参考SL4A(Scripting Layer for Android)项目,SL4A支持Python、Perl、JRuby、Lua、BeanShell、JavaScript、Tcl、shell等脚本的执行。其中shell的实现完全可以替代adb。
本回答被网友采纳麻烦看清我的问题再回答
追答看清了呀,我不认为能够在android程序中执行adb命令。android自身应该没有adb程序,你如何让它运行adb命令?
还有你【比如】中写的应该可以执行linux命令(部分,还不是全部),不是adb命令。。。
我修改了提问,是否有解决办法?