Group: Hardware/History/Proprietary G1 files
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