[問題] root裝置 仍無法透過app下shell command

看板AndroidDev作者 (Cal)時間4年前 (2020/06/16 23:46), 4年前編輯推噓0(0017)
留言17則, 3人參與, 4年前最新討論串1/1
已經把手機root成功 透過模擬終端app可以su之後$變# 在自己寫的測試app,用按鍵下指令 su https://imgur.com/PcvBycN.jpg
裝置的螢幕會跳出詢問是否要授予權限,確認後會顯示獲得權限的訊息 https://imgur.com/xwUEcI1.jpg
但後續一樣透過app的按鍵下 已經用adb跟模擬終端測試過可用的改亮度指令 https://imgur.com/VJxSbsR.jpg
卻都沒反應 要修改的檔案權限是744 照理來說,已經跳出app被授予超級使用者權限,應該是要可以用了才對 我還是只能透過adb先去把檔案chmod成777,才能在app成功下指令 達到功能 1. 想請問是哪裡出問題了呢? 另外想請問,我在開發板可以透過adb shell下指令su $變成# 但從開發板的模擬終端app 下su卻顯示沒權限 /system/bin/sh: su: can't execute: Permission denied 2. 請問開發板應該已經是root的狀態,該如何在app獲得超級使用者權限? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.166.118.215 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1592322407.A.D45.html

06/17 04:26, 4年前 , 1F
su是讓執行su的Process (Runtime.exec回傳的那個Process)
06/17 04:26, 1F

06/17 04:27, 4年前 , 2F
變root,不是讓app本身變root,你必須用同一個Process繼續
06/17 04:27, 2F

06/17 04:30, 4年前 , 3F
執行要用root權限的指令 (Process.getOutputStream.write)
06/17 04:30, 3F

06/17 04:31, 4年前 , 4F
不是另外再跑一次exec,那是再起一個沒su過的Process
06/17 04:31, 4F
感謝s大的回覆 我實測 將用Runtime.exec執行su指令的按鍵新增getOutputStream() 結果還是不行 orz||| 試過這兩種 https://imgur.com/jdc8T6M.jpg
https://imgur.com/BVBoq43.jpg
按下按鍵同樣會跳出SuperSU詢問授予權限的對話框 選擇確認,再用adb查看檔案權限有無被修改,還是原本的744 ※ 編輯: CaliforCat (218.166.118.215 臺灣), 06/17/2020 15:49:30

06/17 19:24, 4年前 , 5F
少送一個Enter?
06/17 19:24, 5F

06/17 19:28, 4年前 , 6F
另一個疑惑是,你還沒按確認前,都沒有取得root權限吧?
06/17 19:28, 6F

06/17 19:29, 4年前 , 7F
那是否該改在onActivityResult後才執行需要root的指令?
06/17 19:29, 7F

06/17 19:37, 4年前 , 8F
第二個疑惑應該有誤,我自己在寫的時候也沒印象需要這樣
06/17 19:37, 8F
是缺一個enter沒錯^^" 補上在手機跑就可以了 謝謝k大 但在開發板還是無法,原本只Runtime.exec執行su是會停在原畫面,像都沒事 現在加了getOutputStream()是會閃退說已停止運作 orz||| ※ 編輯: CaliforCat (218.166.118.215 臺灣), 06/17/2020 23:41:38

06/18 01:27, 4年前 , 9F
直接CATCH全部例外看是啥錯吧
06/18 01:27, 9F

06/18 01:27, 4年前 , 10F
不過我後來都直接用別人寫好的靜態類執行這類指令了
06/18 01:27, 10F

06/18 16:20, 4年前 , 11F
把sepolicy關掉試試?
06/18 16:20, 11F

06/18 16:29, 4年前 , 12F
另一個問題,su和命令分兩次下,你確定第二次時,還
06/18 16:29, 12F

06/18 16:29, 4年前 , 13F
還是root嗎?
06/18 16:29, 13F

06/18 16:31, 4年前 , 14F
你如果每次按su, 都會出現取得root的話,我覺得只有s
06/18 16:31, 14F

06/18 16:31, 4年前 , 15F
只有su那次才是root
06/18 16:31, 15F

06/18 16:34, 4年前 , 16F
su執行結束後,root就結束了 (可能)
06/18 16:34, 16F

06/18 16:35, 4年前 , 17F
因為你呼叫的是另一個runtime
06/18 16:35, 17F
文章代碼(AID): #1UwEbdr5 (AndroidDev)
文章代碼(AID): #1UwEbdr5 (AndroidDev)