5,598,463 Members 46,803 Now Online
XDA Developers Android and Mobile Development Forum

[TUTORIAL] How to download and compile ICS from source

Tip us?
 
BPaul
Old
(Last edited by BPaul; 22nd August 2013 at 09:50 AM.)
#1  
BPaul's Avatar
Recognized Developer - OP
Thanks Meter 7124
Posts: 1,938
Join Date: May 2011
Location: Astana

 
DONATE TO ME
Default [TUTORIAL] How to download and compile ICS from source

To compile Ice Cream Sandwich on Ubuntu I'm going to first give you steps to set up your computer to get this thing rolling.

This will NOT make a fully functional ROM, but will give you a place to start. Also I CANNOT fix every error you run into.
Note: The source download is approximately 6GB in size. You will need 25GB free to complete a single build, and up to 80GB (or more) for a full set of builds.

Thanks dastin1015 - For base instruction for compile

1) You need the following:
- JDK 6 if you wish to build Ice Cream Sandwich
You can download it from oracle.com. Or:
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
for a Ubintu 11.10
sudo add-apt-repository "deb http://archive.canonical.com/ orcelot partner"

sudo apt-get update
sudo apt-get install sun-java6-jdk
- Python 2.4 -- 2.7
You can download from python.org. Or:
Code:
sudo apt-get install python
- Git 1.7 or newer
You can find it at git-scm.com. Or:
Code:
sudo apt-get install git-core
2) Install required packages:
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
libxml2-utils
On newer versions of Ubuntu such as 11.10 you may need to do the following:
Code:
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
3) Configure your USB:
Code:
gksudo gedit /etc/udev/rules.d/51-android.rules
Inside of this blank text file insert:
Code:
#Acer
SUBSYSTEM==usb, SYSFS{idVendor}==0502, MODE=0666
#ASUS
SUBSYSTEM==usb, SYSFS{idVendor}==0b05, MODE=0666
#Dell
SUBSYSTEM==usb, SYSFS{idVendor}==413c, MODE=0666
#Foxconn
SUBSYSTEM==usb, SYSFS{idVendor}==0489, MODE=0666
#Garmin-Asus
SUBSYSTEM==usb, SYSFS{idVendor}==091E, MODE=0666
#Google
SUBSYSTEM==usb, SYSFS{idVendor}==18d1, MODE=0666
#HTC
SUBSYSTEM==usb, SYSFS{idVendor}==0bb4, MODE=0666
#Huawei
SUBSYSTEM==usb, SYSFS{idVendor}==12d1, MODE=0666
#K-Touch
SUBSYSTEM==usb, SYSFS{idVendor}==24e3, MODE=0666
#KT Tech
SUBSYSTEM==usb, SYSFS{idVendor}==2116, MODE=0666
#Kyocera
SUBSYSTEM==usb, SYSFS{idVendor}==0482, MODE=0666
#Lenevo
SUBSYSTEM==usb, SYSFS{idVendor}==17EF, MODE=0666
#LG
SUBSYSTEM==usb, SYSFS{idVendor}==1004, MODE=0666
#Motorola
SUBSYSTEM==usb, SYSFS{idVendor}==22b8, MODE=0666
#NEC
SUBSYSTEM==usb, SYSFS{idVendor}==0409, MODE=0666
#Nook
SUBSYSTEM==usb, SYSFS{idVendor}==2080, MODE=0666
#Nvidia
SUBSYSTEM==usb, SYSFS{idVendor}==0955, MODE=0666
#OTGV
SUBSYSTEM==usb, SYSFS{idVendor}==2257, MODE=0666
#Pantech
SUBSYSTEM==usb, SYSFS{idVendor}==10A9, MODE=0666
#Philips
SUBSYSTEM==usb, SYSFS{idVendor}==0471, MODE=0666
#PMC-Sierra
SUBSYSTEM==usb, SYSFS{idVendor}==04da, MODE=0666
#Qualcomm
SUBSYSTEM==usb, SYSFS{idVendor}==05c6, MODE=0666
#SK Telesys
SUBSYSTEM==usb, SYSFS{idVendor}==1f53, MODE=0666
#Samsung
SUBSYSTEM==usb, SYSFS{idVendor}==04e8, MODE=0666
#Sharp
SUBSYSTEM==usb, SYSFS{idVendor}==04dd, MODE=0666
#Sony Ericsson
SUBSYSTEM==usb, SYSFS{idVendor}==0fce, MODE=0666
#Toshiba
SUBSYSTEM==usb, SYSFS{idVendor}==0930, MODE=0666
#ZTE
SUBSYSTEM==usb, SYSFS{idVendor}==19D2, MODE=0666
4) Save the file and close it and then issue this command:
Code:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
5) Install the 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
6) Reboot PC:
7) Initialize the repo:
Code:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
- For AOSP
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1
- For CM9
repo init -u git://github.com/CyanogenMod/android.git -b ics
- For AOKP
repo init -u git://github.com/AOKP/platform_manifest.git -b master
- For IceColdSandwitch
repo init -u git://github.com/IceColdSandwich/android.git -b ics
8) When prompted, enter your real name and email address.
9) Gather the files:
Code:
repo sync
10) Compiling:
Code:
source build/envsetup.sh
Or:
. build/envsetup.sh
11) Issue:
Code:
lunch
12) Pick your poison.
13) Now issue:
Code:
make -j4
Build for Sony Ericsson device
1) Download sources for ARMv6
Code:
cd ~/WORKING_DIRECTORY/
repo init -u git://github.com/MSM7x27-Xperia/android.git -b ics
repo sync -j4 or low if you have bad internet
2) Compile:
Code:
source build/envsetup.sh
Or:
. build/envsetup.sh
4) Get your list of devices:
Code:
lunch
5) Pick your poison.
6) Now compile:
Code:
make -j4
- Or for a flashable zip:
Code:
make -j4 otapackage
NOTE
If you are running into issues such as:
Code:
Which would you like? [full-eng] 5
build/core/product_config.mk:209: *** No matches for product "full_shooter".  Stop.
Device shooter not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for shooter not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifest.xml.
build/core/product_config.mk:209: *** No matches for product "full_shooter".  Stop.

