看板 AndroidDev 關於我們 聯絡資訊
已經把手機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
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