[REF]HowTo build CM9 from source - Galaxy S II Android Development

Made the CM wiki a little easier to understand. Most is taken from here:
http://teamhacksung.org/wiki/index.php/CyanogenMod9:GT-I9100:How_to_build
First off you will need Ubuntu 64-bit for this to work (or one of the many ubuntu editions) I recommend the 11.10 version (will work on 10.x also), as it's the newest stable to date. 32-bit won't work. I'm using Xubuntu 64 bit, and it uses the same terminal codes of course.
Install ADB
Install the Android SDK.
NOTE: You do not need to setup the SDK with an ADV etc., just download and install to get the tools (e.g. adb).
Install the Build Packages
Open the terminal in ubuntu and paste the following code snippets:
To add sun-java to repo (works on various ubuntu versions):
Code:
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
To get the needed build packages:
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
NOTE: gcc-4.3-multilib g++-4.3-multilib is no longer available for Ubuntu 11.04/11.10 64-bit, but should still build without issue. On 11.10 lib32readline5-dev is no longer available, but lib32readline-gplv2-dev is there instead. Just install it with "apt-get install lib32readline-gplv2-dev"
Create the Directories
You will need to set up some directories in your build environment.
To create them paste these in terminal:
Code:
mkdir -p ~/bin
mkdir -p ~/android/system
Install the Repository
Enter the following in terminal to download make executable the "repo" binary:
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
NOTE: You may need to reboot for these changes to take effect.
Now enter the following to initialize the repository:
Code:
cd ~/android/system/
repo init -u git://github.com/CyanogenMod/android.git -b ics
repo sync -j16
Retrieve the galaxys2 repo
Code:
. build/envsetup.sh
brunch cm_galaxys2-userdebug
Copy proprietary files
NOTE: This only needs to be done the first time you build, but it's recommended to redo it when TeamHacksung makes some changes to these in their nightlies (which may occur quite often as of now)..
You will need to have a galaxys2 with the latest nightly of CM9 installed, and ADB working on the computer. This script will copy the proprietary files from the device.
Connect the device to the computer and ensure that ADB is working properly.
Paste this into terminal:
Code:
cd ~/android/system/device/samsung/galaxys2/
./extract-files.sh
NOTE: If some hardware isn't working, like camcorder or FM radio, you will need to find the updated prop blobs.
Get prebuilts
Code:
~/android/system/vendor/cm/get-prebuilts
Building CyanogenMod
First, check for updates in the source:
Paste into terminal:
Code:
cd ~/android/system/
repo sync
Configure Build & Compile
Now, the environment must be configured to build and the ROM compiled, from code, for the galaxys2.
Paste into terminal:
Code:
. build/envsetup.sh && brunch cm_galaxys2-userdebug
--------------------
End of tutorial
--------------------

Nice guide, just installed ubuntu on my VAIO to do this kind of stuff.
Thnx
On to setting stuff up...

You should consider getting the build script (build.sh) from teamhacksung's github (https://github.com/teamhacksung/buildscripts) and placing it in your android/system folder.
It allows you to use commands like ./build.sh [devicename] [kernel] to build the version of CM7 you want and optionally will compile your own kernel (if you also have the c1 and aries kernel source)
Other commands it supports:
./build.sh clean - to clear the output folders for a clean build
./build.sh prepare - to pull the latest version of Rom Manager
When I build for the SGS2 my sequence of events are always:
repo sync -j16
./build.sh clean
then either:
./build.sh galaxys2 kernel
if kernel code has changed, or
./build.sh galaxys2
if kernel code has not changed.
Click to expand...
Click to collapse

And after the mentioned build sequence posted above to finalize everything you run the command "build/envsetup.sh && brunch galaxys2" or is that obsolete now ?

HarryRag said:
And after the mentioned build sequence posted above to finalize everything you run the command "build/envsetup.sh && brunch galaxys2" or is that obsolete now ?
Click to expand...
Click to collapse
run all those in terminal... Remember the .
Sent from my GT-I9100 using XDA Premium App

HarryRag said:
And after the mentioned build sequence posted above to finalize everything you run the command "build/envsetup.sh && brunch galaxys2" or is that obsolete now ?
Click to expand...
Click to collapse
If you use the teamhacksung build.sh script then, yes, it is obsolete.
Novek said:
Remember the .
Click to expand...
Click to collapse
Yes, don't forget the period (.) at the start of the ./build.sh command or it won't run.

I was indeed revering to the build.sh from teamhacksung, thnx.
Got another question, is about: repo sync -j16
What does the -j16 stand for?
I'm aware of the . from ./ , just using linux for the first time to do this kind of stuff, using it a few years now for game/web server and playing some around with it.

Novek said:
First of, this is a re-written guide from the cyanogenmod wiki found here. All credit goes to them!
Click to expand...
Click to collapse
the link you gave is for sgs1.
change it with this: http://wiki.cyanogenmod.com/wiki/Samsung_Galaxy_S_II:_Compile_CyanogenMod_(Linux)

HarryRag said:
Got another question, is about: repo sync -j16
What does the -j16 stand for?
Click to expand...
Click to collapse
To be honest, I don't know. I tried searching the man pages etc but could never find the answer. I use it because it is what is listed on the CM wiki. I have also seen people use -j40 or no setting. They all work.

NISIM2337 said:
the link you gave is for sgs1.
change it with this: http://wiki.cyanogenmod.com/wiki/Samsung_Galaxy_S_II:_Compile_CyanogenMod_(Linux)
Click to expand...
Click to collapse
Yes, the SGS2 wiki page was published today. It does not contain the teamhacksung buildscript details though as that is specific to teamhacksung.

Well just made to build my first Kang using ./build.sh galaxys2 kernel
Just for now i'm testing to see what the difference is with the other building options.
For doing the ADB install part i started with a Howtoforge page about setting up android app builds since it has a good and very detailed part on how to exactly do all the adb installing stuff etc. (which would stand for this part of the turorial *Install ADB*), very newby friendly

HarryRag said:
What does the -j16 stand for?
Click to expand...
Click to collapse
I think it's the number of the simultaneous connections that will be opened to the server.

Code:
echo "Example: ./build.sh galaxys2 (prebuilt kernel + android)"
echo "Example: ./build.sh galaxys2 kernel (kernel + android)"
As i understand the following from build.sh good. It means that with just the "./build.sh galaxys2" is for stock CM7 kernel as from the source/github after running the sync.
but is "./build.sh galaxys2 kernel (kernel + android)" then for an custom made kernel with tweaks or is this one just for when there is a (bigger) update for the CM7 kernel?

I think you should realse a rom based on cm.
Sent from my GT-I9100 using Tapatalk

Removed...

DvTonder said:
Yes, the SGS2 wiki page was published today. It does not contain the teamhacksung buildscript details though as that is specific to teamhacksung.
Click to expand...
Click to collapse
ok, sorry.

Don't remove anything, don't except defeat, everyone is equal here!
Sent from my Samsung Galactic iPhone Killing Machine S II

Novek said:
Removed due to public harrasment from the "pros"...
Click to expand...
Click to collapse
Wow, that is unexpected! And unfortunate! I was going to follow your extensive guide this evening, such a shame you took it away. I did not notice any harassment here, but i'm sorry you felt it. Hope maybe you and the "pros" can sort this out, because i think such a topic would be really valuable here!!!

mbroeders said:
Wow, that is unexpected! And unfortunate! I was going to follow your extensive guide this evening, such a shame you took it away. I did not notice any harassment here, but i'm sorry you felt it. Hope maybe you and the "pros" can sort this out, because i think such a topic would be really valuable here!!!
Click to expand...
Click to collapse
Agreed : this has great value
Sent from my GT-I9100 using XDA Premium App

Novek said:
Removed due to public harrasment from the "pros"...
Click to expand...
Click to collapse
Please, give us some names, we will know "pros" who don't like to share with others.
Some advanced devs just want to keep there secrets in order to make believe it's too hard for others ...
They would like us to re-invent everything when it exists already. Thats not my vision of linux freedom ...
Or please say us why they insult you ?
Sent from my GT-I9100 using XDA Premium App

Related

[Guide] Quick start compiling guides-cm9-kernels

