[Android Software/Hacking General [Developers Only]] Christian Buchner:
Some interesting findings in adb logcat output

The device has a circular buffer for log messages that you can query with the "adb logcat" command. If you do this during early booting (about when the Android boot animation appears), you get some interesting information.

Something related to audio capture is broken in ALSA sound drivers

E/ALSALib ( 2028): external/alsa-lib/src/control/control.c:909:(snd_ctl_open_noupdate) Invalid CTL AndroidCapture
W/AudioHardwareALSA( 2028): Unable to attach mixer to device AndroidCapture: No such file or directory

Some interesting graphics related information. What is with the IMPL_HARDWARE = 0 ? Does it mean we get no hardware acceleration? Note how x and y dimensions for the display seem off. Is this why the wallpapers stretch weirldly?

I/SurfaceFlinger( 2058): SurfaceFlinger is starting
I/SurfaceFlinger( 2058): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
E/SurfaceFlinger( 2058): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
I/gralloc ( 2058): using (fd=22)
I/gralloc ( 2058): id = imapfb
I/gralloc ( 2058): xres = 1024 px
I/gralloc ( 2058): yres = 576 px
I/gralloc ( 2058): xres_virtual = 1024 px
I/gralloc ( 2058): yres_virtual = 1152 px
I/gralloc ( 2058): bpp = 16
I/gralloc ( 2058): r = 11:5
I/gralloc ( 2058): g = 5:6
I/gralloc ( 2058): b = 0:5
I/gralloc ( 2058): width = 163 mm (159.568100 dpi)
I/gralloc ( 2058): height = 91 mm (160.773621 dpi)
I/gralloc ( 2058): refresh rate = 0.03 Hz
D/libEGL ( 2058): loaded /system/lib/egl/libEGL_VIVANTE.so
D/libEGL ( 2058): loaded /system/lib/egl/libGLESv1_CM_VIVANTE.so
D/libEGL ( 2058): loaded /system/lib/egl/libGLESv2_VIVANTE.so
I/libEGL ( 2058): eglInitialize 0 IMPL_HARDWARE=0
I/SurfaceFlinger( 2058): EGL informations:
I/SurfaceFlinger( 2058): # of configs : 27
I/SurfaceFlinger( 2058): vendor : Android
I/SurfaceFlinger( 2058): version : 1.4 Android META-EGL
I/SurfaceFlinger( 2058): extensions: EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_ANDROID_image_native_buffer EGL_ANDROID_swap_rectangle EGL_ANDROID_get_render_buffer
I/SurfaceFlinger( 2058): Client API: OpenGL ES
I/SurfaceFlinger( 2058): EGLSurface: 5-6-5-0, config=0x0
I/SurfaceFlinger( 2058): flags : 00110000
I/SurfaceFlinger( 2058): OpenGL informations:
I/SurfaceFlinger( 2058): vendor : Vivante Corporation
I/SurfaceFlinger( 2058): renderer : GC600 Graphics Engine
I/SurfaceFlinger( 2058): version : OpenGL ES-CM 1.1
I/SurfaceFlinger( 2058): extensions: GL_OES_mapbuffer GL_OES_query_matrix GL_OES_matrix_get GL_OES_draw_texture GL_OES_matrix_palette GL_ARB_vertex_buffer_object GL_VIV_direct_texture ARB_multitexture GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_EGL_image GL_OES_vertex_half_float GL_OES_framebuffer_object GL_OES_texture_cube_map GL_ARB_texture_non_power_of_two GL_ANDROID_direct_texture
D/libEGL ( 2072): loaded /system/lib/egl/libEGL_VIVANTE.so
D/libEGL ( 2072): loaded /system/lib/egl/libGLESv1_CM_VIVANTE.so
D/libEGL ( 2072): loaded /system/lib/egl/libGLESv2_VIVANTE.so
I/libEGL ( 2072): eglInitialize 0 IMPL_HARDWARE=0

I get lots of permission errors (way too many to post here), even for Apps by Google. A possible fix is here, I will try that later. http://mdzlog.alcor.net/2010/01/31/fix-broken-android-permissions-by-re-installing-apps/

