/dev/tty * 파일의 권한을 변경해야 해당 포트에 데이터를 쓰고 있습니다. 나는 adb 셸을 root로 입력하여 windows 명령 프롬프트에서 권한을 변경할 수 있습니다.안드로이드에서 tty 포트의 권한 및 소유권을 프로그래밍 방식으로 변경하십시오.
그러나 장치를 다시 부팅하면 사용 권한이 유지되지 않습니다. 대신 기본값으로 설정됩니다.
그래서 재부팅 후 앱을 실행해야 할 때마다 권한을 변경해야합니다.
Runtime.exec()
메서드를 사용하여 응용 프로그램에서 adb 명령을 실행하려고했지만 응용 프로그램에 파일 소유권 사용 권한을 변경할 권한이 없으므로 아무런 변화가 없습니다.
이 (이 경우 에뮬레이터에서 테스트) 내가 응용 프로그램에서 명령을 실행하는 방법입니다 :
은 "SU"명령이 실행됩니다Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("chown root:root /dev/ttyS0 \n");
os.writeBytes("chmod 777 /dev/ttyS0 \n");
os.writeBytes("exit\n");
os.flush();
os.close();
process.waitFor();
, 그것은에 오류를 그 때문에의 su: uid 10044 not allowed to su
을 제공합니다 chown 또는 chmod를 실행하면 오류가 발생합니다. Unable to chmod Operation Not permitted
그렇다면이 파일의 사용 권한과 소유권을 어떻게 변경합니까?
도움이 되었으면 좋겠습니다.
감사합니다.
에뮬레이터 또는 장치? 그런 다음 장치가 뿌리를 냈는지 아닌지? 그리고''android app''에서''adb 루트 '를 프로그래밍 방식으로 실행한다는 것은 무슨 뜻입니까? – Shaiful
그것은 장치에 있습니다. 명령 프롬프트를 통해/dev/tty * 파일의 권한을 변경하려면 adb 루트 명령 즉, adb가 root로 실행되어야합니다. 그것은 내가 허가 –
을 바꿀 수 없게하고 나는 명령 프롬프트를 통해 허가를 바꿀 수있다. 그러나 나는 코드를 통해 비슷한 과정을 원한다. –