Использование команды Linux echo для программной записи в файл Android - PullRequest
0 голосов
/ 07 декабря 2018

Требуется написать файл с помощью команды echo в любом месте, например, "/ sys / bus / i2c / devices / 4-0024 / command" здесь command - это имя файла, где значение длябыть написанным.

Я попробовал приведенный ниже код, но он не работает

    private void writeCommand(String data) {
    try {
        Runtime rt = Runtime.getRuntime();
        Process proc = rt.exec("echo "+data+" > "/sys/bus/i2c/devices/4-0024/command");
        BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
    } catch (Throwable t) {
        t.printStackTrace();
    }
}

здесь команда может быть любой строкой.Позже я получил этот ответ , поэтому я попробовал то же самое, но не повезло.

ниже приведен код для того же самого:

    private void writeCommand(String data) {
    try {
        Runtime rt = Runtime.getRuntime();
        String[] cmnd = {"sh", "-c", "echo " + data+ ">" /sys/bus/i2c/devices/4-0024/command"};
        Process proc = rt.exec(cmnd);
        BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
    } catch (Throwable t) {
        t.printStackTrace();
    }
}

Примечание 1: Мне нужноиспользовать команду оболочки только для записи файла, Не использовать FileWriter

Примечание 2. Мое приложение является системным приложением, поэтому оно имеет все привилегированные разрешения, включая «WRITE_EXTERNAL_STORAGE»

Примечание 3: Я дал разрешение на запись в Linux с помощью chmod 777

Примечание 4: Android Polux Sepolicy отключен.

Примечание 5: Если я использую ту же команду в командной строке, она записывает данные вфайл

Пожалуйста, дайте мне знать, как этого добиться.

...