Friday, October 29, 2010

CM6.1 release candidate available

IMPORTANT UPDATE: Docomo users beware!!!! This and all subsequent CM6 ROMs as of 30 Nov 2010 contain the APN, which may be set by default adding a 4200 yen charge to your bill!!!

Just in case any of you weren't aware, CM6.1 release candidate 1 is now available for download. If you've been keeping up, T-Mobile released a 2.2 Froyo version specifically for the MyTouch 3G, which is the exact same phone as Docomo's ht-03a. And that ROM is quite fast though a bit stripped down.

Prior to that official release, lacking drivers direct from HTC, the CyanogenMod team resorted to reverse engineering to get Froyo running on this phone. These bits and pieces have been in the CM6 nightly builds for a while, but now there is a build that Steve thinks is already good enough to be a daily driver.

No need to wipe before flashing but, as always, do a backup first. If you are using Stevo's swap scripts, you'll need also to reflash those. I've been flashing a lot of ROMs lately, so I just leave it on my SD card. After flashing it run bootswapv2 from the shell using adb or from terminal emulator and answer the questions. I am using swappiness of 20 and no vm tweeks. using bootswapv2 instead SwapScriptv2 will set swap on boot. You'll need to reboot for it to go into effect. I disable compcache when using swap, which is anecdotally the best way of doing it.

$ adb shell
# bootswapv2
Partitions? (A)FAT+SWAP (B)FAT+EXT+SWAP - a
Swappiness? (0-100)
Setting swap at boot...
Swap at boot set with swappiness of 20
VM Settings? (y/n) - n
# exit

The command free will let you know if it is working on not.

$ adb shell free
total used free shared buffers
Mem: 97700 95956 1744 0 752
Swap: 31316 11284 20032
Total: 129016 107240 21776

Friday, October 22, 2010

Android emoji app released: KeitaiMail lite

It is surprising that there is still no native support for emoji in Android, especially since emoji are part of the unicode standard and are also available in the PC version of Gmail (go to the labs section to enable it). At some point, expect support for emoji to show up, perhaps even as soon as the next SDK. In the mean time,  KeitaiMail is a new android mail client that enables emoji support for Gmail.

Keitai Mail has English and Japanese localizations, and perhaps German as well (since I think the dev is German). There is a lite version that is free but ad supported, plus a paid version that adds copy and paste from emails, view emoji descriptions (for now only in Japanese, according to the developer), and custom emoji/icon sets. There is also a paid SMS app. Both paid apps are ¥225.

KeitaiMail is currently a beta version, according to the splash screen displayed as the app starts up, which takes longer than average. Being in beta, I can't recommend purchasing, but his app has a lot of potential until google gets its emoji act together, though it is still a bit rough.

Unfortunately, it didn't work at all for me and my Gmail account, but a recent commenter, who turned me on to the app, mentioned that it worked OK for her. To be fair, problems are to be expected because, let's face it, all IMAP clients on Android suck. Period.

The default client is horrible, doesn't work for me at all with my work account, and only supports polling. K-9 Mail, based of the open source default client, is much better and does indeed include push, but still throws up a number of errors for me, tends to copy the same message MANY times into my drafts folder, and will chew through a battery faster than a dog can do the same to one's favorite pair of slippers (even when only using push, or poll at hour intervals) - which is perhaps the reason for the name...?

OK, on to the setup of KeitaiMail.

Here are some of the rough bits that you can probably expect to be cleaned up in later releases.

It doesn't play well with the Simeji keyboard, which is probably the fault of both apps. Pressing the menu button while the Simeji keyboard is displayed is supposed to bring up navigation keys and a softkey for hiding the keyboard. This doesn't work when using this app. Alternatively, pressing the back button on hides the Simeji keyboard, but in this app, it moves you back to the next screen. As a result, most of the following screenshots will have the keyboard displayed because for the life of me I couldn't make it go away. In addition, pressing the back button from the inbox screen restarts the app, rather than taking you to the home screen.

Setting up an account was problematic for me, which is something the developer has addressed on his blog. I first tried using my full email address as username, which resulted in this:

I checked the password and tried again but to the same result, so I deleted the part of my address, as suggested by the developer.

While this didn't return any errors, the mail app continually tried to connect but with no luck. This continued for about 20 minutes until I killed it.

The settings are very sparse, containing only options for how many messages to fetch and how many to display. The other settings are for the custom emoji sets, but this functionality is not available in the lite version. There are no options for setting the client for IDLE (mail push) or polling the inbox, and there is no information about which it is actually doing. I guess it is polling, but at what frequency is unclear. In my experience, setting the frequency too high will kill your battery.

The Japanese localization is very good but it is primarily written in teinei-go, which is something that I don't think I've seen before. Also, I am used to seeing 版 (han) used more often as "version" rather than 板 (han), for example ベータ版 (beta version).

So, I tried to compose a mail. First, since all the carriers use different emoji, you must select the carrier to which you are sending mail. Then enter the recipient's email address. KeitaiMail doesn't provide an option to select from your contacts and didn't register itself as an app for sending mail. This means that when I clicked on an email address while viewing contacts, composing mail with KeitaiMail was not an option and I had to manually type out the address. I was able to compose a mail with emoji, but it failed to send, unfortunately. Finally, I disabled AdFree to see if it had an effect, but was still unable to send or receive mail. Oh, almost forgot, it seems that a description is given for emoji in the lite version. In the below image, when I clicked the sun emoji, 太陽 appeared at the top. Pressing the same emoji again inserted it into the message.

Lots of potential with this, but it needs a bit of work to iron out the kinks.

Wednesday, October 20, 2010

CyanogenMod 6 is now based on official T-Mobile MT3G Froyo update

IMPORTANT UPDATE: Docomo users beware!!!! This and all subsequent CM6 ROMs as of 30 Nov 2010 contain the APN, which may be set by default adding a 4200 yen charge to your bill!!!

It only took a few hours after the proper people got ahold of the T-Mobile official MT3G Froyo update for that build (FRG83) to to be incorporated into CM6. To left (in English) is the phone information from the hybrid T-Mo/CM6 ROM. To the right is the CM6 nightly from 10/19/2010 (209). I did indeed notice a speed increase with the official ROM but was missing a number of the CM6 features.

Now, as far as I can tell, nightly build 209 is just as fast as the hybrid T-Mo ROM and includes everything from CM6, which now has an option to show the powerstrip in the notifications window.

To try a CM6 nightly, use recovery to back up your current CM6 install and flash the zip file containing the nightly There is no need to wipe, and you won't lose any apps or data at all.

If you installed the hybrid ROM, first wipe (including cache), then restore the nandroid backup of CM6, and finally flash the nightly over the restored CM6 ROM.

Keep in mind that nightlies are experimental builds. Some work great. Other much less so. For me and a number of people, 209 is working fine. Nightly build 208, the last one prior to incorporation of the official ROM, was reportedly very very slow. When 210 is released, it could be better, the same, or worse.

If you have trouble with any experimental build, it will probably be best to go back to the stable release. Or skip to the end of the discussion of nightlies to try and figure out what the was the last one that was reasonably stable.

Nightly builds can be downloaded here.

Tuesday, October 19, 2010

First hybrid T-Mobile Froyo/CM6 ROM released

UPDATE: The official release has been incorporated in the CM6, which is now faster than it has even been. I've reverted back to CM6 and flashed a new nightly.

EDIT: Here is a link to discussion of this ROM on XDA. (Stevo on CM forums = amazinglarry311 on XDA.)

Keep an eye on this post, as I'll be updating as I use this ROM. It comes with Launcher 2, but I plan to replace that with ADW pushed to /system. It also has no support for the Japanese locale, so I am going to be working on adding that as well. Depending on performance, I may flash swapscript 2.1.

As I was about to post this, I just found out that many of the new features are already in the CM6 nightly builds, which can be found here for the ht-03a.

Here is the first ROM based off CM6 and the T-Mobile official Froyo update to the My Touch 3G, which is the same phone as Docomo's ht-03a. A full wipe of the phone is required first. Do a nandroid backup first! I'd also suggest using Titanium Backup to backup your user applications to save the hassle of having to download them again. Both Simeji and ADW launcher have options to save your settings to the SD card, which is good to do so that you can quickly restore.

The official update is coming in two parts, the first part of which seems to contain an SPL and radio. It appears the SPL is "perfect," meaning that anyone who installs the update from T-Mobile with have to use a goldcard to change SPLs if they ever wanted to use fastboot commands. (Note: the ht-03a shipped with a perfect SPL.)

The first step for anyone who has an engineering SPL is to erase /system /data and /cache with fastboot. (This will not work for anyone who used Universal Androot on the ht-03a. Those people should flash the zip in main post to erase. This can also be done by booting into recovery, but does not always result in a full wipe and is therefore not the preferred method).

fastboot erase system -w

Next, flash the zip from recovery and reboot. Go to Settings/Wireless Networks/Mobile Networks and deselect roaming if it is on - don't think this will matter in Japan, though.

That's it.

