[Motorola Atrix 2] whirleyes:
how come??

Here's the Java code used for the installing/uninstall of hijack & logwrapper.

It worked well on Razr.

class InstallHijack extends AsyncTask<Void, Void, Integer> {
protected Integer doInBackground(Void... arg0) {
boolean bak = false;
//verify input
if (com.validFile(files_loc + "/logwrapper",sha1sum.getProperty("logwrapper")) && com.validFile(files_loc + "/hijack",sha1sum.getProperty("hijack"))) {
com.reset();
com.shell.append("mount -t ext3 -o remount,rw /dev/block/system /system\n");
if (hijack_installed) { //uninstall
com.shell.append("rm -r /system/bin/logwrapper\n");
if (com.validFile("/system/bin/logwrapper.bin",sha1sum.getProperty("logwrapper"))) {
com.shell.append("mv /system/bin/logwrapper.bin /system/bin/logwrapper\n");
} else {
com.shell.append("cp -r " + files_loc + "/logwrapper /system/bin/logwrapper\n");
}
com.shell.append("chown 0.2000 /system/bin/logwrapper\n");
com.shell.append("chmod 755 /system/bin/logwrapper\n");
com.shell.append("rm -r /system/bin/logwrapper.bin\n");
com.shell.append("rm -r /system/bin/hijack\n");
} else { //install
if (!new File("/system/bin/logwrapper.bak").exists()) {
bak = true;
com.shell.append("cp -r /system/bin/logwrapper /system/bin/logwrapper.bak\n");
}
com.shell.append("rm -r /system/bin/logwrapper\n");
com.shell.append("cp -r " + files_loc + "/logwrapper /system/bin/logwrapper.bin\n");
com.shell.append("cp -r " + files_loc + "/hijack /system/bin/hijack\n");
com.shell.append("ln -s hijack /system/bin/logwrapper\n");
com.shell.append("chown 0.2000 /system/bin/logwrapper.bin\n");
com.shell.append("chmod 755 /system/bin/logwrapper.bin\n");
com.shell.append("chown 0.2000 /system/bin/hijack\n");
com.shell.append("chmod 755 /system/bin/hijack\n");
}
com.shell.append("sync\n");
com.shell.append("mount -t ext3 -o remount,ro /dev/block/system /system\n");
com.execute(true);
} else {
return 1;
}

//double check
boolean valid = false;
if (hijack_installed) {	//uninstall
valid = com.validFile("/system/bin/logwrapper", sha1sum.getProperty("logwrapper"));
hijack_installed = false;
} else { //install
boolean lw = com.validFile("/system/bin/logwrapper.bin", sha1sum.getProperty("logwrapper"));
boolean hj = com.validFile("/system/bin/logwrapper", sha1sum.getProperty("hijack"));
valid = (lw && hj);
}

if (!valid) {
if (new File("/system/bin/logwrapper.bak").exists() && bak) {
com.reset();
com.shell.append("mount -t ext3 -o remount,rw /dev/block/system /system\n");
com.shell.append("mv /system/bin/logwrapper.bak /system/bin/logwrapper\n");
com.shell.append("chown 0.2000 /system/bin/logwrapper\n");
com.shell.append("chmod 755 /system/bin/logwrapper\n");
com.shell.append("sync\n");
com.shell.append("mount -t ext3 -o remount,ro /dev/block/system /system\n");
com.execute(true);
return 2;
} else {
return 3;
}
}
return 0;
}

protected void onPreExecute() {
super.onPreExecute();
mProgressDialog.show();
}

protected void onPostExecute(Integer status) {
String details=null;
switch(status) {
case 1:
details = "\n Source sha1sum mismatched!\n";
break;
case 2:
details = "\n logwrapper sha1sum mismatched!\n Backup logwrapper restored\n";
break;
case 3:
details = "\n logwrapper sha1sum mismatched!\n Don't power off phone until a\n good logwrapper is installed.\n Go get help";
break;
}
if (status != 0) alert("Aborted!", details).create().show();
status_update(0);
mProgressDialog.dismiss();
}
}