私はOlinuxino-A20(またはCubieboard-2、同じAndroidイメージを使用しています)を使用しています。/dev/ttyS0 に何かを書きたいです。C で記述された JNI メソッドを使用しています。私の .cpp ファイルでは、許可が拒否されます。
fd = open(tty, O_RDWR);
....
f(fd < 0){
LOGE("Failed to open serial console!");
LOGE(strerror(errno));
return -1;
} else
LOGI("Serial port opened!");
したがって、これは「許可が拒否されました」を返します。
私のアクティビティでは、次の方法でアクセスしようとしています:
try {
Runtime.getRuntime().exec(
new String[] { "su", "-c", "chmod 777 /dev/ttyS*" });
Log.i("root", "Success chmod.");
} catch (IOException e) {
e.printStackTrace();
Log.e("root", "Fail to gain access");
}
それでも何も起こりません。Android のバージョンは 4.2.2 で、カーネルは 3.3 です。はい、このデバイスはルート化されています。私は Olinuxino-A13 (カーネル 3.0 の 4.0.3) でほぼ同じコードを使用しましたが、これは機能します。
また、シリアル ターミナルを開き、コマンドchmod 777 /dev/ttyS*を手動で入力してからアプリを実行すると、すべてが完全に機能します。
私のコードが機能しない理由を教えてもらえますか?