⑴ 求问 BAT脚本如何自动执行 adb shell 以后的命令
这是无法实现的。你无法在bat脚本中运行交互式shell命令,你的命令无法发送进入。
bat脚本运行时,是在CMD的环境下运行,它的命令解释器是cmd。
而su在shell环境下执行的,它的命令解释器是shell下的"/system/bin/sh"。
su是一条交互式的shell命令,它需要与shell环境下的用户进行交互操作。
问题就在这里了,
bat脚本只负责将"shell su"作为参数传递执行一次adb.exe。
这个动作完成,这条命令的步骤就算结束了,
但此时su还有一个切换用户身份的动作,如果有密码还会通过shell请求用户输入密码,
但运行bat的cmd环境是它收不到这个请求的。
解决办法:
一. 将su命令之后需要执行的命令写成一个sh脚本。
通过adb将sh脚本推入手机中,并为脚本添加可执行权限
在bat中添加一条比方说这样的命令
adb shell ". /path/to/your/file.sh"
二. 安装superSU授权管理器
安装superSU授权管理器后执行
adb root
授权,允许adb以root身份运行。
这之后你通过adb 发送的shell命令会以root身份执行。
⑵ 使用adb命令或shell命令定时重启手机或关机
首先来看这道题的本质,其原理就是定时的调用adb的关机命令,
这么来想就不难了。
其次,制定一个定时的线程,线程的休眠时间由控制者传入,例如需要5秒后关机,那线程的休眠时间就设置为5000毫秒。
等待倒计时结束后调用adb的关机命令adb
reboot即可,小编亲测,希望采纳
⑶ 如何在android程序中执行adb shell命令
Android中执行adb shell命令的方式如下:<pre t="code" l="java"> /**
* 执行一个shell命令,并返回字符串值
*
* @param cmd
* 命令名称参数组成的数组(例如:{"/system/bin/cat", "/proc/version"})
* @param workdirectory
* 命令执行路径(例如:"system/bin/")
* @return 执行结果组成的字符串
* @throws IOException
*/
public static synchronized String run(String[] cmd, String workdirectory)
throws IOException {
StringBuffer result = new StringBuffer();
try {
// 创建操作系统进程(也可以由Runtime.exec()启动)
// Runtime runtime = Runtime.getRuntime();
// Process proc = runtime.exec(cmd);
// InputStream inputstream = proc.getInputStream();
ProcessBuilder builder = new ProcessBuilder(cmd);
InputStream in = null;
// 设置一个路径(绝对路径了就不一定需要)
if (workdirectory != null) {
// 设置工作目录(同上)
builder.directory(new File(workdirectory));
// 合并标准错误和标准输出
builder.redirectErrorStream(true);
// 启动一个新进程
Process process = builder.start();
// 读取进程标准输出流
in = process.getInputStream();
byte[] re = new byte[1024];
while (in.read(re) != -1) {
result = result.append(new String(re));
}
}
// 关闭输入流
if (in != null) {
in.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return result.toString();
} android系统底层采用的是linux,所以adb这样的linux指令是可以在java代码中调用的,可以使用ProcessBuilder 这个方法来执行对应的指令。还可以通过如下方式执行:
<pre t="code" l="java">Process p = Runtime.getRuntime().exec("ls");
String data = null;
BufferedReader ie = new BufferedReader(new InputStreamReader(p.getErrorStream()));
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String error = null;
while ((error = ie.readLine()) != null
!error.equals("null")) {
data += error + "\n";
}
String line = null;
while ((line = in.readLine()) != null
!line.equals("null")) {
data += line + "\n";
}
Log.v("ls", data);
⑷ 什么是adb命令行
adb命令行是androidsdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的android设备(如G1手机),它的主要功能有:
1、运行设备的shell(命令行)
2、管理模拟器或设备的端口映射
3、计算机和设备之间上传/下载文件
4、将本地apk软件安装至模拟器或android设备
ADB是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是android设备。
(4)shell脚本adb命令扩展阅读:
常用命令
1. 查看设备 *adbdevices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示
2. 安装软件
*adbinstall <apk文件路径>
这个命令将指定的apk文件安装到设备上
3. 卸载软件
*adbuninstall <软件名>
*adbuninstall -k <软件名>
如果加 -k 参数,为卸载软件但是保留配置和缓存文件。
4. 登录设备shell
*adbshell
*adbshell <command命令>
这个命令将登录设备的shell。
后面加<command命令>将是直接运行设备命令,相当于执行远程命令。
5. 从电脑上发送文件到设备
*adbpush <本地路径> <远程路径>
用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)。
⑸ 求助,adb shell 脚本编写问题
解决方法:1、在使用ADB命令前,首先必须确保电脑安装了手机或平板电脑的驱动程序,可以从对应官方网站下载与手机类型相匹配的驱动,也可以通过刷机精灵来安装手机驱动。2、当运行“adbshell“命令出现“adbserverisoutofdate,killing
⑹ 如何启动adb shell命令
步骤:
打开winows菜单,输入cmd命令,点击确定,进入命令模式下。
输入命令 D:(这里输入的D表示你的sdk存放的盘下)
然后回车输入cd
然后选择你sdk路径,复制路径。
鼠标点击cmd,选择编辑,选择粘贴 将复制的路径粘贴到
然后输入命令adb start-service 打开adb。
出现如图所示,表示adb服务开启成功,就可以使用adb命令了。
⑺ adb shell 是什么,如何进入
adb shell是终端shell。Windows下进入adb shell的具体操作如下:
1、首先,用数据线将手机和电脑连接:
⑻ 如何在shell 脚本中执行adb
首先确认已经配置adb环境检测输入adb devices提示识别adb命令需要安装adb配置环境
1. adb配置执行adb root
2. (要内部文件执行操作需要加步骤: adb amount )
3. 即执行adb shell
⑼ 命令行输入adb+shell+wm+density+960是什么意思
摘要 adb重写设备显示密度 adb shell wm density 960就是修改手机分辨率的代码。
⑽ 怎么在命令模式下使用adb / 进入adb shell
你好,
打开winows菜单,输入cmd命令,点击确定,进入命令模式下。
2
输入命令
D:(这里输入的D表示你的sdk存放的盘下)
然后回车输入cd
3
然后选择你sdk路径,复制路径。
4
鼠标点击cmd,选择编辑,选择粘贴
将复制的路径粘贴到
命令行
回车。
5
然后输入命令adb
start-service
打开adb。
出现如图所示,表示adb服务开启成功,就可以使用adb命令了。
6
使用adb
shell
命令。