Get root or re-install the OS without a USB cable?

Usually, the guides for getting root or re-installing the OS on an Android device (I have a Samsung Galaxy S, which I'm mostly inetersted about) tell to flash the device from another computer through the USB cable.

Is it in principle possible to perform such modifications without using the USB cable (and another computer)?

Perhaps, by putting a file with the other version of the kernel/OS soemwhere on the device, and booting it in a special mode?

Imaginne the situation: I took the Samsung Galaxy S (and a laptop), but no USB cables, and went away from the civilization. Now it turns out that to use some of the apps I would like to use (like SSH server frontends for Android) I

• either have to re-install the Android OS (because they want a newer version; so I'd use CyanogenMod or Replicant because there are no offical upgrades from Samsung)
• or have root (because they don't want to work without root).

Can this be done without a USB cable?

• (Of course, there is another good solution in this situation: take the source code of those apps, and fix them so that they will work for me, re-compile and install them.)

(AFAIU, after I have full (root) access to the device, I can re-install the OS without a cable and another computer: for example, I have another device that was supposed to work under Android -- Toshiba AC100, but after I installed Ubuntu 12.04 on it by flashing the device, I must be able to re-install the kernel from inside the OS -- there is a "flash-kernel" utility in Ubuntu.)

• I've read it must be possible to flash an update stored as a file on the device in a recovery mode(?) -- android.stackexchange.com/a/183/13117 . But I don't understand the details: How to boot into the recovery mode? Can someone please explain this? – imz -- Ivan Zakharyaschev Aug 17 '12 at 6:16
• And even if I had a USB cable, there might be another problem: my other computer runs Ubuntu for ARM, so to flash a new OS I'd need something like heimdall for ARM. It's not among the available pre-built downloads, will have to try to build it for ARM then... Is obtaining heimdall for Linux on ARM possible? – imz -- Ivan Zakharyaschev Aug 21 '12 at 11:31

Use ROM Manager app. It can install ROMs from SD card. You can download your favorite ROMs using it, too.

And, Samsung Galaxy S is officially supported by it.

• And ROM Mnaager app doesn't require me to have root access in the system? – imz -- Ivan Zakharyaschev Aug 17 '12 at 6:40
• @imz No. It does require root access to flash CWM recovery to system partition and use it to flash another ROM. – Android Quesito Aug 17 '12 at 6:44
• @imz To gain root access from within device, there's no reliable method available. There was an app for that, Root Exploit in Market. But, Google pulled that out last year. You can find that app on internet and see it works for you or not. – Android Quesito Aug 17 '12 at 6:49
• I see. ROM Manager is the answer to the last part of the question (in brackets). It's the tool to use to flash new kernels from inside Android on Samsung Galaxy S (like flash-kernel in Ubuntu on Toshiba AC100 in the example from the question), but only after the user the system has root access. – imz -- Ivan Zakharyaschev Aug 21 '12 at 9:19

I guess there must be a backdoor for this because I've read in a news article that it will be possible to upgrade (officially) the OS on Samsung Galaxy without connecting it with a USB cable to another computer by means of a new "Kies" app from Samsung.

So, it's possible for an app (in this case, at least the Kies app) to re-install the OS. But this backdoor might be well-protected (requiring cryptographic signatures from Samsung perhaps -- just a guess).

And the article told that one should install the "Kies" app (if it is not present) through the "Samsung apps" app. (I haven't tested this myself because I have been using the device without a SIM-card, but the "Samsung app" app wants a SIM-card...)

So, it's possible to install an app that will be able to re-install the OS. But this backdoor might be well protected (perhaps, only an app from Samsung can do this).

(I've read it must be possible to flash an update stored as a file on the device in a recovery mode.)

Indeed, "Procedure B: (Does NOT require ADB)" from Galaxy S I9000 HOWTO section (on forum.xda-developers) must enable me to re-install the OS without a USB cable on a non-rooted Samsung Galaxy S:

1. Copy the CustomROM/root file to the "/sdcard/" folder on the phone and (if not already the case) rename to "update.zip"
2. Restart in Recovery Mode by pressing an holding VolumeUP+Home+Power.
3. Wait for the recovery screen en select "apply: /sdcard/update.zip"
4. Wait for it to finish and reboot.
• This only works if your device is already rooted. Flashing a custom ROM via stock recovery is not possible, unless the ROM is signed by manufacturer keys (those are generally are only known by manufacturer or carrier). Replacing recovery with one that allows flashing unsigned ROMs requires root. Gaining root requires either exploiting a vulnerability, or in the case of (most) Samsung devices flashing a pre-rooted image. In either case, this needs to be done with a help of a computer via USB. – Chahk Aug 17 '12 at 14:14
• @Chahk: the signature must be somewhere inside the update.zip then? This signature thing was the missing tile in the overall picture of the ways to reinstall the OS I have learnt. Thanks for the comment! – imz -- Ivan Zakharyaschev Aug 17 '12 at 16:45
• The signature is not part of the ZIP, but rather a unique way the ZIP file itself is constructed. – Chahk Aug 17 '12 at 18:01