→ ssccg: su是讓執行su的Process (Runtime.exec回傳的那個Process) 06/17 04:26
→ ssccg: 變root,不是讓app本身變root,你必須用同一個Process繼續 06/17 04:27
→ ssccg: 執行要用root權限的指令 (Process.getOutputStream.write) 06/17 04:30
→ ssccg: 不是另外再跑一次exec,那是再起一個沒su過的Process 06/17 04:31
感謝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
→ kobe8112: 少送一個Enter? 06/17 19:24
→ kobe8112: 另一個疑惑是,你還沒按確認前,都沒有取得root權限吧? 06/17 19:28
→ kobe8112: 那是否該改在onActivityResult後才執行需要root的指令? 06/17 19:29
→ kobe8112: 第二個疑惑應該有誤,我自己在寫的時候也沒印象需要這樣 06/17 19:37
是缺一個enter沒錯^^" 補上在手機跑就可以了 謝謝k大
但在開發板還是無法,原本只Runtime.exec執行su是會停在原畫面,像都沒事
現在加了getOutputStream()是會閃退說已停止運作 orz|||
※ 編輯: CaliforCat (218.166.118.215 臺灣), 06/17/2020 23:41:38
→ kobe8112: 直接CATCH全部例外看是啥錯吧 06/18 01:27
→ kobe8112: 不過我後來都直接用別人寫好的靜態類執行這類指令了 06/18 01:27
→ tsaiminghan: 把sepolicy關掉試試? 06/18 16:20
→ tsaiminghan: 另一個問題,su和命令分兩次下,你確定第二次時,還 06/18 16:29
→ tsaiminghan: 還是root嗎? 06/18 16:29
→ tsaiminghan: 你如果每次按su, 都會出現取得root的話,我覺得只有s 06/18 16:31
→ tsaiminghan: 只有su那次才是root 06/18 16:31
→ tsaiminghan: su執行結束後,root就結束了 (可能) 06/18 16:34
→ tsaiminghan: 因為你呼叫的是另一個runtime 06/18 16:35