Mar 15, 2012

Dell Venue (Thunder)

Dell VENUE, 4.1 inch WVGA AMOLED display with Gorilla Glass, 400x800 px resolution,8 MP Camera, packed 1 GHz, QSD 8250 processor, 1 GB ROM and 512 MB RAM, First Released November 2010 in Korea. Dell Venue is one of Popular Device in South Korea. Dell Venue (Thunder) powered by Android Froyo 2.2 OS and 12 months since date of released, No confirmation from Dell for OS Upgrade to Ginger Bread. Thus, Dell Venue become power full Hardware with obselete software :D
XDA DEVELOPER FORUM one of most popular forum related to PDA and SMART PHONE discussion, informed : latest available customs ROM is Ginger Bread 2.3 based by Olleh Korean Carrier. Look like, Dell Venue is one of Device ignored by the Vendor. Therefore, if you were owner of dell venue device and wish to have customs rom, you need to build rom yourself.

How To Build Android Rom
Android is a popular platform today for smart phone and other embedded device, it's open source. One of best available site to visit and read is Android Open Source Project [well known as AOSP], they explained very well how to prepare everything your machine to develop android.

Get Prepare
1. A set PC either desktop or laptop with minimum Pentium 4 class processor, 1.2 Ghz clock, 2 GB Ram, USB Ports, a Smart Phone device you wish to develop, in this case I use Dell Thunder or Dell Venue and off course Internet Connection.
2. Install PC with Ubuntu GNU/Linux operating system, for me is ubuntu 10.04 lucid lynx amd64. Standard installation from distro provider is not ready for developing android rom & kernel. Ubuntu need to be a little make up
3. Little skill and understanding of basic linux command line, familiarize your self to use terminal application

Installing Supporting Tools
Standard ubuntu amd64 need to install the following software package, connect to internet open gnome terminal Application > Accesories > Terminal. On the opening terminal window type :
$ sudo aptitude install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltpro

Installing USB Driver for Android Therea two option to install android usb drivers on ubuntu 10.04, manual and automatic. To install android driver on ubuntu manually, use gnome terminal to create configuration at /etc/udev/rules.d/ folder. Open gnome terminal and type :
$ sudo gedit /etc/udev/rules.d/99-android.rules

a blank text window will be opened copy the following text and paste into opening text window
# ACER
SUBSYSTEM=="usb", SYSFS{idVendor}=="0502", MODE="0666", USER=x, GROUP=x
# ASUS
SUBSYSTEM=="usb", SYSFS{idVendor}=="0B05", MODE="0666", USER=x, GROUP=x
# DELL
SUBSYSTEM=="usb", SYSFS{idVendor}=="413C", MODE="0666", USER=x, GROUP=x
# FOXCONN
SUBSYSTEM=="usb", SYSFS{idVendor}=="0489", MODE="0666", USER=x, GROUP=x
# GARMIN-ASUS
SUBSYSTEM=="usb", SYSFS{idVendor}=="091E", MODE="0666", USER=x, GROUP=x
# Google
SUBSYSTEM=="usb", SYSFS{idVendor}=="18D1", MODE="0666", USER=x, GROUP=x
# Hisense
SUBSYSTEM=="usb", SYSFS{idVendor}=="109B", MODE="0666", USER=x, GROUP=x
# HTC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0BB4", MODE="0666", USER=x, GROUP=x
# HUAWEI
SUBSYSTEM=="usb", SYSFS{idVendor}=="12D1", MODE="0666", USER=x, GROUP=x
# K-TOUCH
SUBSYSTEM=="usb", SYSFS{idVendor}=="24E3", MODE="0666", USER=x, GROUP=x
# KT Tech
SUBSYSTEM=="usb", SYSFS{idVendor}=="2116", MODE="0666", USER=x, GROUP=x
# KYOCERA
SUBSYSTEM=="usb", SYSFS{idVendor}=="0482", MODE="0666", USER=x, GROUP=x
# LENEVO
SUBSYSTEM=="usb", SYSFS{idVendor}=="17EF", MODE="0666", USER=x, GROUP=x
# LG
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666", USER=x, GROUP=x
# MOTOROLA
SUBSYSTEM=="usb", SYSFS{idVendor}=="22B8", MODE="0666", USER=x, GROUP=x
# NEC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0409", MODE="0666", USER=x, GROUP=x
# NOOK
SUBSYSTEM=="usb", SYSFS{idVendor}=="2080", MODE="0666", USER=x, GROUP=x
# NVIDIA
SUBSYSTEM=="usb", SYSFS{idVendor}=="0955", MODE="0666", USER=x, GROUP=x
# OTGV
SUBSYSTEM=="usb", SYSFS{idVendor}=="2257", MODE="0666", USER=x, GROUP=x
# PANTECH
SUBSYSTEM=="usb", SYSFS{idVendor}=="10A9", MODE="0666", USER=x, GROUP=x
# PEGATRON
SUBSYSTEM=="usb", SYSFS{idVendor}=="1D4D", MODE="0666", USER=x, GROUP=x
# PHILIPS
SUBSYSTEM=="usb", SYSFS{idVendor}=="0471", MODE="0666", USER=x, GROUP=x
# PMC-SIERRA
SUBSYSTEM=="usb", SYSFS{idVendor}=="04DA", MODE="0666", USER=x, GROUP=x
# QUALCOMM
SUBSYSTEM=="usb", SYSFS{idVendor}=="05C6", MODE="0666", USER=x, GROUP=x
# SK TELESYS
SUBSYSTEM=="usb", SYSFS{idVendor}=="1F53", MODE="0666", USER=x, GROUP=x
# SAMSUNG
SUBSYSTEM=="usb", SYSFS{idVendor}=="04E8", MODE="0666", USER=x, GROUP=x
# SHARP
SUBSYSTEM=="usb", SYSFS{idVendor}=="04DD", MODE="0666", USER=x, GROUP=x
# SONY ERICSSON
SUBSYSTEM=="usb", SYSFS{idVendor}=="0FCE", MODE="0666", USER=x, GROUP=x
# TOSHIBA
SUBSYSTEM=="usb", SYSFS{idVendor}=="0930", MODE="0666", USER=x, GROUP=x
# ZTE
SUBSYSTEM=="usb", SYSFS{idVendor}=="19D2", MODE="0666", USER=x, GROUP=x


Please take note you need to change : USER=x with USER=Your Ubuntu User Name as well as on GROUP=x, let say your ubuntu username is jean, changed to USER=jane and GROUP=jane, letter x is my username on my ubuntu machine. Save and Close the text window.
Setting Up ADB and Fastboot
ADB -Android Debug Bridge- is tools to establish communication between your Android device when your android device on normal operations state [switch on and operate as normal functioning phone]and PC . Fastboot driver is tools to establish communication between your android device when at bootloader state and PC.
Download the following ADB and Fastboot, save and unpacked into your home folder or anywhere you like within your PC where you have write access. For example save the file you just downloaded at /home/jean/adb, ensure to make the file executable. Open terminal and type :
$chmod +x /home/jean/adb/adb
and
$chmod +x /home/jean/adb/fastboot
Your ADB and Fastboot set up now, next is make adb and fastboot accessible globally. Presumed adb and fastboot stored at folder /home/jean/adb. First option is move or copying adb abd fastboot file into /usr/bin/ folder, I made option to move the file with command mv if you wish to copy change mv with cp open terminal and type :
$sudo mv /home/jean/adb/adb-space-/usr/bin/
$sudo mv /home/jean/adb/fastboot-space-/usr/bin/
$sudo chmod 755 /usr/bin/adb
$sudo chmod 755 /usr/bin/fastboot
Installing USD Driver, ADB and Fastboot Automatically
A XDA Forum member wrote very usable scripts to install Android USB driver, ADB and Fastboot named knives-and-Forks, download Knives and Forks File, save and unpack somewhere at your home folder or anywhere you have write access. After unpacking you will have folder named Knived-and-Forks, look into text file named instruction.txt > opened and read, follow the instruction to install Android USB Driver, ADB and Fastboot automatically with very intuitive interface and easy to understand. I copied the instruction here and ensure you have active internet connection during doing this :
**** Linux ****
This was tested on Ubuntu 11.10 and Xubuntu 11.10. Please report your success or any errors you have running this on other versions or Linux distros.
- Download the latest version of Knives & Forks from http://android.katip.name
- Create a "knives-and-forks" folder in your user profile folder
-- "/home/YourUserName/knives-and-forks/"
- Unzip the file you downloaded to this new "knives-and-forks" folder - Open Terminal
-- Press ALT+F2 then type "gnome-terminal" (Ubuntu), "xfce4-terminal" (Xubuntu), or "xterm" (any Linux distro)
- Give the script executable permissions to it will run (which only needs to be done once) by typing the following line in the Terminal (without the quotes):
"chmod +x ~/knives-and-forks/Knives-and-Forks-Linux.sh"
- Change to your new "knives-and-forks" directory by typing the following line in the Terminal (without the quotes):
"cd ~/knives-and-forks"
- Run the Knives & Forks script by typing the following line in the Terminal (without the quotes):
"./Knives-and-Forks-Linux.sh"
- You should see the Knives and Forks Main Menu in a new Terminal window.
bingo .... android usb driver, adb and fastboot well set up, PC is ready to have fun in compiling android rom and kernel.
Installing Java
sun java (formerly) and oracle java (today) ... :-)) version 1.5 required to compile android froyo and java 1.6 or higher for Gingerbread and higher.
open terminal (again)
$sudo gedit /etc/apt/sources.list

