Android 程序執(zhí)行Linux命令的解決方法及注意事項(xiàng)
一:?jiǎn)栴}描述
在已經(jīng)root過的android設(shè)備下,app執(zhí)行一個(gè)linux命令,app需要獲取su權(quán)限,在某些android主板下會(huì)出現(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();
}
}
由于確認(rèn)設(shè)備已經(jīng)root,并且上個(gè)月測(cè)試的時(shí)候,沒有任何問題,然后今天換新設(shè)備測(cè)試時(shí)(新設(shè)備,舊設(shè)備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)這種問題,一般有三個(gè)原因
1 /system/xbin/su 不存在
root@rk3288:/system/xbin # ls -al su -rwsr-x--- root shell 67160 2017-10-16 15:01 su
通過adb命令,看到是有su這個(gè)文件的,所以排除這個(gè)原因。
2 /system/xbin/su 權(quán)限問題,
解決辦法是執(zhí)行如下命令,前提是android主板給予了執(zhí)行chmod 06755命令的權(quán)限
chmod 06755 /system/xbin/su
如果執(zhí)行以上命令,出現(xiàn)如下問題,請(qǐng)聯(lián)系設(shè)備廠商
root@rk3288:/system/xbin # chmod 06755 /system/xbin/su Unable to chmod /system/xbin/su: Read-only file system
3 /system/xbin/su 不允許第三方應(yīng)用獲取root權(quán)限
網(wǎng)上的解決辦法是:
root@android:/ $ su su: uid 10061 not allowed to su root@android:/
總結(jié)
以上所述是小編給大家介紹的Android 程序執(zhí)行Linux命令的解決方法及注意事項(xiàng),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android系統(tǒng)添加Linux驅(qū)動(dòng)
- 在Linux下通過命令行打包Android應(yīng)用的方法
- 簡(jiǎn)述Android中SELinux的TE
- Linux下Android開發(fā)環(huán)境搭建的操作方法
- 詳解Android Selinux 權(quán)限及問題
- Linux系統(tǒng)下安裝android sdk的方法步驟
- Android在linux下刷機(jī)教程
- 利用adt-bundle輕松搭建Android開發(fā)環(huán)境與Hello world(Linux)
- 基于Android SDK-在64位Linux中使用需要注意的問題
- Linux命令行下編譯Android NDK的示例代碼
相關(guān)文章
Android中分析Jetpack?Compose動(dòng)畫內(nèi)部的實(shí)現(xiàn)原理
這篇文章主要介紹了Android中分析Jetpack?Compose動(dòng)畫內(nèi)部的實(shí)現(xiàn)原理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-09-09
Android編程實(shí)現(xiàn)使用Intent傳輸包含自定義類的ArrayList示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)使用Intent傳輸包含自定義類的ArrayList,涉及Android對(duì)象序列化、反序列化、Intent數(shù)據(jù)傳輸?shù)认嚓P(guān)操作技巧,需要的朋友可以參考下2017-08-08
Android實(shí)現(xiàn)可滑動(dòng)的自定義日歷控件
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)可滑動(dòng)的自定義日歷控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
獲取Android簽名證書的公鑰和私鑰的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄@取Android簽名證書的公鑰和私鑰的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
AndroidStudio3.6.1打包jar及AndroidStudio4.0打包jar的一系列問題及用法
這篇文章主要介紹了AndroidStudio3.6.1打包jar,AndroidStudio4.0打包jar的問題及用法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Android實(shí)現(xiàn)檢測(cè)手機(jī)多點(diǎn)觸摸點(diǎn)數(shù)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)檢測(cè)手機(jī)多點(diǎn)觸摸點(diǎn)數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Android開發(fā)筆記SQLite優(yōu)化記住密碼功能
這篇文章主要為大家詳細(xì)介紹了Android開發(fā)筆記SQLite優(yōu)化記住密碼功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Android編程之九宮格實(shí)現(xiàn)方法實(shí)例分析
這篇文章主要介紹了Android編程之九宮格實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Android九宮格的實(shí)現(xiàn)方法與具體步驟,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-01-01
Android中ViewFlipper和AdapterViewFlipper使用的方法實(shí)例
ViewFlipper和AdapterViewFlipper是Android自帶的一個(gè)多頁面管理控件,下面這篇文章主要給大家介紹了關(guān)于Android中ViewFlipper和AdapterViewFlipper使用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05

