[Android Software/Hacking General [Developers Only]] kenshinta:
How-to: Updating su and Superuser of Rooted Cherry W900 [draft 00]

Consider this a first draft - but it is still my effort though, so no copying! lol

Here we go!

BTW

STANDARD DISCLAIMERS APPLY with regard to modding, etc paraphrasing CM "Here Be Dragons ..." etc etc

Pre-requisites:

1. Rooted W900 using the builtin CWM function; >>> see this (translate if first) for detals : LINK

2. OS with adb properly installed and able to detect the W900;

3. Recent versions os the su binary, Superuser.apk and (optionally) busybox, I used chanifire's CWM zip update and zeppelins busybox version;

4. Familiarity with the adb commands and the terminal prompt in general;

Procedure:

A. Extract the su binary and Superuser app (and busybox) in a folder;

B. Start a Terminal/ Command Prompt (administrator mode in windows i think is required);

C. Attach the phone make sure it is useable with adb, enter the following in the terminal window:

D. Start an ADB shell;

<prompt>
adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
Cherry-Mobile-W900	device

E. Start an ADB shell;

adb shell
$

F. Start a root prompt;

$ su
#

F.1. Check user ID of root prompt pre-mod as reference;

# id

Note that there is 0/ root UID/ GID mentioned as expected;

G. Prepare for update, creating symlink, enter line per line in the adb shell root prompt;

# mv /data/local/tmp /data/local/tmp.bak
# ln -s /data /data/local/tmp
# reboot

H. Phone will reboot, repeat steps E-F again, then the following to add emulator mode:

# rm /data/local.prop > nul
# echo \"ro.kernel.qemu=1\" > /data/local.prop
# reboot

I. Phone will reboot into emulator mode now, repeat steps E-F again, then the following:

# id
********************************************************************
One of the IDs shown should be 0/ root
//IF ID IS 0/root THEN CONTINUE, ELSE START OVER:
Go back to CWM , then unRoot, then Root again, then restart from A
********************************************************************

J. For now exit adb shell, type exit on both adb shell prompts to return to your OS terminal;

# exit
$ exit
<prompt>

K. adb push su, Superuser.apk and busybox to phone; enter in your OS terminal prompt;

adb push su /data/local/tmp.bak/
adb push Superuser.apk /data/local/tmp.bak/
adb push busybox /data/local/tmp.bak/

L. Return to adb shell, re-do steps E-F;

M. Mount system parition as RW;

# mount -o remount rw /system

N.Copy respective files to proper locations and set correct owner/ permissions;

# cd /data/local/tmp.bak/
# rm /system/bin/su
# dd if=su of=/system/bin/su
# chown 0.0 /system/bin/su
# chmod 06755 /system/bin/su
# ls -l /system/bin/su <<< check first
# -rwsr-sr-x root root 22364 2008-02-29 02:33 su <<< this should be the result

# dd if=Superuser.apk of=/system/app/Superuser.apk
# chown 0.0 /system/app/Superuser.apk
# chmod 0644 /system/app/Superuser.apk

*********

N.1: following is optional but highly recommended - busybox installation

*********

# dd if=busybox of=/system/xbin/busybox
# chown 0.0 /system/xbin/busybox
# chmod 0755 /system/xbin/busybox
# /system/xbin/busybox --install -s /system/xbin

O. Cleanup, remove emulator mode, temp files;

# rm /data/local.prop
# rm /data/local/tmp
# mv /data/local/tmp.bak /data/local/tmp
# reboot

After that final reboot, you should now have a proper working Superuser app with prompts and everythings, and root apps like Titanium and link2sd work with no warnings.

On review, I really thought that step G. is an extraneous step, but all these were the steps I did to make it work. I did go thru a few trials before things finally stuck though so for completeness that step is still in there just in case. - I never could do step H without step G I think.