Eclipse: Android SDK update issue (ICS & JB)

Recently upgraded to latest Ice Cream Sandwich and Jelly Bean based Android SDK (20 & 12) and ADT Plug-in (20.0.0v). But after this upgrade, I am unable to create new Android Application projects from Eclipse. Eclipse is showing the following error and the “Finish” button is disabled.


“This template depends on the Android Support library, which is either not installed, or the template depends on a more recent version than the one you have installed”. To solve this, you have to goto the SDK_Folder/extra/android and rename the folder compatibility to support.

In some installation, SDK_Folder/extra/android/compatibility folder might be placed in SDK_Folder/android-compatibility. In this case, create a short-cut SDK_Folder/extra/android/support for SDK_Folder/android-compatibility

After that, restart the Eclipse.

One more issue:
In Linux, When I start the AVD(arm) with old emulator command ($ emulator @myarm-avd), I got this “Initializing hardware OpenGLES emulation support” error and unable to start AVD at all. But If I start the AVD(arm) with emulator-arm command ($ emulator-arm @myarm-avd), AVD(arm) starting with out any issues. So now, I renamed emulator to emulator.old and created a link to emulator-arm as emulator. Now no issues to ARM AVD. But to start AVD(x86), I am using the emulator-x86 command manually. This trick is only to start the emulator successfully and run in software rendering mode. But yet figure out, how to run the emulator with hardware rendering mode.

OsciPrime: Open Source Android Oscilloscope

Today I saw this interesting OsciPrime Project, combination of Hardware and Software. Hardware is used to capture the signal from the test points and process it before feeding to Android thru USB interface. The below figure shows top-level block diagram.


Software is running on Android platform, will act as the front end, where user can view the signal shape and do the some measurement. Check-out the video:

SharkFest – Wireshark Developer & User Conference

Back in 2000, I started my network exploration with tcpdump -> Ethereal -> Wireshark / TShark. Wonderful set of network protocol analyzer tool. I know Libpcap little bit. But I understood the background about it from the SharkFest 2011 video, about the Libpcap by Steve McCanne, creator of libpcap and co-founder of RiverBed. Steve nicely explained, How the packet capturing problem went from Network Programming to Compiler Design and then to Graph Theory. Apart from this, there are many useful presentations are available in the SharkFest site.

My old I18N and L10N Work


Some of the stuff, which I have done it in DONLab, IIT-Madras, in the year of 2000 and 2001. I was adding Indian Language support in GNU/Linux system, both at Kernel and XLib Level. During that time, lot of Encoding (Ext ASCII, ISCII, TSCII, UTF-16, UTF-8, ..) related confusion and efforts  like, Wide Char, UTF-16, UTF-8, ISCII, TSCII,…

Our approach was to build a powerful rendering engine, independent of Encoding. So that, by adding the rendering rules, support for new encoding can be added to this engine. Output language shown in the image, is Tamil

Linux Kernel Device Model

In the 2.4 and earlier Linux kernels, there was no unified database of what devices were present in the system, and how they were connected with each other. The implications of this are:

  • The user had to grep through log messages to find out if a particular device has been detected by the kernel or not. There was no straight forward method for an application to list out what devices have been detected by the kernel, and whether a driver has been associated with the device.
  • It was not possible to do proper power management, because this requires information on how the devices are connected in a system. As an example, before a USB controller is powered down, all the USB peripherals connected to that controller had to be powered down.

To overcome these problems, in 2.5 and later kernels a framework has been provided to maintain a device model. The five software components that play a major role in building and maintaining the device model are:

  • Device model core
  • Generic bus drivers
  • Bus controller drivers
  • Device drivers
  • Class drivers

Read more from my friends Vijaykumar’s blog:

The TTY demystified

The TTY subsystem is central to the design of Linux, and UNIX in general. Unfortunately, its importance is often overlooked, and it is difficult to find good introductory articles about it. I believe that a basic understanding of TTYs in Linux is essential for the developer and the advanced user.

Read more:
LJ Article:
LDD CH 18: TTY Drivers

Freedom to Connect 2012

Nice set of talks @ F2C2012. I listened Vint Cerf Talk. It is a very nice Techno-political talk with lot of side kicks about various restriction applied on the Internet by Government and Private Organization in the name of security and many stupid things. And he mention that, as an Engineer, we know, there is always a way to go around it. Check-out the YouTube channel F2C2012 for the videos.

SEAndroid – DAC and MAC


NSA is working on bring the SELinux feature to Android platform. Even though the Android uses Linux kernel, the Android specific kernel enhancements and how the Android user space organized, the SELinux features cannot directly useable in Android. That lead to SEAndroid Project. Basically SEAndroid Project is trying to move the usual Android Discretionary Access Control to Mandatory Access Control. Link: