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

作者: CaliforCat (加州貓)   2020-06-16 23:46:45
已經把手機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獲得超級使用者權限?
謝謝
作者: ssccg (23)   2020-06-17 04:26:00
su是讓執行su的Process (Runtime.exec回傳的那個Process)變root,不是讓app本身變root,你必須用同一個Process繼續執行要用root權限的指令 (Process.getOutputStream.write)不是另外再跑一次exec,那是再起一個沒su過的Process
作者: kobe8112 (小B)   2020-06-17 19:24:00
少送一個Enter?另一個疑惑是,你還沒按確認前,都沒有取得root權限吧?那是否該改在onActivityResult後才執行需要root的指令?第二個疑惑應該有誤,我自己在寫的時候也沒印象需要這樣直接CATCH全部例外看是啥錯吧不過我後來都直接用別人寫好的靜態類執行這類指令了
作者: tsaiminghan (tsaiminghan)   2020-06-18 16:20:00
把sepolicy關掉試試?另一個問題,su和命令分兩次下,你確定第二次時,還還是root嗎?你如果每次按su, 都會出現取得root的話,我覺得只有s只有su那次才是rootsu執行結束後,root就結束了 (可能)因為你呼叫的是另一個runtime

Links booklink

Contact Us: admin [ a t ] ucptt.com