Post Reply
Post

[HOW-TO]Android source compiling on Ubuntu All variants - Build from Source

13th October 2013, 03:30 AM   |  #1  
x10forevers's Avatar
OP Senior Member
Flag toronto
Thanks Meter: 3,954
 
1,389 posts
Join Date:Joined: Nov 2010
Donate to Me
More
First of all, let me clear myself what I am describing here is a simplified version is what Google provided in their Building Android from Source, So I am not taking any copyright issue or anything you are going to do with this guide. U can use this guide and make a ROM. And if you think it's worthwhile to give credit to this thread, give link to this thread. I don't mind if you don't give credit to this thread, atleast you are making better android development.

What is this thread for?
- This is the thread which will guide you about how to setup environment for building an android from source. Feel free to ask question regarding it. You also can copy paste your error (if it’s short) or attach log cat (weather in .text file or from pastebin). I will try to solve any many errors as I can, but come on I CANNOT solve every errors you ran into.

Requirement
- Though this thread is noob friendly, for sure you require basic computer knowledge especially regarding Ubuntu setup and basic command prompt.
- You should have install Ubuntu 64-bit version (32-bit version is not supported) to your computer either in virtual machine or as separate Operating System.
- For Ubuntu you require minimum 80 GB of space to compile a single build from source.
- I think I made myself clear about requirements.
- This might not build fully working ROM and you may have to do some changes according to it.

Disclaimers
I am not responsible for any broken PCs or damaged hard drive or anything unexpected and unfortunate happen to your computer or to your device. You are doing everything by knowing all the risks, so don’t blame on me about anything.

INDEX of Topics I am describing here
Post – 1: Setting up build environment
Post – 2: Install and Initialise repo
Post – 3: Setup device for specific build
Post – 4: Device specific vendor changes
Post - 5: Repo optimization and speed up build environment
Post – 6: reserve for future use
Post – 7: reserve for future use.


Now, Let’s start with real stuff …..



1A. Install JDK 6
Code:
sudo apt-get install openjdk-6-jdk
1B. Install python
Code:
sudo apt-get install python
1C. Install git-core
Code:
sudo apt-get install git-core
1D. Install android SDK
- Download it: http://developer.android.com/sdk/index.html
- Extract it to your home directory and rename it to android-sdk
- At home press ctrl+h to see hidden files and folder
- Open .bashrc file with text editor
- Add following lines at the end of it

Code:
# Android tools
export PATH=${PATH}:~/android-sdk/tools
export PATH=${PATH}:~/android-sdk/platform-tools
export PATH=${PATH}:~/bin
- Go to your home folder and open .profile file with text editor
- Add following lines at the bottom of that page

Code:
PATH="$HOME/android-sdk/tools:$HOME/android-sdk/platform-tools:$PATH"
- Now you have successfully install android-SDK
- To check its installed correctly, open a new Terminal and type

Code:
android
- It will open a window with android-sdk
1E: Install required packages
- For all Ubuntu

Code:
sudo apt-get 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 xsltproc
- On Ubuntu 10.10

Code:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
- On Ubuntu 11.10

Code:
sudo apt-get install libx11-dev:i386
- On Ubuntu 12.04 & 12.10

Code:
sudo apt-get install git gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev x11proto-core-dev \
  libx11-dev libreadline6-dev libgl1-mesa-glx \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
- On Ubuntu 13.04

Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib32z-dev libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc readline-common libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev python

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
1F: Configure USB
- create 51-android.rules

Code:
gksudo gedit /etc/udev/rules.d/51-android.rules
- It will open up an empty file names 51-android.rules, copy paste all of following in that file, save it and close

Code:
#Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"

#ASUS
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666"

#Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666"

#Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666"

#Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666"

#Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"

#HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"

#Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666"

#K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666"

#KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666"

#Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666"

#Lenevo
SUBSYSTEM=="usb", ATTR{idVendor}=="17EF", MODE="0666"

#LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"

#Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"

#NEC
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666"

#Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666"

#Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666"

#OTGV
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666"

#Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666"

#Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666"

#PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666"

#Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666"

#SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666"

#Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666"

#Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666"

#Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666"

#Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666"

#ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"
- After that issue following command to make it executable when it is necessary

Code:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
This is done for the part of setting up building environment.
Now go to next post
Last edited by x10forevers; 17th October 2013 at 12:12 AM.
The Following 14 Users Say Thank You to x10forevers For This Useful Post: [ View ]
13th October 2013, 03:31 AM   |  #2  
x10forevers's Avatar
OP Senior Member
Flag toronto
Thanks Meter: 3,954
 
1,389 posts
Join Date:Joined: Nov 2010
Donate to Me
More
Database Repository Fetching

2A: Setup repo
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
2B: Initialize the repo:

Code:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
2C: Source specific repo command:
For AOSP 4.2.2:

Code:
repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2
For CM Select either cm-10.1/10.2)

Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1/cm-10.2
For PAC-man: (Select either cm-10.1/10.2)

Code:
repo init -u git://github.com/PAC-man/android.git -b cm-10.2/cm-10.1
For AOKP: (Select either jb-mr1/jb-mr2)

Code:
repo init -u https://github.com/AOKP/platform_manifest.git -b jb-mr2/jb-mr1
For PA: 4.3

Code:
repo init -u git@github.com:ParanoidAndroid/manifest.git -b jb43
For slimroms: 4.2

Code:
repo init -u git://github.com/SlimRoms/platform_manifest.git -b jb4.2
For MoKee OpenSource: 4.2

Code:
repo init -u https://github.com/MoKee/android.git -b jb-mr1_mkt
2D: When prompted, enter your real name and email address.
2E: Sync Repo from remote to local
Code:
repo sync
This will take times as it will download all source from github to your computer it depend on your internet connection that how long it will take from anywhere around 30 minutes(If you have 4 mbps download speed) to 30 days(If you have 30kbps download speed).
2F: Continue next to device specific section
Last edited by x10forevers; 17th October 2013 at 12:00 AM.
The Following 10 Users Say Thank You to x10forevers For This Useful Post: [ View ]
13th October 2013, 03:31 AM   |  #3  
x10forevers's Avatar
OP Senior Member
Flag toronto
Thanks Meter: 3,954
 
1,389 posts
Join Date:Joined: Nov 2010
Donate to Me
More
Post Xperia X10 specific device tree modifications


So, now you will have to add device tree and dependencies to local repo...

For that you have to copy sources from github to local directory and also device's repository

Let's start with it... (I am describing here how to setup device tree for cm10.1 from CMX10 repositories)
3A: Add Device tree and dependency for cm10.1
- Go to your working directory and press ctrl+h - You will see .repo directory
- Open .repo and there make a folder named local_manifests
- In .repo/local_manifests right click and make a new document and name it to roomservice.xml and type this :

Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
#Add hardware from Evervolv sources
    <project path="hardware/qcom/display-legacy" name="Evervolv/android_hardware_qcom_display-legacy" revision="jellybean" />
    <project path="hardware/qcom/gps-legacy" name="Evervolv/android_hardware_qcom_gps-legacy" revision="jellybean" />
#Add sources from CMX10 repo
    <project path="hardware/atheros/wifi/libs" name="CMX10/android_hardware_atheros_wifi_libs" revision="cm-10.1" />
    <project path="hardware/sony/DASH" name="CyanogenMod/android_hardware_sony_DASH" revision="cm-10.1" />
    <project name="CMX10/android_device_semc_es209ra" path="device/semc/es209ra" revision="cm10.1" />
    <project name="CMX10/proprietary_es209ra" path="vendor/semc/es209ra" revision="jellybean" />
    <project name="CMX10/android_kernel_semc_es209ra" path="kernel/semc/es209ra" revision="master" />
</manifest>
- After copying this sources you have to sync repo

Code:
cd WORKING_DIRECTORY
repo sync
- You will not need any vendor specific changes for cm10.1 you can directly go to the step 3F for next instruction...
3B: Editing source for slimroms
- Finish steps of 3A than we have to edit some details in device/semc/es209ra in local directory

- go to device/semc/es209ra and rename cm.mk file to slim.mk

- now open slim.mk file with text editor select all and copy paste following details:

