【发布时间】:2016-06-20 02:23:57
【问题描述】:
我定期授予对 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:我确实重新安装了 /system 以读取/写入。
【问题讨论】:
-
>>在 Windows 中的含义与在 unix 中的含义相同。如果您希望您的重定向由 adb shell 处理,您必须在 Windows 中转义它们。所以^>^>. -
我已经将所有内容都插入到了“”中。所以一切都应该在 adb shell 内执行。我也尝试了使用 ^>^> 的方法,但它停止将 chmod 命令连接到原始脚本。
标签: android windows shell batch-file