有沒有一種方法可以以root用戶身份運行Adb shell而無需鍵入 su
?我希望無需進入shell就能擁有root用戶訪問權限。
有沒有一種方法可以以root用戶身份運行Adb shell而無需鍵入 su
?我希望無需進入shell就能擁有root用戶訪問權限。
如果我正確理解了您的問題,那麼您正在問如何在運行 adb shell
時自動獲得root用戶訪問權限,這樣就不必進入shell並輸入 su 以在手機上以root用戶身份執行命令。
這由啟動分區中的標誌控制,大多數自定義ROM已對其進行了修改,默認情況下允許root權限。如果在使用 adb shell
時跌落到 $
,則有兩個永久選項和一個臨時選項(臨時意味著重新啟動時不會粘住):
adbd 在具有root權限的設備上使用code>
數字2其實並不那麼困難,但是如果不注意,它可能會有些危險。 這裡上有一篇Wiki文章,其中介紹了該過程,並包含了一些Perl腳本來幫助您。這些說明假定使用Linux / Unix環境。我已經在Fedora Linux上親自使用了這些說明,並且可以告訴您它們可以工作,但是我不知道其他* nix環境(如Mac)。我也不知道Windows有任何類似的說明,但是如果您使用Windows,則可以嘗試查找一些類似的信息。確切的命令因電話而異,因為不同的設備使用不同的分區表。
不過,通常來講,您需要從手機中提取當前的boot.img,將其解壓縮,提取虛擬磁盤,然後找到 default.prop 文件。這是一個純文本文件,您需要在文本編輯器中打開它,然後找到包含值 ro.secure
的行。如果該行顯示 ro.secure = 1
,那麼您需要將其更改為 ro.secure = 0
。之後,您可以重新打包ramdisk和boot.img,然後將其刷新到手機中。重新啟動後,每次執行 adb shell
時都將收到#
提示,而不必運行 su
。
或者,如果使用的是自定義ROM,但沒有進行此修改,則可以使用上述步驟解壓縮ROM並修改其中包含的boot.img。然後,您可以使用新修改的boot.img壓縮ROM,並像往常一樣刷新zip文件。
這也許不用多說,但是要小心 。弄亂引導分區很容易使您的手機損壞,並迫使您通過HBoot恢復。我強烈建議測試Fastboot,以確保您可以使用擴展的Fastboot命令並執行恢復。這根據您的型號而有所不同,但是大多數手機都有一些可以運行的台式機軟件來刷新手機。
第三種選擇是,在很多情況下,它可能會可以使用root特權在設備上重新啟動 adbd
。一種可能性是從PC終端執行 adb root
,儘管這不適用於所有ROM配置(必須將ROM構建為“用戶調試”)。您也可以嘗試 Chainfire的adbd不安全應用程序。這不會在重新啟動後持續存在,因此,每次重新啟動手機時,都需要再次使用應用程序或 adb root
。
如果您的手機已經紮根,則可以使用“ su -c”命令運行命令。
以下是build.prop文件中的cat命令示例,用於獲取手機產品信息。
adb shell“ su -c'cat /system/build.prop | grep” product“'”
這將調用root權限並運行命令在''
內註意5個結束引號,這要求您關閉所有結束引號,否則會出現錯誤。
為澄清起見,格式如下。 / p>
adb shell“ su -c'[您的命令在此處]'”
請確保以與正常運行時完全相同的方式輸入命令
嘗試一下,希望對您有所幫助。
您要以root身份運行的目的是什麼?您是說要使用root用戶運行ADB Shell,但又不想使用ADB Shell?您能澄清一下嗎?
如果該應用程序請求root用戶訪問權限,那麼您手機上的SuperUser應用程序應處理是否授予其權限。手機植根的過程應該包含一個SuperUser應用程序。
作為替代方案,您可以在電話上編寫腳本,然後簡單地讓adb執行該腳本,例如:
adb shell sh /sdcard/myscript.sh
腳本可以在沒有您干預的情況下提升自身(假設SuperUser設置為記住批准),例如:
supm setInstallLocation 1
我只是在手機上成功完成了此任務,唯一的問題是我還沒有弄清楚如何徹底結束adb shell會話。我必須在Windows Shell中使用Ctrl-C返回Windows命令提示符-否則adb只會位於#
提示符下,並且不接受輸入。
我用於修復主頁按鈕失敗
adb設備
adb shell su -c 命令
或
adb根外殼sqlite3 /data/data/com.android.providers.settings/databases/settings.db“插入安全(名稱,值)值('device_provisioned','1'); “
adb kill-server
您也可以在'sh'上設置suid位。我使用的是BusyBox,因此說明可能與您的設置不符:
,您應該具有root提示符