Posted on Leave a comment

Cyanogenmod Updater crashes when using Nightly builts

In case you are trying to update Cyanogenmod the a current Nightly built (e.g. Nightly Cm-11-20150201) chances are that the CM updater crashes before even rebooting to the actual updating process. This problem has been confirmed by PsychoI3oy on the CM forum:

Yeah, we’ve been getting a lot of crashes in the backend from cmupdater. It has been fixed and we’re doing a special re-run of cm11 nightlies starting today that will have this fix. You’ll still have to manually install this update but after that it should be fine. For anyone else having this issue: please stop hitting report on the crash button. We have plenty of reports. Thanks


The solution is pretty simple: Just do a manual update by powering up your device while pressing Home + Volume Up + Power simulateously. Of course make sure to download a recent nightly version using CM updater. As stated in various bug reports this issue will be fixed once a manual update was executed. Personally, I did not experience problems with updates using the regular CM updater approach after executing the process manually as described above.

Posted on 50 Comments

Unfortunately, Android keyboard (AOSP) has stopped on Android

Android Robot Logo

In case you run into the problem of Android displaying the error “Unfortunately, Android keyboard (AOSP) has stopped“, thus robbing you the possibility to enter text in any form (short messages, emails, URLs in browser, etc.).

Simply follow these steps to get rid of it:

  1. Open up the menu
  2. navigate to Settings
  3. open Apps
  4. open option All
  5. find app Android keyboard (AOSP)
  6. choose option Clear data
  7. find app Dictionary Provider
  8. again choose option Clear data

That’s it! The error should be gone, enjoy!

Posted on 240 Comments

Installing Android Jelly Beans on HTC Desire Bravo

Android Robot Logo

Update: Please read Installing Android KitKat on HTC Desire on how to setup the new Android KitKat version on your HTC Desire.

Due to the memory limitations and the dusty stock Android version (2.2.something) I’ve decided to upgrade my HTC Desire (Bravo) to Android Jelly Beans (JB) (4.1.2). After numerous attempts to install various custom ROMS (e.g. ICS ROM by Sandvold) I’ve finally found a working JB ROM for the HTC Bravo: Jelly Bean 4.1.2 – v3.0 by vijendrahs, which exists in various versions.

Versions Tested

The following ROMs have been tested to work with this guide:

This steps descibed in this post apply to almost any ROM available, although certain configuration options might differ.

The Guide to Installing Android Jelly Beans

This post describes the steps I’ve taken in order to get a working configuration based on this JB ROM that currently (version 3.0) offers the following features:

  1. Data
  2. WiFi
  3. Bluetooth
  4. Rotation
  5. Mic
  6. Sound
  7. USB Mass Storage
  8. GPS
  9. A2SD Script
  10. Trackball wake
  11. HWA
  12. Camera
  13. Sensors
  14. Themes

Improved in 3.1: 3G connection seems to be working much more stable now. Fixed in 3.0: In version 2.8 the camera does not work as expected (flickering). A workaround is to start the camera close it and restart it again. Also, (very rarely) the 3G connection drops but switching to airplane mode and back restores it again.

UPGRADE: In case you are upgrading from a previous version please have a look at the Upgrade Android section.

Otherwise, let’s install JellyBeans on your HTC Desire!

Backup Everything!

If you happen to have any data on your phone that you might want to keep (contacts, SMS, SD card content) now is the last chance to backup your data! There exist numerous tools helping you with that, such as SMS Backup & Restore, Titanium Backup β˜… root, etc. Please have a look at the Upgrade Device section below for backup and restore. Once again – In the next steps you will erase any data on your phone. I’ve warned you πŸ™‚

Rooting the device

First and foremost you need to root your device to gain full control in order to install custom ROMs. Be aware of the fact that you most certainly void the warranty. Furthermore you might ruin your device doing so. All that said go to and follow their guide on how to root your HTC Desire. The process is pretty straight forward so you should not run into problems. If you do please check their FAQ.

Preparing SD card

Next, you will need to do some preliminary device configurations. First, in order to overcome the Desire’s internal memory limitations (512 MB internal memory) we will setup JB to use a SD card as its primary app and cache storage. This way you will be able to install far more apps then you could when only using the internal memory. Hereby, the heavy lifting is done by a2sd, which we will he using later on when actualy installing JB. So, start your (rooted) phone and boot into recovery. You can do this by pressing and holding the power and volume down button when starting the phone (as you did when rooting the phone). You will see the recovery console window as shown below: htc_desire_cwm_rec_1 There navigate to Advanced and select Partition SD card: htc_desire_cwm_rec_2 If you happen to have a 4GB SD card (like me) choose a 2096MB Ext partition (ext3, which will be the default used by a2sd) and a 64MB Swap partition. htc_desire_cwm_rec_3

