Group: Hardware/History/Proprietary G1 files

From LibrePlanet
Jump to: navigation, search

Notes on what is proprietary in the G1 drivers or system(not the applications)

The following infos, although correct, are only valid for Android 1.5. Up to date infos for newer versions of Android (up to 2.2) are available on the Replicant project wiki:

This page contains a detailed table with the non-free low level-related components that are used with the HTC Dream/G1/ADP1, the use of each component and infos about whether the component is crucial, can be avoided or has already been replaced.




I found that howto: http://source.android.com/documentation/building-for-dream,and I've followed part of it,at a point it tells that:

5. in vendor/htc/dream/ there is a script that must be run (from that directory) to extract some proprietary binaries from your device.

Here's what I found:

android@port4 ~/freedroid/vendor/htc/dream $ pwd
/home/android/freedroid/vendor/htc/dream
android@port4 ~/freedroid/vendor/htc/dream $ ls
AndroidBoard.mk     apns.xml        extract-files.sh  htc_dream.mk   kernel          README.txt   trout-keypad-qwertz.kcm  trout-keypad-v3.kcm  vold.conf
AndroidProducts.mk  BoardConfig.mk  h2w_headset.kl    init.trout.rc  kernel.version  system.prop  trout-keypad-qwertz.kl   trout-keypad-v3.kl   wlan.ko
android@port4 ~/freedroid/vendor/htc/dream $ vim AndroidBoard.mk 
android@port4 ~/freedroid/vendor/htc/dream $ cat README.txt 

---- build configuration ----

You can configure to build for HTC Dream (aka T-Mobile G1) by putting
the following in your buildspec.mk file at the root of the source tree:

TARGET_PRODUCT := htc_dream

If you wish to override the included prebuilt kernel image, add:

TARGET_PREBUILD_KERNEL := /path/to/kernel/arch/arm/boot/zImage

---- proprietary files ----

The HTC Dream device includes a small number of proprietary binary 
files that are necessary for Android to work correctly on it.

They can be obtained from your Dream device by running the
extract-files.sh script in this directory.  It will create the 
proprietary subdirectory, and use adb (which will need to be in 
your path) to copy the files from your device.  You will need to
enable USB Debugging (under Settings/Applications/Development)
for this to work.

android@port4 ~/freedroid/vendor/htc/dream $ cat extract-files.sh 
#!/bin/sh

mkdir -p proprietary
adb pull /system/etc/AudioFilter.csv proprietary/AudioFilter.csv
adb pull /system/etc/AudioPara4.csv proprietary/AudioPara4.csv
adb pull /system/etc/gps.conf proprietary/gps.conf
adb pull /system/etc/firmware/brf6300.bin proprietary/brf6300.bin
adb pull /system/bin/akmd proprietary/akmd
adb pull /system/lib/libhtc_ril.so proprietary/libhtc_ril.so
adb pull /system/lib/libaudioeq.so proprietary/libaudioeq.so
adb pull /system/lib/libqcamera.so proprietary/libqcamera.so
adb pull /system/lib/libgps.so proprietary/libgps.so
adb pull /system/lib/libhgl.so proprietary/libhgl.so
chmod 755 proprietary/akmd

adb pull /system/etc/wifi/Fw1251r1c.bin proprietary/Fw1251r1c.bin
adb pull /system/etc/wifi/tiwlan.ini proprietary/tiwlan.ini


android@port4 ~/freedroid/vendor/htc/dream $ cat AndroidBoard.mk 
LOCAL_PATH := $(call my-dir)

# kernel binary
#
ifeq ($(TARGET_PREBUILT_KERNEL),)
TARGET_PREBUILT_KERNEL := $(LOCAL_PATH)/kernel
endif

file := $(INSTALLED_KERNEL_TARGET)
ALL_PREBUILT += $(file)
$(file): $(TARGET_PREBUILT_KERNEL) | $(ACP)
	$(transform-prebuilt-to-target)

