Android 애플리케이션에서 셸 명령 실행
Android 애플리케이션 내에서 셸 명령을 실행하려고 할 때 다음과 같은 제한 사항을 고려해야 합니다. 운영 체제. 높은 권한을 얻으려면 임시 루트 액세스 권한을 부여하기 위한 보다 안전한 메커니즘을 제공하는 "su" 유틸리티를 사용하는 것이 좋습니다.
표준 Android 터미널에서 "su"가 포함된 명령은 다음을 입력하여 실행됩니다. "su" 뒤에 원하는 명령이 옵니다(예: "screenrecord --time-limit 10 /sdcard/MyVideo.mp4"). 그러나 Java 애플리케이션 내에서 이와 동일한 작업을 수행하려고 하면 어려움이 있을 수 있습니다.
"su"와 명령을 동시에 실행하려고 시도할 때 한 가지 잠재적인 문제 возникает가 발생합니다. 권한을 적절하게 높이려면 먼저 "su" 프로세스를 시작한 다음 표준 입력 스트림을 통해 명령을 입력으로 제공해야 합니다.
이를 달성하기 위해 수정된 코드 버전은 다음과 같습니다.
try { Process su = Runtime.getRuntime().exec("su"); DataOutputStream outputStream = new DataOutputStream(su.getOutputStream()); // Provide the command through the standard input stream outputStream.writeBytes("screenrecord --time-limit 10 /sdcard/MyVideo.mp4\n"); outputStream.flush(); // Terminate the "su" process outputStream.writeBytes("exit\n"); outputStream.flush(); su.waitFor(); } catch (IOException | InterruptedException e) { throw new Exception(e); }
이러한 방식으로 코드를 수정하면 "su" 유틸리티를 사용하여 Android 애플리케이션에서 셸 명령을 성공적으로 실행할 수 있으며, 화면 녹화 등의 작업에 필요한 높은 권한을 얻을 수 있습니다.
위 내용은 Android 애플리케이션에서 높은 권한으로 셸 명령을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!