[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:
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/OldXperia/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.
Xperia X10 Mini Pro, U20i - (Burned, collecting donations for the new phone)
Optimus Black, P970 - (Cracked touch screen, collecting donations for the new touch)
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!
Xperia X10 Mini Pro, U20i - (Burned, collecting donations for the new phone)
Optimus Black, P970 - (Cracked touch screen, collecting donations for the new touch)
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!
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.
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
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!
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
Xperia X10 Mini Pro, U20i - (Burned, collecting donations for the new phone)
Optimus Black, P970 - (Cracked touch screen, collecting donations for the new touch)
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!
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$
Xperia X10 Mini Pro, U20i - (Burned, collecting donations for the new phone)
Optimus Black, P970 - (Cracked touch screen, collecting donations for the new touch)
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!
The importance of good and appropriate graphics for your development work is undeniable. Be … more
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?