Хотя раньше я писал небольшие приложения для android, сейчас я пытаюсь написать приложение для root и у меня возникают проблемы с правами доступа к файлам.
По сути, моя цель - манипулировать файлом / etc / hosts с помощьюJava-приложение.В качестве первого действия я получил права root с помощью runtime.exec ("su") и попытался открыть файл hosts стандартными способами, такими как File () или FileOutputStream ().Но безуспешно мое приложение выдало следующее исключение "java.io.FileNotFoundException: / etc / hosts (Permission denied)".Затем я проверил права доступа к файлу через оболочку, и это было похоже на rw-r - r-- для root.Даже если он должен работать с этими разрешениями, я изменил его на 777 из оболочки и вуаля!мое приложение начало открывать файл без проблем.Однако, поскольку Android время от времени заменяет файл hosts версией по умолчанию, он также меняет разрешение для файла и предыдущий метод, каждый раз, когда мне нужно перейти и изменить разрешение от adb, и, конечно, это не то, что я хочу.Итак, шаг за шагом;
- я попробовал метод runtime.exec ("chmod 777 / etc / hosts"), и он не работал без каких-либо исключений или сообщений об ошибках.
-Тогда я пытался использовать метод File.setWritable (), но он не существует в моей системе andoid, хотя, по-видимому, предполагается, что это Android 2.2 согласно javadoc.
- Наконец, я попытался установить рабочий каталог с помощью System.setProperty («user.dir», «/ etc /») и использовать openFileOutput («hosts», MODE_WORLD_WRITABLE), но, конечно, это не сработало, или.Теперь у меня нет идей.Как манипулировать системными файлами в Android?С уважением,