私は/etc/hosts/
ファイルを変更しようとしています。そのために、外部ストレージに別のファイルを作成しcp
てから、その場所に保存します。次のエラーメッセージが表示されます。
01-14 18:51:51.069: E/HostsActivity(5356): rm failed for /etc/hosts, Read-only file system
01-14 18:51:51.079: E/HostsActivity(5356): failed on '/mnt/sdcard/hosts' - Cross-device link
私は何をしますか?
RootToolsを使用しています。
私のコード:
try {
String fn = write_file("hosts", hostsData);
RootTools.getShell(true).add(new Command(0, "rm /etc/hosts", "mv " + fn + " /etc/hosts")
{
@Override
public void output(int arg0, String arg1) {
// TODO Auto-generated method stub
Log.e("HostsActivity", arg1);
}
}).waitForFinish();
tv_status.setText("Done");
} catch (Exception ioe) {
Log.e("HostsActivity", ioe.toString());
tv_status.setText(ioe.toString());
}
のアクティビティの最初にroot権限を要求しましたonCreate
if (!RootTools.isAccessGiven()) {
TextView tv = new TextView(this);
tv.setText("Root access not given. Please ensure root access.");
setContentView(tv);
}
setContentView(R.layout.activity_hosts);