Code:
## Specify phone tech before including full_phone
$(call inherit-product, vendor/slim/config/gsm.mk)

# Inherit some common slimrom stuff.
$(call inherit-product, vendor/slim/config/common_full_phone.mk)

# Inherit device configuration
$(call inherit-product, device/semc/es209ra/full_es209ra.mk)

# Boot Animation
TARGET_SCREEN_HEIGHT := 854
TARGET_SCREEN_WIDTH := 480

# Release name
PRODUCT_RELEASE_NAME := X10i

## Device identifier. This must come after all inclusions
PRODUCT_DEVICE := es209ra
PRODUCT_NAME := slim_es209ra

#Set build fingerprint / ID / Product Name ect.
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=LT18i BUILD_FINGERPRINT="SEMC/LT18i_1254-2184/LT18i:4.0.4/4.1.B.0.431/UL5_3w:user/release-keys" PRIVATE_BUILD_DESC="LT18i-user 4.0.4 4.1.B.0.431 UL5_3w test-keys"
- You also have to edit dependency file for slimrom
- Rename cm.dependencies to slim.dependencies, open it with text editor, select all and copy paste following details

Code:
[
    {
        "repository": "SlimRoms/hardware_libhardware_legacy",
        "target_path": "hardware/libhardware_legacy",
        "branch": "jellybean"   <<< change branch according to your android version
    }
]
- Now go to the next post for editing vendor source....
3C: Editing source for aokp
- Find of championswimmer's aokp source tree for aokp manifestations
- He has all working tree for x10..
- If you need any further help for aokp, ask here...
3D: Editing source for MoKee OpenSource
- Finish steps of 3A than we have to edit some details in device/semc/es209ra in local directory

- go to device/semc/es209ra and rename cm.mk file to mokee.mk

- now open mokee.mk file with text editor select all and copy paste following details:

Code:
## Specify phone tech before including full_phone
$(call inherit-product, vendor/mk/config/gsm.mk)

# Inherit some common MoKee stuff.
$(call inherit-product, vendor/mk/config/common_full_phone.mk)

# Inherit device configuration
$(call inherit-product, device/semc/es209ra/full_es209ra.mk)

# Boot Animation
TARGET_SCREEN_HEIGHT := 854
TARGET_SCREEN_WIDTH := 480

# Release name
PRODUCT_RELEASE_NAME := X10i

## Device identifier. This must come after all inclusions
PRODUCT_DEVICE := es209ra
PRODUCT_NAME := mk_es209ra

#Set build fingerprint / ID / Product Name ect.
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=LT18i BUILD_FINGERPRINT="SEMC/LT18i_1254-2184/LT18i:4.0.4/4.1.B.0.431/UL5_3w:user/release-keys" PRIVATE_BUILD_DESC="LT18i-user 4.0.4 4.1.B.0.431 UL5_3w test-keys"
- Not done yet, Now go to next post for vendor specific changes
3E: Editing source for Paranoid Android and PAC-man
- For Paranoid android you will need some extensive changes in vendor files, just finish step 3A and go to next step for vendor specific changes.
- No any device tree changes needed for PA and PAC-man

- If you want any other custom rom device tree, post github source code here and I will try to edit source for you and add it here
3F: Compilation of Rom
- Now actual compilation start - Let's start

Code:
cd WORKING_DIRECTORY
. build/envsetup.sh
lunch
- Select your combo for cm it should be cm_es209ra-userdebug write appropriate number and than press Enter
- Than start building

Code:
make -j4 
make otapackage -j4
- Here the number after -j indicates core of your PC+1 if you have 3 core pc you can use -j4
- Once you finish all the process you will find flashable zip in your out directory

Last edited by x10forevers; 17th October 2013 at 12:13 AM.
The Following 7 Users Say Thank You to x10forevers For This Useful Post: [ View ]
13th October 2013, 03:31 AM   |  #4  
x10forevers's Avatar
OP Senior Member
Flag toronto
Thanks Meter: 3,954
 
1,389 posts
Join Date:Joined: Nov 2010
Donate to Me
More
Thumbs up Vendor tree modification for Xperia X10


