Showing posts with label android. Show all posts
Showing posts with label android. Show all posts

Joby GripTight tripod mount for Smart Phones

Continuing my blog series about interesting accessories for your smartphone. Did you ever want to make shake-free photographs and videos with your smartphone. The $20 Joby GripTight Mount connects your smartphone onto any tripod to provide a stable shooting platform. You can also use the smartphone headphone button as cable release. This gadget is great for smartphone photographers and video bloggers. To learn more watch GripTight mount videos on YouTube.

If don't own a tripod, then try to buy GripTight Gorillapod Stand. They make wonderful Christmas gifts too.

Turn your old iPod speakers into wireless speakers

Do you have one of these portable iPod speakers in your home. In this post I'll shared an idea that lets you play music straight from iPhone or Android device. You can pick up this $25 GTI Bluetooth Adapter from Frys. The device plugs into iPod connector on your portable speakers and receives music via Bluetooth A2DP. Similar Bluetooth receivers that connect to aux-in ports are also available.

ipod sound dock front view

The idea emerged while helping a friend re-design hotel rooms for tech savvy business travelers. Found these inexpensive Bluetooth A2DP receivers to reuse the existing iPod dockable clock speakers in the hotel rooms. Perhaps NFC is a better choice but right now there only few mobile phones with NFC support.

Micro USB Host Mode OTG Cable for Samsung Mobile Phones

In this blog I talk about technology world as built. Android phones are most selling smart phones all over the world. These phones and tablets are increasingly used for watching videos and listening to music. Transferring multimedia content on to your device is painful. The software tools made by phone vendors such as Samsung Kies have problems. Android MTP and Bluetooth software leaves a lot to be desired, making large transfers fail intermitingly. Developers like me use command-line MTP tools or use Android SDK's ADB program for transferring files.

For everyone I suggest buying a OTG cable that makes life easier. This cable allows you to connect USB devices to your phone and transfer files with ease. I brought this OTG cable in Hong Kong for $15 HKD (about US $2). Tested this cable with Samsung Galaxy S2 mobile phones running Android Gingerbread and Jellybean with couple of 8GB USB drives.

Photo of Samsung OTG micro USB cable box

You might need to install a file browser like ES File Explorer File Manager app on your phone to easily navigate to attached USB device and copy files to internal memory. You can watch the video of below.