# keyboard layouts
#
PRODUCT_COPY_FILES += \
	$(LOCAL_PATH)/trout-keypad-v3.kl:system/usr/keylayout/trout-keypad-v3.kl \
	$(LOCAL_PATH)/trout-keypad-qwertz.kl:system/usr/keylayout/trout-keypad-qwertz.kl \
	$(LOCAL_PATH)/h2w_headset.kl:system/usr/keylayout/h2w_headset.kl

# default apns list
#
PRODUCT_COPY_FILES += \
	vendor/htc/dream/apns.xml:system/etc/apns-conf.xml

# keyboard maps
#
include $(CLEAR_VARS)
LOCAL_SRC_FILES := trout-keypad-v3.kcm
include $(BUILD_KEY_CHAR_MAP)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := trout-keypad-qwertz.kcm
include $(BUILD_KEY_CHAR_MAP)

# board specific init.rc
#
PRODUCT_COPY_FILES += \
	$(LOCAL_PATH)/init.trout.rc:root/init.trout.rc

# prebuilt wifi driver
#
PRODUCT_COPY_FILES += \
	$(LOCAL_PATH)/wlan.ko:system/lib/modules/wlan.ko

# vold.conf
#
#
PRODUCT_COPY_FILES += \
	$(LOCAL_PATH)/vold.conf:system/etc/vold.conf

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

PRODUCT_COPY_FILES += \
	$(proprietary)/libhtc_ril.so:system/lib/libhtc_ril.so \
	$(proprietary)/libaudioeq.so:system/lib/libaudioeq.so \
	$(proprietary)/libqcamera.so:system/lib/libqcamera.so \
	$(proprietary)/libgps.so:obj/lib/libgps.so \
	$(proprietary)/libgps.so:system/lib/libgps.so \
	$(proprietary)/libhgl.so:system/lib/libhgl.so \
	$(proprietary)/brf6300.bin:system/etc/firmware/brf6300.bin \
	$(proprietary)/akmd:system/bin/akmd \
	$(proprietary)/AudioFilter.csv:system/etc/AudioFilter.csv

PRODUCT_COPY_FILES += \
	$(proprietary)/AudioPara4.csv:system/etc/AudioPara4.csv \
	$(proprietary)/gps.conf:system/etc/gps.conf

PRODUCT_COPY_FILES += \
	$(proprietary)/tiwlan.ini:system/etc/wifi/tiwlan.ini \
	$(proprietary)/Fw1251r1c.bin:system/etc/wifi/Fw1251r1c.bin

here are the file command on the extracted proprietary files:

akmd:            ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped
AudioFilter.csv: ASCII text, with very long lines, with CRLF line terminators
AudioPara4.csv:  ASCII text, with very long lines
brf6300.bin:     data
Fw1251r1c.bin:   data
gps.conf:        ASCII text
libaudioeq.so:   ELF 32-bit LSB shared object, ARM, version 1 (SYSV), not stripped
libgps.so:       ELF 32-bit LSB shared object, ARM, version 1 (SYSV), stripped
libhgl.so:       ELF 32-bit LSB shared object, ARM, version 1 (SYSV), stripped
libhtc_ril.so:   ELF 32-bit LSB shared object, ARM, version 1 (SYSV), stripped
libqcamera.so:   ELF 32-bit LSB shared object, ARM, version 1 (SYSV), stripped
tiwlan.ini:      ASCII English text, with very long lines
  • akmd -> compas/acceleratomethers [1]
  • libgps.so -> gps
  • libhtc_ril.so -> telephony [2]
  • libhgl.so -> 3D opengl ES driver

[1]http://www.telesphoreo.org/pipermail/g1-hackers/2009-January/000495.html
[2]http://www.kandroid.org/android_pdk/telephony.html#androidTelephonyRILImplementing
[3]https://review.source.android.com/Gerrit#change,10501