繁体   English   中英

使用批处理(.bat)文件自动执行adb shell命令

[英]Automating adb shell commands using batch(.bat) files

我经常向Android手机(root手机)中的不同系统文件授予读/写/执行(chmod 777)权限。 有时我将chmod 777命令添加到启动脚本中,只是为了节省时间。 在三星Galaxy S6手机上我正在更新文件(脚本):'/ etc / init.sec.boot.sh',在文件末尾添加以下命令。

chmod 777 <filename>

使用以下命令从adb shell内部工作正常

su
echo 'chmod 777 <filename>' >> /etc/init.sec.boot.sh

现在,如果我尝试使用.bat文件,它会给我许可错误。 我使用以下命令

adb shell su -c "echo \"chmod 777 <filename>\" >> /etc/init.sec.boot.sh"

由于此命令不起作用,我将文件复制到sdcard,修改它,然后用修改后的版本替换原始文件。 如果我现在读取文件的内容,它会准确读取我想要的内容,但chmod命令永远不会执行。 我重启了几次电话,但文件许可完全没有实现。 此时,如果我从shell内部运行相同的命令,如果工作。

su
echo 'chmod 777 <filename>' >> /etc/init.sec.boot.sh

此时,init.sec.boot.sh文件中的最后两行如下所示。

chmod 777 <filename>
chmod 777 <filename>

最后两行看起来完全一样。 chmod命令仅在从shell内部写入时才有效。 我能想到的唯一合理的解释是,windows命令提示符和Android linux shell可能使用不同的文本编码。 如何从.bat文件(甚至直接从命令提示符)成功执行chmod命令。

PS:我做了重装/系统读/写。

我想问题是Windows EOL和Unix EOL之间的区别。

所以我在Linux系统(Androids Linux系统)中创建了一个脚本来做chmod的东西。 使用adb pull命令将.sh文件复制到我的Windows计算机。

现在我的原始批处理文件将此脚本复制回手机并执行它。 (我不得不将脚本复制到手机内的/ data / local)。 这很完美。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM