Установить .zip в часы из приложения? - PullRequest
0 голосов
/ 17 февраля 2011

Так что в моем приложении я пытаюсь сделать так, чтобы он прошивал .zip в восстановлении часового механизма с помощью этого

 Runtime run = Runtime.getRuntime();
                      Process p = null;
                      DataOutputStream out = null;
                      try{
                          p = run.exec("su");
                          out = new DataOutputStream(p.getOutputStream());
                          out.writeBytes("echo install_zip SDCARD:" +clickedFile.toString() +" > /cache/recovery/extendedcommand\n");
                          out.writeBytes("reboot recovery\n"); // testing
                          out.flush();

                      }catch(Exception e){
                          Log.e("FLASH", "Unable to reboot into recovery mode:", e);
                          e.printStackTrace();

                      }

Он загрузится в рекавери, но не будет мигать .zip .. Что не так .. ои если вам нужен весь файл .java, то это:

http://pastebin.com/NpiSLz90

Ответы [ 2 ]

1 голос
/ 22 марта 2012

У меня была та же проблема, но я использовал ListView в сочетании с ArrayAdapter, чтобы вернуть полный путь к файлу.Когда я попытался передать путь как «SDCARD:», за которым следовал путь к файлу, он не смог найти файл, так как метод, похоже, больше не поддерживается новыми версиями CWM Recovery.Я нашел легкий обходной путь, хотя:

    public boolean installPackage(String pos) throws InterruptedException {
    final String location = "/emmc/" + pos.substring(11);
    Process process = null;
    try {
        process = Runtime.getRuntime().exec("su");
        DataOutputStream os = new DataOutputStream(process.getOutputStream());
        os = new DataOutputStream(process.getOutputStream());
        os.writeBytes("echo 'install_zip(\"" + location + "\");'" + " > /cache/recovery/extendedcommand\n");
        os.writeBytes("reboot recovery\n");
        os.writeBytes("exit\n");
        os.flush();
        return (process.waitFor() == 0);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        Log.e("FLASH:", "Unable to boot into recovery");
        e.printStackTrace();
    }
        return false;
}
1 голос
/ 04 января 2012
out.writeBytes("echo 'install_zip(\""+ SDCARD:" +clickedFile.toString()+"\");'" +" > /cache/recovery/extendedcommand\n");

adb команды будут выглядеть так:

adb shell
echo 'install_zip("/sdcard/update.zip");' > /cache/recovery/extendedcommand
...