Post Reply

[TUTORIAL] How to download and compile ICS from source

OP BPaul

18th February 2012, 01:30 AM   |  #1  
BPaul's Avatar
OP Recognized Developer
Flag Astana
Thanks Meter: 7,257
 
1,989 posts
Join Date:Joined: May 2011
Donate to Me
More
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.
Last edited by BPaul; 22nd August 2013 at 09:50 AM.
The Following 48 Users Say Thank You to BPaul For This Useful Post: [ View ]
18th February 2012, 01:34 AM   |  #2  
BPaul's Avatar
OP Recognized Developer
Flag Astana
Thanks Meter: 7,257
 
1,989 posts
Join Date:Joined: May 2011
Donate to Me
More
Supplement, if something is missing
The Following 11 Users Say Thank You to BPaul For This Useful Post: [ View ]
18th February 2012, 05:48 AM   |  #3  
tids2k's Avatar
Senior Member
Flag Sydney
Thanks Meter: 632
 
2,262 posts
Join Date:Joined: Apr 2009
More
Nice tutorial thanks.

Sent from my GT-N7000
18th February 2012, 11:55 AM   |  #4  
mika-nl's Avatar
Senior Member
Flag /Home/mika
Thanks Meter: 62
 
162 posts
Join Date:Joined: Jan 2011
More
Great for sharing this howto with us

MiKa
19th February 2012, 02:45 AM   |  #5  
Member
Thanks Meter: 18
 
51 posts
Join Date:Joined: Jan 2011
More
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
20th February 2012, 09:03 PM   |  #6  
Senior Member
Flag Tepic
Thanks Meter: 577
 
425 posts
Join Date:Joined: Feb 2011
Donate to Me
More
is this tutorial compatible with another Smartphones?
20th February 2012, 09:57 PM   |  #7  
D4rKn3sSyS's Avatar
Recognized Developer
Flag Monteria
Thanks Meter: 16,002
 
3,774 posts
Join Date:Joined: Jan 2011
Donate to Me
More
Quote:
Originally Posted by ocovarr112

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:	1084
Size:	41.9 KB
ID:	911846  
Last edited by D4rKn3sSyS; 20th February 2012 at 10:38 PM.
The Following 2 Users Say Thank You to D4rKn3sSyS For This Useful Post: [ View ]
21st February 2012, 07:48 AM   |  #8  
siddardha21's Avatar
Senior Member
Flag Kakinada
Thanks Meter: 69
 
166 posts
Join Date:Joined: Sep 2011
More
Thumbs up Good Luck!
Quote:
Originally Posted by D4rKn3sSyS

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!
21st February 2012, 01:31 PM   |  #9  
BPaul's Avatar
OP Recognized Developer
Flag Astana
Thanks Meter: 7,257
 
1,989 posts
Join Date:Joined: May 2011
Donate to Me
More
Quote:
Originally Posted by D4rKn3sSyS

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.
The Following 2 Users Say Thank You to BPaul For This Useful Post: [ View ]
21st February 2012, 01:34 PM   |  #10  
BPaul's Avatar
OP Recognized Developer
Flag Astana
Thanks Meter: 7,257
 
1,989 posts
Join Date:Joined: May 2011
Donate to Me
More
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$

The Following 2 Users Say Thank You to BPaul For This Useful Post: [ View ]
Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes