1000umbrellas.com

Michael Descy's Personal Website

Browsing Posts tagged android

Sapphire 1.0.0, a superlative custom ROM for the Motorola Droid, was just released. You can upgrade to it via ROM Manager using the steps I previously wrote. Just substitute build 1.0.0 for 0.8.4. You still have to downgrade to ClockworkMod 2.0.1.3 to update using ROM Manager (i.e. ClockworkMod 2.5.0.1. won’t reboot your phone when installing this rom).

I just upgraded (I wiped cache and data, just to be sure), and so far things are working very well.

For the past several months, I have been a huge fan of running CyanogenMod (CM5, mostly) on my rooted Motorola Droid. Unfortunately, the ROM’s latest incarnations (CM6 RC1 and RC2)—which correspond to its move to the Froyo source code base—have not run stably on my phone. Despite my efforts to fix the problems (reflashing, wiping data and cache, fixing permissions, switching kernels), apps under CM6 keep crashing. Luckily, I found a great alternative, a Froyo-based ROM that has been much more stable than CM6: Sapphire 0.8.4. Sapphire is based on the Froyo source code, like CyanogenMod, and is completely independent of CyanogenMod’s codebase.

While CyanogenMod has more interface and application tweaks than Sapphire, Sapphire runs more stably on my phone (compared with CM6 RC1 and RC2), which is far more important. One of Sapphire’s killer features is that it integrates the basic overclocking/underclocking mechanisms found in the SetCPU app, which enables you to overclock without SetCPU (unless you wish to set up profiles). The rest of the Froyo goodness, including the JIT compiler, wifi tether, Exchange support, and Chrome-to-Phone, are all included.

If CM6 isn’t working well for you, I highly recommend trying out Sapphire. I found it a little tricky to install via ClockworkMod Recovery/ROM Manager, because you have to downgrade ClockworkMod Recovery to do so. The instructions below reflect the steps I took to switch from CM6 RC1 to Sapphire 0.8.4. If you’re new to flashing ROMs on your phone, know that it requires root access. Also, Sapphire appears to be compatible with the Motorola Droid only at this time.

  1. Install/upgrade to the latest version of the ROM Manager app via the Android Market.
  2. Open ROM Manager.
  3. Due to an incompatibility of the latest ClockwordMod Recovery, Sapphire will install with ClockworkMod 2.0.1.3 or earlier. To flash this recovery, scroll to the bottom of ROM Manager’s main screen and select “All ClockworkMod Recoveries” from the “More Recoveries” section.
  4. A recovery selection popup will appear. Choose “2.0.1.3″ and click the “OK” button.
  5. ClockworkMod 2.0.1.3 will be flashed to your devise. (If for some reason the recovery does not install, use ROM Manager to “Flash Alternate Recovery” and then repeat steps 3 and 4.)
  6. From the “ROM Management” section in ROM Manager, select “Download ROM”.
  7. Select “cvpcs” under the “Free” section.
  8. Select “Sapphire 0.8.4 (Froyo)”, which is the latest stable release at this time.
  9. A screenshots popup will appear. Click the “Download” button.
  10. A kernel selection popup will appear. Choose a kernel from the list. I use P3Droid’s 125-800mhz Low Voltage kernel. You may choose one with a faster top speed if you wish. Click the “OK” button.
  11. A theme selection popup will appear. Choose a theme from the list. I stick with the “Stock (Default)” theme. Click the “OK” button.
  12. A ROM addons selection popup will appear. Check “Google Apps” so that Google’s standard apps (including the Market) will be installed. Check the “Market Hack”, too. Until Motorola releases an official Froyo build for the Droid, copy-protected apps will not show up  in the Market when you run a Froyo ROM. The Market Hack fixes that. Click the “OK” button.
  13. ROM Manager will download the necessary ROMs.
  14. When the downloads complete, a ROM pre-installation popup will appear. Check both of the options: “Backup Existing ROM” and “Wipe Data and Cache”. Always back up your current ROM prior to flashing a new one. Sapphire’s developers say that it is important to wipe data prior to the install. Froyo will re-download your apps from the Market after a reinstall, so it isn’t as much of a pain as you think it might be. Click the “OK” button.
  15. ROM Manager will reboot into recovery and install all the ROMs you selected.
  16. When the phone reboots again, you will be able to log into your Google account and set everything up. The Market will download all your previously-installed apps during the sync process. Just be patient!

I prefer the ADW Launcher to the launcher that Sapphire comes with. ADW Launcher is a free download from the Android Market.