** Don't have a product spec for: 'full_shooter'
** Do you have the right repo manifest?
What you need to do is to edit your blob to match the PRODUCT_NAME to the file name. For example with mine I have full_shooter.mk therefore in this file I need to have PRODUCT_NAME to match it. Whatever error it is looking for you just need to change the PRODUCT_NAME line to match what the error shows.
- Index - GitHub - VK - Facebook - Google+ - OXP -
Devices
  • Xperia acro S - Soon will be AOSP 4.4.x
All custom firmwares, where mentioned Bravia Engine, xLOUD, Beats Audio, Dolby Mobile. Are not based on the stock firmware from SONY or HTC very very poor. Remember that!
Click thanks button please
The Following 48 Users Say Thank You to BPaul For This Useful Post: [ Click to Expand ]
 
BPaul
Old
#2  
BPaul's Avatar
Recognized Developer - OP
Thanks Meter 7124
Posts: 1,938
Join Date: May 2011
Location: Astana

 
DONATE TO ME
Supplement, if something is missing
- Index - GitHub - VK - Facebook - Google+ - OXP -
Devices
  • Xperia acro S - Soon will be AOSP 4.4.x
All custom firmwares, where mentioned Bravia Engine, xLOUD, Beats Audio, Dolby Mobile. Are not based on the stock firmware from SONY or HTC very very poor. Remember that!
Click thanks button please
The Following 11 Users Say Thank You to BPaul For This Useful Post: [ Click to Expand ]
 
tids2k
Old
#3  
tids2k's Avatar
Senior Member
Thanks Meter 631
Posts: 2,258
Join Date: Apr 2009
Location: Sydney
Nice tutorial thanks.

Sent from my GT-N7000
lumia 1520>note 10.1 (2014)>nexus 5>s IV>htc one>sgs III>huawie quad xl>ipad 3>lg x3>htc z3tA>samsung galaxy note>samsung galaxy s II lte hd>iphone 4(g)>samsung galaxy s2 >htc desire hd>samsung galaxy s >htc desire (cancelled) :d>htc touch hd2>htc touch hd>nokia n97>iphone 3g>nokia n96>nokia n95> nokia n70
 
mika-nl
Old
#4  
mika-nl's Avatar
Senior Member
Thanks Meter 62
Posts: 162
Join Date: Jan 2011
Location: /Home/mika
Great for sharing this howto with us

MiKa
 
ff0000.it
Old
#5  
Member
Thanks Meter 18
Posts: 51
Join Date: Jan 2011
In future versions of udev, "SYSFS" will be deprecated and has to be replaced by "ATTR". So it depends on what version of udev is installed in your distribution.

Cheers,
ff0000.it
 
ocovarr112
Old
#6  
Senior Member
Thanks Meter 577
Posts: 425
Join Date: Feb 2011
Location: Tepic

 
DONATE TO ME
is this tutorial compatible with another Smartphones?
 