You can pick this OTG cable in your local computer store or order one from Deal Extreme ( For more other interesting Samsung phone accessories have a look at Samsung Galaxy S2 Accessories For Presentations post.

African Network For Localization (ANLoc) Conference 2013

Traveled to Johannesburg, South Africa, to attend African Network For Localization (ANLoc)'s Terminology and Localisation in Africa and Beyond Conference earlier this year. It gave me an opportunity to learn the history of African languages in cyberspace and meet the people behind various multilingual initiatives. The conference brought together language professionals, academics and open source developers to learn about terminology development and localization platforms.

Language is the key for unlocking the potential of Africa. The African Network for Localization (ANLoc) is a non-profit that supports African language technology development. The ANLoc partners were instrumental in the numeration and standardization of 100 African languages. The ANLoc partners and sub-projects developed Unicode fonts, keyboard input systems, translation tools and terminologies for African languages. They also devised training programs for building sustainable volunteer driven localization communities.

The conference featured technical talks, break-out sessions and brainstorming sessions. There were in-depth discussions on the various facets of multilingualism in cyberspace in context to African languages, the challenges of translating computing terms in African languages, the use of machine translation methods and the development of linguistics resources such language dictionaries and terminologies. The conference organizers maintained a good balance of discussions, along with practical hands-on workshops. The size of conference made interactions easier. It was good to meet Mozilla localization contributors from over 10 African languages during this event.

The African Network For Localization (ANLoc) conference group photo

ANLoc's project localized widely used open source Mozilla Firefox web browser in many African languages. The ground realities of mobilizing and sustaining communities in Africa are apparent. Finding contributors is difficult. Most contributors refrain from volunteering due to economic reasons. The overall economic development and access to digital technologies is limited to few regions in Africa. The availability of Internet has improved but the cost is still prohibitively high. I shared my community building experiences from similar resource constrained environments across the world.

Participated in break-out sessions on developing style guides for localization and Mozilla localization processes.
The FirefoxOS localization sprint was organized as part of the event. The localizers worked in groups to translate Mozilla FirefoxOS mobile operating system using Pootle web translation platform.

FirefoxOS localizations in African languages
Developing localization style guides workshop

Talked about Android Internationalization and adding African language fonts and keyboard support to Android. Android currently supports few major African languages: Swahili, Amharic, Zulu and Afrikaans, but more African language coverage is needed. Cheap Android devices are flooding the African market. Today, the first internet experience for many is not on a desktop computer but on mobile phones. Mobiles play a great role in accessing information and even transfering money.

The brainstorming sessions were very interesting. The problems discussed were both at an economic and social level. These problems are similar in nature to the countries where I have been working for the past few years.

The lack of availability of African local content on the internet was a major hurdle. The African diaspora spread across the world and few local governments and non profit organizations were involved in developing local language content. The tide seems to be turning now, with increasing availability of the Internet on mobile phones. Social media and user generated content is now bridging the gap.

ANLoc Brain-storming Session on african languages

This conference gave me a framework for my future activities in Africa. I'll be traveling to East Africa to participate in Tech4Africa Nairobi Tech Day and organize localization hackathons. Such events will help us work on Mozilla Firefox in some of the major languages and help build sustainable Mozilla communities in Africa.

Android Device Offline: Fixing ADB Connection Error

After upgrading to Android Jellybean (4.2.2) the 'adb (Android Debug Bridge)' program failed to connect my Android mobile phone. Running 'adb devices' in the terminal showed error: device offline message.

Recently Android switched to MTP (Media Transfer Protocol). Unfortunately MTP support has some issues. For now I have to resort to using 'adb' command to work with my Android mobile phone.

Digging around the Internet, I learned that Android Jellybean has a new security feature. You need to do RSA key fingerprint verification with the PC. Otherwise the Android device will be reported as offline.

How to Fix ADB Device Offline Error

Here are the steps to connect to your Android device with adb.

  • Get the latest version of adb. Update using Android SDK android program: 'android update adb'
  • Restart adb server with 'adb kill-server'
  • Unplug and reconnect the device to a different USB port
  • Repeat last two steps until you see 'Allow USB Debugging?' dialog on your android device.
  • Select 'Always allow from this computer' option

Now you can talk to your Android device using the adb commands.

Install CyanogenMod 10.1 (Android Jellybean 4.2.2) on Samsung Galaxy S2 (GT-I9100G)

In this post we'll install Cyanogenmod CM 10.1.x on Samsung Galaxy SII mobile phone. Please note this instructions apply to Samsung Galaxy S2 GT-I1900G model only.

Disclaimer: Installing third-party firmware will void your phone warranty and if something goes wrong it could make your phone unusable. The installation process will wipe data/apps, Please backup everything.!

Before you get started consider backing up your phone data using Samsung Kies or Android apps such as Titanium Backup. Alternatively you can copy the data manually by connecting the phone to your computer with an USB cable.

Prerequisites: What do you need?

  1. Install Android SDK. We'll use the nifty adb program to manage the phone and debug any problems.
  2. Install phone flashing program Fastboot, Heimdall on Linux or Odin utility for MS Windows.
  3. Download Clockwork Recovery: GT-I1900G_ICS_ClockworkMod-Recovery_5.5.0.4.tar
  4. Download latest Cyanogenmod 10.1.x from Cynogenmod download page for i9100g device..
  5. Download from package provides standard Google Android applications such as Google Play (A.K.A Google Market).
  6. If you are upgrading an Android Gingerbread Phone, you'll need stock Android Ice Cream Sandwich(ICS) ROM. You can find stock Android ROM from SamMobile.

Flash Ice Cream Sandwitch (ICS) Official ROM to Samsung Galaxy S2(GT-I9100G)

You'll need your phone to running Android Ice Cream Sandwitch(ICS). The phone needs to run ICS bootloaders to upgrade to CyanogenMod 10.1.x. In this section I'll flash official Ice Cream Sandwitch(ICS) ROM onto my Gingerbread Phone.(Thank you codeworkx for pointing this out.)

You can ignore this section if you are working with ICS S2 phone.

  1. Unzip the previously downloaded ICS ROM I9100GDZKL3_I9100GOLCKL3_XME ROM
  2. Put the phone in download mode by holding Volume Down(-), Home button and pressing power button.
  3. Connect the phone to computer using USB cable
  4. Launch 0din on your computer and select PDA mode and flash the uncompressed .tar file.
  5. Once complete the phone will reboot.

Root the Samsung S2 ICS Phone with ClockWorkMod Recovery Kernel

The handy ClockWorkMod tool allows you to flash the phone with different ROMs from the phone itself without the need
of computer.

  1. Connect your phone to computer using a USB cable.
  2. Put the device in download mode with 'adb reboot bootloader' or by holding Volume Down(-), Home button and pressing power button.
  3. Uncompress the previously downloaded Clockwork Recovery file.
  4. Use heimdall program to flash on the command line: 'heimdall flash --kernel zImage'
  5. Reboot the mobile phone.

Install CM 10.1.x on Samsung Galaxy S2

Connect your phone to your computer and transfer the previously downloaded files Cyanogenmod 10.1.x and Gapps files to mobile phones internal memory. Restart the phone and enter recovery mode by pressing Volume Up, Home and Power buttons together. Follow the steps below to install the CM10.1.x on your phone.

  1. Select wipe data/factory reset
  2. Select wipe cache partition
  3. Select Advanced Menu and choose wipe dalvik cache
  4. Select Install zip from sdcard and choose file.
  5. Select Install zip from sdcard and choose file. Reboot phone

That's all folks! Don't forget to share your experiences by leaving a comment here.

Barcamp Yangon 2013

Whoever said "Change is slow" hasn't been to Myanmar (also known as Burma). In seven short months, the country transformed into the something I now barely recognize. Getting Myanmar visa never been this easy, many direct flights to Yangon from all international hubs in South East Asia everyday. The Yangon airport is chocked with tourists, the prices just went through the roof. This time I didn't bring any crisp, unmarked hundred dollar notes to haggle for better exchange rate with the punters on the Yangon streets.

Walking out of the airport, I realized Myanmar has switched to driving on left side of the road. The roads are clogged with second-hand Japanese minivans, imported SUV's and decades old taxis jostling for space. For a moment, I longed for the small colorful Mandalay jeeps plying the quiet Yangon streets at sedate pace. Stuck in the traffic jam, I killed time by counting different cars with left and right steering wheels.

If you get stuck in the traffic jam, you can use the 3G mobile network to catch up with your email. Mobile SIM cards doesn't cost US$2000 anymore. Mobile SIM cards with data plan can be rented for $10 a day. If you are lucky you might even find $20 voice only tourist SIM cards. Mobile connections are still very expensive, it costs US$150-$200 for mobile connection. Perhaps it might soon change when the telecommunications market opens up in next few years.

Back in Myanmar after two years for Barcamp Yangon 2013, the biggest community organized un-conference in the world. This year over 6000 participants are expected to attend this event. Barcamps are hugely popular in this country, the event addresses the digital divide with open sharing and even help kick-start technology entrepreneurship activities.

Few years ago, young students would attend to use the free wireless internet access at Barcamp Yangon. Internet access was restricted to educational institutions and Internet Cafes. Today you can get internet connection in restaurants, cafes and even at home. It is easy to buy personal computers, smart phones and tablets locally. There will be explosive growth of internet users in Myanmar.

During Barcamp Yangon 2011 I kick-started the effort to translate Firefox web browser into Burmese. I have been mentoring the local Mozilla Myanmar community ever since. It had been a long road, we had many problems: building Mozilla community, finding volunteers for translations and deploying right web based localization tools. This trip to Myanmar would give me a chance to work with the community and resolve translation issues that are blocking Firefox Burmese release.

Barcamp Yangon 2013

Once again the barcamp organizers and volunteers efficiently organized such a large event. The event attracted significant
sponsorship this year, the talks in main rooms were marketing pitches from those sponsors. There were some interesting talks 'Make the web speak your language' and 'Women in technology' panel discussion. It was good to see many international participants at the event, they were in Myanmar on vacation and decided to attend the event. The Q&A session with the international barcampers was a good experience, it provided an opportunity for young Burmese barcampers to interact and get perspective on wide ranging subjects.

Barcamp Yangon Venue
Barcamp yangon Tech Talks
Make the web speak your language

In my talk How to become a Firefox Hacker I shared how one can leverage existing web development skills to contribute to Firefox. Mozilla Myanmar localization lead contributor Zinmin shared the Firefox localization process and gave a demo of Pootle web based translation tool. The participants were encouraged to join the Mozilla Myanmar community and localization sprint after the Barcamp Yangon.

Mozilla Myanmar localization demo by zinmin

Attending Barcamp Yangon gave me a good opportunity to keep the pulse the fast changing Myanmar. It was good to reconnect with the open source communities and meet people in technology and non-profit world. Next year I hope to attend Barcamp Mandalay, it seems to have more developer focused audience.

Ubuntu Myanmar Community

Mozilla Myanmar Localization Sprint

After Barcamp Yangon, Zinmin organized Burmese localization sprint in Yangon. The localization sprint provides hands-on training for new localizers. After a quick introduction from Zinmin and the team started translating remaining strings Firefox Aurora. The Pootle web based tool does perform well bandwidth constrained environment such as Myanmar. Zinmin cleaned up most of the translation errors that were blocking the productization of Firefox Burmese Aurora.

During the sprint, Sajal and I spent some time testing Firefox Mobile. Firefox Mobile is important in countries like Myanmar where there is a large growing mobile web users than desktop users. However due to economic sanctions Google Playstore is not available in this country. Burmese users resort to various alternative app stores to find apps for Android devices. Another problem is network latency, for instance, tweeting pictures was really difficult. We looked in how to test Android apps network latency and performance issues.

You can read more about Mozilla L10N sprint on Zinmin's blog post in Burmese and the download the latest Firefox Burmese Aurora here.

Technology Entrepreneurship and Start ups in Myanmar

Spent some time meeting various technology entrepreneurs in Yangon. Start-up incubators like Rocket Internet and few others opened shop in Myanmar. Expats and Burmese diaspora are returning to start technology start-ups. Along with opportunities from the burgeoning economy there are challenges: People with good technical skills are hard to come by, the overhead costs are really high due to inflated prices.

I hope you'll get a chance to visit Myanmar and experience its rich culture. Perhaps you might wanna join the
Barcamp Yangon next year or spend some time working I'll help you find a co-working space in Yangon.

Using Firefox Remote Debugger with Firefox OS Simulator

Firefox OS App developers can use Firefox Remote Debugger to quickly fix web app bugs. In this screencast Jeff Griffiths shows the current workflow of using the Firefox OS simulator and the Firefox Nightly remote debugger developer tool.

Don't see the embedded video, you can watch it on YouTube.

You can also use Firefox Remote Debugger with Firefox OS running in a desktop emulator, on a Firefox OS device and Firefox Mobile on Android mobile phone. Head over to Mozilla Developer Network (MDN) to learn more about Firefox Remote Debugging.

Speeding Up Software Rebuilds with CCache

Software developers who routinely rebuild large projects would love ccache. Ccache is a compiler cache. It speeds up software rebuilds by caching the result of previous compilations and detecting when the same compilation is being done again.

I use ccache when compiling Linux kernel, Debian/Ubuntu packages, GNOME applications, Mozilla Firefox, FirefoxOS and Android operating system. You could enable ccache by prefixing ccache to your compilation command or update your system path to include ccache.

# Add the following line to your ~/.bashrc file 
export PATH=/usr/lib/ccache:${PATH}

Alternatively you could create symlinks in ~/bin directory. GNOME 3 jhbuild documentation provides a bash script for this purpose.

cd ~/bin
for cmd in cc gcc c++ g++; do
  ln -s /usr/bin/ccache $cmd

To take advantage of ccache while building Mozilla Firefox, append the following line to your .mozconfig.

ac_add_options --with-ccache

If you are compiling Android(ASOP), CyanogenMod or Firefox OS. Android build system includes the ccache program, set the USE_CCACHE environment variable to enable ccache.

$ export USE_CCACHE=1

Further more in-depth information, read the ccache manual page. Please do comment and share your experiences using CCache.

Barcamp Phnom Penh 5

Last year we kick-started Mozilla Firefox Aurora Khmer localization effort at Barcamp Phnom Penh 4. Now a year later, Thanks to efforts of Mozilla Khmer L10N team and invaluable support of several people from various organizations. We have a successful release of Firefox Khmer.

Barcamp Phnom Penh is community organized two day un-conference held in the capital city of Cambodia. Walking around Barcamp Phnom Penh at University of Puthisastra in central Phnom Penh, you'll encounter young Cambodian's engaging in social media on latest smart phones and tablets everywhere. There are numerous booths advertising smart phones, right next English language schools, Media and NGO organizations.

At Barcamp Phnom Penh 5 this year there was marked improvement in quality of talks. The technology related talks were really in-depth and encouraged participation from audience. Cambodia has good English language penetration, learning English ensures better livelihood. In country where 50% of population live below the poverty line, the Cambodian youth have an insatiable thirst for learning and making a better life. This spirit attracts me to Cambodia time and again.

Firefox Khmer, FirefoxOS and Web API

On the first day of Barcamp Phnom Penh, I talked Mozilla mission and future of Web, As a platform. The demo of development version of FirefoxOS phone was well received.

The next day Vannak ENG talked about the about Mozilla localization and walked the audience through various steps of translating Firefox. It was great to see people hanging out after the talk to interact with Vannak. Such interactions help us build a good contributor community and help keep the Firefox translations update-to-date every 6 weeks

Mozilla Khmer L10N demo

At the end of Barcamp Phnom Penh, I gave lightening talk titled '6 kick-ass things you can do with your browser'. The talk provided a whirlwind tour of Mozilla Web API and their status.

Khmer Language support in Firefox Mobile on Android 4.1 (Jelly Bean)

I met Danh Hong, the creator Khmer Web Fonts and we talked about the font rendering issues in Firefox Mobile(Bug 793474) running on Android Jelly Bean (4.x). These issues are now resolved in new HarfBuzz update (Bug 780409)

Mozilla Firefox Mobile showing Khmer page

Few other issues in Khmer language support remain. Android Jelly Bean (4.1) supports Khmer rendering well, but Khmer fonts are not shipped with Android. You need to use third party app to install them.

On Desktop computers, though high quality Khmer fonts are available for various operating systems. There is lack of proper documentation about the installation process and the license are not very clear.

Upcoming Barcamps in Cambodia

The barcamp camp team deserves a pat on the back for organizing yet another fantastic event. Next year they are organizing five Barcamps all over Cambodia.

Perhaps I'll try organize a hands-on workshop on web technologies at Hacker Space Phnom Penh or Small World Phnom Penh. If you are interested, get in touch with me.

CyanogenMod 10 Installation on Google Nexus 7

You got a Nexus 7 tablet. Are you ready to unlock the devices true potential. In this post you'll learn how to update the Nexus 7 tablet to latest Android Jelly Bean (Android 4.1/4.2) firmware from CyanogenMod project.

These instructions are from Truong Anh Tuan and team's CyanogemMod 10 installation on Google Nexus 7 running Jelly Bean 4.2 stock firmware at recent CyanogenMod Bootcamp in Hanoi. Thank you for sharing your notes.

‏Before you get started consider backing up your tablet data using Android apps such as Titanium Backup. Alternatively you can copy the data manually by connecting the tablet to your computer with an USB cable.

Disclaimer: Installing third-party firmware will void your device warranty and if something goes wrong it could make your device unusable. The installation process will wipe data/apps, Please backup everything. You have been warned!

Prerequisites: What do you need?

Installing CyanogenMod 10 on Nexus 7 tablet

  1. Enable USB debugging mode: Go to System Settings > About tablet. Tap “Build number” seven times until you get a 'You are a developer!' dialog.
  2. Connect your device to the computer with an USB cable and copy the previously downloaded files to devices sdcard using the 'adb' program.
    sudo adb push recovery-clockwork- /sdcard
    sudo adb push /sdcard
    sudo adb push Google /sdcard

  3. Unlock the Nexus 7 bootloader:

    Reboot to bootloader:

    sudo adb reboot bootloader

    Unlock the bootloader:

    sudo fastboot oem unlock

  4. Install ClockWorkMod(CWM) Recovery:
     sudo fastboot flash recovery recovery-clockwork-
  5. Install CyanogenMod 10 Nightly Build and Google apps
    1. Select wipe data/factory reset.
    2. Select Install zip from sdcard and choose Cyanogenmod 10 file
    3. Select Install zip from sdcard and choose Google file

That's all folks!. Reboot your tablet and if everything goes well, the Nexus 7 will boot into CM10. Don't forget you can automatically download and install nightly builds via CyanogenMod OTA update feature.

For more information, Please read the original blog post and Unlock, Root & Install Cyanogenmod 10 Nightlies guide.

CyanogenMod Bootcamp in Hanoi

Back in Hanoi after a long trip, it is time to do yet another hack event. This weekend I organized an CyanogenMod Bootcamp. If you haven't heard about CyanogenMod project, it is an aftermarket firmware for a number of cell phones based on the open-source Android operating system.

We got two Samsung Galaxy S2 mobile phones and a Nexus 7 tablet to work with at the bootcamp. The goal was to try to install CM10 Android Jelly Bean on devices without bricking them. The three teams worked in parallel and jotted down their notes on etherpad.

Before you start, Understand the basic terminology. Now Get, Set .. Go!

Nexus 7 running CM10 Android Jelly Bean

Samsung Galaxy S2 I9100 running CM10 (Nightly release)

Samsung Galaxy S2 I9100G running Android 4 Jelly Bean CM10 (Stable release)

Keep watching this space for detailed instructions on how to install Android 4.0 Jelly Bean on these devices.

Samsung Galaxy S2 Accessories For Presentations

In this post we'll explore some effective presentations techniques using Samsung Galaxy S2 accessories. Use the Droid@Screen (See this blog post) program to display the mobile phone screen on my computer during my presentations. This program works by taking a continues series of screenshots of the phone screen. There are some problems with this design, there is noticeable delay during application interaction and the video performance is not great on my Lenovo X120e Ubuntu computer.

You can not demonstrate audio and video capabilities of the mobile phone using such software. Planning to give a talk about using Firefox Mobile with Android 4 screen-reader and existing solutions doesn't work for me.

Samsung Galaxy S2 HDTV Adapter

This adapter allow you to plug in your phone directly into HDMI large displays and digital projectors. The mobile phone AC charger powers the adapter and no additional audio cable is needed. The Samsung HDMI adapters are available for Samsung Galaxy phones and tablet models.

This works really great if you are planning to setup large screen display in a exhibition booth. Connect the phone to large screen display with HDMI cable and play your video demo in a loop.

Samsung Galaxy S2 Power Pack

The Samsung Power Pack comes handy when phone runs out of battery in the middle of the presentation. It does extend the battery life of the phone during the presentation or an extending application testing session.

Few caveats using these accessories. The HDMI adapter will not work when the phone is attached to the power pack .

This power pack has some issue with power sensing, sometimes it starts and stops charging with annoying beeps every 10 seconds. And you need to press locking mechanism tight to get the phone to charge. Hope someone at Samsung fixes this problem.

ClockworkMod (CWM) Recovery Backup and Restore Android Phone Firmware

In my last post, I introduced ClockworkMod (CWM) Recovery to backup your phone firmware. It is a good idea to copy these backup files to your computer for safe keeping.

You will find the ClockworkMod(CWM) Recovery firmware backups in this location on your phones internal memory.


You'll need Dobrica Pavlinušić's shell script to copy the ClockworkMod(CWM) Recovery backups to your computer. For some unknown path related issue the standard Unix 'cp' will not work. You won't be able to copy these backup files to your computer, however you can copy files from computer to phone without any problem.

#!/bin/sh -x


adb shell ls -1 -d $sdcard/backup/* | sed "s!$sdcard/*!!" | tr -d '\r' > /tmp/
ls -1 -d backup/* > /tmp/backup.disk
diff -uw /tmp/ /tmp/backup.disk | grep -- '^-backup' | sed 's/^-//' | \
xargs -i sh -xc "mkdir -p {} && adb pull $sdcard/{} {}"

To restore your phone firmware from your backups. Copy the ClockworkMod(CWM) Recovery files to the backup directory on the phone. Reboot the phone into recovery mode and use the Backup / Restore option to restore the firm.

Lately, I use this technique to deploy Boot2Gecko quickly onto compatible phones when the Boot2Gecko builds breaks. The new project started nightly build of Boot2Gecko, you might want to check it out. Personally I would prefer the project builds Cyanogenmod style otapackages instead. Support for this is coming soon, watch this space.

Install Android 4.0 Cyanogenmod 9 Firmware on Galaxy S2 Phone

There is lot of information on Internet about Cyanogenmod, after-market mobile phone firmware installation. However some of this information incomplete and misleading. My first attempt to install Cyanogenmod 9 phone failed. The phone screen played the booting animation in an endless loop. Let me share my installation notes here, this might save you from pulling your hair or worse chucking the phone out of the window.
Disclaimer: Installing third-party firmware will void your phone warranty and if something goes wrong it could make your phone unusable. The installation process will wipe data/apps, Please backup everything.!
Before you get started consider backing up your phone data using Samsung Kies or Android apps such as Titanium Backup. Alternatively you can copy the data manually by connecting the phone to your computer with an USB cable.

Prerequisites: What do you need?

  1. Install Android SDK. We'll use the nifty adb program to manage the phone and debug any problems.
  2. Install phone flashing program, Heimdall on Linux or Odin utility for Windows OS.
  3. Download Clockwork Recovery recovery-clockwork- (Please use GT-I9100G_ClockworkMod-Recovery- file for Samsung Galaxy S2 GT-I1900G phones.)
  4. Download latest Cyanogenmod9 from Cynogenmod download page.
  5. Download gapps-ics-20120422 from package provides standard Google Android applications such as Google Play (A.K.A Google Market).

Installing Clockworkmod(CWM) Recovery

This is an essential tool for our work. The Clockwork Recovery is modified version of the kernel that provides advanced features such as backup/restore phone ROM's and installing Cynogenmod updates. If you plan to dual boot your phone with different Android versions or Mozilla's Boot2Gecko.
The first step to flash ClockworkMod (CWM) onto your phone using heimdall or 0din program.
Unzip recovery-clockwork- archive and flash it with heimdall command line flashing utility for Samsung phones.

# Download clockworkmod 
$ wget

# Unzip it 
$ unzip recovery-clockwork-

#Connect and reboot the phone into download mode with:
$ adb reboot download

heimdall flash --kernel zImage

Please wait for the phone to reboot. If it doesn't work the first time, try again.
Now you can boot into the recovery mode by pressing Volume Up, Home and Power buttons together until Galaxy S2 logo appears on the phone screen. You can navigation the recovery mode screen by using volume up and volume down keys and power button to select an option.

Backup your Phones original ROM

Restart the phone and enter recovery mode. Select Backup/Restore menu and choose Backup. This provide a safety net, you can always restore the original ROM in case the Cyanogenmod 9 installation fails.

Installing CyanogenMod9 Android 4.0 Ice Cream Sandwich(ICS) on Samsung Galaxy S2

Connect your phone to your computer and transfer the previously downloaded files Cyanogenmod 9 and Gapps files. Restart the phone and enter recovery mode by pressing Volume Up, Home and Power buttons together. Follow the steps below to install the Android ICS on your phone.

  1. Select wipe data/factory reset
  2. Select wipe cache partition
  3. Select Advanced Menu and choose wipe dalvik cache
  4. Select Install zip from sdcard and choose file.
  5. Select Install zip from sdcard and choose file. Reboot phone

That's all folks! Don't forget to share your experiences by leaving a comment here.

How to Fix Samsung Kies connection problem

Update (Aug 17,2013): Testing Samsung Kies on MS Windows 7. The Samsung Kies connects after a while or only intermittently. Please see the comments below for possible solutions.

Samsung mobile phone users are familiar with this error. Kies is a personal computer sync software that enables you manage your Samsung phone, similar to iTunes software for Apple iPhones. Samsung Kies software refuses to connect your device and gives this cryptic message.

Reconnect the device in Samsung Kies (PC Studio) mode. Current connection Mode not supported by Kies

Spent an hour raking my brains, then the obvious solution presented itself. Turn off USB Debugging Mode. You will find this setting under Settings > Applications > Development.

Visual Guide to Android USB Development Settings

Samsung Kies software uses MTP (Media Transfer Protocol) mode to talk to your Android device. Enabling USB debugging setting changes your android device to use USB transfer mode.

Samsung Galaxy S2 GT-i9100G: Review, Firmware, Software Update, Rooting

Mozilla Mobile Test Drivers program lent me a Samsung Galaxy SII mobile phone to test the nightly builds of Firefox Mobile. This Android 2.3.6 (Gingerbread) phone runs off a powerful dual core A9 1.2 GHz processor with a good responsive capacitive touch screen. The device is impressive and attracts a lot of attention everywhere.

Samsung Galaxy S2 Android 4.0 (ICS) Update

On March 10, 2012 Samsung will release an firmware update for Android 4.0 code named Ice Cream Sandwich. You will find the upgrade information here on Samsung website.

Android 4.0 promises to offer better accessibility and internationalisation support. You can navigate the android phone built-in screen reader using touch gestures. There is much better rendering support for Asian languages and additional Unicode fonts are bundled with the release.

Cyanogenmod Firmware for Samsung Galaxy S2 (GT-I9100G)

The Cyanogenmod has been boon for mobile phone technophiles. The project provides customised firmware for wide variety of phones. Unfortunately Samsung Galaxy S2 (GT-i9100G) is not well support by Cyanogenmod project. Why? Samsung had changed the hardware specification of this model and none of Cyanogenmod developers have this phone model to work on.

Last week, Yang and I spent an afternoon looking for compatible firmwares to root Samsung Galaxy S2 (GT-i9100G) . After few failed attempts we found that MyGKernelV1.1.1_CWM5.tar version managed to give us root access to the phone.

Installing Boot2Gecko on Samsung Galaxy S2 (GT-I9100G)

You have heard of Mozilla Boot2Gecko. The Mozilla entry into smart phone market was unveiled at Mobile World Congress last week. Build with HTML5, CSS and Javascript, it allows web developers an open phone stack for their applications.

The Mobile World Congress Boot2Gecko videos shows a Samsung Galaxy S2 running Boot2Gecko. You should take note that this Samsung Galaxy S II model is GT-I9100. The Boot2Gecko developers use Samsung Galaxy S2 as their development platform.

Since Cyanogenmod scripts are used for Boot2gecko installation. You won't be able to install it on Samsung Galaxy S2 (GT-I9100G) without lot of hacking. Recently there has been a lot of talk about people dying to install Book2Gecko on Samsung Galaxy S2. Caveat Emptor.

How to display your Android screen on your desktop

A good screen capture tool is essential for Android developers. It is invaluable while making presentations as I recently discovered during my talk about Firefox Mobile Testing.

Thanks to flyingclimber for introducing me to Droid@Screen. This tool enables you to display your android screen on your desktop in portrait/landscape mode and does image scaling too. Making screen shots and videos of your android device is also supported. If the video performance is not so good, try changing the frame-rate settings.

To use Droid@Screen, you need Java and Android SDK installed on your computer. Download this droidAtScreen-0.5.1.jar file from here or from this mirror and run it by typing this command in your terminal. Make sure you have enabled 'USB Debugging' on your Android device.

# Download the program 
$ wget

# Launch Droid@Screen from command-line
$ java -jar droidAtScreen-0.5.1.jar

The software prompts you for the location of your Android SDK adb.

Connect your phone and select the device name from the Droid@Screen menu. And you are done.

Video Tutorial of Droid@Screen

Google Nexus S

You heard about Google Nexus S and all the buzz right. Well, I asked a friend what he thought about his shinny new Nexus S. He said the he found the 4" Contour phone display screen little odd and the phone does seems to get hot.

What are your thoughts about Nexus S?

Create Android apps with a web browser

Googlelabs Inventor for Android lets you create Android applications with a web browser. No programming experience needed!

Creating an App Inventor app begins in your browser, where you design how the app will look. Then, like fitting together puzzle pieces, you set your app's behavior. All the while, through a live connection between your computer and your phone, your app appears on your phone. Read more...