First of all this is not a hand holding thread. this is only for people serious about compiling. compiling is actually pretty easy, its debugging, adding features, porting, and cleaning up for mass use thats a little more difficult.
pre-setup
get linux, ubuntu is preferred and the most supported. you'll need around 25gb free or more. wubi works but make sure its big enough. The best setup is of course a real linux setup. personally i have a 100gb ext4 partition with ubuntu 11.10 and a second 100gb ext4 partition just for compiling.
im not going into how to get ubuntu running or any of that as you shouldnt try compiling if you are unable to install ubuntu using google. hint dual boot if you want to keep windows.
setup
most of what we will be doing will be done in the terminal. if you dont like the terminal or dont know how to use it. go away, seriously.
you need to find and install
Python 2.5 -- 2.7, which you can download from python.org.
next copy paste this into terminal
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
sudo apt-get install git
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 lib32readline-gplv2-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
ok now that you have the basics its time to make your life easier.
optional only if you have at least 10+gb free
Code:
Setting up ccache
You can optionally tell the build to use the ccache compilation tool. Ccache acts as a compiler cache that can be used to speed-up rebuilds. This works very well if you do "make clean" often, or if you frequently switch between different build products.
Put the following in your .bashrc or equivalent.
export USE_CCACHE=1
By default the cache will be stored in ~/.ccache. If your home directory is on NFS or some other non-local filesystem, you will want to specify the directory in your .bashrc as well.
export CCACHE_DIR=<path-to-your-cache-directory>
The suggested cache size is 50-100GB. You will need to run the following command once you have downloaded the source code.
prebuilt/linux-x86/ccache/ccache -M 50G
This setting is stored in the CCACHE_DIR and is persistent.
all right your all set up lets get some source
getting source
repo init -u git://github.com/CyanogenMod/android.git -b ics
repo sync
git clone [email protected]hoton-dev-team/sunfire.git -b ics device/moto/sunfire/
git clone [email protected]hoton-dev-team/proprietary_vendor_motorola.git -b ics vendor/moto/sunfire/
./vendor/cm/get-prebuilts
note you may have issues with syncing
alright on to building
building
several ways to build based on what you are doing
preferred is
Code:
. build/envsetup.sh && brunch sunfire
but
Code:
. build/envsetup.sh
breakfast sunfire
mka bacon
works too.
basically run . build/envsetup.sh first
then you pick what to build with lunch,brunch, or breakfast
then you make,mka, or make bacon.
dont forget to make clean or make clobber between builds.
ill edit later on down the road.
Making kernels
pre-setup
Okay first of all you need to complete the above tutorial up to the getting source. so you wont have to do the building portion.
*Can you build kernels without android source, simple answer is yes, complicated answer is no. With the android source installed you have access to the proper tools. While personally i dont compile kernels with the older cross compilers of android, however this can be problematic and can lead to issues compiling. The dhd.ko is a great example. I have rebased hours of work to get dhd.ko to compile. To save everyone else my headache im going to show everyone the official way to compile kernels, not the cutting edge unsupported stuff that i do. *
setup
in terminal
cd "to your cyanogenmod source folder" we will use cyanogenmod for the tutorial
Code:
mkdir kernel
mkdir kernel/tegra
mkdir kernel/tegra-temp
mkdir kernel/compiled
mkdir kernel/compiled/modules
mkdir vendor/authentec
mkdir vendor/authentec/safenet
mkdir vendor/bcm
mkdir vendor/bcm/wlan
mkdir vendor/bcm/wlan/osrc
now hit this website and download
vendor-bcm-wlan-osrc.tgz
vendor-authentec-safenet.tgz
kernel-tegra.tgz
if you notice the file name, that is where it must be extracted.
now that you have the source, lets go on
compile
Code:
export PLATFORM_DIR="path to your cyanogenmod/android source"
export KERNEL_BUILD_OUT=$PLATFORM_DIR/kernel/tegra-temp
export ARCH=arm
export CROSS_COMPILE=$PLATFORM_DIR/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
export KERNEL_SRC=$PLATFORM_DIR/kernel/tegra
make -j1 -C $KERNEL_SRC O=$KERNEL_BUILD_OUT KBUILD_DEFCONFIG=tegra_sunfire_android_defconfig defconfig modules_prepare
make -j1 -C $KERNEL_SRC O=$KERNEL_BUILD_OUT DEPMOD=out/host/linux-x86/bin/depmod INSTALL_MOD_PATH=$KERNEL_BUILD_OUT modules
make -j1 -C $KERNEL_SRC O=$KERNEL_BUILD_OUT DEPMOD=out/host/linux-x86/bin/depmod INSTALL_MOD_PATH=$KERNEL_BUILD_OUT modules_install
make -j1 -C $KERNEL_SRC O=$KERNEL_BUILD_OUT zImage
make -j1 -C $KERNEL_SRC O=$KERNEL_BUILD_OUT DEPMOD=out/host/linux-x86/bin/depmod INSTALL_MOD_PATH=$KERNEL_BUILD_OUT M=$PLATFORM_DIR/vendor/authentec/safenet/vpndriver modules
export LINUXSRCDIR=$KERNEL_SRC
export LINUXBUILDDIR=$PLATFORM_DIR/kernel/tegra-temp
make -C $PLATFORM_DIR/vendor/bcm/wlan/osrc/open-src/src/dhd/linux
cp kernel/tegra-temp/arch/arm/boot/zImage kernel/compiled
cp vendor/authentec/safenet/vpndriver/vpnclient.ko kernel/compiled/modules
cp vendor/bcm/wlan/osrc/open-src/src/dhd/linux/dhd.ko kernel/compiled/modules
now this will give you your modules and the zimage. to make a boot.img use android-utility to extract an existing boot.img. then replace the zimage and build the boot.img.
third post
Thanks
Thank you joker just what i needed to start and play around and get to learning,testing is all fine but creating is the real key.Thank you very much and all fellow devs for all your time and help means alot to some of us.Have a good weekend!
Thanks joker
Sent from my MB855 using xda premium
thanks... already got a dual boot....just..need..a..bigger..hdd. uggg Thanks again for all you do on here.
second post on how to compile a kernel? ;P
You forgot to add that getting everything right with the vendor and device tree is also one of the hardest parts...
mrinehart93 said:
You forgot to add that getting everything right with the vendor and device tree is also one of the hardest parts...
Click to expand...
Click to collapse
amen to that
Sent from my MB855 using Tapatalk
Will do, eventually
shabbypenguin said:
second post on how to compile a kernel? ;P
Click to expand...
Click to collapse
Sent from my MB855 using XDA App
Thanks. That helps a lot. Was already working on a setup.
Sent from my MB855 using Tapatalk
No the hardest part is when you fix something and it breaks something else, so you fix it, then something unrelated breaks, finally you get it semi fixed and run a make clobber and it fails again. So you have to revert and start over.
mrinehart93 said:
You forgot to add that getting everything right with the vendor and device tree is also one of the hardest parts...
Click to expand...
Click to collapse
Sent from my MB855 using XDA App
jokersax11 said:
No the hardest part is when you fix something and it breaks something else...
Click to expand...
Click to collapse
Haha! Sounds like my truck!
I'm downloading 198-7 kernel now I'll make a guide to building soon.
Sent from my MB855 using XDA App
ok kernel guide in place.
May be an oddball question, maybe not.
I've read the thread, have 100+ TB of hdd space and am d/l-ing what I need to get setup for a dual boot system.
Would I be able to attempt to port features of other kernels into a cm9 or other kernel. (I do have a particular mod in mind is why I ask)
I'm a MoPho-er
possible, depending on the mod, source and your skill.
FernBch said:
May be an oddball question, maybe not.
I've read the thread, have 100+ TB of hdd space and am d/l-ing what I need to get setup for a dual boot system.
Would I be able to attempt to port features of other kernels into a cm9 or other kernel. (I do have a particular mod in mind is why I ask)
I'm a MoPho-er
Click to expand...
Click to collapse
Sent from my MB855 using XDA App
jokersax11 said:
possible, depending on the mod, source and your skill.
Sent from my MB855 using XDA App
Click to expand...
Click to collapse
Mod is slide2wake, looking for source (unless I'm being dense the links I find are not source downloads), and for skills, well lets say, I usually catch on quick and can figure most things out easily. A few years back I dabbled with the command line stuff. It wasn't hard, didn't do too bad, but it's been a while.
Most times I can find the answers to my questions and can figure things out just fine, so I won't post up asking unless I'm totally stumped.
I'm a MoPho-er
i forgot all about that mod... did he ever post source for it?
Some great info I need to look into this more later love messing around with stuff like this
Sent from my MB855 using xda premium

[TUT] Compile CM9 from source for the Xperia Play [UBUNTU]

Just before we start, Google says:
Note: The source download is approximately 6GB in size. You will need 25GB free to complete a single build, and up to 90GB (or more) for a full set of builds.
Click to expand...
Click to collapse
Google also test compiling on Ubuntu 10.04 LTS, but I used 10.10, 32 bit. These instructions are for Ubuntu version 10.04-11.10
To install JDK6 (needed):
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
FOR 64bit: You will need the required packages, so open up your terminal and enter:
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
FOR 32bit (what I used): You will need the required packages, so open up your terminal and enter:
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
Now, onto downloading the source
First of all, you need to get the google repo tool, in a terminal:
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
Then reboot the PC
Now, we will actually initialize the repository:
Code:
mkdir -p ~/android/ics/
cd ~/android/ics/
repo init -u git://github.com/CyanogenMod/android.git -b ics
Then enter your name and email address
Then:
Code:
repo sync -j8
if you have bad internet, use a smaller number than 8, eg. 4 or 2
Now, wait for the repo to sync (all 6GB of it )
Then after that is done, you need to setup vendor and device trees for our device
In the terminal again:
Code:
cd ~/android/ics/vendor/
git clone https://github.com/koush/proprietary_vendor_semc.git -b ics semc
Then:
Code:
cd ~/android/ics/device/
mkdir semc
cd semc
git clone https://github.com/CyanogenMod/android_device_semc_msm7x30-common.git -b ics msm7x30-common
git clone https://github.com/CyanogenMod/android_device_semc_zeus.git -b ics zeus
git clone https://github.com/CyanogenMod/android_device_semc_zeus-common.git -b ics zeus-common
to sync changes since last sync:
Code:
cd ~/android/ics/
repo sync
get CM props:
Code:
cd ~/android/ics/vendor/cm/
./get-prebuilts
then to build :
Setup environment:
Code:
cd ~/android/ics/
. build/envsetup.sh
then to get device list:
Code:
lunch
Now, select the number that is cm_zeus-userdebug
Now to finally build:
Code:
make -j4 bacon
again, you can use a higher value than 4 if you have more cores and more ram.
My specs:
Intel Core 2 Duo @ 1.8GHz
4GB RAM
VirginMedia 50Mbps broadband
My time:
Time to sync: 2hours+
Time to compile: 5+ hours, using -j16 which made my laptop VERY laggy
Enjoy, run into any issues, post here please
Troubleshooting:
Getting this: http://pastebin.com/Cy55wKZK ?
FIX:
In a file manager open up the directory: android/ics/frameworks/base/telephony/tests/ and delete the telephonytests folder
this is harmless
then recompile again
Reserved again
Sent from my Xperia Play using Tapatalk
In case you forget what that thing you're working on was for?
Only joking, good luck and all that.
MilkyJoePD said:
In case you forget what that thing you're working on was for?
Only joking, good luck and all that.
Click to expand...
Click to collapse
Which thing? I happen to be working on a lot of things lol
But I was thinking, maybe I could provide something similar to CM Night lies, but obviously not every night?
Sent from my Xperia Play using Tapatalk
Keiran this is awesome =)
Sent from my R800i using xda premiu
IE-coRe said:
Keiran this is awesome =)
Sent from my R800i using xda premiu
Click to expand...
Click to collapse
Thanks, tutorial is now live
Is there a way to implement chevyowner's CDMA changes into it for the zeusc build? Should I contact him to do so after the compile completes?
CrimsonKnight13 said:
Is there a way to implement chevyowner's CDMA changes into it for the zeusc build? Should I contact him to do so after the compile completes?
Click to expand...
Click to collapse
we don't have a zeusc vendor or device tree for ICS yet, but I can get one set up
What I need from chevyowner is a list of changes he made to get it working on CDMA
Keiran
KeiranFTW said:
we don't have a zeusc vendor or device tree for ICS yet, but I can get one set up
What I need from chevyowner is a list of changes he made to get it working on CDMA
Keiran
Click to expand...
Click to collapse
Want me to send you the libs and build.prop?
Sent from my R800x using Tapatalk
paxChristos said:
Want me to send you the libs and build.prop?
Sent from my R800x using Tapatalk
Click to expand...
Click to collapse
There was a change in libs too? I thought it was only a build.prop hack?
Can you send me libs? I only have build.prop changes, and have merged them
anyway: https://github.com/keiranFTW/android_device_semc_zeusc <-- tis CDMA zeusc device configuration for CM9
should work
KeiranFTW said:
There was a change in libs too? I thought it was only a build.prop hack?
Can you send me libs? I only have build.prop changes, and have merged them
Click to expand...
Click to collapse
Sent you a pm with the files,
Thanks for the make files (off to sync cm9 )
Sent from my R800x using Tapatalk
Hi keiran,
Have you managed to compile fxp113 for me yet?
Sorry to chase just need to know what I have to work with
Sent from my R800i using XDA
paxChristos said:
Sent you a pm with the files,
Thanks for the make files (off to sync cm9 )
Sent from my R800x using Tapatalk
Click to expand...
Click to collapse
Cheers, will get CM9 zeusc vendor tree set up then too
pricey2009 said:
Hi keiran,
Have you managed to compile fxp113 for me yet?
Sorry to chase just need to know what I have to work with
Sent from my R800i using XDA
Click to expand...
Click to collapse
Forgot about that, will get you a download link tomorrow night if I can?
Newest CM9 ICS change log:
Data works brilliantly, although I never get H, just 3G
New adreno libs are there, faster rendering and all.
Some launcher shizz I didn't read
New CM9 boot animation when I add it into the make files
Reboot option works, unless used by ROM Manager
I think that hw decoder will be fixed soon, because I seen something about it on CM code review, about qualcomm omx which fixes video. Not sure it is working though, but there are tons of devices all with the same problem, it will be fixed
Ty,
Keiran
Sent from my Xperia Play using Tapatalk
KeiranFTW said:
There was a change in libs too? I thought it was only a build.prop hack?
Can you send me libs? I only have build.prop changes, and have merged them
anyway: https://github.com/keiranFTW/android_device_semc_zeusc <-- tis CDMA zeusc device configuration for CM9
should work
Click to expand...
Click to collapse
Once you have the libs merged, I'll start compiling myself
Do you still have artifacts on certain menus and settings? Great tut btw gona update my Ubuntu partion.
sent from my xperia play running cm7
http://pastebin.com/UfSU5Wf6 that is as far as i can get it to go.
chevyowner said:
http://pastebin.com/UfSU5Wf6 that is as far as i can get it to go.
Click to expand...
Click to collapse
Ouch.
Have you tried Googling the error? Do you have the right version of Java set up?
Edit:
Do you have a vendor tree for zeusc? ~/android/ics/vendor/semc/zeusc? If not I can get one setup tonight.
Sent from my Xperia Play using Tapatalk
Hi i have following problem, did every step like in the tutorial but at
PHP:
mkdir -p ~/android/ics/
cd ~/android/ics/
repo init -u git://github.com/CyanogenMod/android.git -b ics
Terminal says: /home/christian/bin/repo: Line 1 : Syntaxerror unexpected word 'newline'
/home/christian/bin/repo: Line 1 : `<!DOCTYPE html>'
can someone help me?
---------- Post added at 09:31 AM ---------- Previous post was at 09:18 AM ----------
ok fixed the problem
Nice one KeiranFTW. Ran into some trouble install the JDK on 11.10. Had to install it from a ppa in the end. Details here.
Currently building. Shall see what happens

[CM] Building for expressltexx (GT-I8730)

There's an easy way to do whatever's discussed below, except for a) getting the SDK, b) syncing the repos, and c) building the ROM; and that way is using this script. But it's still better to do the steps below manually as it gets you acquainted with the terminal - you'll be using it a lot.
Thanks to @klvnhng for the original tutorial for mako
Credits to him.
You will need:
A computer running Ubuntu with at least 2GB memory and around 40-65 GB of free space
If you don't want to install Ubuntu, run it instead in VMWare Player or VirtualBox.
make sure you provide the virtual machine with the amount of recommended disk space or more
give it no less than 3-4GB of RAM
A (preferably fast) internet connection (trust me, you don't want to do this with a 256 or 512 kbps connection)
Familiarity with Android and Linux. Read up at source.android.com.
Setting up the build environment
1. Install JDK
DO NOT USE OPENJDK. Remove it by entering
Code:
sudo apt-get purge openjdk* icedtea* icedtea-6*
Install Oracle Java 6 by typing this into a terminal:
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer
Android SDK requires the x86 compatibility packages, ia32-libs. Install it by entering this:
Code:
sudo apt-get -y install ia32-libs
As an alternative, you can also do this (thanks to @jjchico):
Code:
sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5
2. Android SDK
Download it here.
Extract it to a folder of your choice (in this guide, I will refer to it as ~/android/sdk).
Enter these commands into the terminal:
Code:
cd ~/android/sdk/adt-bundle/sdk/tools
./android sdk
Click Install packages. cd to ~/android/sdk/adt-bundle/sdk/platform-tools and type:
Code:
./adb
./fastboot
If you've done everything correctly, you should get a big block of text for both (which list all of the adb/fastboot commands).
3. Install required packages
Copy and paste this command into the terminal:
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-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
4. Install the repo command
Make directories called bin and android in your home folder, respectively.
Code:
mkdir -p ~/bin
mkdir -p ~/android
Download and setup the repo binary:
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Now add it to your path:
Code:
export PATH="$PATH:~/bin"
And make sure it belongs in your path between subsequent reboots:
Code:
echo "export PATH="$PATH:~/android/sdk:~/bin"" >> ~/.bashrc
source ~/.bashrc
5. Configuring USB
You must configure USB to detect your Android device(s) properly.
Do this in a terminal:
Code:
curl https://raw.githubusercontent.com/aureljared/build-env-init/master/51-android.rules > ~/bin/51-android.rules
chmod a+r ~/bin/51-android.rules
sudo cp -vfp ~/bin/51-android.rules /etc/udev/rules.d/51-android.rules
6. Syncing up
The next step is to initialize the repository and download the source code to your computer.
Type the following lines into the terminal:
Code:
mkdir -p ~/android/cm-11.0
cd ~/android/cm-11.0
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
To download all the necessary device-specific files for our device, do this:
Code:
curl https://raw.githubusercontent.com/aureljared/android-manifests/expresslte-cm-11.0/local_manifest.xml >> .repo/local_manifests/local_manifest.xml
Now run
Code:
repo sync
You have now begun downloading all of the CM source code to your build directory. Depending on your internet speed, this can take from a couple of hours to a few days. If the sync interrupts, don't worry. Simply continue the sync (you don't have to restart completely, only the project you were downloading when the interrupt occured, lol) by entering:
Code:
repo sync
Some tips:
You can interrupt the process by pressing Ctrl + C, it will continue where it left off the next time anyway.
Remember, you need to cd into your build directory (~/android/cm-11.0, if you've been following this guide) for the command to work.
If you want only one project to be synced at a time, run repo sync -j1 instead.
This step takes a long time depending on your internet connection speed (FYI you're downloading ~20 GB of code!)
7. Building CM (yay!)
You must download the necessary pre-built apps:
Code:
~/android/cm-11.0/vendor/cm/get-prebuilts
Now let's build! cd to your build directory and run the following commands in the terminal:
Code:
. build/envsetup.sh
brunch expressltexx
Now, just let your computer do the rest. This step is very demanding for your computer, so you better leave it alone while it builds. Usually this takes an hour or more. Go get some sleep or eat something.
Done? If everything went correctly, cd to ~/android/cm-11.0/out/target/product/expresslte and you should see your newly built ROM entitled:
cm-11.0-20xxxxxx-UNOFFICIAL-expressltexx.zip
Congratulations! You've successfully built CM 11.0!
For re-builds (i.e. when the source code has been updated and you would like to make a new nightly), just do this:
Code:
cd ~/android/cm-11.0
make clobber
repo sync
. build/envsetup.sh
brunch expressltexx
Have fun building!​
I suggest you to modify step 5 inserting before repo sync
Code:
mkdir .repo/local_manifests
cd .repo/local_manifests
wget https://raw.github.com/KINGbabasula/android_device_samsung_expresslte/cm-10.2/local_manifest.xml
cd ..
cd ..
This will download the specific necessary repos with repo sync
Then remove this in step 6
Code:
mkdir files
cd files
git clone https://github.com/KINGbabasula/proprietary_vendor_samsung.git
as it isn't needed
And change make clean with make clobber because with clobber it will rebuild faster
EDIT: And before step 6 you need to replace these 2 files with the 2 in the attachment
Code:
system/core/mkbootimg/bootimg.h
system/core/mkbootimg/mkbootimg.c
KINGbabasula said:
I suggest you to modify step 5 inserting before repo sync
Code:
mkdir .repo/local_manifests
cd .repo/local_manifests
wget https://raw.github.com/KINGbabasula/android_device_samsung_expresslte/cm-10.2/local_manifest.xml
cd ..
cd ..
This will download the specific necessary repos with repo sync
Then remove this in step 6
Code:
mkdir files
cd files
git clone https://github.com/KINGbabasula/proprietary_vendor_samsung.git
as it isn't needed
And change make clean with make clobber because with clobber it will rebuild faster
EDIT: And before step 6 you need to replace these 2 files with the 2 in the attachment
Code:
system/core/mkbootimg/bootimg.h
system/core/mkbootimg/mkbootimg.c
Click to expand...
Click to collapse
Original post updated.
Can you help me with ia32-libs?
It says that it's referred to by a handful of other packages but it has no installation candidates or something. The bottom line is that I can't install it.
I'm using 13.10 x64 on an ASUS K43SJ.
- Intel i5-2410M Quadcore (2.3GHz normal, 2.9GHz Turbo Boost)
- 2GB RAM available to Ubuntu VM
Sent from my International Galaxy Express using Tapatalk 4
aureljared said:
Original post updated.
Can you help me with ia32-libs?
It says that it's referred to by a handful of other packages but it has no installation candidates or something. The bottom line is that I can't install it.
I'm using 13.10 x64 on an ASUS K43SJ.
- Intel i5-2410M Quadcore (2.3GHz normal, 2.9GHz Turbo Boost)
- 2GB RAM available to Ubuntu VM
Sent from my International Galaxy Express using Tapatalk 4
Click to expand...
Click to collapse
You have to apt-get install every missing library one by one
Inviato dal mio GT-I9070 utilizzando Tapatalk
aureljared said:
2. Android SDK
Download it here.
Extract it to a folder of your choice (in this guide, I will refer to it as ~/android/sdk).
Enter these commands into the terminal:
Code:
cd ~/android/sdk/adt-bundle/sdk/tools
./android sdk
Click Install packages. cd to ~/android/sdk/adt-bundle/sdk/platform-tools and type:
Code:
adb
fastboot
Click to expand...
Click to collapse
Shouldn't it be
Code:
./adb
./fastboot
Or have you added the sdk to your path?
I guess the compilation process will need the sdk. How does it find the sdk? Do you need to provide the path anywhere?
Thanks for the great tuto.
These are the libs that ia32-libs pulls in that are present in Ubuntu 13.10. This should be equivalent to install ia32-libs in Ubuntu 12.04:
$ sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5
---------- Post added at 12:08 PM ---------- Previous post was at 11:29 AM ----------
These are the libs that ia32-libs pulls in that are present in Ubuntu 13.10. This should be equivalent to install ia32-libs in Ubuntu 12.04:
$ sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5
jjchico said:
These are the libs that ia32-libs pulls in that are present in Ubuntu 13.10. This should be equivalent to install ia32-libs in Ubuntu 12.04:
$ sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5
---------- Post added at 12:08 PM ---------- Previous post was at 11:29 AM ----------
These are the libs that ia32-libs pulls in that are present in Ubuntu 13.10. This should be equivalent to install ia32-libs in Ubuntu 12.04:
$ sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5
Click to expand...
Click to collapse
jjchico said:
Shouldn't it be
Code:
./adb
./fastboot
Or have you added the sdk to your path?
I guess the compilation process will need the sdk. How does it find the sdk? Do you need to provide the path anywhere?
Thanks for the great tuto.
Click to expand...
Click to collapse
Updated original post.
Sent from my GT-I8730 using Tapatalk
Thanks. Just note the missing double quotes in the export PATH.
Enviado desde mi GT-I9000 mediante Tapatalk
jjchico said:
Thanks. Just note the missing double quotes in the export PATH.
Enviado desde mi GT-I9000 mediante Tapatalk
Click to expand...
Click to collapse
Haha lol sorry. I was very sleepy when I updated last night.
Updated post.
My repo sync is finished with 65 out of 401 projects. ia32-libs now okay thanks to you @jjchico.
Sent from my GT-I8730 using Tapatalk
I get this
[email protected]:~/android/cm-10.2$ repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2
No command 'repo' found, did you mean:
Command 'repro' from package 'repro' (universe)
Command 'repl' from package 'nmh' (universe)
Command 'repl' from package 'mailutils-mh' (universe)
Command 'rep' from package 'rep' (universe)
repo: command not found
[email protected]:~/android/cm-10.2$
Any ideas? All seemed good before that
Bazzan
Check that repo is in the bin folder in your user main folder.
Check that repo is executable
chmod a+x ~/bin/repo
Enviado desde mi GT-I9000 mediante Tapatalk
"6. Building CM (yay!)"
"In order to make a working build, you have to get the proprietary files (mainly device build files and drivers) for the device."
so how do I get the propriety files and where do I put them? ADB from your phone?
After this you direct us to prebuilt apps so it appears there is a step missing unless I am pulling proprietary files down from KINGbabasula's Github
Bazzan
bazzan said:
"6. Building CM (yay!)"
"In order to make a working build, you have to get the proprietary files (mainly device build files and drivers) for the device."
so how do I get the propriety files and where do I put them? ADB from your phone?
After this you direct us to prebuilt apps so it appears there is a step missing unless I am pulling proprietary files down from KINGbabasula's Github
Bazzan
Click to expand...
Click to collapse
Yeah, the files are located somewhere in KINGbabasula's github. If you want to use ADB then refer to the text file located in android_device_samsung_expresslte.
Or if you want to download the files themselves, do this in a terminal:
Code:
mkdir proprietary
cd proprietary
git clone https://github.com/KINGbabasula/proprietary_vendor_samsung.git
The files will be located in proprietary/proprietary_vendor_samsung/expresslte.
Sent from my GT-I8730 using Tapatalk
Finally got build going. Thanks for the tutorial @aureljared. You were not kidding when you said takes a while. Not too sure where to from here. Welcome suggestions if anyone wants me to try anything
Bazzan
URGENT
Before proceeding to build any more ROMs, let me ask some questions.
What toolchain for building the kernel are you using? Toolchains that might work are arm-eabi-4.4.3 upwards or linaro 4.4.3 upwards.
What is your configuration for the kernel? It is written to a file called ".config" insinde the kernel source.
Have you applied any kind of patch to the code before compiling? If so, what?
Click to expand...
Click to collapse
Thank you for your time. Your answers to the above questions will be highly appreciated and will be of utmost importance. There is also a good chance that we might build a proper kernel with your reports!
:good: :victory:
Sent from my GT-I8730 using Tapatalk
aureljared said:
URGENT
Before proceeding to build any more ROMs, let me ask some questions.
What toolchain for building the kernel are you using? Toolchains that might work are arm-eabi-4.4.3 upwards or linaro 4.4.3 upwards.
What is your configuration for the kernel? It is written to a file called ".config" insinde the kernel source.
Have you applied any kind of patch to the code before compiling? If so, what?
Thank you for your time. Your answers to the above questions will be highly appreciated and will be of utmost importance. There is also a good chance that we might build a proper kernel with your reports!
:good: :victory:
Sent from my GT-I8730 using Tapatalk
Click to expand...
Click to collapse
No toolchain experience at all. Just substituted kernels from elsewhere. Maybe if you are leaning toward Linaro, I should find myself a tutorial for arm-eabi-4.4.3 upwards and give that a go. then we can cover more ground.
Bazzan
bazzan said:
No toolchain experience at all. Just substituted kernels from elsewhere. Maybe if you are leaning toward Linaro, I should find myself a tutorial for arm-eabi-4.4.3 upwards and give that a go. then we can cover more ground.
Bazzan
Click to expand...
Click to collapse
Sure.
I'm not saying that I'm relying on Linaro now, it's just that Linaro is a toolchain developed by a consortium of technology companies including Samsung that aims to build Linux kernels that perform extremely well on mobile devices.
CM 10.2 uses Linaro 12.09, I think.
I tried building with Linaro a couple of days ago but make threw me some errors, the most confusing being something like this
Code:
make [cypress_touchkeys.o] *** Error 2
I don't even know what Cypress is.
Sent from my GT-I8730 using Tapatalk
aureljared said:
Sure.
I'm not saying that I'm relying on Linaro now, it's just that Linaro is a toolchain developed by a consortium of technology companies including Samsung that aims to build Linux kernels that perform extremely well on mobile devices.
CM 10.2 uses Linaro 12.09, I think.
I tried building with Linaro a couple of days ago but make threw me some errors, the most confusing being something like this
Code:
make [cypress_touchkeys.o] *** Error 2
I don't even know what Cypress is.
Sent from my GT-I8730 using Tapatalk
Click to expand...
Click to collapse
Cannot help with Cypress. Some time ago I downloaded a file called GT-I8730_JB_Opensource.zip - not sure where I found it.
It appears to be what is says it is. Within it is a text file called README_Kernel.txt
It has the following
################################################################################
1. How to Build
- get Toolchain
From android git server , codesourcery and etc ..
- arm-eabi-4.4.3
- edit Makefile
edit "CROSS_COMPILE" to right toolchain path(You downloaded).
EX) export CROSS_COMPILE= $(android platform directory you download)/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
Ex) export CROSS_COMPILE=/usr/local/toolchain/arm-eabi-4.4.3/bin/arm-eabi- // check the location of toolchain
$ export ARCH=arm
$ make msm8930_express_defconfig
$ make
2. Output files
- Kernel : arch/arm/boot/zImage
- module : drivers/*/*.ko
3. How to Clean
$ make clean
################################################################################
Way out of my depth but will try sometime next week to give it a go with arm-eabi-4.4.3. Major interview Monday so nothing before then.
Bazzan
bazzan said:
Cannot help with Cypress. Some time ago I downloaded a file called GT-I8730_JB_Opensource.zip - not sure where I found it.
It appears to be what is says it is. Within it is a text file called README_Kernel.txt
It has the following
################################################################################
1. How to Build
- get Toolchain
From android git server , codesourcery and etc ..
- arm-eabi-4.4.3
- edit Makefile
edit "CROSS_COMPILE" to right toolchain path(You downloaded).
EX) export CROSS_COMPILE= $(android platform directory you download)/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
Ex) export CROSS_COMPILE=/usr/local/toolchain/arm-eabi-4.4.3/bin/arm-eabi- // check the location of toolchain
$ export ARCH=arm
$ make msm8930_express_defconfig
$ make
2. Output files
- Kernel : arch/arm/boot/zImage
- module : drivers/*/*.ko
3. How to Clean
$ make clean
################################################################################
Way out of my depth but will try sometime next week to give it a go with arm-eabi-4.4.3. Major interview Monday so nothing before then.
Bazzan
Click to expand...
Click to collapse
That's from Samsung. It contains the kernel source as you already have seen
It's stock 3.4.0 so I don't know if it will work with CM :good:
Sent from my GT-I8730 using Tapatalk
Quote from jt1134:
jt1134 said:
I use the d2 family kernel source.
For stock ROMs and CM10, you can use the source and ramdisk provided by samsung.
For CM10.1 or higher, you'll have to get your hands very dirty. IMO the easiest route would be to port the missing drivers from stock samsung source to the msm8930-common kernel, and modifying it to work with them. This is how I did it for the I437 : http://review.cyanogenmod.org/#/c/47947/ . You may then use the serrano device trees as a template once the kernel is ready.
Click to expand...
Click to collapse
Updated first post with this info.
Sent from my GT-I8730 using Tapatalk

[Guide] to Build your KitKat ROM x HTC One X+ Int. (CM-AOKP-Carbon-Slim)(Ubuntu14LTS)

Hi, my name's Stefano I'm from Italy, and sorry for my poor english. This is the guide to build your own the KitKat (or whatever branch you want) for your International HOX+. We'll start, obviously, setting up your client (PC), and here we'll use ubuntu x64. Is possible to use almost any linux distribution (also MacOSX) but I prefer to stay on what is much supported and known (for me!). This guide is taken from internet and reading forums/blogs. I didn't invent anything, you can found a lot of guides like this. Just this is updated with last changes. For the setup part I read and paste a lot from here (thanks to sylentprofet).
Regard the hardware side you'll need at least of:
a Dual Core processor
4 Gb of RAM
80 Gb of hard disk for each repository (Better if SSD but don't required)
The Graphics Card don't care, we don't use to compile
A good internet connection, you have to download up to 40 Gb of stuff
A lot of patience, if you aren't go to download a ready ROM, it's better!
Time, time, time, time and again time!
How to Configure Ubuntu for Properly Compiling Android ROMs​
This guide applies to Ubuntu 13.04 Raring Ringtail 64 bit (but also down to 12.04 LTS which is the version that I prefer). Do not use the 32 Bit version. Also, PAY CLOSE ATTENTION when to use “sudo” and when to not. It can make things funky if you do something as root that you shouldn’t. During normal build you don't have absolutely need to use "sudo", just during the PC setup.
Much thanks goes out to Google, ProTekk, Canonical, and everyone else that I read a random paragraph here and snippet there.
First, let’s set up the correct JDK.
Many of you probably have some kind of wrong Java installed. Sad cupcake.Let’s get rid of that. Copy and paste this into a Terminal window:
Code:
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
Back to the Terminal. Copypasta the following:
Code:
sudo add-apt-repository ppa:webupd8team/java
This will add the correct PPA to your system for updated builds of Java 6 JDK that are compatible with 13.04 (or less). No more unrecognized Java version errors! Yay! And it’s self updating, so you don’t have to redownload binaries everytime they release a new version.
Next, we actually need to install the package. More copypasta:
Code:
sudo apt-get update && sudo apt-get install oracle-java6-installer
Follow the onscreen instructions. You have to Accept the Licensing Agreement or whatever. Hopefully no human centipede clauses. Once that is completed successfully, you will have to restart any open browsers with Java content for it to display correctly.
To make sure the correct version of Java is activated, run the following at the Terminal prompt:
Code:
java -version
You should see something like the following:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)​ 
Ok, back to a fresh Terminal prompt. Time for installing the guts to build stuff in Ubuntu. Because (K)Ubuntu no longer carries ia32-libs-multiarch and ia32-libs (from Saucy onwards), it is necessary to install from precise repos:
Code:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse"
sudo apt-get update
sudo apt-get install ia32-libs-multiarch
once is installed, you can remove repository:
Code:
sudo add-apt-repository --remove "deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse"
sudo apt-get update
Before start, install:
Code:
sudo apt-get install dpkg-dev
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev 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
And we wait. Don’t worry, this isn’t the crazy downloading part just yet.
When that is done, do this:
Code:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Now it's time to download and setup SDK Tools. First of all download Android SDK Tools for Linux x64. Extract the folder “sdk”, inside package, into your "Downloads" folder and rename it to "AndroidSDK" e.g..
Then come to your terminal and type:
Code:
cd ~/Downloads/AndroidSDK/tools
and after:
Code:
./android sdk
You can now see the GUI that propose all installable packages. Install Platform tools and Tools for most recent Android (4.4), with the most higher API (19+) version. Flag "accept" and install.
Once is complete, you have you need the binary for repo that will let you talk to git servers and download all that precious source code:
Code:
mkdir ~/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Open "~/.bashrc" to add a line:
Code:
sudo nano ~/.bashrc
At the very bottom, add the following line:
Code:
export PATH=~/bin:$PATH
Save it. In nano that would be Ctrl-O and then Enter. Then Ctrl-X to exit back to a prompt. Type to restart bash:
Code:
source ~/.bashrc
Now you have all need to work (or play) with your ubuntu and it's time to give the sources (repositories) from your preferred Team (who share the source code for their rom). The most known host service for sources and projects is GitHub. E.g. https://github.com/CyanogenMod/
The point of start of any repo is its "manifest" (default.xml) where the team list all it's projects (here an example), only the necessary to the building process.
Until last year was necessary to compile (before begin and looking to platform manifest) an own local manifest where we exclude from download all the devices/kernel/vendor parts unnecessary for our device. This saves up to some Gigabytes of download.
Fortunately now the repositories will download itself the necessary devices/kernel/vendor parts when we'll choose ("lunch") the device to build ("make"). With the exception of AOKP who wanna know, before initialize your local repo, for which device/s you'd like build.
Unfortunately, for the HOX+, if not Cyanogenmod or any platform who support directly your enrc2b, is necessary to create a local manifest, to import the device/kernel/vendor parts need to build a rom for your enrc2b. This part will insert to the end and befor your "lunch".
A device merged into a ROM source and its frameworks has always:
A device part specifical for its own (typically located into /device/"vendor"/"devicename")
A possible device part specifical for its processor (typically located into /device/"vendor"/"processor class/name")
A kernel part specifical for its device (typically located into /kernel/"vendor"/"device name")
A vendor blobs part generical with inside all or part of vendor devices (typically located into /vendor/"vendor"/"device name")
The (1) if specifical for the rom (Carbon is slightly different from CM, from AOKP or Slim).
The (2) maybe the same for alls.
The (3) maybe the same for alls.
The (4) maybe the same for alls.
I saw "maybe the same" for (2), (3) and (4), because often the teams make choice on every part to optimize the use and functionality of its rom.
In the specific (for the HOX+) we give this four parts from CM (that fortunately supports enrc2b) to insert them into another platform. Because our device isn't supported.
The (1) part will be modified in a number of make files, the (2), (3) and (4) instead will be the same.
Now I'll write a section for each Team/ROM you want to initialize, that's for me has sense. How take a sense to put each "platform/project" in a different folder (e.g. CarbonDev in a folder and Cyanogenmod in another, both sons of your Home folder).
In the waiting to read next part, better familiarize a little with terms like "breakfast, brunch, lunch, make" into Android contest.
Building Cyanogenmod
In the terminal, now we'll make a folder where to store the Android source code. Typically will make it in your home folder, within a folder called like your projected ROM, to identify from other stuff, open your terminal and type:
Code:
mkdir –p ~/Cyanogenmod
cd ~/Cyanogenmod
Now we are going to initialize your local repository, with the "branch" cm-11.0 (KitKat), in your terminal:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
And now, the most long part of the story: you’re going to get the source. We have to download around 10-15 Gbytes. First of begin the process, you must to know that you can accelerate the process related to your processor and, obviously, to your internet band. You can choose the number of simultaneous processes to start. They depends from the "#" in the "-j" parameter. E.g. the option -j6 is related to a “normal” processor. If you have a performant processor and/or internet connection, try to increment putting –j10 or more. On terminal:
Code:
repo sync -j6
From time to time, check the situation on output, maybe occurs a pair of hours or a whole night. But when all will be done, you’re ready to build Android!
Once you finish your repo sync, you’ll ready to build. In your terminal, into your working folder type (pay attention at the initial “dot”):
Code:
. build/envsetup.sh
The commands are loaded, now you can build (tune your -j# parameter as you want):
Code:
breakfast enrc2b && make -j6 bacon
At the end of all, your fresh ROM to flash will be in Cyanogenmod/out/target/product/enrc2b. Happy flash!
Thanks @Lloir for supervision.
IMPORTANT: to flash a KK rom on enrc2b you'll need the Lloir's CWM recovery, available here.
Building AOKP
Reserved 2
Building Carbon
In the terminal, now we'll make a folder where to store the Android source code. Typically will make it in your home folder, within a folder called like your projected ROM, to identify from other stuff, open your terminal and type:
Code:
mkdir –p ~/CarbonDev
cd ~/CarbonDev
Now we are going to initialize your local repository, with the "branch" kk (KitKat), in your terminal:
Code:
repo init -u https://github.com/CarbonDev/android.git -b kk
After, using your file browser, go to your Home, CarbonDev (enable "show hidden files") folder and enter into ".repo" folder too. Create a new folder named "local_manifests" and create a new file named e.g. "MyRoomService.xml", edit it with GEdit (disable, into preference, "always make a backup copy...") and paste the follow content into:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="github"
fetch="https://github.com/"
sync-j="4" />
<project name="STELIX/android_device_htc_enrc2b_CarbonDev" revision="kitkat" path="device/htc/enrc2b" remote="github" />
<project name="STELIX/android_device_htc_tegra3-common" revision="cm-11.0" path="device/htc/tegra3-common" remote="github" />
<project name="STELIX/android_kernel_htc_enrc2b_CM" revision="cm-11.0" path="kernel/htc/enrc2b" remote="github" />
<project name="TheMuppets/proprietary_vendor_htc" revision="cm-11.0" path="vendor/htc" remote="github" />
</manifest>
You have just create a local manifest, to add certain projects that this platform haven't yet. It git clone my sources, which are simply CM sources modified for the CarbonDev frameworks needs.
And now, the most long part of the story: you’re going to get the source. We have to download around 10-15 Gbytes. First of begin the process, you must to know that you can accelerate the process related to your processor and, obviously, to your internet band. You can choose the number of simultaneous processes to start. They depends from the "#" in the "-j" parameter. E.g. the option -j6 is related to a “normal” processor. If you have a performant processor and/or internet connection, try to increment putting –j10 or more. On terminal:
Code:
repo sync -j6
From time to time, check the situation on output, maybe occurs a pair of hours or a whole night. But when all will be done, you’re ready to build Android!
Once you finish your repo sync, you’ll ready to build. In your terminal, into your working folder type (pay attention at the initial “dot”):
Code:
. build/envsetup.sh
The commands are loaded, now you can lunch:
Code:
lunch
Choose the number corresponding to your "carbon_enrc2b-userdebug" (and press ENTER on your keyboard!)
When the prompt come back you're ready to "make carbon":
Code:
make carbon -j6
Tuning your -j# parameter as you want...
At the end of all, your fresh ROM to flash will be in CarbonDev/out/target/product/enrc2b. And Happy flash!
Thanks @Lloir for supervision.
IMPORTANT: to flash a KK rom on enrc2b you'll need the Lloir's CWM recovery, available here.
Reserved 4
Reserved 5
Reserved 6
I'm using mint 16. What should I do different?
Sent from my hammerhead
Cuzz1369 said:
I'm using mint 16. What should I do different?
Sent from my hammerhead
Click to expand...
Click to collapse
Usually is recommended Ubuntu or Mint... I think there is no difference. Make attention if during packages installation it report any error.
PippoX3 said:
Usually is recommended Ubuntu or Mint... I think there is no difference. Make attention if during packages installation it report any error.
Click to expand...
Click to collapse
Awesome. Maybe you could add a guide on how to cherry pick commits next?
It tells me I have java version 1.5.0
java version "1.5.0"
gij (GNU libgcj) version 4.8.1
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Installed 1.6 and get this error
You are attempting to build with an unsupported JDK.
You use OpenJDK but only Sun/Oracle JDK is supported.
Please follow the machine setup instructions at
https://source.android.com/source/download.html
need some help here.
Edit: Figured it out, building now. Thanks
Cuzz1369 said:
It tells me I have java version 1.5.0
java version "1.5.0"
gij (GNU libgcj) version 4.8.1
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Installed 1.6 and get this error
You are attempting to build with an unsupported JDK.
You use OpenJDK but only Sun/Oracle JDK is supported.
Please follow the machine setup instructions at
https://source.android.com/source/download.html
need some help here.
Edit: Figured it out, building now. Thanks
Click to expand...
Click to collapse
Good. Hope you remove your open java. The first terminal remove any not supported java. Follow the guide step after step.
The cherry-pick is so simple to apply. Will see after. Thanks.
you can use OJDK with ALL the sources.
it will just come up with that "warning" and then will carry on building perfectly fine
thanks for the guide
can i use knoppix/debian instead of ubuntu ??
MasalaMan said:
thanks for the guide
can i use knoppix/debian instead of ubuntu ??
Click to expand...
Click to collapse
Yes, I use Arch. The instructions for Debian are essentially the same as Ubuntu
Sent from my Nexus 5 using Tapatalk
Lloir said:
Yes, I use Arch. The instructions for Debian are essentially the same as Ubuntu
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
Thanks mate. I haven't all this experience on different distributions. If I have a little of time, today I will add another slice to the pie...
Thank you so much for this guide @PippoX3 I am about to have the most fun of my life now. Thanks again my friend
Sent from my Nexus 5 using XDA Premium 4 mobile app
skulldreamz said:
Thank you so much for this guide @PippoX3 I am about to have the most fun of my life now. Thanks again my friend
Sent from my Nexus 5 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
You're welcome mate. To share should serve to make more people happy!
In this thread it say you need proprietary files from the device. I don't see that step on your guide. So which is the right way?
http://forum.xda-developers.com/showthread.php?t=2060017
COMPILE From Source For Any Phone On Linux Distros [BUILD ENVIRONMENT TO COMPILE]
Sent from my hammerhead
Github.com/themuppets/htc all the prop files are uploaded there
Sent from my Nexus 5 using Tapatalk

[REQUEST] LG h840 custom rom

Can anyone make a custom rom for that phone? Like lineage os?!
Yes please, I dont understand how is that there are many roms for h850, for example, and there is absoloutely nothing for h840
I'm waiting for a custom ROM too... Nothing for H840 even if it is similar to G5 and has bootloader unlocked. Why this?
I asked the dev of Fulmics Rom if it would not be possible to build a rom for the H840 since I have used his rom's before and they were brilliant. Got some snotty reply from a newish user which kinda put me off. This is not the XDA I used to love and support. It's a pity I don't have the time to dabble in personal projects else I would put something together to do this.
How can we contact a developer or who do we have to talk to?
cornelha said:
I asked the dev of Fulmics Rom if it would not be possible to build a rom for the H840 since I have used his rom's before and they were brilliant. Got some snotty reply from a newish user which kinda put me off. This is not the XDA I used to love and support. It's a pity I don't have the time to dabble in personal projects else I would put something together to do this.
Click to expand...
Click to collapse
The problem is the G5 has many variants with different chipsets or additional HW/firmware features. You cannot create a generic ROM across all of them so they choose the ones they want to support. Also you need an unlocked bootloader to apply a custom ROM and only 3 of the variants have been unlocked.
lywyn said:
The problem is the G5 has many variants with different chipsets or additional HW/firmware features. You cannot create a generic ROM across all of them so they choose the ones they want to support. Also you need an unlocked bootloader to apply a custom ROM and only 3 of the variants have been unlocked.
Click to expand...
Click to collapse
The H840 bootloader unlock is supported. The guide here explains all steps required to unlock, root and install TWRP. Check, Check and Check. The Fulmics dev has been doing this for quite some time and definitely knows how to put together a rom which will flash different kernels for different devices.
I have been around XDA for ages, built some roms back in the day so I understand exactly what is required. It is just the attitude of users that has changed over time that puts me off from pursuing a way to get a rom on this device. I don't feel like being harassed by people who do not take the time to notice the "Senior Member" badge, which basically means I am not a noob.
cornelha said:
The H840 bootloader unlock is supported. The guide here explains all steps required to unlock, root and install TWRP. Check, Check and Check. The Fulmics dev has been doing this for quite some time and definitely knows how to put together a rom which will flash different kernels for different devices.
I have been around XDA for ages, built some roms back in the day so I understand exactly what is required. It is just the attitude of users that has changed over time that puts me off from pursuing a way to get a rom on this device. I don't feel like being harassed by people who do not take the time to notice the "Senior Member" badge, which basically means I am not a noob.
Click to expand...
Click to collapse
Dear Senior Badge Owner, I'm sorry I was trying to be helpful.
It's people like you that put me of XDA. So you don;t like people harassing your expertise, go make your own ROM
*Plus* senior just means you've been a member a while, not that you're an expert or important. So assuming the senior = knowledgable is not the case.
lywyn said:
Dear Senior Badge Owner, I'm sorry I was trying to be helpful.
It's people like you that put me of XDA. So you don;t like people harassing your expertise, go make your own ROM
*Plus* senior just means you've been a member a while, not that you're an expert or important. So assuming the senior = knowledgable is not the case.
Click to expand...
Click to collapse
Oddly enough, I was explaining to you why I asked once and abandoned the effort in the Fulmics thread. Then for some reason you react exactly the opposite of what I expected.
So I am not going to edit the post to make it appear that I am being silly while attempting to be self important but if you click on a member's user name, you can basically see their history. I never said I am important, I am however a professional developer but unfortunately do not have the private capacity to build roms or develop on pet projects like I was able years ago. But back to the history, instead of an instant flame it takes less than 2 minutes to see that a user is/has been an active contributing member of the forum and as such display a level of civility.
cornelha said:
Oddly enough, I was explaining to you why I asked once and abandoned the effort in the Fulmics thread. Then for some reason you react exactly the opposite of what I expected.
So I am not going to edit the post to make it appear that I am being silly while attempting to be self important but if you click on a member's user name, you can basically see their history. I never said I am important, I am however a professional developer but unfortunately do not have the private capacity to build roms or develop on pet projects like I was able years ago. But back to the history, instead of an instant flame it takes less than 2 minutes to see that a user is/has been an active contributing member of the forum and as such display a level of civility.
Click to expand...
Click to collapse
The day when junior members stop with these inane replies aimed at senior members who have been a part of xda for close to 10 years is when I will start contributing again.
Click to expand...
Click to collapse
Yeah click on the name and see you rattle that "Senior" thing before, you like to point your seniority out. And the recent posts asking devs when you going to support H840 for ROMS and Mods, just like a noob. A rule most seniors, or people been around here 10 years, know is to be civil and not harass devs to support your device.
The Fulmics dev has been doing this for quite some time and definitely knows how to put together a rom which will flash different kernels for different devices.
I have been around XDA for ages, built some roms back in the day so I understand exactly what is required.
Click to expand...
Click to collapse
So you know what needs to be done but you're too busy. Yet you expect the fulmics dev to take time out to support your device.
But yes civility should be maintained so I apologise again for insulting your knowledge without doing a background check on your profile.
lywyn said:
Yeah click on the name and see you rattle that "Senior" thing before, you like to point your seniority out. And the recent posts asking devs when you going to support H840 for ROMS and Mods, just like a noob. A rule most seniors, or people been around here 10 years, know is to be civil and not harass devs to support your device.
So you know what needs to be done but you're too busy. Yet you expect the fulmics dev to take time out to support your device.
But yes civility should be maintained so I apologise again for insulting your knowledge without doing a background check on your profile.
Click to expand...
Click to collapse
I distinctly remember simply asking if he plans to develop for the H840, since I have used his roms on my previous LG G5 and they where brilliant (which I pointed out as well) and receiving a snarky comment from a user who couldn't bother to see if I knew anything about anything and pointed out exactly what I pointed out to you. When I 1st joined xda everyone kinda just worked together and as a rule you asked senior members for help (which I have provided numerous times just ask a member @CRACING for example) and didn't go off on a "NO ETA!!!", "DONT BE A N00B!!" or other tangent. I actually posted about this before, attempting to remind everyone that they too were once a noob.
I guess making like minded acquaintances on here is not like it used to be.
Right now I am uploading the source that I was working for some time. If any of you with a decent PC (8gb of ram) have the time and some basic knowledge maybe want to give it a try. I never finished compelling a build with this sources so I don't have any idea how it was going to end if you will going to try and you will have some trouble compelling this I'm afraid I will not going to be able to help you that much keep in mind that I'm not Developer and I have 0 time and a old PC with only 4Gb of ram
source link:
https://drive.google.com/open?id=0B67rXGNB6IzwaU43MWVuTHpKNzA
I suggest to use a LTS version of ubuntu, in this guide I'll be using Ubuntu 16.04
Let's start with a bit of cleaning:
Code:
sudo apt-get remove openjdk-* icedtea-* icedtea6-*
Install java8:
Code:
sudo add-apt-repository ppapenjdk-r/ppa
sudo apt-get update && sudo apt-get install openjdk-8-jdk
Install build tools:
Code:
sudo apt-get install git ccache automake lzop bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 g++-multilib python-networkx libxml2-utils bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev squashfs-tools pngcrush schedtool dpkg-dev liblz4-tool make optipng maven
Install repo:
Code:
mkdir ~/bin && curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo && chmod a+x ~/bin/repo
Edit ~/.bashrc (in this exaple I'm using gedit to do it):
Code:
gedit ~/.bashrc
Add those 2 lines at the bottom of the file (we are going to add also ccache to speed up our build time):
Code:
export PATH=~/bin:$PATH
export USE_CCACHE=1
Save it, close gedit and run:
Code:
source ~/.bashrc
Let's create some folders where we'll be doing the magic:
Code:
mkdir ~/android && cd ~/android
mkdir lineageos && cd lineageos
Initialize the local repo and download the source:
Code:
repo init -u git://github.com/LineageOS/android.git -b cm-14.1
repo sync --force-sync
It'll take quite some time, depends on your internet connection.
Once it's done downloading and checking out the files:
source build/envsetup.sh
brunch h840
Sent from my LG-H840 using Tapatalk
Can anyone compile the rom?
Wire1122 said:
Can anyone compile the rom?
Click to expand...
Click to collapse
I dont even have linux lol
This is the easiest part even my dog can install Ubuntu
Sent from my LG-H840 using Tapatalk
I am very curious to see if it would be possible to build this on Windows Subsystem for Linux. It is basically Ubuntu server core running inside of Windows 10. Full apt-get support which means all the tools can be installed without having to designate a seperate machine to it.
Wire1122 said:
Can anyone compile the rom?
Click to expand...
Click to collapse
I will compiler it later that day, around 7pm or 8pm CEST
Need a computer to compile?
<deleted>
---------- Post added at 09:11 PM ---------- Previous post was at 09:09 PM ----------
synescu said:
Right now I am uploading the source that I was working for some time. If any of you with a decent PC (8gb of ram) have the time and some basic knowledge maybe want to give it a try. I never finished compelling a build with this sources so I don't have any idea how it was going to end if you will going to try and you will have some trouble compelling this I'm afraid I will not going to be able to help you that much keep in mind that I'm not Developer and I have 0 time and a old PC with only 4Gb of ram
source link:
https://drive.google.com/open?id=0B67rXGNB6IzwaU43MWVuTHpKNzA
I suggest to use a LTS version of ubuntu, in this guide I'll be using Ubuntu 16.04
Let's start with a bit of cleaning:
Code:
sudo apt-get remove openjdk-* icedtea-* icedtea6-*
Install java8:
Code:
sudo add-apt-repository ppapenjdk-r/ppa
sudo apt-get update && sudo apt-get install openjdk-8-jdk
Install build tools:
Code:
sudo apt-get install git ccache automake lzop bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 g++-multilib python-networkx libxml2-utils bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev squashfs-tools pngcrush schedtool dpkg-dev liblz4-tool make optipng maven
Install repo:
Code:
mkdir ~/bin && curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo && chmod a+x ~/bin/repo
Edit ~/.bashrc (in this exaple I'm using gedit to do it):
Code:
gedit ~/.bashrc
Add those 2 lines at the bottom of the file (we are going to add also ccache to speed up our build time):
Code:
export PATH=~/bin:$PATH
export USE_CCACHE=1
Save it, close gedit and run:
Code:
source ~/.bashrc
Let's create some folders where we'll be doing the magic:
Code:
mkdir ~/android && cd ~/android
mkdir lineageos && cd lineageos
Initialize the local repo and download the source:
Code:
repo init -u git://github.com/LineageOS/android.git -b cm-14.1
repo sync --force-sync
It'll take quite some time, depends on your internet connection.
Once it's done downloading and checking out the files:
source build/envsetup.sh
brunch h840
Sent from my LG-H840 using Tapatalk
Click to expand...
Click to collapse
When I try to run "brunch h840"
I get the following message:
Code:
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:249: *** Can not locate config makefile for product "lineage_h840". Schluss.
build/core/product_config.mk:249: *** Can not locate config makefile for product "cm_h840". Schluss.
build/core/product_config.mk:249: *** Can not locate config makefile for product "lineage_h840". Schluss.
Device h840 not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for h840 not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/core/product_config.mk:249: *** Can not locate config makefile for product "lineage_h840". Schluss.
build/core/product_config.mk:249: *** Can not locate config makefile for product "lineage_h840". Schluss.
** Don't have a product spec for: 'lineage_h840'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
When I ran "brunch" without any arguments I got a list with lineage stuff, I saw lineage_h830-userdebug and lineage_h850-userdebug but no lineage_h840-userdebug
Help me with a IMEI
Well, i have a big problem, sorry for my bad english, i life in peru and i have a h840 but i cant root my phone because only with a european IMEI, lg gift me the archive that i need to root, somebody gift me a european IMEI or What i do for root my lg g5 se?
Thanks
Please, I want to know.
Is there any rom developing project for this phone (h840) at the moment? It looks like nobody is giving care of this!

Categories

Resources