Android 프로그램 이 Linux 명령 을 실행 하 는 해결 방법 및 주의사항
루트 가 있 는 안 드 로 이 드 장치 에서 app 은 Liux 명령 을 실행 합 니 다.app 은 su 권한 을 가 져 와 야 합 니 다.일부 안 드 로 이 드 메인보드 에서 이상 이 발생 할 수 있 습 니 다.Command:[su]Working Directory:null 환경: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();
}
}
장치 가 루트 가 되 었 는 지 확인 하고 지난달 테스트 할 때 아무런 문제 가 없 었 기 때문에 오늘 새 장치 테스트 를 바 꿀 때(새 장치,오래된 장치 안 드 로 이 드 버 전이 일치 하고 모두 5.1 이 며 모두 루트 가 되 었 음)다음 과 같은 이상 이 발생 했 습 니 다.
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");이 코드 를 실행 합 니 다.권한 이 없습니다.루트 가 되 었 습 니 다.권한 이 없습니다.제 가 가 겠 습 니 다.ls -al /시스템/xbin/su 정 보 는 다음 과 같 습 니 다.해결 방법
이런 문제 가 발생 한 데 는 일반적으로 세 가지 원인 이 있다.
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 권한 문제,
해결 방법 은 다음 명령 을 실행 하 는 것 입 니 다.전 제 는 안 드 로 이 드 메인보드 가 chmod 06755 명령 을 실행 할 수 있 는 권한 을 주 었 습 니 다.
chmod 06755 /system/xbin/su
이상 명령 을 실행 하면 다음 과 같은 문제 가 발생 하면 장치 제조 업 체 에 연락 하 십시오.
root@rk3288:/system/xbin # chmod 06755 /system/xbin/su
Unable to chmod /system/xbin/su: Read-only file system
3/system/xbin/su 는 제3자 가 루트 권한 을 가 져 오 는 것 을 허용 하지 않 습 니 다.인터넷 의 해결 방법 은:
root@android:/ $ su
su: uid 10061 not allowed to su
root@android:/
총결산위 에서 말 한 것 은 소 편 이 소개 한 안 드 로 이 드 프로그램 이 리 눅 스 명령 을 수행 하 는 해결 방법 과 주의사항 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.