When I was in high school, we used to play a simple but addictive shareware game called Scorched Earth, a turn-based artillery game. It involved tanks shooting at each other with crazy weapons, fun upgrades, very basic controls, and a little dumb humor. I was delighted to find out that there is a version of it on the Android platform, called Barrage. I think it captures the essence of the original game perfectly, and is easy to pick up and play on your phone. It’s a lot of fun, especially if you’re a nostalgic gamer.

Barrage Lite

Barrage Lite is free and includes the entire game. You can purchase the paid version to add more weapons, remove the unobtrusive ads from certain non-gameplay screens, and save your high scores and publish them for all players to see. Sadly, there is no online play, though that would be awesome. Still, it’s very good, and I heartily recommend it if you played the original in the DOS days!

I hate getting up in the morning, and have long had trouble falling asleep at night. These two apps by Mobitobi work together to make it a bit easier.

Gentle Alarm

Thanks to the Motorola Droid’s dock and clock (ahem, “Multimedia Station”) mode, my phone became my alarm clock the day I brought it home. (Of course, due to the insanely bright LED lights on the Droid, I have to shut off the display before turning in for bed! The LEDs Hack doesn’t work for me very well.) Android’s default alarm clock is fine, but I really wanted an alarm that didn’t blast me out of bed in the morning, but started out quietly instead, and gradually increased in volume until it woke me up. Luckily, the Gentle Alarm app exists for just this purpose.

Gentle Alarm's Main Screen

Gentle Alarm provides alarms that fade in over a user-definable period, and customizable snooze times, too. It can ring any alarm, audio file, or ringtone on your phone. (The app, and your Android ROM, come with a number of alarm sounds by default.) Gentle Alarm’s defining feature is its “pre-alarm” feature, which tries to take advantage of your sleep cycles to wake you up when you are refreshed. The idea is to ring a very quiet alarm, prior to your normal wake-up time, to rouse you if you are already almost awake. If you are still in a deep sleep, you won’t be able to hear it. (It’s true!) The app helps you calibrate the volume, so the pre-alarm will only wake you up when you are not sleeping deeply, and the main alarm will always ring loud enough (eventually) to rouse you out bed. I’ve found that the pre-alarm helps me wake up earlier, or at least hit snooze less often, and still refreshed.

Gentle Alarm's Profiles Screen

If you’re worried about replacing Android’s tried and true alarm system with a third-party, and potentially unstable, application, don’t be. Gentle Alarm hooks into Android’s normal alarm routines, so, short of your battery dying, you can be assured that the alarm will ring.

Gentle Alarm's Alarms Screen

It took only one night’s trial for me to fall in love with and purchase the Gentle Alarm app. (The free version only works 6 days per week.)

Sleep Now

Sleep Now is a great app for the power napper or anyone who has trouble getting to sleep at night. It’s a fancy white-noise generator and alarm clock wrapped up into one package. I really like it, because I think it helps me fall asleep faster, and sleep more soundly, than I did without it.

Sleep Now's Main Screen

You set up programs to fall asleep to music or white noise.

  1. Relax to music (whatever is on your phone), white noise, or other sounds included with the app.
  2. Sleep to white noise, other sounds, or silence.
  3. Wake up to a gentle alarm.

Programs can be configured to a fixed sleep timeframe, such as a 20-minute power nap, or to prompt you for a sleep duration when you run them. The alarms are similar to the Gentle Alarm app, but cannot be scheduled to exact times of day, and do not include the pre-alarm function. Like Gentle Alarm, Sleep Now allows you to calibrate your volume.

Sleep Now's Sleep Programs Screen

Two Apps?!

I bought both apps and use them every day. I think that Gentle Alarm could be folded into Sleep Now, because only two features of Gentle Alarm (alarm scheduling and the pre-alarm) are missing from Sleep Now as it is. The developer may do that in the future. Because the apps are not that expensive, I use them every day, and I like to support small developers, I didn’t hesitate to buy both.

Here are instructions on how to overclock your Motorola Droid. I learned how to do this through various forum posts and a blog posts, some of which were a confusing mess of information and misinformation. My goals is to summarize what I have learned in one place, to act as a more-or-less definitive guide.