- All vendor setup will be made to the local directory in your WORKING_DIRECTORY/Vendor
4A: Slimroms Vendor Setup
- Go to vendor/slim to your local directory
- Here you only need to edit one file and that file is vendorsetup.sh
- Open vendorsetup.sh with text editor and just add this line to the end of the file

Code:
add_lunch_combo slim_es209ra-userdebug
- Save file and you are ready to go with Step 3F
4B: Vendor Setup for MoKee OpenSource
- Go to vendor/mk to your local directory
- Here you have to edit 1 file and that file is mokee-build-targets
- Open mokee-build-targets with text editor and just add this line to the end of the file

Code:
mk_es209ra-userdebug
- Save file and you are ready to go with Step 3F
4C: Vendor Setup For Paranoid Android
- Go to vendor/pa to your local directory
- Here you need to edit files in packages, Products, vendorprops and vendorsetup.sh

Step-1
So, First we are going to add file in vendor/pa/packages, so go to vendor/pa/packages
- Here we are adding torch to our package
- Right click and create a blank document and name it as es209ra.mk and copy paste this content.

Code:
# Extra packages
PRODUCT_PACKAGES += \
Torch
Step 2
Now go to vendor/pa/products
- Here we have to add product file for our device
- Open AndroidProducts.mk file with text editor and following lines at the end

Code:
ifeq (pa_es209ra,$(TARGET_PRODUCT))
    PRODUCT_MAKEFILES += $(LOCAL_DIR)/pa_es209ra.mk
endif
- Right click and create a blank document and name it as pa_es209ra.mk
- Copy Paste following details in that file

Code:
# Copyright (C) 2012 ParanoidAndroid 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.

# Check for target product
ifeq (pa_es209ra,$(TARGET_PRODUCT))

# Define PA bootanimation size
PARANOID_BOOTANIMATION_NAME := HDPI

# OVERLAY_TARGET adds overlay asset source
OVERLAY_TARGET := pa_hdpi

# Build paprefs from sources
PREFS_FROM_SOURCE ?= false

# Include ParanoidAndroid common configuration
include vendor/pa/config/pa_common.mk

# Inherit AOSP device configuration
$(call inherit-product, device/semc/es209ra/full_es209ra.mk)

# Product Package Extras 
-include vendor/pa/packages/es209ra.mk

# Override AOSP build properties
PRODUCT_NAME := pa_es209ra
PRODUCT_BRAND := semc
PRODUCT_MODEL := es209ra
PRODUCT_MANUFACTURER := Sony Ericsson
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=LT18i BUILD_FINGERPRINT="SEMC/LT18i_1254-2184/LT18i:4.0.4/4.1.B.0.431/UL5_3w:user/release-keys" PRIVATE_BUILD_DESC="LT18i-user 4.0.4 4.1.B.0.431 UL5_3w test-keys"

# Update local_manifest.xml
GET_VENDOR_PROPS := $(shell vendor/pa/tools/getvendorprops.py $(PRODUCT_NAME))
GET_PROJECT_RMS := $(shell vendor/pa/tools/removeprojects.py $(PRODUCT_NAME))
GET_PROJECT_ADDS := $(shell vendor/pa/tools/addprojects.py $(PRODUCT_NAME))

endif
Step 3
- Edit vendosetup.sh file
- Go to vendor/pa and vendorsetup.sh with text editor
- Copy Paste followinfg lines at the end of that file

Code:
add_lunch_combo pa_es209ra-userdebug
- Now you are ready to go with step 3F
4D: Vendor Setup For PAC-Man
- Here we have to edit files in vendor/pac
- We have to edit files of products and vendorsetup.sh

Step 1
- Go to vendor/pac/products
- Right click and create blank document and name it as pac_es209ra.mk
- Copy paste following content to that file

Code:
# Check for target product
ifeq (pac_es209ra,$(TARGET_PRODUCT))

# OVERLAY_TARGET adds overlay asset source
OVERLAY_TARGET := pa_hdpi


