Android 程序執(zhí)行Linux命令的解決方法及注意事項
一:問題描述
在已經(jīng)root過的android設備下,app執(zhí)行一個linux命令,app需要獲取su權(quán)限,在某些android主板下會出現(xiàn)異常, Command: [su] Working Directory: null Environment: null,代碼如下:
private void execLinuxCommand(String cmd){ Runtime runtime = Runtime.getRuntime(); try { Process localProcess = runtime.exec("su"); OutputStream localOutputStream = localProcess.getOutputStream(); DataOutputStream localDataOutputStream = new DataOutputStream(localOutputStream); localDataOutputStream.writeBytes(cmd); localDataOutputStream.flush(); } catch (IOException e) { Logger.i(TAG+"strLine:"+e.getMessage()); e.printStackTrace(); } }
由于確認設備已經(jīng)root,并且上個月測試的時候,沒有任何問題,然后今天換新設備測試時(新設備,舊設備android版本一致,均為5.1,并且都已經(jīng)root),卻出現(xiàn)如下異常:
java.io.IOException: Error running exec(). Command: [su] Working Directory: null Environment: null 12-02 10:00:08.685 W/System.err: Caused by: java.io.IOException: Permission denied 12-02 10:00:08.686 W/System.err: at java.lang.ProcessManager.exec(Native Method) 12-02 10:00:08.686 W/System.err: at java.lang.ProcessManager.exec(ProcessManager.java:209) 12-02 10:00:08.687 W/System.err: ... 17 more
通過異常信息判斷,Process localProcess = runtime.exec("su");執(zhí)行這句代碼,沒有權(quán)限,都root了還沒權(quán)限,我去。。。ls -al /system/xbin/su信息如下:
二:解決辦法
出現(xiàn)這種問題,一般有三個原因
1 /system/xbin/su 不存在
root@rk3288:/system/xbin # ls -al su -rwsr-x--- root shell 67160 2017-10-16 15:01 su
通過adb命令,看到是有su這個文件的,所以排除這個原因。
2 /system/xbin/su 權(quán)限問題,
解決辦法是執(zhí)行如下命令,前提是android主板給予了執(zhí)行chmod 06755命令的權(quán)限
chmod 06755 /system/xbin/su
如果執(zhí)行以上命令,出現(xiàn)如下問題,請聯(lián)系設備廠商
root@rk3288:/system/xbin # chmod 06755 /system/xbin/su Unable to chmod /system/xbin/su: Read-only file system
3 /system/xbin/su 不允許第三方應用獲取root權(quán)限
網(wǎng)上的解決辦法是:
root@android:/ $ su su: uid 10061 not allowed to su root@android:/
總結(jié)
以上所述是小編給大家介紹的Android 程序執(zhí)行Linux命令的解決方法及注意事項,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Android系統(tǒng)添加Linux驅(qū)動
- 在Linux下通過命令行打包Android應用的方法
- 簡述Android中SELinux的TE
- Linux下Android開發(fā)環(huán)境搭建的操作方法
- 詳解Android Selinux 權(quán)限及問題
- Linux系統(tǒng)下安裝android sdk的方法步驟
- Android在linux下刷機教程
- 利用adt-bundle輕松搭建Android開發(fā)環(huán)境與Hello world(Linux)
- 基于Android SDK-在64位Linux中使用需要注意的問題
- Linux命令行下編譯Android NDK的示例代碼
相關(guān)文章
Android自定義VIew實現(xiàn)衛(wèi)星菜單效果淺析
這篇文章主要介紹了Android自定義VIew實現(xiàn)衛(wèi)星菜單效果淺析,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-11-11基于Manifest.xml中不要出現(xiàn)重復的uses permission的說明
本篇文章對Manifest.xml中不要出現(xiàn)重復的uses permission進行了介紹。需要的朋友參考下2013-05-05Android端權(quán)限隱私的合規(guī)化處理實戰(zhàn)記錄
大家應該都發(fā)現(xiàn)了,現(xiàn)在很多應用市場都要求應用上架需要用戶協(xié)議,這篇文章主要給大家介紹了關(guān)于Android端權(quán)限隱私合規(guī)化處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2021-08-08Android自定義RecyclerView Item頭部懸浮吸頂
這篇文章主要為大家詳細介紹了Android自定義RecyclerView Item頭部懸浮吸頂,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08Android TV開發(fā):實現(xiàn)3D仿Gallery效果的實例代碼
這篇文章主要介紹了Android TV開發(fā):實現(xiàn)3D仿Gallery效果的實例代碼,效果:滾動翻頁+ 頁面點擊+頁碼指示器+焦點控制,主要為了移植到電視上做了按鍵事件和焦點控制。2018-05-05android AsynTask處理返回數(shù)據(jù)和AsynTask使用get,post請求
本文主要介紹了android AsynTask處理返回數(shù)據(jù)和AsynTask使用get,post請求方法。具有一定的參考價值,下面跟著小編一起來看下吧2017-01-01Android中Xposed框架篇---修改系統(tǒng)位置信息實現(xiàn)自身隱藏功能實例
本篇文章介紹了Android中Xposed框架的使用,詳細的介紹了修改系統(tǒng)位置信息實現(xiàn)自身隱藏功能實例,有需要的朋友可以了解一下。2016-11-11Android實現(xiàn)微信右側(cè)頂部下拉對話框
這篇文章主要為大家詳細介紹了Android實現(xiàn)微信右側(cè)頂部下拉對話框,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12