D4rKn3sSyS
Old
(Last edited by D4rKn3sSyS; 20th February 2012 at 10:38 PM.)
#7  
D4rKn3sSyS's Avatar
Recognized Developer
Thanks Meter 15731
Posts: 3,770
Join Date: Jan 2011
Location: Monteria

 
DONATE TO ME
Quote:
Originally Posted by ocovarr112 View Post
is this tutorial compatible with another Smartphones?
Yes, you just need propietary files, but is almost the same process

PD: Paul, im setting up my dev enviroment, soon ill help you a bit on framework, and maybe I learn C and help you on libs :P
PD2: Ubuntu 11.10 original unity interface sux.. i like Gnome

EDIT: 15 mins and after i thought it was ok, then
device/semc/msm7x27-common/libgralloc/mapper.cpp: In function 'int gralloc_perform(const gralloc_module_t*, int, ...)':

Freaking classic on android -.-, Ill try again 2morrow
Attached Thumbnails
Click image for larger version

Name:	Pantallazo del 2012-02-20 17:03:23.jpg
Views:	1074
Size:	41.9 KB
ID:	911846  
The Following 2 Users Say Thank You to D4rKn3sSyS For This Useful Post: [ Click to Expand ]
 
siddardha21
Old
#8  
siddardha21's Avatar
Senior Member
Thanks Meter 61
Posts: 163
Join Date: Sep 2011
Location: Kakinada
Thumbs up Good Luck!

Quote:
Originally Posted by D4rKn3sSyS View Post
Yes, you just need propietary files, but is almost the same process

PD: Paul, im setting up my dev enviroment, soon ill help you a bit on framework, and maybe I learn C and help you on libs :P
PD2: Ubuntu 11.10 original unity interface sux.. i like Gnome

EDIT: 15 mins and after i thought it was ok, then
device/semc/msm7x27-common/libgralloc/mapper.cpp: In function 'int gralloc_perform(const gralloc_module_t*, int, ...)':

Freaking classic on android -.-, Ill try again 2morrow
Great to see u man!! hope both of u get fully working ics soon All the best!
 
BPaul
Old
#9  
BPaul's Avatar
Recognized Developer - OP
Thanks Meter 7124
Posts: 1,938
Join Date: May 2011
Location: Astana

 
DONATE TO ME
Quote:
Originally Posted by D4rKn3sSyS View Post
Yes, you just need propietary files, but is almost the same process

PD: Paul, im setting up my dev enviroment, soon ill help you a bit on framework, and maybe I learn C and help you on libs :P
PD2: Ubuntu 11.10 original unity interface sux.. i like Gnome

EDIT: 15 mins and after i thought it was ok, then
device/semc/msm7x27-common/libgralloc/mapper.cpp: In function 'int gralloc_perform(const gralloc_module_t*, int, ...)':

Freaking classic on android -.-, Ill try again 2morrow
gralloc from 2.3 rom. remove he and contune.
- Index - GitHub - VK - Facebook - Google+ - OXP -
Devices
  • Xperia acro S - Soon will be AOSP 4.4.x
All custom firmwares, where mentioned Bravia Engine, xLOUD, Beats Audio, Dolby Mobile. Are not based on the stock firmware from SONY or HTC very very poor. Remember that!
Click thanks button please
The Following 2 Users Say Thank You to BPaul For This Useful Post: [ Click to Expand ]
 
BPaul
Old
#10  
BPaul's Avatar
Recognized Developer - OP
Thanks Meter 7124
Posts: 1,938
Join Date: May 2011
Location: Astana

 
DONATE TO ME
D4rKn3sSyS
With new sources i have here error
Code:
target thumb C++: liboverlay <= hardware/qcom/display/liboverlay/overlayLib.cpp
target thumb C++: liboverlay <= hardware/qcom/display/liboverlay/overlayLibUI.cpp
hardware/qcom/display/liboverlay/overlayLib.cpp:122:1: warning: "LOG_TAG" redefined
In file included from hardware/qcom/display/liboverlay/overlayLib.h:21,
                 from hardware/qcom/display/liboverlay/overlayLib.cpp:18:
system/core/include/cutils/log.h:68:1: warning: this is the location of the previous definition
hardware/qcom/display/liboverlay/overlayLibUI.cpp:20:1: warning: "LOG_TAG" redefined
In file included from hardware/qcom/display/liboverlay/overlayLib.h:21,
                 from hardware/qcom/display/liboverlay/overlayLibUI.h:23,
                 from hardware/qcom/display/liboverlay/overlayLibUI.cpp:18:
