そのポートにデータを書き込んでいるので、/dev/tty* ファイルの許可を変更する必要があります。root として adb シェルを入力することで、Windows コマンド プロンプトから権限を変更できます。
しかし、デバイスを再起動すると、アクセス許可が保持されません。代わりに、デフォルト値に設定されます。
そのため、再起動後にアプリを実行する必要があるたびに、アクセス許可を変更する必要があります。
メソッドを使用してアプリからadbコマンドを実行しようとしましたがRuntime.exec()
、アプリにはファイルの所有権を変更する権限がないため、何も変更されません。
これは、アプリからコマンドを実行する方法です(この場合はエミュレーターでテストしました):
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」コマンドを実行するとエラーが発生するsu: uid 10044 not allowed to su
そのため、chown または chmod を実行するとエラーが発生しますUnable to chmod Operation Not permitted
では、そのファイルのアクセス許可と所有権を変更するにはどうすればよいですか?
どんな助けでも大歓迎です!
ありがとう !!