So far, it does seem quite speedy, though for me, it is not amazingly fast compared to CM6. I think the people who are absolutely freaking out about that, for whatever reason, had an exceptionally slow experience with CM6. I'll update below as I use this more.

Friday, October 15, 2010

Carriers to lift ban on skype in Japan, allow usage over 3G

The reason that Skype for Android is not available in the market is now more clear. It was apparently banned by at least AU and Docomo. Docomo maintains a list of allowed and prohibited services, which includes streaming radio, P2P, Voip (including Skype), and MMOs like Second Life. I couldn't find a similar list for AU and Softbank.

According to the Nikkei, (Japanese, login required; English; login not required but the article is different), AU is lifting the ban and will allow skype over 3G with the release of the IS03 Android phone from Sharp. (More on the IS03 in English here and here.) Docomo is expected to follow suite. Both the IS03 and Skype with AU should be available from November.
But there is bad and ugly along with the good it seems. Au and Skype are partnering to route calls through AU's network, which is what Skype and Verizon did in the US, resulting in good quality, but the freaking app only worked on 3G - no wifi. Now in the US, there is the official app, which only works on wifi. In the beginning, the only Skype app for Android used voice minutes for calls. What a mess. AU is still considering whether to charge voice minutes for Skype calls on their network on the one hand, but saying they don't expect to take a revenue hit if calls were free on the other.
Because calls between Skype users are free, mobile-phone companies have feared their revenue would decline should they make the service available. For that reason, the Skype app was viewed as verboten until now, according to KDDI Senior Vice President Takashi Tanaka.

The firm will allow Skype calls between au subscribers to go through its network rather than the Internet, which will put the quality of those calls on par with regular telephone conversations. It is still exploring whether to charge cellular fees on those calls.

And even if the calls are free, KDDI expects a muted impact on revenue because it anticipates growth from smartphone data transmission fees.

Wednesday, October 13, 2010

US T-Mobile to release official Android 2.2 ROM for HTC Magic (really this time)

EDIT: It's worth mentioning that there are some who are skeptical of this, but it seems that much of the skepticism came prior to the addition of the below image.

From Tmo News.
Via CyanogenMod Forums, I learned that US T-Mobile will push Android 2.2 to the original MyTouch 3G, which is the exact same handset as Docomo's ht-03a, a PVT 32B Magic. Finally, after much confusing information, and many promises of "this summer," it really seems that this is actually going to happen.

This is excellent news, even if Docomo never pushes it. Why? Because, lacking official HTC drivers, the CyanogenMod team resorted to reverse engineering. You can bet that some of the bits and pieces of this official ROM will find their way into CM6, such as the camera drivers, as well as the 3D gallery to fix the annoying rotate bug (that can be worked around by simply pressing the zoom button).

ciwrl (A CM forum mod) has already stated as much. But he also raises an interesting topic: the full ROM would break support for the G1. The Dream/G1 and Magic/Sapphire have always run the exact same CM ROM, but ciwrl's comments raises the question of whether they should be made into separate ROMs.

Either way, rooted ht-03a users will get the full benefits of these official drivers, regardless of what the Cyanogen team decides. As soon as the OTA is pushed, it will be rooted, especially if Universal Androot works. And just as soon as it is rooted, it will be posted to XDA. And, in turn, a new ROM will be compiled incorporating the full suite of HTC code. This new ROM is virtually guaranteed to draw heavily on Cyanogen's code.

For us, it's a win win situation.

Saturday, October 9, 2010

Using Skype for Android in Japan

While Skype for Android is not yet available in the Japanese and Chinese markets, it can be downloaded by using MarketAccess, or alternatively, a direct link to the uploaded apk. I verified that the apk from the direct link has the same md5 sum as what is in the market (a1cb67d3a30e188026405bf2c673c4bb)