# PAC device overlay
PRODUCT_PACKAGE_OVERLAYS += vendor/pac/overlay/pac/hdpi_480x800
$(shell cp -f vendor/pac/prebuilt/common/bootanimation_framework/android-logo-mask_sony-hdpi.png frameworks/base/core/res/assets/images/android-logo-mask.png)

# PAC boot logo
PRODUCT_COPY_FILES += \
    vendor/pac/prebuilt/common/bootlogo/pac_logo_480x800.rle:root/logo.rle

# Copy bootanimation
PRODUCT_COPY_FILES += \
    vendor/pac/prebuilt/hdpi/bootanimation.zip:system/media/bootanimation.zip

# include PAC common configuration
include vendor/pac/config/pac_common.mk

# Inherit CM device configuration
$(call inherit-product, device/semc/es209ra/cm.mk)

PRODUCT_NAME := pac_es209ra

# Update local_manifest.xml
GET_PROJECT_RMS := $(shell vendor/pac/tools/removeprojects.py $(PRODUCT_NAME))
GET_PROJECT_ADDS := $(shell vendor/pac/tools/addprojects.py $(PRODUCT_NAME))
Step 2
- Edit vendosetup.sh file
- Go to vendor/pa and vendorsetup.sh with text editor
- Copy Paste followinfg lines at the end of that file

Code:
# Xperia 2010
add_lunch_combo pac_es209ra-userdebug
- Now you are ready to go with step 3F
Last edited by x10forevers; 17th October 2013 at 12:03 AM.
The Following 6 Users Say Thank You to x10forevers For This Useful Post: [ View ]
13th October 2013, 03:32 AM   |  #5  
x10forevers's Avatar
OP Senior Member
Flag toronto
Thanks Meter: 3,954
 
1,389 posts
Join Date:Joined: Nov 2010
Donate to Me
More
Thumbs up Build optimization for all device

Speed up builds using ccache (optional, but highly recommended)
- Edit your .bashrc and add this line at the bottom:

Code:
export USE_CCACHE=1
- Then issue these commands from terminal

Code:
$ export USE_CCACHE=1
$ export CCACHE_DIR=~/.ccache
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G
- The suggested cache size is 50-100G. (This is size in GB)
- This will decrease time of compiling and improve speed.
Last edited by x10forevers; 17th October 2013 at 12:07 AM.
The Following 4 Users Say Thank You to x10forevers For This Useful Post: [ View ]
13th October 2013, 03:32 AM   |  #6  
x10forevers's Avatar
OP Senior Member
Flag toronto
Thanks Meter: 3,954
 
1,389 posts
Join Date:Joined: Nov 2010
Donate to Me
More
post - 6 i am in need of this buddy dont post
The Following 3 Users Say Thank You to x10forevers For This Useful Post: [ View ]
13th October 2013, 03:33 AM   |  #7  
x10forevers's Avatar
OP Senior Member
Flag toronto
Thanks Meter: 3,954
 
1,389 posts
Join Date:Joined: Nov 2010
Donate to Me
More
Post 7 - this one is mine too u can have your post now
The Following 2 Users Say Thank You to x10forevers For This Useful Post: [ View ]
13th October 2013, 05:16 AM   |  #8  
z28tovette's Avatar
Senior Member
Flag San Diego,Ca
Thanks Meter: 637
 
978 posts
Join Date:Joined: Dec 2011
More
This is awesome!!!

sent from a SHOCKINGLY buttery smooth TOUCHWIZ rom.
The Following User Says Thank You to z28tovette For This Useful Post: [ View ]
13th October 2013, 05:29 AM   |  #9  
x10forevers's Avatar
OP Senior Member
Flag toronto
Thanks Meter: 3,954
 
1,389 posts
Join Date:Joined: Nov 2010
Donate to Me
More
Quote:
Originally Posted by z28tovette

This is awesome!!!

sent from a SHOCKINGLY buttery smooth TOUCHWIZ rom.

just helping out for development here
The Following 3 Users Say Thank You to x10forevers For This Useful Post: [ View ]
13th October 2013, 11:58 AM   |  #10  
Member
Thanks Meter: 28
 
42 posts
Join Date:Joined: Feb 2011
More
Thanks my friend

Envoyé depuis mon Xperia X10

Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools
Display Modes