What you will need
Windows or Ubuntu
A couple months knowledge about linux and android
Common sense
Notepad ++ (if on windows)
An MTD rooted android phone or tablet
NOTICE: This guide probably will NOT build a rom with no bugs, it will only give you a place to start. You will have to fix the bugs on your own. I will be referring devicename to your phones model id (my phone is samsung conquer 4g and its model id is SPH-D600) I will also be referring manufacturer to your manufacturer (duh!) and source to the source you are trying to build (CyanogenMod, aosp, etc.). As far as I know this only works for CyanogenMod 7.2 and AOSP GB.
First you might want to find out what device is closest to yours (same cpu (arm7, arm6, etc) and platform (msm7k, msm7x30, etc.) and grab its device tree for whatever rom you want to compile. It may have more fixes.
Create a folder where you want with your devices name (mine is SPH-D600). Inside create a files folder and these files
AndroidBoard.mk
AndroidProducts.mk
BoardConfig.mk
devicename.mk
extract-files.sh
proprietary-files.txt
recovery.fstab
setup-makefiles.sh
system.prop
vendorsetup.sh
Look for devicename inside the codes you are pasting
Open up AndroidBoard.mk and paste this:
Code:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := init.devicename.sh
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE_CLASS := SCRIPT
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)/
LOCAL_SRC_FILES := /files/init.devicename.sh
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.rc
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE_CLASS := SCRIPT
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)/
LOCAL_SRC_FILES := /files/init.rc
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := ueventd.rc
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE_CLASS := SCRIPT
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)/
LOCAL_SRC_FILES := /files/ueventd.rc
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := lpm.rc
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE_CLASS := SCRIPT
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)/
LOCAL_SRC_FILES := /files/lpm.rc
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.lpm.sh
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE_CLASS := SCRIPT
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)/
LOCAL_SRC_FILES := /files/init.lpm.sh
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.devicename.rc
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE_CLASS := SCRIPT
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)/
LOCAL_SRC_FILES := /files/init.devicename.rc
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
# include the non-open-source counterpart to this file
-include vendor/samsung/chief/AndroidBoardVendor.mk
These files are in your ramdisk in your boot.img. Use a boot.img unpacker to get these files and paste them in the files folder. Replace devicename with your phones device name. If you do not have one of these files than just erase it from the mk file.
Next open AndroidProducts.mk and paste this:
Code:
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/devicename.mk
Next is BoardConfig.mk, You will have to do some research to get these. This is where the cousin devices tree will come in handy. Paste this:
Code:
# inherit from the proprietary version
-include vendor/samsung/devicename/BoardConfigVendor.mk
(get most of this from build.prop)
# Board General info
TARGET_BOOTLOADER_BOARD_NAME := devicename
TARGET_BOARD_PLATFORM := platform
BOARD_HAS_NO_SELECT_BUTTON := true
TARGET_CPU_ABI := cpu
TARGET_CPU_ABI2 := cpu2
TARGET_ARCH_VARIANT := cpu-a-neon
ARCH_ARM_HAVE_TLS_REGISTER := ?
BOARD_USES_QCOM_HARDWARE := ?
BOARD_USES_QCOM_GPS := ?
BOARD_USES_QCOM_LIBS := ?
BOARD_USES_QCOM_LIBRPC := ?
BOARD_USE_QCOM_PMEM := ?
(i cant figure this one out, please pm me if you find it out)
# ril
# audio
HAVE_HTC_AUDIO_DRIVER := ?
BOARD_USES_GENERIC_AUDIO := ?
TARGET_PROVIDES_LIBAUDIO := ?
(get this information from system/etc and /modules)
# wifi
BOARD_WPA_SUPPLICANT_DRIVER := ?
WPA_SUPPLICANT_VERSION := ?
BOARD_WLAN_DEVICE := ?
WIFI_DRIVER_FW_PATH_STA := "/system/etc/wifi/?"
WIFI_DRIVER_FW_PATH_AP := "/system/etc/wifi/?"
WIFI_DRIVER_MODULE_NAME := "?"
WIFI_DRIVER_MODULE_PATH := "/lib/modules/?"
WIFI_DRIVER_MODULE_ARG := "firmware_path=/system/etc/wifi/? nvram_path=/system/etc/wifi/?"
(get this from system/etc)
# video
BOARD_EGL_CFG := device/manufacturer/devicename/files/?
TARGET_BOARD_PLATFORM_GPU := ?
# Bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_BCM := ?
(get this from your boot.img unpacking)
# kernel
BOARD_KERNEL_CMDLINE := ?
BOARD_KERNEL_BASE := ?
BOARD_KERNEL_PAGESIZE := ?
TARGET_PREBUILT_KERNEL := devicemanufacturer/devicename/kernel
# Partitioning setup (fix this up by examining /proc/mtd on a running device)
BOARD_BOOTIMAGE_PARTITION_SIZE := ?
BOARD_RECOVERYIMAGE_PARTITION_SIZE := ?
BOARD_SYSTEMIMAGE_PARTITION_SIZE := ?
BOARD_USERDATAIMAGE_PARTITION_SIZE := ?
BOARD_FLASH_BLOCK_SIZE := ?
## PARTITION LAYOUT/INFO ##
BOARD_DATA_DEVICE := /dev/block/mtdblock?
BOARD_DATA_FILESYSTEM := ?
BOARD_DATA_FILESYSTEM_OPTIONS := rw,nosuid,nodev,noatime,nodiratime 0 0 (the permissions, replace these with your devices)
BOARD_SYSTEM_DEVICE := /dev/block/mtdblock?
BOARD_SYSTEM_FILESYSTEM := ?
BOARD_SYSTEM_FILESYSTEM_OPTIONS := rw,noatime,nodiratime 0 0 (the permissions, replace these with your devices)
BOARD_CACHE_DEVICE := /dev/block/mtdblock?
BOARD_CACHE_FILESYSTEM := ?
BOARD_CACHE_FILESYSTEM_OPTION := rw,nosuid,nodev,noatime,nodiratime 0 0 (the permissions, replace these with your devices)
BOARD_MISC_DEVICE := /dev/block/mtdblock?
BOARD_BOOT_DEVICE := /dev/block/mtdblock?
BOARD_RECOVERY_DEVICE := /dev/block/mtdblock?
TARGET_USERIMAGES_USE_EXT4 := ?
BOARD_SDCARD_DEVICE_PRIMARY := /dev/block/vold/?
# recovery
BOARD_RECOVERY_HANDLES_MOUNT := true
BOARD_CUSTOM_GRAPHICS:= graphics.c (you might need this so check for it in your recovery source)
# JIT / Optimizations
WITH_DEXPREOPT := true
JS_ENGINE := v8
TARGET_SPECIFIC_HEADER_PATH += device/manufacturer/devicename/files
TARGET_RELEASETOOL_OTA_FROM_TARGET_SCRIPT :=
next is devicename.mk use common sense in this one (chief is now devicename for this one)
Code:
$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
# The gps config appropriate for this device
$(call inherit-product, device/common/gps/gps_us_supl.mk)
# Inherit some common cyanogenmod stuff.
(may or may not have to use this)
$(call inherit-product, vendor/source/products/common_full.mk)
$(call inherit-product-if-exists, vendor/samsung/chief/chief-vendor.mk)
DEVICE_PACKAGE_OVERLAYS += device/samsung/chief/overlay
ifeq ($(TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL := device/samsung/chief/kernel
else
LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
endif
PRODUCT_COPY_FILES += \
$(LOCAL_KERNEL):kernel
PRODUCT_PACKAGES += \
hostap \
librs_jni \
gralloc.msm7k \
overlay.default \
screencap \
libOmxCore \
libOmxVenc \
libOmxVdec \
com.android.future.usb.accessory \
hostapd
PRODUCT_PACKAGES += \
sensors.default \
lights.msm7k
#kernel modules
PRODUCT_COPY_FILES += \
device/samsung/chief/files/lib/modules/bthid.ko:root/lib/modules/bthid.ko \
device/samsung/chief/files/lib/modules/cmc7xx_sdio.ko:root/lib/modules/cmc7xx_sdio.ko \
device/samsung/chief/files/lib/modules/dhd.ko:root/lib/modules/dhd.ko \
device/samsung/chief/files/lib/modules/qce.ko:root/lib/modules/qce.ko \
device/samsung/chief/files/lib/modules/qcedev.ko:root/lib/modules/qcedev.ko \
device/samsung/chief/files/system/lib/libdiag.so:system/lib/libdiag.so \
device/samsung/chief/files/lib/modules/qcrypto.ko:root/lib/modules/qcrypto.ko
# Fix Logcat / Misc
PRODUCT_COPY_FILES += \
device/samsung/chief/files/logcat:system/bin/logcat \
vendor/samsung/chief/proprietary/lib/libgsl.so:system/lib/libgsl.so
# system/etc/init's
PRODUCT_COPY_FILES += \
device/samsung/chief/init.cdma-pppd:system/etc/init.cdma-ppd \
device/samsung/chief/init.gprs-pppd:system/etc/init.gprs-ppd \
device/samsung/chief/init.qcom.bt.sh:system/etc/init.qcom.bt.sh \
device/samsung/chief/init.qcom.coex.sh:system/etc/init.qcom.coex.sh \
device/samsung/chief/init.qcom.fm.sh:system/etc/init.qcom.fm.sh \
device/samsung/chief/init.qcom.sdio.sh:system/etc/init.qcom.sdio.sh \
device/samsung/chief/init.qcom.wifi.sh:system/etc/init.qcom.wifi.sh \
device/samsung/chief/files/SPH-D600.rle:root/SPH-D600.rle \
device/samsung/chief/files/charging.rle:root/charging.rle
# wifi files
PRODUCT_COPY_FILES += \
device/samsung/chief/files/egl.cfg:system/lib/egl/egl.cfg \
device/samsung/chief/files/system/etc/wifi/bcm4329_sta.bin:/system/etc/wifi/bcm4329_sta.bin \
device/samsung/chief/files/system/etc/wifi/bcm4329_aps.bin:/system/etc/wifi/bcm4329_aps.bin \
device/samsung/chief/files/system/etc/wifi/nvram_net.txt:system/etc/wifi/nvram_net.txt \
device/samsung/chief/files/system/etc/wifi/bcm4329_mfg.bin:/system/etc/wifi/bcm4329_mfg.bin \
device/samsung/chief/files/system/etc/wifi/wpa_supplicant.conf:system/etc/wifi/wpa_supplicant.conf \
device/samsung/chief/files/system/etc/dhcpcd/dhcpcd.conf:system/etc/dhcpcd/dhcpcd.conf \
device/samsung/chief/files/system/bin/BCM4329B1_002.002.023.0746.0871.hcd:system/bin/BCM4329B1_002.002.023.0746.0871.hcd
# video drivers
PRODUCT_COPY_FILES += \
device/samsung/chief/files/system/etc/firmware/vidc_720p_command_control.fw:/system/etc/firmware/vidc_720p_command_control.fw \
device/samsung/chief/files/system/etc/firmware/vidc_720p_mp4_dec_mc.fw:/system/etc/firmware/vidc_720p_mp4_dec_mc.fw \
device/samsung/chief/files/system/etc/firmware/yamato_pfp.fw:/system/etc/firmware/yamato_pfp.fw \
device/samsung/chief/files/system/etc/firmware/vidc_720p_h263_dec_mc.fw:/system/etc/firmware/vidc_720p_h263_dec_mc.fw \
device/samsung/chief/files/system/etc/firmware/vidc_720p_mp4_enc_mc.fw:/system/etc/firmware/vidc_720p_mp4_enc_mc.fw \
device/samsung/chief/files/system/etc/firmware/yamato_pm4.fw:/system/etc/firmware/yamato_pm4.fw \
device/samsung/chief/files/system/etc/firmware/vidc_720p_h264_dec_mc.fw:/system/etc/firmware/vidc_720p_h264_dec_mc.fw \
device/samsung/chief/files/system/etc/firmware/vidc_720p_vc1_dec_mc.fw:/system/etc/firmware/vidc_720p_vc1_dec_mc.fw \
device/samsung/chief/files/system/etc/firmware/vidc_720p_h264_enc_mc.fw:/system/etc/firmware/vidc_720p_h264_enc_mc.fw
# misc firmware
PRODUCT_COPY_FILES += \
device/samsung/chief/files/system/etc/firmware/wlan/cfg.dat:system/etc/firmware/wlan/cfg.dat \
device/samsung/chief/files/system/etc/firmware/wlan/qcom_fw.bin:system/etc/firmware/wlan/qcom_fw.bin \
device/samsung/chief/files/system/etc/firmware/wlan/volans/WCN1314_qcom_fw.bin:system/etc/firmware/wlan/volans/WCN1314_qcom_fw.bin \
device/samsung/chief/files/system/etc/firmware/wlan/volans/WCN1314_qcom_wlan_nv.bin:system/etc/firmware/wlan/volans/WCN1314_qcom_wlan_nv.bin \
device/samsung/chief/files/system/etc/firmware/wlan/volans/WCN1314_cfg.dat:system/etc/firmware/wlan/volans/WCN1314_cfg.dat \
device/samsung/chief/files/system/etc/firmware/wlan/volans/WCN1314_qcom_cfg.ini:system/etc/firmware/wlan/volans/WCN1314_qcom_cfg.ini \
device/samsung/chief/files/system/bin/pppd_runner:system/bin/pppd_runner \
device/samsung/chief/files/system/bin/drexe:system/bin/drexe \
device/samsung/chief/files/system/etc/wifi/wifi.conf:system/etc/wifi/wifi.conf \
device/samsung/chief/files/system/etc/wifi/wl:system/etc/wifi/wl \
device/samsung/chief/files/system/etc/wifi/nvram_mfg.txt:system/etc/wifi/nvram_mfg.txt
# Telephony property for CDMA
PRODUCT_PROPERTY_OVERRIDES += \
ro.config.vc_call_vol_steps=15 \
ro.telephony.default_network=4 \
ro.com.google.clientidbase=android-sprint-us \
ro.cdma.home.operator.numeric=310120 \
ro.cdma.home.operator.alpha=Sprint \
net.cdma.pppd.authtype=require-pap \
net.cdma.pppd.user=user[SPACE]SprintNextel \
net.cdma.datalinkinterface=/dev/ttyCDMA0 \
net.interfaces.defaultroute=cdma \
net.cdma.ppp.interface=ppp0 \
net.connectivity.type=CDMA1 \
mobiledata.interfaces=ppp0,uwbr0 \
ro.telephony.ril_class=samsung \
ro.ril.samsung_cdma=true
# WiMAX Property setting for checking WiMAX interface
PRODUCT_PROPERTY_OVERRIDES += \
ro.wimax.interface=uwbr0 \
net.tcp.buffersize.wimax=4092,87380,1520768,4092,16384,1520768
# misc for now
PRODUCT_COPY_FILES += \
device/samsung/chief/files/system/etc/apns-conf.xml:system/etc/apns-conf.xml \
device/samsung/chief/files/system/vendor/lib/libsec-ril.so:system/vendor/lib/libsec-ril.so \
device/samsung/chief/files/system/bin/qmuxd:system/bin/qmuxd \
device/samsung/chief/files/system/bin/rmt_storage:system/bin/rmt_storage \
device/samsung/chief/files/system/bin/netmgrd:system/bin/netmgrd \
device/samsung/chief/files/system/bin/thermald:system/bin/thermald \
device/samsung/chief/files/system/bin/geomagneticd:system/bin/geomagneticd \
device/samsung/chief/files/system/bin/orientationd:system/bin/orientationd \
device/samsung/chief/files/system/bin/cnd:system/bin/cnd \
device/samsung/chief/files/system/bin/mfgloader:system/bin/mfgloader \
device/samsung/chief/files/system/bin/wlandutservice:system/bin/wlandutservice \
device/samsung/chief/files/system/bin/btld:system/bin/btld \
vendor/cyanogen/prebuilt/mdpi/media/bootanimation.zip:system/media/bootanimation.zip \
device/samsung/chief/files/system/etc/01_qcomm_omx.cfg:system/etc/01_qcomm_omx.cfg \
device/samsung/chief/files/system/etc/cdma-carriers-conf.xml:system/etc/cdma-carriers-conf.xml \
device/samsung/chief/files/system/etc/loc_parameter.ini:system/etc/loc_parameter.ini \
device/samsung/chief/files/system/etc/media_profiles.xml:system/etc/media_profiles.xml \
device/samsung/chief/files/system/etc/wimax_boot.bin:system/etc/wimax_boot.bin \
device/samsung/chief/files/system/etc/wimaxfw.bin:system/etc/wimaxfw.bin \
device/samsung/chief/files/system/etc/wimaxloader.bin:system/etc/wimaxloader.bin \
device/samsung/chief/files/system/etc/thermald.conf:system/etc/thermald.conf
# These are the hardware-specific features
PRODUCT_COPY_FILES += \
frameworks/base/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml \
frameworks/base/data/etc/android.hardware.camera.flash-autofocus.xml:system/etc/permissions/android.hardware.camera.flash-autofocus.xml \
frameworks/base/data/etc/android.hardware.camera.autofocus.xml:system/etc/permissions/android.hardware.camera.autofocus.xml \
frameworks/base/data/etc/android.hardware.camera.front.xml:system/etc/permissions/android.hardware.camera.front.xml \
frameworks/base/data/etc/android.hardware.telephony.cdma.xml:system/etc/permissions/android.hardware.telephony.cdma.xml \
frameworks/base/data/etc/android.hardware.location.xml:system/etc/permissions/android.hardware.location.xml \
frameworks/base/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \
frameworks/base/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
frameworks/base/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml \
frameworks/base/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml \
frameworks/base/data/etc/android.hardware.sensor.compass.xml:system/etc/permissions/android.hardware.sensor.compass.xml \
frameworks/base/data/etc/android.hardware.sensor.accelerometer.xml:system/etc/permissions/android.hardware.sensor.accelerometer.xml \
frameworks/base/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
frameworks/base/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml \
packages/wallpapers/LivePicker/android.software.live_wallpaper.xml:system/etc/permissions/android.software.live_wallpaper.xml
$(call inherit-product, build/target/product/full.mk)
PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
PRODUCT_PROPERTY_OVERRIDES := \
wifi.interface=eth0\
wifi.supplicant_scan_interval=15\
ril.subscription.types=NV
# Perfomance tweaks and misc
PRODUCT_PROPERTY_OVERRIDES += \
dalvik.vm.execution-mode=int:jit \
dalvik.vm.heapsize=48m \
persist.sys.use_dithering=1 \
ro.compcache.default=0
# Properties taken from build.prop
PRODUCT_PROPERTY_OVERRIDES += \
ro.setupwizard.mode=DISABLED \
ro.com.google.gmsversion=2.3_r9 \
ro.com.google.clientidbase=android-samsung \
ro.com.google.clientidbase.ms=android-sprint-us \
ro.com.google.clientidbase.yt=android-sprint-us \
ro.com.google.clientidbase.am=android-sprint-us \
ro.com.google.clientidbase.gmm=android-samsung
# Set region
PRODUCT_DEFAULT_LANGUAGE := en_US
PRODUCT_DEFAULT_REGION := US
# Chief uses medium-density artwork where available
PRODUCT_LOCALES += mdpi
PRODUCT_COPY_FILES += \
$(LOCAL_KERNEL):kernel
$(call inherit-product, build/target/product/full.mk)
PRODUCT_NAME := cyanogenmod_chief
PRODUCT_DEVICE := chief
PRODUCT_BRAND := samsung
PRODUCT_MODEL := SPH-D600
PRODUCT_MANUFACTURER := samsung
CDMA_GOOGLE_BASE := android-sprint-us
CDMA_CARRIER_ALPHA := Sprint
CDMA_CARRIER_NUMERIC := 310120
next extract-files.sh
Code:
BASE=../../../vendor/manufacturer/devicename/proprietary
rm -rf $BASE/*
for FILE in `egrep -v '(^#|^$)' proprietary-files.txt`; do
DIR=`dirname $FILE`
if [ ! -d $BASE/$DIR ]; then
mkdir -p $BASE/$DIR
fi
adb pull /system/$FILE $BASE/$FILE
done
./setup-makefiles.sh
For propietary-files.txt put in the directories of the needed files. Example
Code:
lib/libsec-ril.so
lib/liboncrpc.so
bin/mm-abl-tes
etc.
next setup-makefiles.sh NOTICE: there will be coding such as $DEVICE do NOT replace this with your devices name. This code will be set with what ever you put in the beginning.
Code:
#!/bin/sh
# 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=devicename
VENDOR=manufacturer
OUTDIR=vendor/$VENDOR/$DEVICE
MAKEFILE=../../../$OUTDIR/$DEVICE-vendor-blobs.mk
mkdir -p ../../../vendor/$VENDOR/$DEVICE
(cat << EOF) > $MAKEFILE
# Copyright (C) 2011 The CyanogenMod 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.
# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh
# Prebuilt libraries that are needed to build open-source libraries
#$OUTDIR/proprietary/lib/libcamera.so:obj/lib/libcamera.so \\
#$OUTDIR/proprietary/lib/libcameraservice.so:obj/lib/libcameraservice.so \\
#$OUTDIR/proprietary/lib/libcamera_client.so:obj/lib/libcamera_client.so \\
#$OUTDIR/proprietary/lib/liboemcamera.so:obj/lib/liboemcamera.so \\
PRODUCT_COPY_FILES += \\
$OUTDIR/proprietary/lib/libaudioalsa.so:obj/lib/libaudioalsa.so \\
EOF
LINEEND=" \\"
COUNT=`cat proprietary-files.txt | grep -v ^# | grep -v ^$ | wc -l | awk {'print $1'}`
for FILE in `cat proprietary-files.txt | grep -v ^# | grep -v ^$`; do
COUNT=`expr $COUNT - 1`
if [ $COUNT = "0" ]; then
LINEEND=""
fi
echo " $OUTDIR/proprietary/$FILE:system/$FILE$LINEEND" >> $MAKEFILE
done
(cat << EOF) > ../../../$OUTDIR/$DEVICE-vendor.mk
# Copyright (C) 2011 The CyanogenMod 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.
# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh
# Live wallpaper packages
PRODUCT_PACKAGES := \\
LiveWallpapers \\
LiveWallpapersPicker
# Publish that we support the live wallpaper feature.
PRODUCT_COPY_FILES := \\
packages/wallpapers/LivePicker/android.software.live_wallpaper.xml:/system/etc/permissions/android.software.live_wallpaper.xml
# Pick up overlay for features that depend on non-open-source files
DEVICE_PACKAGE_OVERLAYS := vendor/$VENDOR/$DEVICE/overlay
\$(call inherit-product, vendor/$VENDOR/$DEVICE/$DEVICE-vendor-blobs.mk)
EOF
(cat << EOF) > ../../../$OUTDIR/BoardConfigVendor.mk
# Copyright (C) 2011 The CyanogenMod 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.
# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh
USE_CAMERA_STUB := ?
EOF
Next is system.prop, this is basically the props for your device in build.prop
Code:
#
# system.prop for devicename
#
rild.libpath=/system/vendor/lib/?
rild.libargs= ?
Finally vendorsetup.sh
Code:
#
# Copyright (C) 2008 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.
#
# This file is executed by build/envsetup.sh, and can use anything
# defined in envsetup.sh.
#
# In particular, you can add lunch options with the add_lunch_combo
# function: add_lunch_combo generic-eng
add_lunch_combo source_devicename-eng
There you go! It may have been a lot of work but its worth it. If you have any questions comment them.
Nice work
I gues i put you´re link in my thread later on here:
forum.xda-developers.com/showthread.php?t=1935162
I did make a working recovery but iḿ still stuk building a working rom. I´m a bit alone on building for my new device haha.
I´m changing the files i need in proprietary-files.txt at the moment.
I´ḿ a bit unsure what files to use.. Use the file from CM ore use the original file.
For example bin/vold use the one that CM gives ore the original device files.
To make my cwm recovery work i did have to use the original init file.
[email protected] said:
Nice work
I gues i put you´re link in my thread later on here:
forum.xda-developers.com/showthread.php?t=1935162
I did make a working recovery but iḿ still stuk building a working rom. I´m a bit alone on building for my new device haha.
I´m changing the files i need in proprietary-files.txt at the moment.
I´ḿ a bit unsure what files to use.. Use the file from CM ore use the original file.
For example bin/vold use the one that CM gives ore the original device files.
To make my cwm recovery work i did have to use the original init file.
Click to expand...
Click to collapse
Thank you. Propietary files are the files in your device not cm. These files include ril files for service and necessary video files to play videos and games. They are pulled from your device when you do ./extract-files.sh on ubuntu. I will add explanations for everything in a little bit.
itzdarockz said:
Thank you. Propietary files are the files in your device not cm. These files include ril files for service and necessary video files to play videos and games. They are pulled from your device when you do ./extract-files.sh on ubuntu. I will add explanations for everything in a little bit.
Click to expand...
Click to collapse
That part about the Propietary files i know.
I just have a hard time finding out what my Propietary files are.
What do i do for this file: etc/media_profiles.xml
At the moment i take the 1 from the device. But cm will build it when if l dont include it..
And many files im nut sure if in the lib dir and sow on.
[email protected] said:
That part about the Propietary files i know.
I just have a hard time finding out what my Propietary files are.
What do i do for this file: etc/media_profiles.xml
At the moment i take the 1 from the device. But cm will build it when if l dont include it..
And many files im nut sure if in the lib dir and sow on.
Click to expand...
Click to collapse
You wouldnt include media_profiles. Try finding a device tree for a device close to urs and see what you may need.
itzdarockz said:
You wouldnt include media_profiles. Try finding a device tree for a device close to urs and see what you may need.
Click to expand...
Click to collapse
I´ll will do that.
hey there mate, thanks for this info,,, would this be current for latest cm???
Great info, thx
itzdarockz said:
What you will need
Windows or Ubuntu
A couple months knowledge about linux and android
Common sense
Notepad ++ (if on windows)
An MTD rooted android phone or tablet
There you go! It may have been a lot of work but its worth it. If you have any questions comment them. I will not be fixing your bugs though. If you find any mistakes please PM them to me. Thank you.
Click to expand...
Click to collapse
Hey mate thanks for this......however I ran into a problem I am making a rom and I did change ro.custom.build.version @ build.prop but changes are not there.....other changes I made to model and rest are reflecting but this particular isnt changing...any idea....??? thanks in advance
godofgeeks said:
Hey mate thanks for this......however I ran into a problem I am making a rom and I did change ro.custom.build.version @ build.prop but changes are not there.....other changes I made to model and rest are reflecting but this particular isnt changing...any idea....??? thanks in advance
Click to expand...
Click to collapse
Maybe try putting ro.modversion that worked for me, if it doesnt work you can just unzip the rom and put that in the #additional properties
itzdarockz said:
Maybe try putting ro.modversion that worked for me, if it doesnt work you can just unzip the rom and put that in the #additional properties
Click to expand...
Click to collapse
When i compile , i get this :
Code:
Trying dependencies-only mode on a non-existing device tree?
how to fix ?
dadroid98 said:
When i compile , i get this :
Code:
Trying dependencies-only mode on a non-existing device tree?
how to fix ?
Click to expand...
Click to collapse
It will usually say this in my experience if you are using a non-official device tree, for example one you created from scratch using this guide. I wouldn't worry about it unless it results in a compiling error in the process.
shimp208 said:
It will usually say this in my experience if you are using a non-official device tree, for example one you created from scratch using this guide. I wouldn't worry about it unless it results in a compiling error in the process.
Click to expand...
Click to collapse
Why _?
dadroid98 @ dadroid98 - F3P : ~ / cm9 $ make - jx otapackage
make: the "- j" requires an argument integrated positive
Usage: make [ options] [target ] ...
options:
**-b,- m Ignored for compatibility
**-B , - always -make Generates all targets unconditionally
**-C DIRECTORY , - directory = DIRECTORY
******************************Change to DIRECTORY before doing anything.
**-d show a lot of debugging information.
**- debug [= FLAGS ] Show different types of debugging information.
**-e, - environment -overrides
******************************The environment variables override the makefile.
**-f FILE , - file = FILE , - makefile = FILE
******************************Read FILE as a makefile .
**-h, - help Show this message and exit .
**-i , - ignore -errors Ignore errors command .
**-I DIRECTORY , - include-dir = DIRECTORY
******************************Search DIRECTORY for included makefiles .
**-j [N] , - jobs [ = N] Allow N jobs at once ; infinite if not specified the topic.
**- k, - keep -going Continue running when it is not possible to create some goals.
**-l [N] , - load- average [= N] , - max -load [= N]
******************************Not start multiple processes unless the workload is not under N.
**-L, - check- symlink -times Use the latest mtime between symlinks and target .
**-n, - just- print , - dry-run , - recon
******************************Do not execute any command, the print only .
**-o FILE , - old- file = FILE , - assume -old = FILE
******************************Consider FILE to be very old and does not re-run make.
**-p, - print- data-base Print the internal database to make.
**- q, - question not execute any command , the exit status indicates if it is out of date.
**-r , - no- builtin -rules Disable the internal implicit rules .
**-R , - no- builtin -variables Disable the settings of the internal variables .
**-s, - silent, - quiet Do not display the commands .
**-S , - no- keep- going, - stop
****************************Disable the-k option .
**-t, - touch Touch Runs the objectives instead of recreating them.
**-v, - version Print the version number of make and exit.
**-w , - print- directory Print the current directory.
**- no- print- directory Turn off -w , even if it was turned on implicitly .
**-W FILE , - what-if = FILE , - new- file = FILE , - assume -new = FILE
******************************Consider FILE as brand new.
**- warn - undefined -variables Warn when an undefined variable is referenced .
This program has been compiled for x86_64 -pc -linux -gnu
Report bugs to <[email protected]>
dadroid98 said:
Why _?
dadroid98 @ dadroid98 - F3P : ~ / cm9 $ make - jx otapackage
make: the "- j" requires an argument integrated positive
Usage: make [ options] [target ] ...
options:
**-b,- m Ignored for compatibility
**-B , - always -make Generates all targets unconditionally
**-C DIRECTORY , - directory = DIRECTORY
******************************Change to DIRECTORY before doing anything.
**-d show a lot of debugging information.
**- debug [= FLAGS ] Show different types of debugging information.
**-e, - environment -overrides
******************************The environment variables override the makefile.
**-f FILE , - file = FILE , - makefile = FILE
******************************Read FILE as a makefile .
**-h, - help Show this message and exit .
**-i , - ignore -errors Ignore errors command .
**-I DIRECTORY , - include-dir = DIRECTORY
******************************Search DIRECTORY for included makefiles .
**-j [N] , - jobs [ = N] Allow N jobs at once ; infinite if not specified the topic.
**- k, - keep -going Continue running when it is not possible to create some goals.
**-l [N] , - load- average [= N] , - max -load [= N]
******************************Not start multiple processes unless the workload is not under N.
**-L, - check- symlink -times Use the latest mtime between symlinks and target .
**-n, - just- print , - dry-run , - recon
******************************Do not execute any command, the print only .
**-o FILE , - old- file = FILE , - assume -old = FILE
******************************Consider FILE to be very old and does not re-run make.
**-p, - print- data-base Print the internal database to make.
**- q, - question not execute any command , the exit status indicates if it is out of date.
**-r , - no- builtin -rules Disable the internal implicit rules .
**-R , - no- builtin -variables Disable the settings of the internal variables .
**-s, - silent, - quiet Do not display the commands .
**-S , - no- keep- going, - stop
****************************Disable the-k option .
**-t, - touch Touch Runs the objectives instead of recreating them.
**-v, - version Print the version number of make and exit.
**-w , - print- directory Print the current directory.
**- no- print- directory Turn off -w , even if it was turned on implicitly .
**-W FILE , - what-if = FILE , - new- file = FILE , - assume -new = FILE
******************************Consider FILE as brand new.
**- warn - undefined -variables Warn when an undefined variable is referenced .
This program has been compiled for x86_64 -pc -linux -gnu
Report bugs to <[email protected]>
Click to expand...
Click to collapse
You need to specify the number of jobs so the command syntax should be something such as:
Code:
make - j4 otapackage
Not make - jx otapackage, you must specify the number of jobs and can't leave it as an x option.
shimp208 said:
You need to specify the number of jobs so the command syntax should be something such as:
Code:
make - j4 otapackage
Not make - jx otapackage, you must specify the number of jobs and can't leave it as an x option.
Click to expand...
Click to collapse
ok i understand
dadroid98 said:
ok i understand
Click to expand...
Click to collapse
Glad I could help you out, let me know if you have any further questions I'll be happy to help you out best I can.
Sent from my SCH-I535 using XDA Premium 4 mobile app
shimp208 said:
Glad I could help you out, let me know if you have any further questions I'll be happy to help you out best I can.
Sent from my SCH-I535 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Ok thanks a lot !!!
Now I got. zip file of the rom but remains on bootanimation ... I thought I'd take a Logcat but ...
[email protected]:~$ adb devices
List of devices attached
EDIT ---
i have solved adding this on build.prop
persist.service.adb.enable=1
.. Now i can get logcat ...
@shimp208
Will this method will work on Samsung galxy grand quattro
lols21.10 said:
@shimp208
Will this method will work on Samsung galxy grand quattro
Click to expand...
Click to collapse
The method in this guide for creating a new device tree should work on your device. After looking through the Galaxy Grand Quattro development sections here on XDA, rather then creating a new device tree from scratch I would recommend taking a look a this developers github and seeing if they already have a device tree for your device as they have a build of CM11 in the Galaxy Grand Quattro Orginal Development section. If you can't find it on their github a polite message, inquiring about what device tree they used should be fine. Let me know if you still have questions.
This ROM 4.0 for Dell Venue is NOT stabilized yet with non working camera. I wish to open New Thread to ask Help from member here in building Jelly Bean 4.2.2 for Dell Venue on AOKP Source Tree.
I hav succesfully built the ROM but can not BOOT to dell venue and I can Not do adb logcating since the file /system/bin/sh is symlinks from /system/bin/mksh .... SEE ATTACHED SCREENSHOT.
[q] Is it Normal in 4.2.2 ? so How to do logcating at 4.2.2 ROM or should I used latest adbd .. I have built system.img and boot.img from command make systemimage thus I don't have CWR Flashable zip file .. but I can rebuild if it will help to evaluate.
Config :
/device/dell/venue/BoardConfik.mk
# inherit from the proprietary version
-include vendor/dell/venue/BoardConfigVendor.mk
#--
TARGET_NO_BOOTLOADER := true
TARGET_BOARD_PLATFORM := qsd8k
TARGET_BOARD_PLATFORM_GPU := qcom-adreno200
# CPU Stuff
TARGET_ARCH := arm
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_ARCH_VARIANT := armv7-a-neon
ARCH_ARM_HAVE_TLS_REGISTER := true
TARGET_CPU_SMP := true
TARGET_BOOTLOADER_BOARD_NAME := venue
TARGET_CORTEX_CACHE_LINE_32 := true
# Boot stuff
BOARD_KERNEL_CMDLINE := androidboot.hardware=venue
BOARD_KERNEL_BASE := 0x20000000
BOARD_PAGE_SIZE := 2048
#- depending on your taste to put kernel sources
TARGET_KERNEL_SOURCE := device/dell/venue/vn2634
TARGET_KERNEL_CONFIG := venue_defconfig
#---
TARGET_GLOBAL_CFLAGS +=-mfpu=neon -mfloat-abi=softfp
TARGET_GLOBAL_CPPFLAGS +=-mfpu=neon -mfloat-abi=softfp
#--
### cat /proc/mtd
# dev: size erasesize name
# mtd0: 00500000 00020000 "boot"
# mtd1: 00600000 00020000 "recovery"
# mtd2: 00600000 00020000 "recovery_bak"
# mtd3: 00040000 00020000 "LogFilter"
# mtd4: 00300000 00020000 "oem_log"
# mtd5: 10400000 00020000 "system"
# mtd6: 22600000 00020000 "userdata"
# mtd7: 06600000 00020000 "cache"
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x00500000
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00600000
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x10400000
BOARD_FLASH_BLOCK_SIZE := 131072
BOARD_USERDATAIMAGE_PARTITION_SIZE := 0X22600000
TARGET_USERIMAGES_USE_EXT4 := false
BOARD_HAS_NO_SELECT_BUTTON := true
BOARD_USE_CUSTOM_RECOVERY_FONT := '"font_7x16.h"'
COMMON_GLOBAL_CFLAGS += -DREFRESH_RATE=60 -DQCOM_HARDWARE
TARGET_SPECIFIC_HEADER_PATH := device/dell/venue/include
USE_OPENGL_RENDERER := true
BOARD_VENDOR_USE_AKMD := true
# QCOM stuffs
BOARD_USES_QCOM_HARDWARE := true
TARGET_USES_OVERLAY := true
TARGET_HAVE_BYPASS := false
TARGET_USES_C2D_COMPOSITION := true
TARGET_USES_GENLOCK := true
TARGET_QCOM_HDMI_OUT := false
TARGET_FORCE_CPU_UPLOAD := true
BOARD_USES_QCOM_LIBS := true
BOARD_USES_QCOM_PMEM := true
BOARD_EGL_CFG := device/dell/venue/configs/egl.cfg
TARGET_PROVIDE_LIBRIL := true
# RIL
BOARD_USES_LEGACY_RIL := true
#-- TO DO and Check
TARGET_GRALLOC_USES_ASHMEM := false
#-- End of TO DO and Check
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_BCM := true
# to enable the GPS HAL
BOARD_USES_QCOM_LIBRPC := true
BOARD_USES_QCOM_GPS := true
BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := venue
# AMSS version to use for GPS
BOARD_VENDOR_QCOM_GPS_LOC_API_AMSS_VERSION := 50000
# --builable for ics wpa_0_8_x
BOARD_WLAN_DEVICE := bcm4329
WIFI_EXT_MODULE_MODULE_PATH := /system/lib/modules/librasdioif.ko
WIFI_DRIVER_MODULE_PATH := /system/lib/modules/dhd.ko
WIFI_EXT_MODULE_NAME := librasdioif
WIFI_DRIVER_MODULE_NAME := dhd
WIFI_DRIVER_FW_PATH_STA := /system/vendor/firmware/fw_bcm4329.bin
WIFI_DRIVER_FW_PATH_AP := /system/vendor/firmware/fw_bcm4329_apsta.bin
WIFI_DRIVER_MODULE_ARG := "firmware_path=/system/etc/wlan/sdio-g-cdc-full11n-reclaim-roml-wme-aoe-pktfilter-keepalive-wapi.bin nvram_path=/etc/wlan/nvram.txt"
WIFI_AP_DRIVER_MODULE_ARG := /system/etc/wlan/sdio-g-cdc-roml-reclaim-wme-apsta-idsup-idauth.bin
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_wext
BOARD_WPA_SUPPLICANT_DRIVER := WEXT
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WEXT_NO_COMBO_SCAN := true
#--- Vold stuffs
#BOARD_VOLD_MAX_PARTITIONS := 16
# Camera
CAMERA_USES_SURFACEFLINGER_CLIENT_STUB := true
COMMON_GLOBAL_CFLAGS += -DICS_CAMERA_BLOB -DNO_UPDATE_PREVIEW
BOARD_NEEDS_MEMORYHEAPPMEM := true
TARGET_DISABLE_ARM_PIE := true
#
#
Click to expand...
Click to collapse
device/dell/venue/full_venue.mk just to follow common naming policy of aokp
LOCAL_PATH := device/dell/venue
# The gps config appropriate for this device
$(call inherit-product, device/common/gps/gps_us_supl.mk)
# Inherit non-open-source blobs.
$(call inherit-product-if-exists, vendor/dell/venue/venue-vendor.mk)
# Inherit Device build
$(call inherit-product, build/target/product/full_base_telephony.mk)
PRODUCT_TAGS := dalvik.gc.type-precise
PRODUCT_PROPERTY_OVERRIDES := \
dalvik.vm.heapstartsize=5m \
dalvik.vm.heapgrowthlimit=32m \
dalvik.vm.heapsize=76m
PRODUCT_AAPT_CONFIG := normal mdpi ldpi
PRODUCT_AAPT_PREF_CONFIG := mdpi
# Init file boot ramdisk set-up
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init/init.rc:root/init.rc \
$(LOCAL_PATH)/init/ueventd.rc:root/ueventd.rc \
$(LOCAL_PATH)/init/init.venue.rc:root/init.venue.rc \
$(LOCAL_PATH)/init/init.venue.usb.rc:root/init.venue.usb.rc \
$(LOCAL_PATH)/init/initlogo.rle:root/initlogo.rle
# Configuration
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/8k_handset.kl:system/usr/keylayout/8k_handset.kl \
$(LOCAL_PATH)/configs/surf_keypad.kl:system/usr/keylayout/surf_keypad.kl \
$(LOCAL_PATH)/configs/qwerty.kl:system/usr/keylayout/qwerty.kl \
$(LOCAL_PATH)/configs/surf_keypad.kcm.bin:system/usr/keychars/surf_keypad.kcm.bin \
$(LOCAL_PATH)/configs/mXT224_touchscreen.idc:system/usr/idc/mXT224_touchscreen.idc \
$(LOCAL_PATH)/configs/audio_effects.conf:system/etc/audio_effects.conf \
$(LOCAL_PATH)/configs/vold.fstab:system/etc/vold.fstab
# Media Profile
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/media_profiles.xml:system/etc/media_profiles.xml
Click to expand...
Click to collapse
vendor/aokp/product/venue.mk
# Inherit AOSP device configuration for venue.
$(call inherit-product, device/dell/venue/full_venue.mk)
# Inherit AOKP common bits
$(call inherit-product, vendor/aokp/configs/common.mk)
# Inherit GSM common stuff
$(call inherit-product, vendor/aokp/configs/gsm.mk)
# venue Overlay
PRODUCT_PACKAGE_OVERLAYS += vendor/aokp/overlay/venue
# Setup device specific product configuration.
PRODUCT_NAME := aokp_venue
PRODUCT_BRAND := dell
PRODUCT_DEVICE := venue
PRODUCT_MODEL := Dell Venue
PRODUCT_MANUFACTURER := dell
UTC_DATE := $(shell date +%s)
DATE := $(shell date +%Y%m%d)
PRODUCT_BUILD_PROP_OVERRIDES += \
PRODUCT_NAME=${PRODUCT_DEVICE}_${PRODUCT_SFX} \
BUILD_NUMBER=${DATE} \
TARGET_DEVICE=${PRODUCT_DEVICE_PREFIX}_${PRODUCT_DEVICE} \
BUILD_FINGERPRINT=${PRODUCT_BRAND}/${PRODUCT_DEVICE}_${PRODUCT_SFX}/${PRODUCT_DEVICE_PREFIX}_${PRODUCT_DEVICE}:${PLATFORM_VERSION}/${BUILD_ID}/${DATE}:user/release-keys \
PRIVATE_BUILD_DESC="${PRODUCT_DEVICE_PREFIX}_${PRODUCT_DEVICE}-user ${PLATFORM_VERSION} ${BUILD_ID} ${DATE} release-keys" \
PRODUCT_BRAND=${PRODUCT_BRAND} \
BUILD_UTC_DATE= \
PRODUCT_DEFAULT_LANGUAGE=en \
PRODUCT_DEFAULT_REGION=ID \
# Venue specific packages
PRODUCT_PACKAGES += \
Thinkfree \
libstagefrighthw \
audio.a2dp.default \
audio.primary.qsd8k \
audio_policy.qsd8k \
libgenlock \
liboverlay \
gralloc.qsd8k \
hwcomposer.qsd8k \
copybit.qsd8k \
gps.venue \
camera.qsd8k \
libOmxCore \
libOmxVidEnc
PRODUCT_COPY_FILES += \
vendor/aokp/prebuilt/bootanimation/bootanimation_400_800.zip:system/media/bootanimation.zip
Click to expand...
Click to collapse
vendor/dell/venue/venue-vendor.mk
$(call inherit-product, vendor/dell/venue/venue-vendor-blobs.mk)
# Live wallpaper packages
PRODUCT_PACKAGES := \
LiveWallpapers \
LiveWallpapersPicker \
MagicSmokeWallpapers \
librs_jni
# Publish that we support the live wallpaper feature.
PRODUCT_COPY_FILES := \
packages/wallpapers/LivePicker/android.software.live_wallpaper.xml:/system/etc/permissions/android.software.live_wallpaper.xml
Click to expand...
Click to collapse
vendor/dell/venue/venue-vendor-blobs.mk
LOCAL_PATH := vendor/dell/venue
# CAMERA STUFF
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/lib/libcamera.sobj/lib/libcamera.so \
$(LOCAL_PATH)/proprietary/lib/liboemcamera.so:system/lib/liboemcamera.so \
$(LOCAL_PATH)/proprietary/lib/libcamera_client.so:system/lib/libcamera_client.so \
$(LOCAL_PATH)/proprietary/lib/libcameraservice.so:system/lib/libcameraservice.so
# WIFI
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/etc/firmware/yamato_pfp.fw:system/etc/firmware/yamato_pfp.fw \
$(LOCAL_PATH)/proprietary/etc/firmware/yamato_pm4.fw:system/etc/firmware/yamato_pm4.fw \
$(LOCAL_PATH)/proprietary/etc/wlan/sdio-g-cdc-full11n-reclaim-roml-wme-aoe-pktfilter-keepalive-wapi.bin:system/etc/wlan/sdio-g-cdc-full11n-reclaim-roml-wme-aoe-pktfilter-keepalive-wapi.bin \
$(LOCAL_PATH)/proprietary/etc/wlan/sdio-g-cdc-roml-reclaim-wme-apsta-idsup-idauth.bin:system/etc/wlan/sdio-g-cdc-roml-reclaim-wme-apsta-idsup-idauth.bin
# $(LOCAL_PATH)/proprietary/etc/wlan/nvram.txt:system/etc/wlan/nvram.txt
# AUDIO
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/etc/01_qcomm_omx.cfg:system/etc/01_qcomm_omx.cfg \
$(LOCAL_PATH)/proprietary/lib/libsc-a2xx.so:system/lib/libsc-a2xx.so \
$(LOCAL_PATH)/proprietary/lib/libOmxCore.so:system/lib/libOmxCore.so \
$(LOCAL_PATH)/proprietary/lib/libOmxVidEnc.so:system/lib/libOmxVidEnc.so
# TOUCHSCREEN DISPLAY
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/usr/idc/qwerty.idc:system/usr/idc/qwerty.idc \
$(LOCAL_PATH)/proprietary/usr/keychars/surf_keypad.kcm.bin:system/usr/keychars/surf_keypad.kcm.bin \
$(LOCAL_PATH)/proprietary/usr/keychars/qwerty.kcm:system/usr/keychars/qwerty.kcm \
$(LOCAL_PATH)/proprietary/usr/keychars/Virtual.kcm:system/usr/keychars/Virtual.kcm
# RIL
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/lib/libreference-ril.so:system/lib/libreference-ril.so \
$(LOCAL_PATH)/proprietary/bin/rild:system/bin/rild \
$(LOCAL_PATH)/proprietary/lib/libril.so:system/lib/libril.so \
$(LOCAL_PATH)/proprietary/lib/libril-qcril-hook-oem.so:system/lib/libril-qcril-hook-oem.so \
$(LOCAL_PATH)/proprietary/lib/libril-qc-1.so:system/lib/libril-qc-1.so
# EGL
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/lib/egl/libGLESv2_adreno200.so:system/lib/egl/libGLESv2_adreno200.so \
$(LOCAL_PATH)/proprietary/lib/egl/libGLESv1_CM_adreno200.so:system/lib/egl/libGLESv1_CM_adreno200.so \
$(LOCAL_PATH)/proprietary/lib/egl/libEGL_adreno200.so:system/lib/egl/libEGL_adreno200.so \
$(LOCAL_PATH)/proprietary/lib/egl/libq3dtools_adreno200.so:system/lib/egl/libq3dtools_adreno200.so
#
# HW
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/lib/hw/gps.venue.so:system/lib/hw/gps.venue.so \
$(LOCAL_PATH)/proprietary/lib/hw/gralloc.qsd8k.so:system/lib/hw/gralloc.qsd8k.so \
$(LOCAL_PATH)/proprietary/lib/hw/hwcomposer.qsd8k.so:system/lib/hw/hwcomposer.qsd8k.so \
$(LOCAL_PATH)/proprietary/lib/hw/copybit.qsd8k.so:system/lib/hw/copybit.qsd8k.so \
$(LOCAL_PATH)/proprietary/lib/hw/sensors.venue.so:system/lib/hw/sensors.venue.so
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/bin/qmuxd:system/bin/qmuxd \
$(LOCAL_PATH)/proprietary/bin/calibrate:system/bin/calibrate \
$(LOCAL_PATH)/proprietary/bin/sensors_daemon:system/bin/sensors_daemon \
$(LOCAL_PATH)/proprietary/lib/libauth.so:system/lib/libauth.so \
$(LOCAL_PATH)/proprietary/lib/libcm.so:system/lib/libcm.so \
$(LOCAL_PATH)/proprietary/lib/libbluedroid.so:system/lib/libbluedroid.so \
$(LOCAL_PATH)/proprietary/lib/libdiag.so:system/lib/libdiag.so \
$(LOCAL_PATH)/proprietary/lib/libdsutils.so:system/lib/libdsutils.so \
$(LOCAL_PATH)/proprietary/lib/libdsm.so:system/lib/libdsm.so \
$(LOCAL_PATH)/proprietary/lib/libgsdi_exp.so:system/lib/libgsdi_exp.so \
$(LOCAL_PATH)/proprietary/lib/libgstk_exp.so:system/lib/libgstk_exp.so \
$(LOCAL_PATH)/proprietary/lib/libidl.so:system/lib/libidl.so \
$(LOCAL_PATH)/proprietary/lib/libmmjpeg.so:system/lib/libmmjpeg.so \
$(LOCAL_PATH)/proprietary/lib/libmmipl.so:system/lib/libmmipl.so \
$(LOCAL_PATH)/proprietary/lib/libmmgsdilib.so:system/lib/libmmgsdilib.so \
$(LOCAL_PATH)/proprietary/lib/libnv.so:system/lib/libnv.so \
$(LOCAL_PATH)/proprietary/lib/liboncrpc.so:system/lib/liboncrpc.so \
$(LOCAL_PATH)/proprietary/lib/liboem_rapi.so:system/lib/liboem_rapi.so \
$(LOCAL_PATH)/proprietary/lib/liboverlay.so:system/lib/liboverlay.so \
$(LOCAL_PATH)/proprietary/lib/libpbmlib.so:system/lib/libpbmlib.so \
$(LOCAL_PATH)/proprietary/lib/libqueue.so:system/lib/libqueue.so \
$(LOCAL_PATH)/proprietary/lib/libqmi.so:system/lib/libqmi.so \
$(LOCAL_PATH)/proprietary/bin/lightsensor:system/bin/lightsensor \
$(LOCAL_PATH)/proprietary/lib/libwmsts.so:system/lib/libwmsts.so \
$(LOCAL_PATH)/proprietary/lib/libwms.so:system/lib/libwms.so
Click to expand...
Click to collapse
If someone wanna to have copy of boot.img and system.img.. I will be happy to share or I will rebuild and create cwr-flashable-zip
FASTBOOT FLASHABLE IMAGES
attached boot.img flashable via fastboot and can recognize adb command
From Cyanogenmod wiki
In short: yes, you have to use updated adb tools (read:sdk).
Also, could you provide us with default.prop for this build?
Sent from my Dell Streak Pro using xda app-developers app
Kibuuka
Ok I will provide this evening upon reach my pc. Im mobile now
sent by Tapatalk on Android Device
x1123 said:
Kibuuka
Ok I will provide this evening upon reach my pc. Im mobile now
sent by Tapatalk on Android Device
Click to expand...
Click to collapse
lil' explanation: ro.adb.secure=1 is default setting sitting in default.prop, enforcing secure adb. I suggest setting it to 0 (at build time - change it and rebuild boot.img) to make adb useable in pre-interface-available stages (since current build isn't able to boot into graphical interface yet).
kibuuka said:
wiki.cyanogenmod.org/w/Doc:_adb_intro#Secure_USB_Debugging_.28NEW_in_Android_4.2.2.29
In short: yes, you have to use updated adb tools (read:sdk).
Also, could you provide us with default.prop for this build?
Sent from my Dell Streak Pro using xda app-developers app
Click to expand...
Click to collapse
ATTACHED .. indeed since GB build I made this ... ro.secure=0
x1123 said:
ATTACHED .. indeed since GB build I made this ... ro.secure=0
Click to expand...
Click to collapse
Just add ro.adb.secure=0 in there and you're all (in theory ) set.
Erm.
Kernel feature proposal (sort of): I'm currently messing with kernel for my primary device (Streak Pro). While doing this i've did number of things (easiest part was bumping to 2.6.35.14 from .11 it originally had) including:
1. added bcmdhd driver (venue uses bcm4329, am i right? if so, #1 is useable)
2. updated kgsl (kernel part of adreno drivers) to version 3.10 (opposed to 3.8 dsc kernel has at the moment)
Both these are easily portable so i can update my dsc fork (making a pull request on completion so it gets included in main dsc repo) if we're interested.
kibuuka said:
Just add ro.adb.secure=0 in there and you're all (in theory ) set.
Click to expand...
Click to collapse
sorry I overlooked your post ... probably I'm boring to see this script .... many thanks for point out
Erm.
Kernel feature proposal (sort of): I'm currently messing with kernel for my primary device (Streak Pro). While doing this i've did number of things (easiest part was bumping to 2.6.35.14 from .11 it originally had) including:
1. added bcmdhd driver (venue uses bcm4329, am i right? if so, #1 is useable)
2. updated kgsl (kernel part of adreno drivers) to version 3.10 (opposed to 3.8 dsc kernel has at the moment)
Both these are easily portable so i can update my dsc fork (making a pull request on completion so it gets included in main dsc repo) if we're interested.
Click to expand...
Click to collapse
Yessss ... venue wifi is bcm4329 ... I don't mind to patch kernel etc. However patching kernel's drivers in many of situation WE DON'T KNOW what should be patched kernel is low level programming which is far away from my knowledge and capability
on adb
Could you be more specific on
I can Not do adb logcating since the file /system/bin/sh is symlinks from /system/bin/mksh
Click to expand...
Click to collapse
Are you trying to say you're getting:
- exec '/system/bin/sh' failed: No such file or directory (2) -
Click to expand...
Click to collapse
when issuing adb logcat? If yes, this indicates that's /system ain't mounted, there's noting regarding sh being symlink to mksh.
You need to check your init.*.rc to find what's wrong.
If adb doesn't seem to run at all -
add:
Code:
ADDITIONAL_DEFAULT_PROPERTIES += \
ro.secure=0 \
ro.adb.secure=0 \
ro.allow.mock.location=1 \
ro.debuggable=1 \
persist.service.adb.enable=1
to device's .mk file, remove /out/target/product/YOURDEVICE/root/ (to make sure it will be regenerated - sometimes)
and issue make. This will rebuild boot.img and from now on it will contain above-mentioned properties in default.prop
If you're referring to _other_ problem with adb - again, be more specific.
Hi Kib,
I believed you are know better to Android related. I think AOKP did not support QSD8k device, but Evervolv did. Is it correct my understanding, build qsd8k device will be much easier with evervolv code base rather than AOKP, since I'm NOT capable to port a device from scratch. upon a source tree basically support a device, we will easier to add another device with similar platform. At least most most codebase is available and we can use as Template . Even about 80% the code base is similar for aokp, cm10, avervolv ...they are in same boat.
I hold my build test on JB and spent time to poke qsd8k Camera for DV on 4.0 rom. Another question do you thing we can bring device configuration from 4.0 to 4.1 / 4.2 (?) my Understanding 4.0 is louzy android version but 4.1/4.2 is barely smooth, lightweight Just my personal opinion , my crespo run a lot of better on JB than ICS. My linux's friend told me ICS is like linuxmint / ubuntu in linux distro camp. linux mint and ubuntu is FAT linux distro, but easier to boot in various PC machine. JB is more specific and "tighter" thus more difficult to boot, but very slim and fast.
back to source tree ... do you any suggestion. which source tree, better for building and porting dell venue : cm-10 / aokp JB or evervolv JB
Thanks a lot
To be honest - haven't checked evervolv for about an year. But - if it still supports nexus one as a target device - it will be tree of choice.
any news?
Any news on this rom or ics rom?
Sent from my Dell Venue using xda app-developers app
x1123 said:
ATTACHED .. indeed since GB build I made this ... ro.secure=0
Click to expand...
Click to collapse
any improvement in developing jelly bean for venue?
I have been 1824 km away from my compiling machine and last couple days in July I try to make camera working for ICS rom, but still no lucks. I saw available reference for qsd8k running jelly bean. The best reference is in xperia project, but still a lot of code base need to be rewrote. Most time I busy with "Hardware" tweak and play with some kinds of boxes .... but I will continue to build this JB aokp
Any news on the development of jb?
Sent from my Dell Venue using xda app-developers app
terminal17 said:
Any news on the development of jb?
Sent from my Dell Venue using xda app-developers app
Click to expand...
Click to collapse
I'm still on holiday and going to take a look into my source in this coming week end. Frankly, I little bit pesimistic with available code base in which I have no capability to write from scratch
jb
x1123 said:
I'm still on holiday and going to take a look into my source in this coming week end. Frankly, I little bit pesimistic with available code base in which I have no capability to write from scratch
Click to expand...
Click to collapse
pls try something and bring out a rom! so tat v can test and go ahead
Can anyone reupload the rom??
Sent from my Dell Venue using xda app-developers app
Any news on development of ics or jb rom for our dear dell venue?
Sent from my Dell Venue using xda app-developers app
x1123 said:
ATTACHED .. indeed since GB build I made this ... ro.secure=0
Click to expand...
Click to collapse
Can you pls help me how to install jelly bean on dell venue
I'm compiling android from source. I've set up the environment, and tested the builds. Everything works fine.
My current objective is to add 10 custom xml files to /system/etc/permissions. I've tried modifying the Android.mk file in frameworks/base/data/etc to include the files, but the additions aren't appearing in the compiled system. What's strange is that the default files that were in the same folder and already in the makefile appear, so the makefile seems to be read and parsed at compile.
This is the code I'm using:
Code:
LOCAL_PATH := $(my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := [B]default_file_already_present.xml[/B]
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT)/permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := [B]my_custom_file.xml[/B]
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT)/permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
For some reason, my_custom_file is not added, while the default_file_already_present is. Any ideas?
I've searched around, but can't find any decent documentation. I feel like I’m very close, so any help is much appreciated!
tl;dr - Adding files to system partition with makefile partially fails.
Solution!
For those who also run in to this problem:
As per Jean-Baptiste Quéru's post on a google group;
The Android makefiles are essentially split into 2 primary categories,
parsed in this order.
-the product definitions, which specify what modules need to be
installed for each product.
-the module definition, which specify how to build each module.
The build system protects itself against situation where you modify
the product definition from a module definition. PRODUCT_COPY_FILES is
part of the product definition, and can't be modify from a module
definition.
JBQ
Click to expand...
Click to collapse
What this means is that in order to copy files as is to the system image, we need to use product definitions.
What I did was first run ./build/envsetup.sh, in order to get access to commands like mgrep, etc.
I noticed that in frameworks/base/data/keyboards there was a keyboards.mk file, which got included correctly.
I made a copy and modifies it to suit my needs:
Code:
# Copyright (C) 2010 The Android Open Source Project
#
blah blah blah...
#
# This is the list of custom permissions to be injected in /system/etc/permissions
permissionsfiles := \
android.hardware.camera.front.xml \
android.hardware.usb.accessory.xml \
android.hardware.usb.host.xml \
android.hardware.wifi.direct.xml \
android.hardware.wifi.xml \
android.software.sip.voip.xml \
com.google.android.maps.xml \
com.google.android.media.effects.xml \
com.google.widevine.software.drm.xml \
handheld_core_hardware.xml \
platform_plus.xml \
features.xml
PRODUCT_COPY_FILES := $(foreach file,$(permissionsfiles),\
frameworks/base/data/etc/$(file):system/etc/permissions/$(file))
I ran "mgrep keyboards" and noted which makefiles included the keyboards.mk file, then I opened each file and duplicated that line, modifying it to instead include my custom_permissions.mk located in frameworks/base/data/etc/.
I compiled and the files were all there.
Hope this helps.
I'm compiling android from source. I've set up the environment, and tested the builds. Everything works fine.
My current objective is to add 10 custom xml files to /system/etc/permissions. I've tried modifying the Android.mk file in frameworks/base/data/etc to include the files, but the additions aren't appearing in the compiled system. What's strange is that the default files that were in the same folder and already in the makefile appear, so the makefile seems to be read and parsed at compile.
This is the code I'm using:
Code:
LOCAL_PATH := $(my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := [B]default_file_already_present.xml[/B]
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT)/permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := [B]my_custom_file.xml[/B]
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT)/permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
For some reason, my_custom_file is not added, while the default_file_already_present is. Any ideas?
I've searched around, but can't find any decent documentation. I feel like I’m very close, so any help is much appreciated!
tl;dr - Adding files to system partition with makefile partially fails.
Solution!
For those who also run in to this problem:
As per Jean-Baptiste Quéru's post on a google group;
The Android makefiles are essentially split into 2 primary categories,
parsed in this order.
-the product definitions, which specify what modules need to be
installed for each product.
-the module definition, which specify how to build each module.
The build system protects itself against situation where you modify
the product definition from a module definition. PRODUCT_COPY_FILES is
part of the product definition, and can't be modify from a module
definition.
JBQ
Click to expand...
Click to collapse
What this means is that in order to copy files as is to the system image, we need to use product definitions.
What I did was first run ./build/envsetup.sh, in order to get access to commands like mgrep, etc.
I noticed that in frameworks/base/data/keyboards there was a keyboards.mk file, which got included correctly.
I made a copy and modifies it to suit my needs:
Code:
# Copyright (C) 2010 The Android Open Source Project
#
blah blah blah...
#
# This is the list of custom permissions to be injected in /system/etc/permissions
permissionsfiles := \
android.hardware.camera.front.xml \
android.hardware.usb.accessory.xml \
android.hardware.usb.host.xml \
android.hardware.wifi.direct.xml \
android.hardware.wifi.xml \
android.software.sip.voip.xml \
com.google.android.maps.xml \
com.google.android.media.effects.xml \
com.google.widevine.software.drm.xml \
handheld_core_hardware.xml \
platform_plus.xml \
features.xml
PRODUCT_COPY_FILES := $(foreach file,$(permissionsfiles),\
frameworks/base/data/etc/$(file):system/etc/permissions/$(file))
I ran "mgrep keyboards" and noted which makefiles included the keyboards.mk file, then I opened each file and duplicated that line, modifying it to instead include my custom_permissions.mk located in frameworks/base/data/etc/.
I compiled and the files were all there.
Hope this helps.