Copying over your wifi access points on Android

In case you have just bought a new phone, rooted it, and want to copy over all your wifi access points, there are a few options:

  • Use the synchronisation to Google to have them keep a backup. Not my favourite, since it tends to restore just a bit too much (like all the apps you already removed before)
  • Use a tool like Titanium Backup, but I’ve noticed that this doesn’t always work between phones. On the same one, sure.
  • Manually copy them over. This is the way I usually go, and it works well.

First, copy the original files over: (do this for both phones)

  1. Plug your phone via USB, enable USB debugging in the setting (developer options) and make sure you have the Android SDK installed on your computer
  2. Disable wifi on your phone. Really. Just do it.
  3. open a shell to your phone, and copy the wpa_supplicant.conf file to your SD:
    adb shell
    cd /data/misc/wifi
    cp wpa_supplicant.conf /mnt/sdcard

  4. Pull the file to your computer somewhere:
    adb pull /mnt/sdcard/wpa_supplicant.conf /tmp/wpa_supplicant.old

Repeat this for the new phone, but in the last step, you should pull it to /tmp/

Now, edit the /tmp/wpa_supplicant.old file, and remove everything that doesn’t read



Next, we want to add this to the new file. Easy peasy: cat /tmp/wpa_supplicant.old >> /tmp/

The last thing to do is put the new file on the new phone, and reset it’s permissions:
adb push /tmp/ /mnt/sdcard/wpa_supplicant.conf
adb shell
cd /data/misc/wifi
cp wpa_supplicant.conf wpa_supplicant.conf.backup
mv /mnt/sdcard/wpa_supplicant.conf .
chown system.wifi wpa_supplicant.conf

And you’re good to go. Rebooting your phone might not be necessary, but it’s recommended.

S-OFF and Jellybean on the HTC Desire HD (Ace)

I acquired a secondhand HTC Desire HD, a nice phone (albeit a bit heavy). Comes with Android 2.3 (Gingerbread) and Sense. I’m personally not much of a Sense fan, and I wanted to move to a newer Android release, so I looked around on how to achieve S-OFF.

In the end, it’s fairly easy, thanks to the Advanced Ace Hack Kit (AAHK now for short).

Requirements for the adventure:

First, read the “effen manual” that comes with the AAHK. Find the code, and once you’re in the menu, pick option 1 – “Hack Ace”.
Wait a bit.
See the phone reboot some.
Wait some more.
*poof* you’re now S-OFF!

The next thing I did was flash a new recovery (I’m a big fan of 4Ext Recovery), and after that downloaded the radio and the lastest version of JellyTime and the accompanying Google Apps and flashed those. A reboot later: JellyBean on the HTC Desire HD!

Reset android lockscreen to slide

You’ve just reconfigured the security lockscreen settings on your (rooted) android phone, and then forgotten eg. the PIN code to unlock it? It happened to me yesterday.

Luckely(?) there’s an easy way around it, if you have adb activated:

Connect your phone to your computer, and do this:

adb shell
rm /data/system/locksettings.db*

This will basically delete the lockscreen settings database, which will make it revert to the default setting (slide to unlock).

This does mean that if you have adb enabled by default on your phone, the lockscreen is defeated very easily. So don’t depend on it with your life.

My history in gadgets…

This gallery contains 19 photos.

As a geek, I’ve always been quite the gadget freak. The fact that my father was also interested in the newest toys didn’t help.

A quick list of my gadgets and phones over the years:

PDA history:

Psion Siena
Psion Siena

This … Continue reading

How to RUU your Desire

I’ve always been a fan of the 3rd party roms that are available for the different Android based phones.
Unfortunately, it seems mine has developed a bit of a quirk: sometimes, when unplugging the USB cable, it will reboot. Or it no longer detects it as ‘external storage’ when putting it in USB-drive mode.

Seems I’ll have to return it to HTC for fixing within warranty. But to prevent HTC from being all bitchy about my custom ROM, I decided to RUU (RUU stands for Rom Update Utility) it – basically returning it to it’s pristine state, the state in which it came out of the box. No custom HBOOT’s, no custom radio’s, and no custom ROM’s.

