簡體   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