Posts Tagged ‘Donut’

Building donut for dream – Second attempt: a home screen

The first attempt was not a success, but based on the discussion at http://groups.google.com/group/android-platform/browse_thread/thread/929aa624d2da63a7 I decided to make another build with less proprietary files.

Before the patch with the extracting and adding of the extra proprietary files was applied on the source tree (master, cupcake and donut) there was a small list of proprietary files. I used that list again with libcamera.so added because otherwise you cannot make a build. I kept the extract-files.sh the same because I doesn’t matter if the files are inside the proprietary directory. I changed the AndroidBoard.mk file  inside the ~/mydroid/vendor/htc/dream-open to this (only showing the htc proprietary section, the rest is kept the same)

# htc proprietary code
#
proprietary := $(LOCAL_PATH)/proprietary

PRODUCT_COPY_FILES += \
   $(proprietary)/akmd:system/bin/akmd

PRODUCT_COPY_FILES += \
   $(proprietary)/AudioFilter.csv:system/etc/AudioFilter.csv \
   $(proprietary)/AudioPara4.csv:system/etc/AudioPara4.csv \
   $(proprietary)/gps.conf:system/etc/gps.conf \
   $(proprietary)/brf6300.bin:system/etc/firmware/brf6300.bin \
   $(proprietary)/tiwlan.ini:system/etc/wifi/tiwlan.ini \
   $(proprietary)/Fw1251r1c.bin:system/etc/wifi/Fw1251r1c.bin

PRODUCT_COPY_FILES += \
   $(proprietary)/libaudioeq.so:system/lib/libaudioeq.so \
   $(proprietary)/libgps.so:system/lib/libgps.so \
   $(proprietary)/libhgl.so:system/lib/libhgl.so \
   $(proprietary)/libhtc_acoustic.so:system/lib/libhtc_acoustic.so \
   $(proprietary)/libhtc_ril.so:system/lib/libhtc_ril.so \
   $(proprietary)/libOmxCore.so:system/lib/libOmxCore.so \
   $(proprietary)/libqcamera.so:system/lib/libqcamera.so \
   $(proprietary)/libcamera.so:system/lib/libcamera.so

PRODUCT_COPY_FILES += \
   $(proprietary)/libgps.so:obj/lib/libgps.so \
   $(proprietary)/libOmxCore.so:obj/lib/libOmxCore.so

After the build is finished, I flashed the images again to the phone and did a reboot. This time donut boots and shows a home screen.

Donut Home Screen

Donut Home Screen

About phone screen

About phone screen

Although the phone boots, you can’t do anything serious with it. For example you cannot make phone calls because the simcard is not recognized. This also prevents the use of 3G connection. When enabling Wifi the system crashes and reboots (and ends in an endless boot sequence because Wifi is set to enabled but cannot be started).  The camera and media playing seems to work fine. But missing the phone functionality makes it not useful.

So next question is, how to get the phone functionality working? When looking at the proprietary files which are not added this time to the image, I did not find one related to this functionality. So is it related to something else or should we search for the solution inside the closed parts of the Android Dev Phone (maybe the radio part)?

If the issue is related to the closed parts of the system, then we should wait for HTC when they provide us with an updated version of the proprietary files. It is a pity that this dependency exists for a open sourced operating system. Shouldn’t it be possible to develop open variants of the proprietary files by looking at the hardware specifications of the Dream?

To be continued… (hopefully soon)

Building donut for dream – First attempt: a black screen

Yesterday I started downloading the source code from the donut branch again to see if it was possible to get it running on the HTC Dream (Android Dev Phone).

I build the source the same way as building cupcake but this time I used the defaults (like the prebuilt kernel and wlan.ko module) and did not change the htc_dream.mk build script.

The libcamera.so proprietary file is needed (and should be extracted from the official image) to make a sucessfull build (succesfull like that it builds). This is a difference with cupcake.

After flashing the phone, it shows the two boot logo’s and than a black screen. Looking at the debug information (shown inside logcat within Eclipse) you can see that there is an endless loop whereby android crash (the system_server) and is started over again (and crash… etc). Some of the errors are shown in this discussion (http://groups.google.com/group/android-platform/browse_thread/thread/929aa624d2da63a7).

So not a bootable donut version yet. For the record the steps I took

Initialize repo and get the source

cd ~
mkdir mydroid
cd mydroid
repo init -u git://android.git.kernel.org/platform/manifest.git -b donut
repo sync

Extract proprietary files (after source is downloaded)

cd ~/mydroid/vendor/htc/dream-open
./extractfiles.sh

You can also use the unyaffs method (described in this post http://www.johandekoning.nl/index.php/2009/06/07/building-android-15-getting-the-source/). But don’t forget to copy the libcamera.so from the lib folder

cp ~/htc/lib/libcamera.so ~/mydroid/vendor/htc/dream-open/proprietary/libcamera.so

Build source

Create a buildspec.mk file (inside the ~/mydroid directory) to define that a htc-dream build should be made. Because the prebuilt kernel is used, the file has the following contents:

TARGET_PRODUCT:=htc_dream

Save the file and start the make command from the mydroid directory

make

Flashing the phone

After build is finished flash the image files to your phone within fastboot (more details at http://www.johandekoning.nl/index.php/2009/07/03/building-android-1-5-flashing-the-phone/).

fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash recovery recovery.img
fastboot flash userdata userdata.img

And reboot the device

fastboot reboot

Result

Now you will have a non bootable donut version :) I will try a second attempt whereby I use less proprietary files to see if it boots (this suggestion is made in the same discussion about building donut http://groups.google.com/group/android-platform/browse_thread/thread/929aa624d2da63a7)