SetCPU

  1. Root your Droid. (Note that I rooted my Droid before 2.1 came out, so I have not followed the instructions that I have linked to, and cannot comment upon them.)
  2. Install ROM Manager from the Android Market. This app, and the ClockworkMod Recovery it comes with, make flashing ROMs a lot simpler than the process used to root your phone.
  3. Flash ClockworkMod Recovery via ROM Manager. (You don’t need the paid version for this tutorial.)
    1. Launch the ROM Manager.
    2. Click the first option: “Flash ClockwordMod Recovery.”
    1. Grant the app root access (and check “Always Allow”) when it asks you.
    1. A popup will ask you to confirm your phone model. Just click on “Motorola Droid (CDMA)”.
    2. This will download and install the ClockworkMod recovery image. Just wait a couple minutes. There’s no need to reboot your phone afterwards.
  4. Install the latest stable CyanogenMod via ROM Manager.
    1. In ROM Manager, click the “Download ROM” option, then click “CyanogenMod”, then click the latest stable release. As of this writing, the latest stable release for the Droid is 5.0.6.2.
    2. A popup will appear. Check the box next to “Google Apps” and click “OK”.
    3. ROM Manager will then download the ROMs for Cyanogen and Google Apps. When the downloads are complete, ROM Manager will alert you for more options prior to installation.
    4. When the downloads are complete, a “ROM Pre-Installation” popup will appear. Check the option to “Backup Existing ROM” just to be safe. If you are doing this for the first time, or are changing themes, check “Wipe Data and Cache”; you may leave it unchecked if you are upgrading to a new version of the same ROM. Click “OK”.
    5. The phone will then reboot into recovery, back up your current ROM to the SD card, install CyanogenMod, and then reboot when it is done. The first boot into the new ROM might take a little longer than normal. Don’t worry.
  5. Set up your phone again.
    1. You will need to sign into Google again and re-download all your apps. (Yes, this is a pain, but you did just reinstall everything on your phone!) You can re-download your apps after overclocking, if you wish. You will not have to pay again for any paid applications you purchased from the Android Market. You will not have problems “reactivating” your phone.
    2. If Google apps, such as Google Maps, are missing, that means that you didn’t check “Google Apps” when you downloaded the ROM. You will have to install Rom Manager and then reinstall CyanogenMod with Google Apps to fix this.
  6. Install the bekit kernel, which allows you to overclock your CPU.
    1. Open ROM Manager.
    2. Click “Download Rom”, then “CyanogenMod”, then “bekit Kernals (0.8.3)”.
    3. Choose your bekit kernel from the popup that appears. I recommend “5 Slot 800MHz 0.8.3 *Low Voltage*” (which I use for this tutorial) or “5 Slot 1.0 GHz 0.8.3 *Low Voltage*”. A “slot” is an operating frequency. 5-slot means that there are 5 speed settings at which you can set your CPU. 7-slot kernals have 2 more speed settings. I don’t see much need to set the CPU to a whole bunch of different frequencies, so 5-slot kernals are good enough for me. You should stick to the “Low Voltage” kernels (scroll down in the list to find them) to avoid overheating your CPU or decreasing battery life more than necessary.
    4. The kernel install process through the ROM Manager works similarly to the CyanogenMod ROM install process. When the kernel download is complete, a “ROM Pre-Installation” popup will appear. Check “Backup Existing ROM” if this is your first time changing kernels, or if you don’t have a recent backup. Do not check “Wipe Data and Cache”. Click “OK”.
    5. The phone will reboot into recovery, back up your current ROM to the SD card (if you selected that option), install the new kernel, and then reboot when it is done.
  7. Purchase and install SetCPU from the Android Market. It costs $1.99 as of this writing, and is totally worth it. Read more about SetCPU here.
  8. Set up SetCPU’s global settings.
    1. Launch SetCPU.
    2. Click the “Autodetect Speeds” button. Grant the app root access (and check “Always Allow”) when it asks you.
    3. SetCPU will display the maximum and minimum CPU speeds your kernel supports. Using the “5 Slot 800MHz 0.8.3 *Low Voltage*” bekit kernel, you should see 800MHz max and 250 MHz min.
    4. Adjust the sliders on SetCPU’s main screen to set the global minimum and maximum CPU speeds. I tend to leave the minimum as 250MHz and the maximum as 800MHz. Remember that the stock Motorola Droid CPU is underclocked from 600MHz to 550 MHz, so 250MHz is actually underclocking (better for battery life) and 800MHz is overclocking (better for performance).
    5. Set the CPU Governor. I recommend using default CPU Governor: “ondemand.” This means that the CPU will scale up when the phone is busy (i.e., when you are using it) and will scale down when the phone is idle (i.e., sleeping). The “conservative” CPU Governor scales speeds up more slowly than “ondemand” does; I find that it makes games a little laggy. The “performance” CPU Governor simply always uses the maximum speed setting; this seems unnecessary for a device that spends most of the time sleeping.
    6. Check “Set on Boot”. The only reasons not to have “Set on Boot” checked is if you are flashing a new ROM, or if you are overclocking by a lot (say, to 1.2 GHz) and are concerned about stability.
  9. Set up SetCPU Profiles. (This step is optional, but recommended.)
    1. In SetCPU, click the “Profiles” button. A popup will appear.
    2. Check “Profiles On” in the popup.
    3. To update a profile, click on its “Enabled” checkbox, click the “Modify” button, set the CPU speed sliders and CPU Governors in the popup, and click the “Apply” button. My recommended profile settings (for my 800MHz kernel) follow.
    4. Enable the “Charging” profile. Set to 550 Max, 250 Min, ondemand. You don’t want to overclock while charging, because the battery is already hotter while charging, and you don’t want to overheat your phone.
    5. Enable the “Sleep/Standby” profile. Set to 550 Max, 400 Min, ondemand. You can set the minimum speed to 250MHz, but I like 400MHz, because the phone wakes up a little faster.
    6. Enable the “Battery Profiles”, which will be in use most of the time you actually are using the phone. You have to set up all 3 profiles for them to work. I like to set them to scale back the CPU speed as the battery is depleted.
      1. Enable a “Power < 100%” profile. Set to 800 Max, 400 Min, ondemand, if battery is under 100%.
      2. Enable a “Power < 50%” profile. Set to 600 Max, 400 Min, ondemand, if battery is under 50%. This steps down the CPU a bit to eke out more battery life.
      3. Enable a “Power < 15%” profile. Set to 550 Max, 250 Min, ondemand, if battery is under 15%. This steps down the CPU a bit more to eke out more battery life.
    7. Leave the “Failsafe Profile” as is, and enabled. This profile kicks in when the phone starts to overheat. I’ve never had my phone overheat for any reason. SetCPU reports the battery temperature of my phone as 30° C to 40° C, which is well under the danger zone for this CPU (which starts, I believe, at 50°C).

After all this, your phone will be overclocked during use and underclocked at rest. I find that a little overclocking makes the Droid a lot more pleasant to use, and doesn’t hamper battery life much, and doesn’t affect stability at all. The whole process will cost you about $2 for SetCPU. If you love ROM Manager, buy that app, too, and support the developers. The premium version of ROM Manager unlocks a lot of ROMs and themes, and provides notifications if an update is available for your ROM.

I bought my Motorola Droid the morning it was released to the public. The first app I installed on it was Locale, which promised to automatically set the phone’s volume, wifi settings, and so on, based on its current location. I thought this was a great idea: I could automatically silence my phone at the office, and turn the ringer on while at home. Unfortunately, after a couple days, I realized that Locale basically never updated my location, so it never worked right. I still stuck with Locale for a while, because it also allows you to set you phone’s volume (etc.) based on the time of day. After Locale became a $9.99 app, I uninstalled it in favor of a free alternative: Timeriffic.

Timeriffic allows you to change your phone’s volume (ringer and notifications), wifi, Bluetooth, screen brightness, and airplane mode, based on whatever day and time schedules you create. It is easy to set up (though the UI colors are kind of garish), stable (no force closes), and has almost no effect on battery life.

Timeriffic

I use Timeriffic to silence my phone while I am asleep. Typically, I don’t receive phone calls in the middle of the night, but I receive a lot of notifications, which I don’t want to wake me up. Silencing the ringer or notifications with Timeriffic is an all-or-nothing setting. The downside to Timeriffic, as opposed to Locale, is that you can’t “whitelist” phone numbers to ensure that certain people can reach you, even when you’re phone is set to silent. That isn’t a problem for me, but then again, I don’t have a job that requires me to be on call.

Locale has more features and a better user interface, but it is way too expensive, for what it is, to recommend. For my needs, the free Timeriffic is more than adequate.

NewsRob

Comments off

NewsRob is a paid app* that I use every day to access Google Reader. You might think that it is a mindless luxury, because Google Reader actually has a decent mobile site. That said, the Android Browser is pretty slow, and loading the content often took more time than was worthwhile.

NewsRob solves the loading time problem for me by fetching updates from Reader on a regular (configurable) basis. It will download the feed, the entire article, and, if you want, the entire web page (mobile or regular). You can choose to be notified of feed updates via the Android notification system, or via a home screen widget (I prefer the latter). NewsRob will sync your read/unread, starred, and shared items back to Google Reader.

NewsRob

I like using NewsRob because it saves me time. It was definitely worth the cost to buy the Pro version, because the notifications, widget, and improved loading time of articles allows me to consume my RSS feeds far quicker than Google Reader’s mobile version does alone. If you are a heavy Google Reader user, I recommend NewsRob for your Android phone.

* A free, ad-supported version is coming/available.

Touchdown

Comments off

Verizon charges a monthly fee for Exchange access, which is exorbitant and ridiculous. For the first couple months I owned my Android phone, I didn’t have access to my company email or calendar, because I wasn’t willing to pay an additional monthly fee.

Later, a coworker recommended I try out Touchdown, a $20 app that integrates Exchange with my Android phone. Instead of a monthly fee to Verizon, you pay the developers one time for registration. It’s definitely an acceptable trade-off. I’ve used Touchdown daily for months now, and think that it is worth every penny.

Touchdown's home screen

Touchdown works very well. Its interface won’t blow you away, but it is certainly easy enough to use, and the push notifications and home screen widgets work perfectly. The initial setup wizard used to connect with the Exchange server is easy to use. The other settings are voluminous and a little intimidating, but it is nice that the app allows you to tweak it so thoroughly.

Having work email on your smartphone is a mixed blessing, I’ve found, but it is hard to argue against having appointment reminders (i.e., your work calendar) on your phone. If you’re on Verizon, and would like Exchange support without adding more costs to your contract, Touchdown is the app of choice.

As a consultant, sometimes I have to take a plane or train to work and back each week. Last year I stayed in hotels almost 50 nights—and that was a pretty light year for travel. Traveling is stressful. Trains are late. Flights get cancelled—sometimes when I’m sitting on the plane. Gates get switched three or four times for no apparent reason. Printed itineraries get lost. Confirmation numbers get forgotten. It’s incredibly tough sometimes to keep everything straight. Fortunately, just before my last business trip to California, I discovered two Android (and web) apps that have helped me pull everything together, fairly neatly, and allow me to relax a bit about all the particulars.

TripIt

TripIt is a well-known web service that allows you to easily build itineraries, share them with people, and take them with you on your Android phone, iPhone, or iPod Touch. It’s a powerful service, and easy to use, because most of the work is done for you. You just email your itineraries and confirmation emails to TripIt, and it structures the entire trip for you. You don’t even need to set up an account: you can log in using Google or Facebook credentials (I love this feature!). TripIt is free and very useful, but it doesn’t do absolutely everything for you. The phone app does not let you edit your itinerary; you have to use the web app for that. More importantly, the TripIt app does not notify you if your flight status changes. For that, you can sign up for TripIt Pro for $69/year, which will text you whenever there’s a change.

FlightTrack Pro

If you want to save a bit of money, though, you can purchase a $10 Android app that will notify you of all the flights you sent to TripIt: FlightTrack Pro. FlightTrack Pro does one thing very well: it tells you whether your flight is on time, delayed, or canceled, and which gate it is at. The non-pro version is $5, and requires you to enter your flight information manually. The pro version, an additional $5, reads your flights from TripIt. It’s worth the $10, I think, to save the annual fee for TripIt Pro. Plus, it loads your flights much quicker than TripIt, and has a handsome widget for your home screen.

I’ve tried all the Twitter clients in the Android Market, and always return to Twidroid Pro. Twidroid is one of the earliest and most popular Twitter apps on the Android platform. I prefer the way it works to competing apps, mostly because of its interface. is superior for quick information consumption and action.

Twidroid Pro

I think Twidroid offers the highest number of features of any Android client, and its interface is very good for quickly collecting and acting on information in your streams. Unlike single-service apps like Seesmic or Mustard, Twidroid supports Twitter as well as Identica and StatusNet installs. The Pro version can combine all your accounts, across all services, into one stream, or display each one individually. When you select a tweet, a menu pops up that provides you with every option you may want to perform (reply, follow a link, view conversation, etc.). Critically, selecting a tweet does not slide you over to a view of the single tweet, which is time-consuming and idiotic, just so you can follow a link. One feature I frequently use is”view conversation,” which puts messages in context. This feature is all the more impressive because it is not in the native Twitter or StatusNet API.

Twidroid provides notifications and widgets just as you’d expect on the Android platform. Twidroid is free, but you must purchase Twidroid Pro to access multiple accounts. It’s worth every penny, in my opinion.