a window of gedit will come up, and see the following words
#deb http://archive.canonical.com/ubuntu/ lucid partner
You need to uncoment by deleting the character # infront of the word deb, to be look like this :
deb http://archive.canonical.com/ubuntu/ lucid partner
save and close
To install sun-java6-jdk execute following command on terminal
$sudo aptitude update
$sudo aptitude install sun-java6-jdk sunjava6-jre
wait and ubuntuk will install sun-java-1.6 jdk required for compiling android. Downloading and Set Up Android Source
AFAIK, there are MANY sources Projects today to build Android Rom and Kernel, The first most Popular is Android Open Source Project [AOSP] led by Google.
Second is Cyanogenmod a Project led by open source community.
Third is Codeaurora Forum.

WHAT IS THE BEST
Nothing is The Best, the only available is the fittest. Choose which one is the fittest for your need. This article will be presented to build kernel and rom based on CyanogenMod Proejct. Why CyanogenMod ? ... cyanogen is best to start since cyanogen team help us to port android into various device, thus we can learn to compile from availabe devices before porting into a device we wants.
Let's start with CM7 full System
Ensure your PC connected to active internet, we need internet connection a lot. Open a terminal >
$mkdir cm7
$mkdir cm7/system
$mkdir bin

Comment : create a filder named cm7 to store cm7 file, create a folder named system inside cm7 folder to store whole system of cm7. Create a folder named bin to store executable file for future use. If create bin folder within home folder i.e /home/username/bin we need to tell PC system to utilize bin folder globally. Otherwise we can use available bin folder at /usr/bin but some persons do not like do this due to will "mess up" your PC system and make it trouble when we upgrade PC OS.
This article will use bin folder at /home/user/bin
still at Terminal
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$$chmod a+x ~/bin/repo
Since we use bin foleder at /home/user/bin we need to make it applicable globally, using command line at terminal. We need to modify a file named .bashrc at /home/user/
~$ gedit .bashrc
a Gedit text editor window will come up > copy and paste following word at empty space after end of all available words export PATH=~/bin:$PATH
save and close
Now start working with your working folder at ~/cm7/system to initialize the repo of Gingerbread source.
$cd ~/cm7/system
[system]$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
[system]$ repo sync

This will download entire android source from CyanogenMod project, once synced and you are ready to have FUN by setting up and compiling entire rom and android operating system, including kernel
To build android kernel only .... Please visit THIS PAGE to bild FULL ROM from source visit THIS PAGE

Real Multilib Userland on Linux

Read multilib requirement on Android rom building and other stuff. About two years absent from getting rid with android rom. I have time to...