[Android 개발 에서 흔히 볼 수 있 는 문제 - 4] RunTime. exec () 는 루트 권한 으로 여러 명령 을 어떻게 수행 합 니까?
1. 여기 서 먼저 루트 권한 을 직면 합 니 다. 이 는 핸드폰 을 루트 로 해 야 합 니 다. 구체 적 인 방법 은 360 원 키 루트 를 통 해 해결 할 수 있 습 니 다.
2. 이 코드 부터 살 펴 보 자.
4. 567913. 여기 서 su 를 실행 하 는 것 은 시스템 에 루트 권한 을 요청 하 는 것 이 고 proc 는 su 를 실행 하 는 이 독립 프로 세 스 를 되 돌려 줍 니 다.
다음은 cmd 1 과 cmd 2 를 살 펴 보 겠 습 니 다. 이 두 명령 모두 루트 권한 이 필요 하 다 고 가정 하면 상기 방법 으로 쓰 면 cmd 1 과 cmd 2 에 permission denied 가 나타 납 니 다.
왜 그 럴 까요?
su 명령 은 현재 프로 세 스 로 하여 금 루트 권한 을 얻 게 할 뿐, 즉 proc 로 하여 금 루트 권한 을 얻 게 할 뿐, 전체 응용 프로그램 이 루트 권한 을 가지 게 하 는 것 이 아니 라, 뒤에 cmd 1 과 cmd 2 가 runtime. exec 를 진행 할 때 각각 하나의 독립 된 프로 세 스 에 존재 하기 때문에 루트 권한 을 갖 추 지 않 습 니 다.
그럼 어떻게 해결 해 야 되 지?내리 보다
3. 모든 명령 을 하나의 프로 세 스에 두 기
4. 567913. 저 는 상기 코드 를 기 쁘 게 실 행 했 습 니 다. 먼저 저 는 'cmd a, cmd b, cmd c' 와 같은 쓰기 가 정확 하고 runtime ('cd/mnt, ls - l') 과 같은 테스트 를 통 해 실 행 될 수 있다 는 것 을 알 게 되 었 습 니 다.
그러나 상기 코드 가 실 행 된 후에 끊 겼 습 니 다. 프로 세 스 가 끊 긴 것 같 습 니 다. 개인 적 으로 su 명령 의 문제 라 고 생각 하지만 정확 한 원인 은 아직 밝 혀 지지 않 았 습 니 다. 여기 서 어떤 큰 소 가 이 유 를 알 고 싶 은 지 알려 주 십시오. 먼저 감 사 드 립 니 다!
4. 계속 탐색
proc 라 는 프로 세 스 가 루트 권한 을 가지 고 있 는 이상 우 리 는 이 스 레 드 전제 에서 어떻게 조작 을 하 는 지 방법 을 생각해 야 합 니 다. 조 회 를 통 해 마침내 구 한 진경 은 다음 과 같 습 니 다.
4. 567913. 여기 서 cmd 1 과 cmd 2 뒤의 '' '는 없어 서 는 안 될 것 입 니 다. DataOutputStream 이라는 인 터 페 이 스 는 바 텀 셸 을 직접 조작 할 수 없 기 때문에' '' 명령 의 끝 을 표시 해 야 합 니 다.
오케이, 해결.
원 하 는 운영 체제 의 쾌감 을 만 끽 하 세 요 ~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.