private void pushData() {
        File tmp = new File(backupnew);

        if(!tmp.exists()) {
            error("No file '" + backupnew + "' exists. Aborting.");
            return;
        }

        String messages = "";
        try {
            Process p = Runtime.getRuntime().exec(new String[] {"adb", "shell",
                    "mv", preserveFolder, preserveFolder + ".backup"});

            messages = Util.streamToString(p.getErrorStream());
            p.waitFor();
        } catch(Exception e) {
            // It's not really a problem if this step doesn't work
        }

        info("Your device will ask you for permission to restore the backup. Do NOT enter a password, just accept.");

        messages = "";
        try {
            Process p = Runtime.getRuntime().exec(new String[] {"adb",
                    "restore", tmp.getPath()});

            messages = Util.streamToString(p.getErrorStream());
            p.waitFor();
        } catch(Exception e) {
            error("Something went wrong: " + messages);
        }

        messages = "";
        try {
            Process p = Runtime.getRuntime().exec(new String[] {"adb", "shell",
                    "mv", preserveFolder + ".backup", preserveFolder});

            messages = Util.streamToString(p.getErrorStream());
            p.waitFor();
        } catch(Exception e) {
            // It's not really a problem if this step doesn't work
        }

        info("Done. Please check if the backup worked.");
    }