I notice that there is quiet a few people around that are having issues building the source, due to the lack on Sun-Java5 (1.5 JDK) in the Ubuntu Repositories.
In a hope it will encourage more developers, I'll post the following, which will build a full eclair system, on a new Ubuntu 9.10 x64 system.
Code:
$ mkdir ~/mydroid
$ mkdir mydroid/java5-packages
$ cd ~mydroid/java5-packages
$ wget http://mirror.pacific.net.au/linux/ubuntu/pool/multiverse/s/sun-java5/sun-java5-jre_1.5.0-18-1_all.deb
$ wget http://mirror.pacific.net.au/linux/ubuntu/pool/multiverse/s/sun-java5/sun-java5-bin_1.5.0-18-1_amd64.deb
$ wget http://mirror.pacific.net.au/linux/ubuntu/pool/multiverse/s/sun-java5/sun-java5-demo_1.5.0-18-1_amd64.deb
$ wget http://mirror.pacific.net.au/linux/ubuntu/pool/multiverse/s/sun-java5/sun-java5-jdk_1.5.0-18-1_amd64.deb
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev java-common unixodbc
$ sudo dpkg -i --ignore-depends=sun-java5-bin sun-java5-jre_1.5.0-18-1_all.deb
$ sudo dpkg -i sun-java5-bin_1.5.0-18-1_amd64.deb
$ sudo dpkg -i --ignore-depends=sun-java5-jdk sun-java5-demo_1.5.0-18-1_amd64.deb
$ sudo dpkg -i sun-java5-jdk_1.5.0-18-1_amd64.deb
$ sudo update-java-alternatives -s java-1.5.0-sun
$ cd ..
$ wget http://android.git.kernel.org/repo
$ sudo mv repo /usr/bin/
$ chmod a+x /usr/bin/repo
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair
$ rep sync
$ cd external/webkit/
$ git cherry-pick 18342a41ab72e2c21931afaaab6f1b9bdbedb9fa
$ cd ../../
$ wget --referer=http://developer.htc.com/google-io-device.html http://member.america.htc.com/download/RomCode/ADP/signed-google_ion-ota-14721.zip?
$ cd vendor/htc/sapphire-open/
$ ./unzip-files.sh
$ cd ../../../
$ . build/envsetup.sh
$ lunch aosp_sapphire_us-eng
$ make
That's it? Ok, So it was a lot... Hope this helps someone get the 1.5 JDK on their Ubuntu system (and build eclair)
Hey OzJD,
Thanks for the lines, actually I did prepare two bash script that does something similar for me, everytime I want to compile the stuff. One builds from the source, the other one just compiles whatever is in the local repo (good for creating personal custom roms). As soon as I get home, I'll post them here
I would suggest using "make -j8" in the end, that compiles with 2GB of RAM in under 20minutes if you don't have 2GB of RAM in your computer, use "make -j4".
Wow, I didn't think it was that much of an increase, seems to take forever using just make.
I've got 4GB ram btw.
make -j4 makes my laptop REALLY hot, and causes a lot of swap to be used (I have a dual core 2.2Ghz CPU and 1Gb of ram). I always have to reboot after doing a build as everything gets very slow
Some guy called Steve Ryner posted this on my blog, which I found useful:
Steve Ryner said:
The -j2 argument for make specifies the number of threads. You'll get away with at most n+1 threads, where n is the number of CPU cores you have. And you'll want a gig of ram for each thread. So if you have a dual-core machine with at least 2GB of RAM -j2 will do fine. The -j4 assumes a quad-core 4GB machine in my opinion, which speaks to Google's development environment perhaps.
Click to expand...
Click to collapse
To be honest, I thought it was a throttle, Limiting to a maxinum of n threads.
I guess you learn something new every day.
Edit:
It seems to be limited by CPU, not RAM.
I'm using 1.7GB of 4GB RAM, and 2.1MB of 10.6 GB swap
Although both CPU cores are sitting near 100%
This is using -j4 on my laptop (2.1GHz AMD Athlon64 X2)
Edit2: My CPU is set to 50% frequency, So the cores were both running at 1.05GHz
Related
Hello All. I have received several requests for how to build a kernel from source so I figured I would make a guide for anyone looking.
WARNING: I CANNOT BE HELD RESPONSIBLE FOR ANY DAMAGE YOU CAUSE TO YOUR PHONE, PERSONAL RELATIONSHIPS, LIFE, OR CAR. YOU HAVE ALREADY ROOTED YOUR DEVICE SINCE YOU ARE READING THIS SO YOU KNOW IT VOIDS YOUR WARRANTY.
Now that thats over. I will walk you through how to set up a kernel building environment and walk you through building a kernel.
I.) Requirements
1.)You will need a computer. Just about any computer running linux will work, even a Virtual Machine. I will be using Ubuntu Oneiric, Server Edition for my guide. (Most commands are the same across Ubuntu Editions as well as Linux in general.)
2.)Internet Access- the faster the better
3.)Knowledge of the android kernel and what does what.
4.)The Master Branch from Google as well as the source for your device.
5.)ALOT of time.
6.)Common Sense
II.) Installing The Necessary Tools
1.)First we must download the neccesary tools.
To install java, you need to know which version of android you will be developing for.
Froyo and Lower:
Code:
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse"
$ sudo apt-get update
$ sudo apt-get install sun-java5-jdk
Gingerbread and Newer:
Code:
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
2.)Next we willl download the tools needed(You need to know if you are on a 64 bit system or 32 bit.)
For 64 bit:
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
Also you must link one thing based on your Ubuntu Version:
For 10.10:
Code:
$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
For 11.10:
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
For 32 bit:
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 xsltproc
No linking is necessary.
NOTE: You can set up CCache on either setup. However, you will not need it necessarily due to the source is not that big compared to building a rom and therefore will not take as long.http://dnssearch.rr.com/index.php?origURL=http://www.goog.gl/&r=
III.) Downloading The Source
1.)If you already have an android Directory set up, then skip this step. If not, follow these commands. (NOTE:THIS GUIDE FOLLOWS AS IF YOU USE THIS STEP. BE CAREFUL)
Code:
$ cd $HOME
$ mkdir android
$ cd android
2.)Set up your source directory.
Code:
$ mkdir source
$ cd source
$ mkdir aosp (YOUR DEVICE)_kernel repo
$ cd repo
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ./repo
$ chmod 755 repo
$ export PATH=$PATH:$HOME/android/source/repo/
OR
$ sudo cp repo /usr/bin/repo
$ cd ../aosp
$ mkdir master
$ cd master
3.)You are now ready to grab the source. You will need the master branch. So while in the master directory:
Code:
$ repo init -u https://android.googlesource.com/platform/manifest
THIS WILL TAKE A WHILE SO SIT BACK AND RELAX.
4.)Now you need your specific devices source. So follow those steps accordingly to get the source into the directory for you device kernel @ $HOME/android/source/(YOUR DEVICE)_kernel
You now have all the source you need.
V.) Building The Kernel
1.)Now we will set up the environment for the build.
Code:
$ export ARCH=arm
$ export CROSS_COMPILER=arm-eabi-
$ export CROSS_COMPILE=arm-eabi-
$ export PATH=$PATH:$HOME/android/source/aosp/master/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/
2.)Now you go into your device's kernel directory.
Code:
$ cd $HOME/android/source/(YOUR DEVICE)_kernel
3.)And begin the configuration.
If you like a gui like menu:
Code:
$ make menuconfig
If you like to answer questions:
Code:
$ make config
4.)Configure your kernel how you want it.
5.)Then, once thats done:
Code:
$ make -j4
This will build the kernel. This can take anywhere from 15 minutes to an hour and a half+.
VI.)Grabbing The Newly Made Kernel
1.) Your kernel will be located at:
Code:
$ $HOME/android/source/(YOUR DEVICE)_kernel/arch/arm/boot/zImage
2.) Your Wireless Module Will depend on your device. For the Ally, it would be:
Code:
$ $HOME/android/source/ally_kernel/drivers/net/wireless/bcm4329/wireless.ko
CONGRATULATIONS!!!
You have built your own kernel.
Now follow http://forum.xda-developers.com/showthread.php?t=748106 to flash it.
Any problems or questions, let me know. Either a PM or I'm almost always in #asus-transformer on IRC.
Wanna donate to me and help me with bills? Follow this link to Donate Via PayPal:
http://goo.gl/ReRPs
Gonna try this. Thanks for sharing...
Sent using my brain
Thanks for working on this. On first look, I think you intended to put a repo sync after the init command here:
3.)You are now ready to grab the source. You will need the master branch. So while in the master directory:
Code:
$ repo init -u https://android.googlesource.com/platform/manifest
THIS WILL TAKE A WHILE SO SIT BACK AND RELAX.
Click to expand...
Click to collapse
Android device
For the device, should it be what our device is named by the company for marketing, etc or is it what is in the build.prop under ro.product.device?? Thanks
pramathesh said:
Gonna try this. Thanks for sharing...
Sent using my brain
Click to expand...
Click to collapse
Sent using my brain <- lol, made my day !
android_owl said:
Sent using my brain <- lol, made my day !
Click to expand...
Click to collapse
glad you liked
@OP: Do I've to make any changes if I were to build from Glitch (SGS) sources for CM7?? Or everything remains the same?
what does (Your device) mean ? its name (example: samsung galaxy ace) or the codename ( example: GT-S5830) ????
Codename
Sent from my Galaxy Nexus using Tapatalk 2
Here my source if you want build your own AOKP ICS for hTC Pico, you need linux OS (recommended ubuntu 12.04 or ubuntu 12.10 amd64 bit architecture <- im using this) or another distribution linux like latest Debian / Arch. Use Google or wiki how to install linux !!!.
Open terminal application (CTRL+ALT+T) and follow all this step :
1) First update your OS :
Code:
$ sudo apt-get update
$ sudo apt-get upgrade
2) Download the package needed :
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 libncurses5-dev:i386 schedtool optipng pngcrush libbluetooth-dev
3) Fix the libGL shortcut issue :
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
4) Download sun-java6 by oracle via ppa :
Code:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer
5) Setup installing 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) Create the working folder :
Code:
$ mkdir aokp_ics
$ cd aokp_ics
7) Download the AOKP source code
Code:
$ repo init -u https://github.com/AOKP/platform_manifest.git -b ics
8) Fix issue repositories, hardware, etc with my manifests :
Code:
$ cd .repo/manifests
$ gedit default.xml
9) And replace with this :
Code:
[URL="http://pastebin.com/BZ4gwm7Q"]http://pastebin.com/BZ4gwm7Q[/URL]
10) Sync repository :
Code:
$ cd ../..
$ repo sync
*note : this will take a long time you need fast connection because the size repositories is 8 ~ 12 GB
11) Compile !
Code:
$ . build/envsetup.sh && brunch pico
or
$ source build/envsetup.sh && brunch pico
your patch is very welcome, just forked my repository and pull requests. thank you. happy coders !
source :
http://source.android.com
http://github.com/AOKP
http://github.com/CyanogenMod
http://github.com/digitalcode
reserved
Good tut bro ........
Still many DEVs left including u for our little pico .........
Sent from my HTC Explorer A310e using xda premium
thanks for the great tutorial.
how bout the fixesif got errors?
if AOKP release new build how can we update it without going all the painful 8gb downloading?
sorry noob here.. i hav linux machine here but seldom use.
so i guess i would like to learn how to build.
am looking forward also into MIUI. do you know how to build one from source ?
Do we really need to download that much???
I don't mind downloading 8 to 12 GB, but, I have frequent power fluctuations at my home... So, is there any way by which I can resume the sync-ing process...
//And, to the main question, I use a 32-bit pc. So is it ok to use? Or do I need a 64 bit one?//*never mind.
P.S: I don't seem to understand why we require 8 - 12 GB for compiling something that would be max 200 mB? Is there any reason for this? or can we reduce the download ammount or something like that?
edit: sorry people... i really didn't read the amd64 architecture requirement...
vineethraj49 said:
I don't mind downloading 8 to 12 GB, but, I have frequent power fluctuations at my home... So, is there any way by which I can resume the sync-ing process...
And, to the main question, I use a 32-bit pc. So is it ok to use? Or do I need a 64 bit one?
P.S: I don't seem to understand why we require 8 - 12 GB for compiling something that would be max 200 mB? Is there any reason for this? or can we reduce the download ammount or something like that?
Click to expand...
Click to collapse
ctrl-z to pause
flowish said:
Here my source if you want build your own AOKP ICS for hTC Pico, you need linux OS (recommended ubuntu 12.04 or ubuntu 12.10 <- im using this) or another distribution linux like latest Debian / Arch. Use Google or wiki how to install linux !!!.
Open terminal application (CTRL+ALT+T) and follow all this step :
1) First update your OS :
Code:
$ sudo apt-get update
$ sudo apt-get upgrade
2) Download the package needed :
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 libncurses5-dev:i386 schedtool optipng pngcrush libbluetooth-dev
3) Fix the libGL shortcut issue :
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
4) Download sun-java6 by oracle via ppa :
Code:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer
5) Setup installing 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) Create the working folder :
Code:
$ mkdir aokp_ics
$ cd aokp_ics
7) Download the AOKP source code
Code:
$ repo init -u https://github.com/AOKP/platform_manifest.git -b ics
8) Fix issue repositories, hardware, etc with my manifests :
Code:
$ cd .repo/manifests
$ gedit default.xml
9) And replace with this :
Code:
[URL]http://pastebin.com/BZ4gwm7Q[/URL]
10) Sync repository :
Code:
$ cd ../..
$ repo sync
*note : this will take a long time you need fast connection because the size repositories is 8 ~ 12 GB
11) Compile !
Code:
$ . build/envsetup.sh && brunch pico
or
$ source build/envsetup.sh && brunch pico
your patch is very welcome, just forked my repository and pull requests. thank you. happy coders !
source :
http://source.android.com
http://github.com/AOKP
http://github.com/CyanogenMod
http://github.com/digitalcode
Click to expand...
Click to collapse
Can I compile cm10.1 from this by just changing the source link ?
Sent from my HTC Explorer A310e using xda premium
vineethraj49 said:
I don't mind downloading 8 to 12 GB, but, I have frequent power fluctuations at my home... So, is there any way by which I can resume the sync-ing process...
And, to the main question, I use a 32-bit pc. So is it ok to use? Or do I need a 64 bit one?
P.S: I don't seem to understand why we require 8 - 12 GB for compiling something that would be max 200 mB? Is there any reason for this? or can we reduce the download ammount or something like that?
Click to expand...
Click to collapse
First of all you require 20GB+ for a Single build and upto 80-100 GBs for a complete set of builds.
Not just 8-12GB
---------- Post added at 09:19 PM ---------- Previous post was at 09:18 PM ----------
DanceOff said:
Can I compile cm10.1 from this by just changing the source link ?
Sent from my HTC Explorer A310e using xda premium
Click to expand...
Click to collapse
Yes.. but you need to add kernel source, device tree and vendors from Sakinidia's github into manifest.xml
Please don't quote the main thread...
It makes the page kind'a long and lengthy to load and read. kindly don't quote the main thread...
vineethraj49 said:
It makes the page kind'a long and lengthy to load and read. kindly don't quote the main thread...
Click to expand...
Click to collapse
ya plz don't do that
aokp ics
Getting this error while compiling aokp ics for galaxy fit...using this device config
http://pastebin.com/PhVVx9kC
GITHUB servers are up!
So I finally thought that I should make a guide to build from source as I feel like the one on the wiki is a bit outdated and isn't very clear.
I will cover both instructions for how to build for Ubuntu 13.04 (64 bit only), and OS X 10.8.x(PLEASE KEEP AT LEAST 35GB Free)
LINUX SPECIFIC INSTRUCTIONS
Please open a terminal window NOW. If you can't do this, don't build android. Please be vigilant in following in-terminal directions, such as pressing enter if it's asking you to do so or confirm something, and using sudo before a command will invoke a password prompt also if entering a new command, please wait until the command exits out to the bash prompt (asking for a new command)
First, let's get rid of the wrong java assuming it's already installed, Android will "REFUSE" to build properly with the wrong java.
Code:
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
Now let's install the correct java,
Code:
sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java6-installer && java -version
It should end with this
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
or something like it.
Now let's set up for making bacon!
Enter this in order to get dependencies for building android, please note that this is about 100-150 megs and will take a few minutes/10ish minutes depending on your computer and internet connection.
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
then,
Code:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Repo is required for sucking sources from the cloud, so let's get it
Code:
mkdir ~/bin && curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo && chmod a+x ~/bin/repo
Now let's add this repo thing to our path
Code:
sudo nano ~/.bashrc
at the bottom of the file,add this
Code:
export PATH=~/bin:$PATH
now press Ctrl-O followed by Ctrl-X
restart bash by entering
Code:
source ~/.bashrc
now find a directory to build android in. Personally, I use /home/username/android
so for now let's place it in there
Code:
mkdir ~/android && cd ~/android && mkdir cm && cd cm
SYNC TIME!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!x10^infinity!
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1 && mkdir -p .repo/local_manifests && curl https://raw.github.com/teamuserdebug/page/manifests/manifests/cm10.1-aries.xml > .repo/local_manifests/local_manifest.xml && repo sync
make sure you acknowledge name, color, email etc, or you'll be sitting around and wasting time. this can take anywhere from 1 hr to 1 week depending on your internet connection, personally takes me 3-5 hrs.
go grab a starbucks and come back, you'll need it.
after it's done, make sure you are still in your cm directory.
IT'S BUILDING TIME
OPTIONAL: If you have some free space sitting around eg, 70-100 gigs for building android,
it's time to setup CCACHE, this speeds up future builds by "A LOT"
first edit .bashrc
Code:
sudo nano ~/.bashrc
add these lines at the bottom
Code:
export CCACHE_DIR=/home/-username-/.ccache
(Note, replace "-username-" with your computer username, without the dashes.
Code:
export USE_CCACHE=1
press Ctrl-O followed by Ctrl-X
enter
Code:
[CODE]source ~/.bashrc
[/CODE]
now enable ccache by entering
Code:
prebuilts/misc/linux-x86/ccache/ccache -M50
or
Code:
./prebuilts/misc/linux-x86/ccache/ccache -M50
if the first one doesn't work
BUILD TIME:
enter these
Code:
cd ~/android/cm
Code:
vendor/cm/get-prebuilts
Code:
. build/envsetup.sh
Code:
lunch cm_galaxys4gmtd-userdebug
Code:
mka clobber
Code:
mka bacon
It will be in ~/android/cm/out/products/target/galaxys4gmtd/cm-unofficial-something-something-signed.zip or something like that.
Make sure you don't pick the wrong zip file, because there are 2 or 3 in there.
OS X 10.8.x SPECIFIC INSTRUCTIONS
Please open a terminal window NOW. If you can't do this, don't build android. Please be vigilant in following in-terminal directions, such as pressing enter if it's asking you to do so or confirm something, and using sudo before a command will invoke a password prompt also if entering a new command, please wait until the command exits out to the bash prompt (asking for a new command)
First, let's install java if it's not already installed
Code:
java
Now, we MUST install X-Code otherwise we won't even be able to lunch.
1. Open the App Store
2. Find X-Code,(it's free) and install it [this is a 1+ GB download, and install]
3.Open X-Code and go to preferences. There you find a 'Downloads' tab. Open it and install “Command line tools” It will take a few minutes to download and install
Now let's set up for making bacon!
Download and install MacPorts, not Homebrew, since MacPorts is faster.
You can get the mountain lion pkg installer here
After it is installed, close and open terminal.
edit your bash profile
Code:
sudo nano ~/.bash_profile
add
Code:
export BUILD_MAC_SDK_EXPERIMENTAL=1
somewhere at the bottom
Press Ctrl-X, then y, then "enter/return" Note: Yes, the control key is used, not the command key, so don't be confused
Install dependencies to make bacon
Code:
POSIXLY_CORRECT=1 sudo port install git-core coreutils findutils gsed gnupg pngcrush repo
then
Code:
sudo ln -s /opt/local/bin/gfind /opt/local/bin/find && ln -s /opt/local/bin/gsed /opt/local/bin/sed
run
Code:
pngcrush
in terminal to make sure that things are properly in your path
THEY SHOULD BE since MacPorts edits your .bash_profile for you.
Now, we need a case-sensitive folder so we will need to make a sparseimage which you will have to mount every time you want to do something with your android builds.(like a DMG), but for now, this command will attach it for you. It will be on your desktop
Code:
hdiutil create -type SPARSE -fs "Case-sensitive Journaled HFS+" -size 60g -volname "android" -attach ~/Desktop/Android
Make the cm folder
Code:
cd /Volumes/Android && mkdir cm && cd cm
SYNC TIME!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!x10^infinity!
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1 && mkdir -p .repo/local_manifests && curl https://raw.github.com/teamuserdebug/page/manifests/manifests/cm10.1-aries.xml > .repo/local_manifests/local_manifest.xml && repo sync
make sure you acknowledge name, color, email etc, or you'll be sitting around and wasting time. this can take anywhere from 1 hr to 1 week depending on your internet connection, personally takes me 3-5 hrs.
go grab a starbucks and come back, you'll need it.
after it's done, make sure you are still in your cm directory.
Before we build, we have to fix an elf.h error
Code:
cp /Volumes/android/cm/external/elfutils/libelf/elf.h /usr/local/include
IT'S BUILDING TIME
OPTIONAL: If you have some free space sitting around eg, 70-100 gigs for building android,
it's time to setup CCACHE, this speeds up future builds by "A LOT"
install a ccache which is usable by mac
Code:
sudo port install ccache
edit your bash profile to use ccache.
Code:
sudo nano ~/.bash_profile
find the line that says
Code:
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
and edit it to say
Code:
export PATH=/opt/local/libexec/ccache:/opt/local/bin:/opt/local/sbin:$PATH
press Ctrl-X, then y, then "enter/return"
then exit and reopen terminal
now configure ccache's memory
Code:
ccache -M50
BUILD TIME:
enter these
Code:
cd ~/android/cm
Code:
vendor/cm/get-prebuilts
Code:
. build/envsetup.sh
Code:
lunch cm_galaxys4gmtd-userdebug
Code:
mka clobber
Code:
mka bacon
It will be in /Volumes/android/cm/out/products/target/galaxys4gmtd/cm-unofficial-something-something-signed.zip or something like that.
Make sure you don't pick the wrong zip file, because there are 2 or 3 in there
nice, didn't take long to get it stickied either.
sent from within pure darkness
I know right!
Also, I have edited it for the mac version as well.
Now you guys can build on both mac and linux!!!!!!!!!!!!
Also, I will post when github stuffs are back up.
Thx. is this coming from a straight Unbuntu say setup without having to install a bunch of crap? I had that BBQLinux installed which is supposed to be for building android but it didn't have apt installed, so then tried yum to install that, and it didn't have that. lol. Just going to install Ubuntu on a VM and try your directions from a new install.
yes
but obviously you need to have wifi
airfluip1 said:
yes
but obviously you need to have wifi
Click to expand...
Click to collapse
Why do I need wifi?
i mean internet.
airfluip1 said:
i mean internet.
Click to expand...
Click to collapse
O ya, I got tonnes of that. lol. Thanks for the guide though. I've tried a few times to get a build environment going and it always goes wacky or I don't get something right.
i think that they are up now.
airfluip1 said:
i think that they are up now.
Click to expand...
Click to collapse
don't know, I'm getting fetch errors, url can't found, 404 and then when it's done, it craps out and says can't sync, too many fetch errors. Is this the servers still being down?
Maybe
Sent from my SGH-T959V using xda premium
airfluip, you might have been better off creating a local_manifest.xml file (though those are deprecated and now you can just create a manifest file called, for example, airfluip1_aokp.xml).
You're going to have to keep up with the platform_manifest changes and will have to resolve merge conflicts if the AOKP team decides to make some major changes (not unlikely).
You can actually add the changes you made to the manifest.xml into a custom manifest xml file similar to what we did with team acid's CM9/AOKP repos.
maybe, but I thought it was easier. I'll change it in a week or two.
Just thought I'd throw in that BBQLinux is arch based and for building android and linuxBBQ is NOT the same thing, it's probably the worst distro to start from to build android. In case someone else decides to go there.
airfluip1 said:
maybe, but I thought it was easier. I'll change it in a week or two.
Click to expand...
Click to collapse
Just as a way to make syncing source faster, you can also remove the device/kernel trees for other devices that aren't the SGS4G so that we can just download what's necessary for building for our phone.
yeah, I know. I'll do that later as well. I just don't have much time for a few weeks.
I got a rom compiled with your sources airfluip. I haven't flash tested yet.
I did run into problems with the SGS4GParts package so I had to remove it from galaxys4gmtd.mk, other than that the rom compiled fine. I'll help you look into the error later.
Thanks for the guide, easy to follow
EDIT
By the way, are you using TWRP in these builds, or is it CWM?
Code:
______ _____ __ __ _____
/\ _ \/\ __`\/\ \/\ \ /\ _ `\
\ \ \L\ \ \ \/\ \ \ \/'/'\ \ \L\ \
\ \ __ \ \ \ \ \ \ , < \ \ ,__/
\ \ \/\ \ \ \_\ \ \ \\`\ \ \ \/
\ \_\ \_\ \_____\ \_\ \_\\ \_\
\/_/\/_/\/_____/\/_/\/_/ \/_/
===========-Package complete-===========
zip: /home/fb/android/jb_aokp/work/out/target/product/galaxys4gmtd/aokp_galaxys4gmtd_unofficial_2013-05-14.zip
md5: c8fcc3417bab626ca6d018b88450ab42
size: 150M
========================================
It must have been something that I edited.
I am using CWm.
I don't like twrp very much.
It's always something....
I'm not sure if something changed since you made this tutorial but I can't seem to get this to build.
My first attempt resulted in the SGS4GParts error like FB mentioned. Which seems to have something to do with the TVOut setting.
Each attempt at rebuilding I seem to get different errors.
I also get this when building starts...normal?
Code:
find: `../../vendor/unbundled_google/libs/gcm/gcm-client/src': No such file or directory
find: `../../vendor/unbundled_google/libs/gcm/gcm-server/src': No such file or directory
find: `../../vendor/unbundled_google/libs/gcm/gcm-client/src': No such file or directory
find: `../../vendor/unbundled_google/libs/gcm/gcm-server/src': No such file or directory
find: `src': No such file or directory
Edit: Is there a way to grab a log of the entire build output? Is it saved to a file somewhere?
LOL I am building right now.
The src error is normal
AND IF THERE IS A BUILD ERROR, POST A LOG IN PASTEBIN.
ALSO, THERE SHOULDN'T BE ANY BUILD ERRORS RIGHT NOW AS LONG as you
Code:
repo sync
before you do a new build.
Also you should run
Code:
make clobber && mka bacon
everytime.
This will guide you thought the setup of Mint. The setup of your build environment, and finely the output of a flashable CMB ROM for your 700
First anything that starts with a bullet point is just for your reference.. Do not copy these things into your bash window...
Anything that is a code is copied one line at a time into your bash window and than enter
Now Install Mint 64 bit and a PC.. We will need at least a 250 GB hard drive...
This is a work in progress so let me know if anyone has any questions...
You can Find Mint here Click Me
Update System
Code:
sudo apt-get update
Code:
sudo apt-get upgrade
Build Env
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl
Code:
sudo apt-get install libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils xsltproc android-tools-fastboot android-tools-adb
Code:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib meld ia32-libs lzop ccache gedit
Code:
mkdir -p ~/bin
Code:
mkdir -p ~/android/system
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
Code:
export PATH=${PATH}:~/bin
Code:
gedit ~/.bashrc
Copy & Paste at bottom of bashrc on its own line
Code:
export PATH=${PATH}:~/bin
END-Paste
Code:
cd ~/android/system/
Code:
repo init -u git://github.com/cmbroms/platform_manifest.git -b kk4.4
You will be prompt to give your email and name just follow the steps on screen
Prepare to wait for a massive download 3 to 10 hours depending on your internet speed...
Code:
repo sync
Code:
cd ~/android/system/vendor/cmb
Code:
./get-prebuilts
Java
Code:
su
Code:
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
Code:
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
Code:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
Code:
apt-get update
Code:
apt-get install oracle-java6-installer
Code:
exit
Code:
sudo apt-get install oracle-java6-set-default
Ccache
Code:
gedit ~/.bashrc
Copy & Paste at bottom of bashrc on its own line
Code:
export USE_CCACHE=1
Code:
export CCACHE_DIR=~/ccache
END-Paste
Code:
source ~/.bashrc
Code:
ccache -M 50G
Building a ROM
Code:
cd ~/android/system
Make sure your in sync with the repo, you will do this every time right before you build.
Code:
repo sync
Code:
source build/envsetup.sh
Code:
lunch
Pick the number of the rom you would like to build
I maintain the 700,300,m7vzw so those are the only ones I can help with
the -j* is how may cpu cores you would like to give to the build process
So -j2 would tell the build process that you have 2 core you would like to use to build
Code:
make clean && make bacon -j2
The flash-able zip will be in the out folder of your build directory
Code:
XDA:DevDB Information
How to build CMB ROM for your TF700T, a Tool/Utility for the Asus Transformer TF700
Contributors
lj50036
Version Information
Status: Testing
Created 2014-01-16
Last Updated 2014-01-16
Sources
I will be posting the sources of this info after bit.. Thx lj
CMB github Click Me
ASOP Click Me
CM wiki Click Me
Java Click Me
Reserved
Feedback on TF300t Build Env.
Norskyforce here, testing CMB Roms on the TF300t for lj50036. This works for the TF300t as well, running on LINIX Mint15 - 64bit only. Everything runs fantastic so far, no issues and will soon build my own super savage ROMS. lj50036 has the most excellent tutorial, give him a huge shout-out of thanks. :highfive: Hey lj could you make a custom tutorial for the TF300t and post it up? Here is the original post I find it all to be Excellent.
TF300T
norskyforce said:
Norskyforce here, testing CMB Roms on the TF300t for lj50036. This works for the TF300t as well, running on LINIX Mint15 - 64bit only. Everything runs fantastic so far, no issues and will soon build my own super savage ROMS. lj50036 has the most excellent tutorial, give him a huge shout-out of thanks. :highfive: Hey lj could you make a custom tutorial for the TF300t and post it up? Here is the original post I find it all to be Excellent.
Click to expand...
Click to collapse
Yes I will post this on the TF300t forum tonight... Thx for the great feedback..Thx for all the testing without norskyforce's help, the TF300t build would have not gone so smoothly...Thx as always lj.....
Download Tab
I have made a text file, it is in the download tab at the top of every page of this forum.. It is just the process in a .txt file so you dont have to have a browser window open...Thx as always lj
This will guide you thought the setup of Mint. The setup of your build environment, and finely the output of a flashable CMB ROM for your 700
First anything that starts with a bullet point is just for your reference.. Do not copy these things into your bash window...
Anything that is a code is copied one line at a time into your bash window and than enter
Now Install Mint 64 bit and a PC.. We will need at least a 250 GB hard drive...
This is a work in progress so let me know if anyone has any questions...
Make sure unless it says to that you run all these commands in the home folder....
You can Find Mint here Click Me
Update System
Code:
sudo apt-get update
Code:
sudo apt-get upgrade
Build Env
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl
Code:
sudo apt-get install libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils xsltproc android-tools-fastboot android-tools-adb
Code:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib meld lzop ccache gedit
Code:
mkdir -p ~/bin
Code:
mkdir -p ~/android/system/zombi
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
Code:
export PATH=${PATH}:~/bin
Code:
gedit ~/.bashrc
Copy & Paste at bottom of bashrc on its own line
Code:
export PATH=${PATH}:~/bin
END-Paste
Code:
cd ~/android/system/zombi
Code:
repo init -u git://github.com/zombi-x/platform_manifest.git -b lp5.1
You will be prompt to give your email and name just follow the steps on screen
Then run the init command again
Code:
repo init -u git://github.com/zombi-x/platform_manifest.git -b lp5.1
Prepare to wait for a massive download 3 to 10 hours depending on your internet speed...
Code:
repo sync
OPEN JDK
Code:
sudo apt-get install openjdk-7-jdk
Ccache
Code:
gedit ~/.bashrc
Copy & Paste at bottom of bashrc on its own line
Code:
export USE_CCACHE=1
Code:
export CCACHE_DIR=~/ccache
END-Paste
Code:
source ~/.bashrc
Code:
ccache -M 50G
Building a ROM
Code:
cd ~/android/system/zombi
Make sure your in sync with the repo, you will do this every time right before you build.
Code:
repo sync
Code:
source build/envsetup.sh
Code:
lunch
Pick the number of the rom you would like to build
the -j* is how may cpu cores you would like to give to the build process
So -j2 would tell the build process that you have 2 core you would like to use to build
Code:
make clean && make bacon -j2
The flash-able zip will be in the out folder of your build directory
Code:
XDA:DevDB Information
How to build zombi for your TF700T, ROM for the Asus Transformer TF700
Contributors
lj50036, sbdags, hardslog
ROM OS Version: 5.1.x KitKat
Based On: OMNIROM
Version Information
Status: Beta
Beta Release Date: 2014-09-01
Created 2014-09-02
Last Updated 2014-09-08
GAPPS
This building of the ROM will only give you the base ROM .....
It will not have aroma, it will not have alot of stuff .....
You will need a gapps of some kind ......
MORE TO COME
Reserved
Thanks. Going with 32bit Mint on an old laptop... and 64bit in virtual machine on desktop
This post is gold
Thanks Josh, looking forward to building a rom myself later on when I am back home
Sent from my K00C using XDA Premium HD app
Hi Josh, I have just built my first rom using your instructions, I will test flash it tomorrow keeping all my fingers crossed
Thanks
Sent from my K00C using XDA Premium HD app
sbdags said:
This post is gold
Click to expand...
Click to collapse
yep, I have just installed my first build on to my old tf201, cheers lads
Sent from my K00C using XDA Premium HD app
If you use fedora, you need to downgrade the java packages:
sudo rpm -ivh http://www.nic.funet.fi/pub/Linux/I....7.0-openjdk-1.7.0.60-2.4.3.0.fc20.x86_64.rpm http://www.nic.funet.fi/pub/Linux/I...penjdk-devel-1.7.0.60-2.4.3.0.fc20.x86_64.rpm http://www.nic.funet.fi/pub/Linux/I...jdk-headless-1.7.0.60-2.4.3.0.fc20.x86_64.rpm --nodeps
Click to expand...
Click to collapse
and fix the old java to be used instead of the current one:
sudo alternatives --config java
sudo alternatives --config javac
Click to expand...
Click to collapse
and select the older java for the both.