W/PackageManager( 2058): Not granting permission com.google.android.googleapps.permission.GOOGLE_AUTH to package com.google.android.apps.listen because it was previously installed without

W/PackageManager( 2058): Not granting permission com.google.android.googleapps.permission.GOOGLE_AUTH.ah to package com.google.android.apps.listen because it was previously installed without

W/PackageManager( 2058): Not granting permission com.google.android.googleapps.permission.GOOGLE_AUTH.reader to package com.google.android.apps.listen because it was previously installed without

Sensor related information. Also touchscreen calibration info. We do have a 2 axis accelerometer. Duh.

I/EventHub( 2058): New device: path=/dev/input/event2 name=TSC2007 Touchscreen id=0x10000 (of 0x1) index=1 fd=65 classes=0x4
I/EventHub( 2058): New keyboard: publicID=65537 device->id=0x10001 devname='imapx200_keybd' propName='hw.keyboards.65537.devname' keylayout='/system/usr/keylayout/qwerty.kl'
I/EventHub( 2058): New device: path=/dev/input/event1 name=imapx200_keybd id=0x10001 (of 0x2) index=2 fd=68 classes=0x3
I/EventHub( 2058): New keyboard: publicID=65538 device->id=0x10002 devname='gpio-keys' propName='hw.keyboards.65538.devname' keylayout='/system/usr/keylayout/qwerty.kl'
I/EventHub( 2058): New device: path=/dev/input/event0 name=gpio-keys id=0x10002 (of 0x3) index=3 fd=69 classes=0x1
I/KeyInputQueue( 2058): Device added: id=0x10002, name=gpio-keys, classes=1
I/KeyInputQueue( 2058): Device added: id=0x0, name=imapx200_keybd, classes=3
I/KeyInputQueue( 2058): Device added: id=0x10000, name=TSC2007 Touchscreen, classes=4
I/KeyInputQueue( 2058): X: min=0 max=3840 flat=0 fuzz=0
I/KeyInputQueue( 2058): Y: min=0 max=3600 flat=0 fuzz=0
I/KeyInputQueue( 2058): Pressure: min=0 max=4095 flat=0 fuzz=0
I/KeyInputQueue( 2058): Size: unknown values
I/KeyInputQueue( 2058): No virtual keys found
D/WindowOrientationListener( 2058): WindowOrientationListener
D/ApplicationContext( 2058): ApplicationContext:getSensorManager enter
D/ApplicationContext( 2058): ApplicationContext:getSensorManager new sensormanger
I/Sensors ( 2058): sensors__get_sensors_list: returned 1 sensors (mask=1138946632)
D/SensorManager( 2058): found sensor: zenithink 2-axis Accelerometer, handle=0
I/Sensors ( 2058): open_sensors: name=data
I/Sensors ( 2058): control__activate: handle=acceleration (0) enabled=1
I/Sensors ( 2058): +++active:0,new_sensors:1,changed:1
I/Sensors ( 2058): control__set_delay: dev=0x3109d8 delay-ms=200
D/SensorManager( 2058): mService.enableSensor:result:true
D/SensorManager( 2058): ready to starLocked sSensorThread1
D/SensorManager( 2058): startLockednull
I/Sensors ( 2058): control__open_data_source: fd=1
D/SensorManager( 2058): entering main sensor thread
D/SensorManager( 2058): entering main sensor open
I/Sensors ( 2058): data__data_open: dev=0x321478 fd=1
I/Sensors ( 2058): data__data_open: open fd:34
D/SensorManager( 2058): main sensor thread:after open
I/Sensors ( 2058): sensors_poll fd = 34

We are apparently missing a GPS related config file here. Maybe that is why external GPS dongles don't work yet.

D/libhardware_legacy( 2058): Defined HAVE_GPS_HARDWARE!!!
W/GpsLocationProvider( 2058): Could not open GPS configuration file /etc/gps.conf

And here's your typical force close dialog...

W/WindowManager( 2058): App freeze timeout expired.
W/WindowManager( 2058): Force clearing freeze: AppWindowToken{43e5d3e8 token=HistoryRecord{43d21a60 org.adw.launcher/.Launcher}}

I hope some of this was interesting to you kernel hackers ;) It may give some insight about hardware capabilities, missing bits and pieces and how some components interact.