Unfortunately the RUU utility for my Desire didn’t want to cooperate – it didn’t find the signatures it expected, so – no RUU for you!

Fortunately, I found an alternative way to RUU it. It does require a windows pc, but here’s the procedure:

First, download the correct RUU from In my case, I downloaded the RUU_Bravo_Froyo_HTC_WWE_2.29.405.5_Radio_32.49.00.32U_5.11.05.27_release_159811_signed.exe file.

Next, download Procmon, from the Microsoft Technet Site. We’ll use this to find out where the RUU extracts it’s files.

Now, launch procmon, and add a filter on “Path” for “”. Now you can launch the RUU updater, and click next until you get to the point where it wants the phone.
Look back in procmon, and you should have some lines there linking to Rightclick and pick “Jump To”. This should open the directory where the file is.

Now, copy this file on your phone’s SD card (in the root), and rename it to PB99IMG.ZIP.

Now it’s time to power off your phone. Press and hold the Volume-Down button and power it back on. After a few seconds you should be dumped in the HBOOT, and it will scan your SD card for zipfiles, and when it finds the PB99IMG.ZIP, it’ll start loading it.

You’ll then get:

Parsing………………….[SD zip]

Do you want to reboot device?

Here, you can press Volume-Up, and the flashing will commence.

It will reboot a few times, and then you should get:

Update complete
So you want to reboot device?

Press Volume-Up again, and you should be greeted by a pristine out-of-the-box Desire :)

Enter the HTC Desire

A little while back I finally caved in to all the peer pressure and got my second Android phone, the HTC Desire. It’s faster than the HTC Hero, which I’ve been using sofar. My girlfriend wanted that one, so it’ll have a good home :) and I can keep it updated to the latest firmwares.

One of the first things I did was root it with Unrevoked – a nice one-stop-shop rooting tool, which also installs the Clockworkmod recovery, through which you can then install other ROMs.
(Why did I root it? Because I want full access to the phone. I want to use it for whatever I want, not whatever HTC wants me to do with it.)

After that I stuck with the stock ROM for a (rather short) while, with the Sense shell. This did get on my nerves after a while, since I got used to Launcher Pro and a bunch of other programs on my HTC Hero, and I did want the get some APP2SD aswell, so I could install more applications. Since I had good experience with VillainRom‘s FroydVillain (for the Hero), I looked there and found SuperVillain, which is a Sense rom, but without Rosie (the Sense launcher) and with some extra things thrown in.

Unfortunately, there wasn’t much development on this ROM, and I went looking for another after a while, and stumbled over Richard Trip’s DeFrost ROM, which is based on CyanogenMod with some extra goodies in it.

What can I say about DeFrost? It’s very good, comes with a built in OTA updater, and there’s a big bunch of users of the rom – so most problems you will encounter are already tackled in the (huge!) XDA thread linked above. thread.

One of the last modifications I did to my Desire was to remove the security lock that HTC put in it (also known as making the phone S-OFF). In short, this security lock makes it so that you cannot write to the flash memory (NAND) of the phone.. The initial rooting through Unrevoked already makes it so that you can install ROMs through the recovery (since it doesn’t check the signature at that point), but not that you can make runtime modifications to the system:/ partition. For that, you have AlphaRev, which consists of a bootable CD image. It’s basically download the image, burn it, boot it, plug in your phone and follow the on-screen menus. Easy and straightforward, and it worked like a charm here.

Ever since, I’ve been a happy camper with the Desire ;)

Hello there, Froyo (Android 2.2)

Google released Android 2.2 – codename Froyo (for Frozen Yoghurt), giving Android users a nice speedboost.

Unfortunately, HTC decided they’re not going to release Froyo for the trusty old HTC Hero. And since I have one of those, I’m basically screwed.

Luckely, Google also releases the source code of Android, known as the Android Open Source Project (AOSP in short). And the fine folk at CyanogenMod and VillainROM took that source and baked it into something that works on our Hero’s: FroydVillain (1.5). A damn fast, optimized for the Hero ROM.

The downside? This is a naked Android ROM, so no HTC Sense goodies. There are plenty of replacements in the Android Market though, like LauncherPro (Plus) with it’s new widgets, Dolphin HD browser, and many more.

Android statues at Googleplex

I’ve been running it since and I’m very happy with it!

Android 2.1 (Eclair) on the HTC Hero…

I’ve bought an HTC Hero a while back. Rooted it too, so I could edit the sms database. Loving the phone.

Then HTC promised us (owners) an upgrade from Cupcake (Android 1.5) to Eclair (Android 2.1), scheduled for March 2010. Since Eclair has a ton of additional features and bugfixes, this was a biggy.

Then HTC postponed it to beginning of April. End of April. May. June.
On the 4th HTC started rolling out the update for Asia, and we still had to wait in Europe. That’s when I got fedup with waiting.

Thanks to the wonderful guys over at XDA-Developers and this Complete Newbie Guide to Install a Custom Rom, I now have VillainRom10 installed, which is basically a repackaged official 2.1 rom from HTC.

I had to use the GoldCard method to downgrade my Hero (specified in the Guide – worked perfectly with a Sandisk 2gb SD card), and install the drivers from this thread for the RUU (Rom Update Utility) to find the Hero in bootloader mode. Other than that, it’s a smooth sailing.

After using the phone now for two days, it feels mightily fast, snappy… it’s a total new phone.

Gigantic Android, Donut, Cupcake and Eclair at the GooglePlex


Rooting the HTC Hero

Note: This is at your own risk. If you fry your phone, your problem, not mine.

I recently got an HTC Hero. Great phone, I’m loving the Android platform. Pity that you don’t have full access to it, and I actually wanted to merge my old phone (Nokia E65)’s SMS database into this one, so I needed full access.

(Un)fortunately, these days the HTC Hero comes with the latest firmware, 2.73.1100.5, which on the one hand makes rooting harder (fixes several bugs and fastboot no longer works) but on the other hand makes the phone respond a lot better.

After some twiddling and reading on the XDA Developers Forum, I came up with this recipe:

Downloads needed:


  • Download the Android SDK, and install/extract it somewhere. I’m using Linux and put it under /home/<user>/android/
  • Download,, and extract them in a directory of your choice. For instance, /tmp.
  • Change to the Android SDK directory and in that one /tools (here: /home/<user>/android-sdk-linux_86/tools/
  • Start adb (Android Debug Bridge): ./abd wait-for-device
  • Put your phone in HTC Sync mode: drag the notification bar down and activate HTC Sync

After a while adb should return to the prompt. Should mean your phone has been found.

  • Copy asroot2 and su on the phone in /data/local:
    ./adb push /tmp/asroot2 /data/local/
    ./adb push /tmp/su /data/local/
  • Open a shell to the device: ./adb shell
  • Make asroot2 executable, and launch it:
    chmod 0755 /data/local/asroot2
    /data/local/asroot2 /system/bin/sh

Your phone should greet you with:

[+] Using newer pipe_inode_info layout
Opening: /proc/564/fd/3
SUCCESS: Enjoy the shell.

At this point, remount your /system filesystem read-write.
Before remounting, executing the mount command should return a line containing:

/dev/block/mtdblock3 /system yaffs2 ro 0 0

Now, remount the fs:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
(this returns no output)

And now executing mount should return a line like:

/dev/block/mtdblock3 /system yaffs2 rw 0 0

and copy the su binary into /system/bin:
dd if=/data/local/su of=/system/bin/su
and make it executable with root permissions:
chmod 4755 /system/bin/su

Next, copy the Supseruser.apk to the SD card and install it.
Then, reboot your phone (power off and on).

Restart your abd shell, and execute su in your adb shell: su, and on the phone it should come ask if you want to allow root permissions:

SU request
Tap “Allow”, et voila, you now have a rooted phone.