Skype requires at least Android 2.1, so this rules out all currently available Docomo android handsets not running custom ROMs. And for those of you waiting for the Samsung Galaxy S, you're also outta luck (for now) because skype won't run on it, presumably because of the proprietary UI (More reasons why I don't like proprietary UIs).

However, the developers have a bit of work to do. Based on my limited experience with Docomo's ARMv6-powered ht-03a running CM 6.0 and overclocked to 576 MHz, the current version is not worth the 14 MB (!) it is using on the /data partition. (It can be moved to the SD card.) Call quality over both 3G with a strong signal and wifi was horrible. Latency was extremely high and it seemed like only one in a thousand packets were transmitted successfully (see below for errors from my log).

Correct me if I'm wrong, and I'm sure someone will, but both the first gen iPhone and 3G I believe are also equipped with an ARMv6 processor, albeit it of slightly specs. So, if skype works flawlessly on the these handsets, there may be hope for the ht-03a. (I realize that the ht-03a isn't even supposed to be able to run Android 2.x and also that skype could simply be beyond it's capabilities.)

Below is my experience with skype (ht-03a; CM 6.0; 576 MHz; 32 MB swap, 20 swappiness, class 6 SD):
  • It is very laggy using the dialer around the edges.
  • Login credentials are not saved, and automatic login doesn't work after signing out.
  • Returning to skype after using another app lands you on the sign in page, where you may have to sign in again, even if you ticked the automatic login checkbox, and even though there is a currently-signed-into-skype notification in the notification bar.
  • Calls connect over both 3G and wifi.
  • Call quality is so bad it is unusable on the ht-03a. (See comments, it works on the more powerful v7 chips.)
  • Signing out is convoluted, requiring you to click on your profile information and change you status to signed out.
  • After signing out, the process remains active, so you have to kill it from either application management or running processes.

Here is a summary of my log from a two minute call over wifi:

First we start with something that seems normal.

10-09 10:38:38.318: DEBUG/AudioHardwareMSM72XX(111): audpre_index = 8, tx_iir_index = 17
10-09 10:38:38.358: DEBUG/HTC Acoustic(111): msm72xx_enable_audpre: 0x0000
10-09 10:38:38.378: INFO/AudioHardwareMSM72XX(111): Routing audio to Handset
10-09 10:38:38.398: DEBUG/HTC Acoustic(111): msm72xx_enable_audpp: 0x0000
10-09 10:38:38.398: INFO/AudioHardwareMSM72XX(111): Routing audio to Handset
10-09 10:38:38.398: DEBUG/HTC Acoustic(111): msm72xx_enable_audpp: 0x0000
10-09 10:38:38.459: INFO/AudioHardwareMSM72XX(111): Routing audio to Handset
10-09 10:38:38.469: DEBUG/AudioHardwareMSM72XX(111): audpre_index = 8, tx_iir_index = 17
10-09 10:38:38.469: DEBUG/HTC Acoustic(111): msm72xx_enable_audpre: 0x0000
10-09 10:38:38.469: INFO/AudioHardwareMSM72XX(111): do input routing device 40000
10-09 10:38:38.469: INFO/AudioHardwareMSM72XX(111): Routing audio to Handset
10-09 10:38:38.469: DEBUG/HTC Acoustic(111): msm72xx_enable_audpp: 0x0000

Then we get 646 instances of this...

WARN/AudioFlinger(111): RecordThread: buffer overflow

Intermixed with 18 occurrences of this.

obtainBuffer timed out (is the CPU pegged?) 0x329bf0 user=000f5534, server=000f4b00

And of course, 32 of these.

INFO/ActivityManager(143): Low Memory: No more background processes.

We get a nice summary of processor usage.

10-09 10:39:47.558: ERROR/ActivityManager(143): ANR in
10-09 10:39:47.558: ERROR/ActivityManager(143): Reason: Broadcast of Intent { act=android.intent.action.ACTION_POWER_CONNECTED flg=0x10000000 }
10-09 10:39:47.558: ERROR/ActivityManager(143): Load: 6.64 / 4.28 / 3.67
10-09 10:39:47.558: ERROR/ActivityManager(143): CPU usage from 15324ms to 870ms ago:
10-09 10:39:47.558: ERROR/ActivityManager(143):   skypekit: 14% = 13% user + 0% kernel / faults: 43 minor 3 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   mmcqd: 13% = 0% user + 13% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):   system_server: 12% = 0% user + 12% kernel / faults: 3359 minor 569 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   skypekit: 7% = 6% user + 1% kernel / faults: 54 minor 6 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   skypekit: 6% = 5% user + 1% kernel / faults: 125 minor 27 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   tiwlan_wifi_wq: 5% = 0% user + 5% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):   adbd: 4% = 0% user + 3% kernel / faults: 116 minor 1 major
10-09 10:39:47.558: ERROR/ActivityManager(143): 4% = 2% user + 1% kernel / faults: 1001 minor 74 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   mediaserver: 4% = 1% user + 2% kernel / faults: 218 minor 9 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   skypekit: 3% = 1% user + 1% kernel / faults: 16 minor 6 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   kswapd0: 2% = 0% user + 2% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):   synaptics_wq: 1% = 0% user + 1% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):   akmd: 0% = 0% user + 0% kernel / faults: 100 minor 1 major
10-09 10:39:47.558: ERROR/ActivityManager(143): 0% = 0% user + 0% kernel / faults: 496 minor 36 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   e.process.gapps: 0% = 0% user + 0% kernel / faults: 612 minor 62 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   skypekit: 0% = 0% user + 0% kernel / faults: 5 minor
10-09 10:39:47.558: ERROR/ActivityManager(143):   events/0: 0% = 0% user + 0% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):   kblockd/0: 0% = 0% user + 0% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143): 0% = 0% user + 0% kernel / faults: 364 minor 12 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   d.process.acore: 0% = 0% user + 0% kernel / faults: 317 minor 15 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   kondemand/0: 0% = 0% user + 0% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):   usb_mass_storag: 0% = 0% user + 0% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):   binder: 0% = 0% user + 0% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):   wpa_supplicant: 0% = 0% user + 0% kernel / faults: 113 minor 1 major
10-09 10:39:47.558: ERROR/ActivityManager(143):   skypekit: 0% = 0% user + 0% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):   skypekit: 0% = 0% user + 0% kernel / faults: 6 minor
10-09 10:39:47.558: ERROR/ActivityManager(143):   skypekit: 0% = 0% user + 0% kernel / faults: 29 minor 6 major
10-09 10:39:47.558: ERROR/ActivityManager(143):  +ndroid.settings: 0% = 0% user + 0% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):  +sh: 0% = 0% user + 0% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):  +logcat: 0% = 0% user + 0% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143):  -id.input.simeji: 0% = 0% user + 0% kernel
10-09 10:39:47.558: ERROR/ActivityManager(143): TOTAL: 100% = 49% user + 49% kernel + 0% iowait + 0% softirq

And finally, the skype process stops and restarts indefinitely until I killed it.

10-09 10:45:20.978: INFO/ActivityManager(143): Process (pid 12568) has died.
10-09 10:45:20.988: WARN/ActivityManager(143): Scheduling restart of crashed service in 5000ms
10-09 10:45:26.018: INFO/ActivityManager(143): Start proc for service pid=12575 uid=10087 gids={3003, 1015}

Friday, October 1, 2010

Finally official: Samsung Galaxy S coming soon to Docomo

Judging by the number of emails I've received about the Samsung Galaxy S coming to Docomo, I'd have to say that a lot of people are excited about the phone. I can see why: 1 GHz processor, Super AMOLD 4" screen, and good battery life.

I've held off until posting until I heard something official.

October 5th? As in one week after the official announcement? Way to build excitement, Docomo. As of today, it is not even listed as "coming soon" in Docomo's product page.

There are some downsides to purchasing this phone, but these are of course personal preferences.
  1. Not ready for LTE, which is coming this December to Tokyo/Nagoya/Osaka.
  2. It is running Android 2.1, which is not the latest version Android 2.2 under a proprietary UI, meaning it will taken longer to get Android updates. The above linked review indicates that Samsung's UI is not as good as HTC Sense. I prefer the plain 2.2 interface anyway, though I know there are a number of you who like the Sense.
  3. Any phone bought before Docomo starts unlocking SIMs is not subject to unlocking (though you can always get it done through other means).
  4. Samsung lacks the huge (and I mean HUGE) hacking community that HTC enjoys - er, I mean that users of HTC products enjoy.
And finally, Docomo also plans to bring several more smart phones (PDF; slide 23) to market in the winter-spring of this fiscal year. No details on what exactly, but there will be models with keiai-osaifu, one seg, and, presumably, LTE.

Docomo Xi LTE roadmap

Docomo's "Xi" (Crossy) LTE service will start in just a couple of months, yet we have not heard anything about what types of phones will be available. Given that Docomo waited to officially announce the Galaxy S until one week prior to launch, and any announcements could diminish second quarter sales, I bet we won't hear too much any time soon.

However, more details about the service are starting to creep out. The following are three slides from a recent Docomo presentation (PDF).

We see an example of branding on an LTE radio-equipped handset (that does not at all resemble a clamshell feature phone, though this is just an "image.")

And we also now have more concrete information on their expansion plans. In just two months, Xi service will be switched on in Tokyo/Nagoya/Osaka, covering nearly 10% of the population by April 2011. That amount will double by April 2012, and double yet again by April 2013, with a projected 40% of the population covered by LTE with maximum indoor download speeds of 75 Mbps and 35 Mbps outside.

The other carriers on the other hand will have just started LTE service at this point, likely with the exception of softbank who has not announced a timeline for roll out.

So for me, I am in no rush to pick up the latest and greatest handset until I see what LTE offerings are around the corner.