NOTE: Do the partitioning a couple of times to ensure everything has been written correctly. Then restart your phone into recovery mode again and wipe data and cache (do this a couple of times too).

Copying ROM to SD card

Take out the SD card (i.e. put it in a device such as your tablet to be able to access the partitioned and wiped SD card) and copy the JB ROM onto it, e.g., together with Google Apps (latter can be done afterwards too, additionally version 3.1 and later already include Google Apps in the ROM). Please check the developer’s page for the latest ROM version.

NOTE: The title on the developer’s homepage accidently links to a different ROM than the one described here. Thus, do not download the ROM linked by the title “The fastest/stable CM10 VJ Jelly Bean 4.1.2 vX.X”, but rather scroll down on the page and download the correct version there.

Finally, put the SD card back in and restart the phone another time into recovery mode.

Installing JellyBeans

Now it’s time to actually install the custom ROM you’ve copied to your SD card. In recovery mode select “Install zip from sd card” and select the ROM (e.g. and confirm it to start the installation process. Although you can customize the setup it’s best to just go with the default settings available, i.e. be sure to leave a2sd which we will be using later again. CM will first check the installation ROM zip file for validity, format your system (SD card) and finally start the installation process. Once the installation has finished be sure to restart the phone again by simply selecting “reboot system now” from CM’s homescreen in the recovery mode. Do not boot into recovery this time – let the phone boot normally.

NOTE: Do not panic if you only see the HTC or the spinning CyanogenMod logo for a couple of minutes – this is normal behavior since various installation steps are being processed in the background. If you happen to get stuck on the logo screen first try to reboot your device. If you still can’t continue with the final setup try re-partitioning your SD card again an start over. I’ve experienced this behavior on some devices but after doing these steps a couple of times everything worked out perfectly. Also, make sure to check the data integrity of the ROM ZIP you’ve downloaded as this might cause odd behavior too. Also please have a look at the Google Apps section below for solutions when experiencing the spinning logo problem.

Setting up a2sd

You now should see your fresh JB install for the first time. If not, e.g. the phone does not boot or you get stuck at the Cyanogen Mod loading screen forever make sure to restart the installation process by wiping the data/cache and partitioning the SD card again. I’ve experienced this behavior on a SD card that was not partitioned correctly (not fully aligned). Repartioning the SD card solved this problem. Either way, hopefully you now see in the JB homescreen. There open the Terminal Emulatur and activate a2sd by entering the following commands:

a2sd install

First you will be asked if Terminal Emulator is granted root access – allow it and check remember. Second, a2sd will ask you three questions. Answer them with YES, NO and YES.

NOTE: Selecting three times YES has caused several of my installations to not function correctly, e.g. not being able to update existing apps with the error “Insufficient space”.

If you selected YES for the last question your phone should be restarting now. Let it sit for a while as a2sd will now copy existing apps and cache to your SD card, thus freeing your phone’s internal memory. Once this is done have have a working JB installation with the power of a2sd. Congratulations! πŸ™‚ Also note that you can issue the commands listed above at any time afterwards too, e.g. after you have restored applications using Titanium Backup β˜… root. Thus, sometimes you might need to force a2sd to move applications to your SD card. Simply use this command and you are good to go. Everything after this point is optional. Nevertheless, please have a look at the Final Notes section at the end of this post.

Installing Google Apps

Installing Google Apps is only required for versions prior to 3.0. So, if you happen to use a version prior to 3.0 now would be the time to do so. Download the corresponding ZIP file and copy it to your SD card. Boot into recovery again and select “Install zip from sd card” and select the ZIP file. The installer will guide you through the setup process. After a restart you will have all Google Apps installed on your phone.

NOTE: In case you are experiencing the spinning logo problem when rebooting your device after the installation make sure to not enter your Google account details in the installation wizard. If you are unable to overcome the spinning logo problem repeat the installation procedure and make to not setup your Google account when running the setup wizard for the first time.

Customizing JellyBeans

I’ve experienced that the default CPU governor (OnDemand) drains the battery rather quickly. Thus, be sure to set smartAssV2 as your default CPU governor and select to restore this setting on boot. But be aware of the fact that smartassV2 is not available for version 3.1 and above. In this case just stick with the default CPU governor. That’s everything needed to setup JB on a HTC Desire (Bravo)!

Upgrading Android

At some point you might want to upgrade your Android installation (ROM) to a newer version that probably includes bugfixed and/or improvements. Please note that upgrading your existing installation means that you will loose your current settings since it’s best to wipe your SD card and install the new ROM according to the steps previously described. Thus, you will definitely want to backup your exisiting settings, data and applications in order to restore them after the upgrade process completed. Here are the steps required to backup and restore your settings for an upgrade.

Titanium Backup β˜… root

One of the most prominent backup tools for Android is Titanium Backup β˜… root. So, first of all install Titanium Backup β˜… root. When started for the first time make sure to allow Superuser rights and to check to Remember this setting. Moreover, a System configuration Warning will pop-up telling you that you won’t be able to restore applications due to access restrictions. To fix this go to your devices Settings -> Security -> check Unknown Sources (Allow installation of apps from unknown sources). OK the warning. Please note that in order for this setting to work you have to restart you device. Also, once the entire upgrade and restore process has been completed be sure to uncheck this option again as it poses a security hazard. After a restart open Titanium Backup again and select Backup/Restore from the menu. There you will see a list of your currently installed applications and additional Android related options. Select those apps that you want to backup. Each application selected will be backed up to your SD card in a folder named TitaniumBackup (i.e. /sdcard/TitaniumBackup). Note that applications must be closed in order to be backed up. Fortunately, Titanium Backup will force-close them for you if needed. Also, make sure to select the following options:

  • Accounts (Google accounts, etc.)
  • User Dictionary (Your custom dictionary)
  • Wi-Fi Access Points
  • Settings
  • Settings Storage 4.1.2-eng
  • Phone/Messaging Storage
  • Phone Storage
  • Messaging
  • Media Storage
  • Browser (Bookmarks)
  • Contacts Storage (if not synced with Google or some other service)
  • Calendar Storage (if not synced with Google or some other service)
  • Country, Language, Time zone

Optional settings include:

  • Downloads
  • Application Widgets
  • Bluetooth Pairings
  • Data usage
  • Downloads
  • Key Chain

Depending on the option selected from the list you can either select to backup data, the application itself and both. I recommend to select app+data to make sure you have backed up everything required after a restore. Also note that you might have to restart your device for some Android related settings. Please do so otherwise the restore process will not complete.

Final Notes

It seems like that for some applications a2sd fails to move the application data to the SD card correctly causing it to reside in the internal memory. If this is the case simply move it to the SD card by issuing as2d install in your terminal, as described in the section Setting up a2sd. In case after some time you experience a slower system wipe the cache from withing the recovery console. This should also speed up the boot process, e.g. the spinning CM logo. For a smoother experience you can optimize the wallpaper rendering process by doing the following:

  1. Go to Settings
  2. Launcher
  3. Homescreen
  4. Un-check “Scroll wallpaper”
  5. Check “Wallpaper quick render”

For wired tethering (USB tethering) to work you need to install android-wired-tether. For WiFi tethering to work please have a look at this comment in the comments section below. That’s it, enjoy your new Android version πŸ™‚

Posted on 38 Comments

Transfer SMS messages from Nokia to Android devices

Android Robot Logo

Although there exist numerous articles explaining how to transfer SMS messages from Nokia to Android based devices, all of them required many additional programs to work. For this solution you only need to install

  1. Nokia PC Suite on your computer and
  2. SMS Importer (Lite) on your Android device

Once completed, follow these steps to transfer your SMS messages from your Nokia to your Android device.

Update: The company behind SMS Importer (Secomba GmbH) obviously removed the Lite version from the Play Store. So you can either buy the β€œpro” version or try to download a previous version from e.g. Please have a look at the comments below where to find the APK.

The Process

  1. In Nokia PC Suite open Nokia Communication Center and mark all messages you want to export (e.g. in Inbox)
  2. Export messages as CSV file using File -> Export and use CSV as file type

The following shows an examplary line of the CSV export file:

"sms","READ,RECEIVED","+SENDER_PHONE_NR","","","2012.08.02 05:54","","MESSAGE"

Ensure that the resulting CSV file is UTF-8 encoded. Do so by opening it with your favorite editor (e.g. Notepad++) and save it as UTF-8 content.

  1. Save CSV export file to your Android device on SD-card, without subfolders, e.g. /sdcard/sms.csv
  2. Install SMS Importer (Lite) on target Android device
  3. Configure SMS Importer (Lite) using the following settings:
    • in Main window
      • Folder: Inbox (or Sent depending on the messages you exported from Nokia PC Suite)
      • Source type: Custom
      • File: /sdcard/sms.csv
    • in Advanced preferences:
      • File format: CSV
      • in CSV Settings (double check structure with your CSV file!):
        • Encoding: utf8
        • Seperator: ;
        • Quote character:
        • Skip lines: 0
        • Sender position: 3
        • Date position: 6
        • Date format: yyyy.MM.dd HH:mm
        • Body position: 8
  4. Back in Main screen hit Menu button and start import


If you receive an “an unexpected error occurred” message on import check the advanced CSV settings again and ensure correct UTF-8 encoding as well. The SMS Importer Lite version is limited to 100 messages during import. If you have more than 100 messages (like me) simply split initial CSV file and start the same process for each file.