system/core/include/cutils/log.h:68:1: warning: this is the location of the previous definition
host Java: android-mock-generatorlib (out/host/common/obj/JAVA_LIBRARIES/android-mock-generatorlib_intermediates/classes)
hardware/qcom/display/liboverlay/overlayLib.cpp: In function 'int overlay::get_mdp_format(int)':
hardware/qcom/display/liboverlay/overlayLib.cpp:57: error: 'MDP_Y_CRCB_H2V2_TILE' was not declared in this scope
hardware/qcom/display/liboverlay/overlayLib.cpp: In function 'int overlay::get_rot_output_format(int)':
hardware/qcom/display/liboverlay/overlayLib.cpp:90: error: 'MDP_Y_CRCB_H2V2_TILE' was not declared in this scope
hardware/qcom/display/liboverlay/overlayLibUI.h: In constructor 'overlay::eek:verlayUI::eek:verlayUI()':
hardware/qcom/display/liboverlay/overlayLibUI.h:101: warning: 'overlay::eek:verlayUI::mFBNum' will be initialized after
hardware/qcom/display/liboverlay/overlayLibUI.h:99: warning:   'int overlay::eek:verlayUI::mZorder'
hardware/qcom/display/liboverlay/overlayLibUI.cpp:226: warning:   when initialized here
host C++: colladadom <= external/collada/src/dae/dae.cpp
host C++: colladadom <= external/collada/src/dae/daeArray.cpp
hardware/qcom/display/liboverlay/overlayLibUI.cpp: In member function 'overlay::status_t overlay::eek:verlayUI::closeOVSession()':
hardware/qcom/display/liboverlay/overlayLibUI.cpp:409: warning: suggest parentheses around assignment used as truth value
hardware/qcom/display/liboverlay/overlayLib.cpp: In member function 'bool overlay::eek:verlayControlChannel::setOverlayInformation(const overlay_buffer_info&, int, int, int, bool, int)':
hardware/qcom/display/liboverlay/overlayLib.cpp:958: error: 'MDP_Y_CRCB_H2V2_TILE' was not declared in this scope
hardware/qcom/display/liboverlay/overlayLib.cpp: In member function 'bool overlay::eek:verlayControlChannel::startOVRotatorSessions(const overlay_buffer_info&, int, int)':
hardware/qcom/display/liboverlay/overlayLib.cpp:1013: error: 'MDP_Y_CRCB_H2V2_TILE' was not declared in this scope
hardware/qcom/display/liboverlay/overlayLib.cpp: In member function 'bool overlay::eek:verlayControlChannel::setPosition(int, int, uint32_t, uint32_t)':
hardware/qcom/display/liboverlay/overlayLib.cpp:1165: warning: comparison between signed and unsigned integer expressions
hardware/qcom/display/liboverlay/overlayLib.cpp:1166: warning: comparison between signed and unsigned integer expressions
hardware/qcom/display/liboverlay/overlayLib.cpp:1172: warning: comparison between signed and unsigned integer expressions
hardware/qcom/display/liboverlay/overlayLib.cpp:1172: warning: comparison between signed and unsigned integer expressions
hardware/qcom/display/liboverlay/overlayLib.cpp: In member function 'bool overlay::eek:verlayControlChannel::setTransform(int, bool)':
hardware/qcom/display/liboverlay/overlayLib.cpp:1244: warning: comparison between signed and unsigned integer expressions
hardware/qcom/display/liboverlay/overlayLib.cpp: In member function 'bool overlay::eek:verlayDataChannel::mapRotatorMemory(int, bool, int)':
hardware/qcom/display/liboverlay/overlayLib.cpp:1512: error: 'struct msmfb_data' has no member named 'flags'
make: *** [out/target/product/mimmi/obj/SHARED_LIBRARIES/liboverlay_intermediates/overlayLib.o] Ошибка 1
make: *** Ожидание завершения заданий...
host C++: colladadom <= external/collada/src/dae/daeAtomicType.cpp
Note: external/android-mock/src/com/google/android/testing/mocking/AndroidMock.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
paul@kamikadzE:~/android/system$
- Index - GitHub - VK - Facebook - Google+ - OXP -
Devices
  • Xperia acro S - Soon will be AOSP 4.4.x
All custom firmwares, where mentioned Bravia Engine, xLOUD, Beats Audio, Dolby Mobile. Are not based on the stock firmware from SONY or HTC very very poor. Remember that!
Click thanks button please

The Following 2 Users Say Thank You to BPaul For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes