/dev/tty *ファイルのアクセス権を変更する必要があります。私は、Windowsのコマンド・プロンプトから、rootとしてadbシェルを入力することによって権限を変更することができます。アンドロイドのttyポートのアクセス許可と所有権をプログラムで変更する
ただし、デバイスを再起動すると、アクセス許可は保持されません。代わりに、デフォルト値に設定されます。
再起動後にアプリを実行する必要があるたびに、権限を変更する必要があります。
Runtime.exec()
メソッドを使用してアプリケーションからadbコマンドを実行しようとしましたが、アプリケーションにファイル所有権を変更する権限がないため、何も変更されません。
これは、(この場合はエミュレータでそれをテストした)、私はアプリからコマンドを実行する方法である:
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
どのようにしてそのファイルのアクセス権と所有権を変更できますか?
ご協力いただきありがとうございます。
ありがとうございます!
エミュレータまたはデバイス?デバイスの場合は、根っからのかどうか?そして、「アンドロイドアプリ」から「adb root」をプログラムで実行するとはどういう意味ですか? – Shaiful
これはデバイスにあります..コマンドプロンプトで/ dev/tty *ファイルのアクセス権を変更するには、adb rootコマンドを与えた後にadbシェルを入力する必要があります。つまり、adbはrootとして実行する必要があります。私は許可 –
を変更することはできませんし、コマンドプロンプトから権限を変更することができます。しかし、私はコードで同様の処理をしたい。 –