2017-09-01 125 views
1

我在自定義設備上運行android 7.1.1,並且在'userdebug'配置中從源代碼編譯了AOSP,它提供了根訪問和調試功能。adb root works Runtime.GetRuntime().exec(「su」);不是

我可以使用android設備橋連接到設備。

adb root 
adb shell 
device_name:/ # su 

所有這些命令工作正常,我可以作爲超級用戶進行更改。 我有從一個應用程序運行相同的「蘇」命令的問題

Java.Lang.Process suProcess = Runtime.GetRuntime().Exec("su"); 

我收到的錯誤是:

產生java.io.IOException:不能運行程序「蘇」:錯誤= 13,權限被拒絕

adb root/shell su命令與從應用程序中運行的命令之間有區別嗎?

回答

1

看起來好像linux DAC和SE-Android正在阻止你的應用程序的進程訪問'su'可執行文件。

檢查您的系統是否在強制模式下運行,這意味着SE-Android已啓用。如果這是事實確實如此,你可以暫時運行禁用它:

adb root 

adb shell setenfoerce 0 

這將禁用SE-的Android並不會從執行「蘇」屏蔽的應用程序。

此外,您的應用可能沒有以root身份啓動'su'所需的DAC權限。您可以執行以下命令:

adb shell ps 

有關設備上所有正在運行的進程的列表。找到您的應用程序(通過搜索其軟件包名稱),並檢查其組和uid。最有可能他們都不會成爲根。

請注意,構建一個自定義userdebug圖像不像植根於標準的Android設備。調試版旨在允許訪問設備的內部,同時仍然模擬啓用了其所有默認安全機制的實際功能設備。

相關問題