Permalink
Browse files

Add port for unagi

  • Loading branch information...
0 parents commit b59bda6b5056fd26d5284ec24ec283639ea1bf8b @michaelwu michaelwu committed Sep 17, 2012
Showing with 396 additions and 0 deletions.
  1. +9 −0 Android.mk
  2. +1 −0 AndroidBoard.mk
  3. +1 −0 AndroidProducts.mk
  4. +41 −0 BoardConfig.mk
  5. +290 −0 extract-files.sh
  6. +25 −0 full_unagi.mk
  7. +24 −0 grab-bootchart.sh
  8. +4 −0 init.unagi.rc
  9. +1 −0 syna-touchscreen.idc
9 Android.mk
@@ -0,0 +1,9 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := init.unagi.rc
+LOCAL_MODULE_TAGS := optional eng
+LOCAL_MODULE_CLASS := ETC
+LOCAL_SRC_FILES := init.unagi.rc
+LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
+include $(BUILD_PREBUILT)
1 AndroidBoard.mk
@@ -0,0 +1 @@
+include device/qcom/msm7627a/AndroidBoard.mk
1 AndroidProducts.mk
@@ -0,0 +1 @@
+PRODUCT_MAKEFILES := $(LOCAL_DIR)/full_unagi.mk
41 BoardConfig.mk
@@ -0,0 +1,41 @@
+include device/qcom/msm7627a/BoardConfig.mk
+
+TARGET_NO_BOOTLOADER := true
+TARGET_NO_KERNEL := true
+BOARD_KERNEL_PAGESIZE = 2048
+BOARD_KERNEL_SPARESIZE = 64
+
+ifneq (,$(wildcard vendor/qcom/unagi/kernel))
+TARGET_PREBUILT_KERNEL := vendor/qcom/unagi/kernel
+BOARD_KERNEL_BASE := 200000
+TARGET_NO_KERNEL := false
+BOARD_KERNEL_CMDLINE := androidboot.hardware=unagi
+endif
+
+BOARD_EGL_CFG := device/qcom/msm7627a/egl.cfg
+
+BOARD_BOOTIMAGE_PARTITION_SIZE := 8388608
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 536870912
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 2550136832
+BOARD_PERSISTIMAGE_PARTITION_SIZE := 16777216
+BOARD_CACHEIMAGE_PARTITION_SIZE := 314572800
+BOARD_FLASH_BLOCK_SIZE := 131072
+
+# hack to prevent llvm from building
+BOARD_USE_QCOM_LLVM_CLANG_RS := true
+
+BOARD_HAS_ATH_WLAN := true
+
+WPA_SUPPLICANT_VERSION := VER_2_0_DEV
+BOARD_WPA_SUPPLICANT_DRIVER := NL80211
+BOARD_HOSTAPD_DRIVER := NL80211
+CONFIG_DRIVER_NL80211 := y
+WIFI_DRIVER_MODULE_PATH := "/system/wifi/ath6kl_sdio.ko"
+WIFI_DRIVER_MODULE_NAME := "ath6kl_sdio"
+WIFI_SDIO_IF_DRIVER_MODULE_PATH := "/system/wifi/cfg80211.ko"
+WIFI_SDIO_IF_DRIVER_MODULE_NAME := "cfg80211"
+
+WIFI_TEST_INTERFACE := "sta"
+WIFI_DRIVER_FW_PATH_STA := "sta"
+WIFI_DRIVER_FW_PATH_AP := "ap"
+WIFI_DRIVER_FW_PATH_P2P := "p2p"
290 extract-files.sh
@@ -0,0 +1,290 @@
+#!/bin/bash
+
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+DEVICE=unagi
+COMMON=common
+MANUFACTURER=qcom
+
+if [[ -z "${ANDROIDFS_DIR}" && -d ../../../backup-${DEVICE}/system ]]; then
+ ANDROIDFS_DIR=../../../backup-${DEVICE}
+fi
+
+if [[ -z "${ANDROIDFS_DIR}" ]]; then
+ echo Pulling files from device
+ DEVICE_BUILD_ID=`adb shell cat /system/build.prop | grep ro.build.id | sed -e 's/ro.build.id=//' | tr -d '\n\r'`
+else
+ echo Pulling files from ${ANDROIDFS_DIR}
+ DEVICE_BUILD_ID=`cat ${ANDROIDFS_DIR}/system/build.prop | grep ro.build.id | sed -e 's/ro.build.id=//' | tr -d '\n\r'`
+fi
+
+case "$DEVICE_BUILD_ID" in
+IMM76D*)
+ FIRMWARE=ICS
+ echo Found ICS firmware with build ID $DEVICE_BUILD_ID >&2
+ ;;
+*)
+ FIRMWARE=unknown
+ echo Found unknown firmware with build ID $DEVICE_BUILD_ID >&2
+ exit -1
+ ;;
+esac
+
+if [[ ! -d ../../../backup-${DEVICE}/system && -z "${ANDROIDFS_DIR}" ]]; then
+ echo Backing up system partition to backup-${DEVICE}
+ mkdir -p ../../../backup-${DEVICE} &&
+ adb pull /system ../../../backup-${DEVICE}/system
+fi
+
+BASE_PROPRIETARY_COMMON_DIR=vendor/$MANUFACTURER/$COMMON/proprietary
+PROPRIETARY_DEVICE_DIR=../../../vendor/$MANUFACTURER/$DEVICE/proprietary
+PROPRIETARY_COMMON_DIR=../../../$BASE_PROPRIETARY_COMMON_DIR
+
+mkdir -p $PROPRIETARY_DEVICE_DIR
+
+for NAME in audio hw wifi etc
+do
+ mkdir -p $PROPRIETARY_COMMON_DIR/$NAME
+done
+
+
+COMMON_BLOBS_LIST=../../../vendor/$MANUFACTURER/$COMMON/vendor-blobs.mk
+
+(cat << EOF) | sed s/__COMMON__/$COMMON/g | sed s/__MANUFACTURER__/$MANUFACTURER/g > $COMMON_BLOBS_LIST
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Prebuilt libraries that are needed to build open-source libraries
+PRODUCT_COPY_FILES := device/sample/etc/apns-full-conf.xml:system/etc/apns-conf.xml
+
+# All the blobs
+PRODUCT_COPY_FILES += \\
+EOF
+
+# copy_file
+# pull file from the device and adds the file to the list of blobs
+#
+# $1 = src name
+# $2 = dst name
+# $3 = directory path on device
+# $4 = directory name in $PROPRIETARY_COMMON_DIR
+copy_file()
+{
+ echo Pulling \"$1\"
+ if [[ -z "${ANDROIDFS_DIR}" ]]; then
+ adb pull /$3/$1 $PROPRIETARY_COMMON_DIR/$4/$2
+ else
+ # Hint: Uncomment the next line to populate a fresh ANDROIDFS_DIR
+ # (TODO: Make this a command-line option or something.)
+ # adb pull /$3/$1 ${ANDROIDFS_DIR}/$3/$1
+ cp ${ANDROIDFS_DIR}/$3/$1 $PROPRIETARY_COMMON_DIR/$4/$2
+ fi
+
+ if [[ -f $PROPRIETARY_COMMON_DIR/$4/$2 ]]; then
+ echo $BASE_PROPRIETARY_COMMON_DIR/$4/$2:$3/$2 \\ >> $COMMON_BLOBS_LIST
+ else
+ echo Failed to pull $1. Giving up.
+ exit -1
+ fi
+}
+
+# copy_files
+# pulls a list of files from the device and adds the files to the list of blobs
+#
+# $1 = list of files
+# $2 = directory path on device
+# $3 = directory name in $PROPRIETARY_COMMON_DIR
+copy_files()
+{
+ for NAME in $1
+ do
+ copy_file "$NAME" "$NAME" "$2" "$3"
+ done
+}
+
+# copy_local_files
+# puts files in this directory on the list of blobs to install
+#
+# $1 = list of files
+# $2 = directory path on device
+# $3 = local directory path
+copy_local_files()
+{
+ for NAME in $1
+ do
+ echo Adding \"$NAME\"
+ echo device/$MANUFACTURER/$DEVICE/$3/$NAME:$2/$NAME \\ >> $COMMON_BLOBS_LIST
+ done
+}
+
+COMMON_LIBS="
+ libauth.so
+ libcm.so
+ libdiag.so
+ libdivxdrmdecrypt.so
+ libdsi_netctrl.so
+ libdsm.so
+ libdss.so
+ libdsutils.so
+ libgsdi_exp.so
+ libgstk_exp.so
+ libidl.so
+ libmmgsdilib.so
+ libmm-adspsvc.so
+ libnetmgr.so
+ libnv.so
+ libOmxAacDec.so
+ libOmxH264Dec.so
+ libOmxMp3Dec.so
+ libOmxVp8Dec.so
+ liboncrpc.so
+ libpbmlib.so
+ libqdp.so
+ libqmi.so
+ libqmiservices.so
+ libqueue.so
+ libril-qc-1.so
+ libril-qc-qmi-1.so
+ libril-qcril-hook-oem.so
+ libSimCardAuth.so
+ libwms.so
+ libwmsts.so
+ libcamera_client.so
+ libcommondefs.so
+ libgenlock.so
+ libgemini.so
+ libgps.utils.so
+ libril.so
+ libmmjpeg.so
+ libmmipl.so
+ liboemcamera.so
+ libloc_adapter.so
+ libloc_api-rpc-qc.so
+ libloc_eng.so
+ libqdi.so
+ librpc.so
+ "
+
+copy_files "$COMMON_LIBS" "system/lib" ""
+
+COMMON_BINS="
+ ATFWD-daemon
+ akmd8962_new
+ bridgemgrd
+ ext4check.sh
+ fm_qsoc_patches
+ fmconfig
+ hci_qcomm_init
+ netmgrd
+ port-bridge
+ proximity.init
+ qmiproxy
+ qmuxd
+ rild
+ radish
+ "
+
+copy_files "$COMMON_BINS" "system/bin" ""
+
+COMMON_HW="
+ sensors.default.so
+ camera.msm7627a.so
+ gps.default.so
+ "
+
+copy_files "$COMMON_HW" "system/lib/hw" "hw"
+
+COMMON_WIFI="
+ ath6kl_sdio.ko
+ cfg80211.ko
+ "
+
+copy_files "$COMMON_WIFI" "system/wifi" "wifi"
+
+COMMON_ATH6K="
+ athtcmd_ram.bin
+ bdata.bin
+ fw-3.bin
+ nullTestFlow.bin
+ utf.bin
+ "
+copy_files "$COMMON_ATH6K" "system/etc/firmware/ath6k/AR6003/hw2.1.1" "wifi"
+
+COMMON_ETC="init.qcom.bt.sh gps.conf"
+copy_files "$COMMON_ETC" "system/etc" "etc"
+
+if [ ! -f "../../../Adreno200-AU_LINUX_ANDROID_ICS_CHOCO_CS.04.00.03.06.001.zip" ]; then
+ echo Adreno driver not found. Please download the ARMv7 adreno driver from
+ echo https://developer.qualcomm.com/mobile-development/mobile-technologies/gaming-graphics-optimization-adreno/tools-and-resources
+ echo and put it in the top level B2G directory
+ exit -1
+fi
+
+unzip -o -d ../../../vendor/$MANUFACTURER/$DEVICE ../../../Adreno200-AU_LINUX_ANDROID_ICS_CHOCO_CS.04.00.03.06.001.zip
+(cat << EOF) | sed s/__DEVICE__/$DEVICE/g | sed s/__MANUFACTURER__/$MANUFACTURER/g > ../../../vendor/$MANUFACTURER/$DEVICE/$DEVICE-vendor-blobs.mk
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := vendor/$MANUFACTURER/$DEVICE
+
+PRODUCT_COPY_FILES := \
+ \$(LOCAL_PATH)/system/etc/firmware/yamato_pfp.fw:system/etc/firmware/yamato_pfp.fw \\
+ \$(LOCAL_PATH)/system/etc/firmware/yamato_pm4.fw:system/etc/firmware/yamato_pm4.fw \\
+ \$(LOCAL_PATH)/system/lib/libC2D2.so:system/lib/libC2D2.so \\
+ \$(LOCAL_PATH)/system/lib/libsc-a2xx.so:system/lib/libsc-a2xx.so \\
+ \$(LOCAL_PATH)/system/lib/libgsl.so:system/lib/libgsl.so \\
+ \$(LOCAL_PATH)/system/lib/libOpenVG.so:system/lib/libOpenVG.so \\
+ \$(LOCAL_PATH)/system/lib/egl/egl.cfg:system/lib/egl.cfg \\
+ \$(LOCAL_PATH)/system/lib/egl/libGLESv1_CM_adreno200.so:system/lib/egl/libGLESv1_CM_adreno200.so \\
+ \$(LOCAL_PATH)/system/lib/egl/libEGL_adreno200.so:system/lib/egl/libEGL_adreno200.so \\
+ \$(LOCAL_PATH)/system/lib/egl/eglsubAndroid.so:system/lib/egl/eglsubAndroid.so \\
+ \$(LOCAL_PATH)/system/lib/egl/libGLESv2_adreno200.so:system/lib/egl/libGLESv2_adreno200.so \\
+ \$(LOCAL_PATH)/system/lib/egl/libq3dtools_adreno200.so:system/lib/egl/libq3dtools_adreno200.so \\
+ \$(LOCAL_PATH)/system/lib/egl/libGLES_android.so:system/lib/egl/libGLES_android.so
+EOF
+
+BOOTIMG=boot-unagi.img
+if [ -f ../../../${BOOTIMG} ]; then
+ (cd ../../.. && ./build.sh unbootimg)
+ . ../../../build/envsetup.sh
+ HOST_OUT=$(get_build_var HOST_OUT_$(get_build_var HOST_BUILD_TYPE))
+ KERNEL_DIR=../../../vendor/${MANUFACTURER}/${DEVICE}
+ cp ../../../${BOOTIMG} ${KERNEL_DIR}
+ ../../../${HOST_OUT}/bin/unbootimg ${KERNEL_DIR}/${BOOTIMG}
+ mv ${KERNEL_DIR}/${BOOTIMG}-kernel ${KERNEL_DIR}/kernel
+ rm -f ${KERNEL_DIR}/${BOOTIMG}-ramdisk.cpio.gz ${KERNEL_DIR}/${BOOTIMG}-second ${KERNEL_DIR}/${BOOTIMG}-mk ${KERNEL_DIR}/${BOOTIMG}
+fi
25 full_unagi.mk
@@ -0,0 +1,25 @@
+$(call inherit-product, device/qcom/common/common.mk)
+PRODUCT_COPY_FILES := \
+ device/qcom/unagi/syna-touchscreen.idc:system/usr/idc/syna-touchscreen.idc \
+ device/qcom/msm7627a/wpa_supplicant.conf:system/etc/wifi/wpa_supplicant.conf
+
+$(call inherit-product-if-exists, vendor/qcom/unagi/unagi-vendor-blobs.mk)
+$(call inherit-product-if-exists, vendor/qcom/common/vendor-blobs.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/full.mk)
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ rild.libpath=/system/lib/libril-qc-1.so \
+ rild.libargs=-d/dev/smd0 \
+ ro.use_data_netmgrd=true \
+ ro.moz.ril.simstate_extra_field=true \
+ ro.moz.ril.emergency_by_default=true
+
+# Discard inherited values and use our own instead.
+PRODUCT_NAME := full_unagi
+PRODUCT_DEVICE := unagi
+PRODUCT_BRAND := toro
+PRODUCT_MANUFACTURER := toro
+PRODUCT_MODEL := unagi1
+
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES := \
+ persist.usb.serialno=$(PRODUCT_NAME)
24 grab-bootchart.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+# this script is used to retrieve the bootchart log generated
+# by init when compiled with INIT_BOOTCHART=true.
+# Copied from system/core/init/grab-bootchart.sh, with an additional filter
+
+TMPDIR=/tmp/android-bootchart
+rm -rf $TMPDIR
+mkdir -p $TMPDIR
+
+LOGROOT=/data/bootchart
+TARBALL=bootchart.tgz
+
+FILES="header proc_stat.log proc_ps.log proc_diskstats.log kernel_pacct"
+
+for f in $FILES; do
+ adb pull $LOGROOT/$f $TMPDIR/$f 2>&1 > /dev/null
+done
+mv $TMPDIR/header $TMPDIR/header.orig
+sed '/system.uname/s/([^)]*) *//;/system.kernel.options/s/androidboot.serialno=[^ ]* *//' $TMPDIR/header.orig > $TMPDIR/header
+rm -f $TMPDIR/header.orig
+(cd $TMPDIR && tar -czf $TARBALL $FILES)
+cp -f $TMPDIR/$TARBALL ./$TARBALL
+echo "look at $TARBALL"
4 init.unagi.rc
@@ -0,0 +1,4 @@
+import init.qcom.rc
+
+on init
+ write /sys/class/android_usb/android0/f_serial/max_transports smd,tty
1 syna-touchscreen.idc
@@ -0,0 +1 @@
+touch.deviceType = touchScreen

0 comments on commit b59bda6

Please sign in to comment.