Compile rom from source for S2 Plus
0. Before you start make sure to have Ubuntu 12.04 installed, a decent internet connection and a fast pc (quad core, 4-8 GB ram)
Click to expand...
Click to collapse
1. Setting up the build environment
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer
Click to expand...
Click to collapse
2. Installing required packages
Code:
sudo apt-get install git 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
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Click to expand...
Click to collapse
3. Set up ccache
Code:
gedit ~/.bashrc
Add these two lines
Code:
export USE_CCACHE=1
export CCACHE_DIR=[COLOR="Red"]#[/COLOR]
Replace # with your cache directory
Click to expand...
Click to collapse
4. Setting up repo tool
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Click to expand...
Click to collapse
5. Create working directory and initialize the repo
Code:
mkdir [COLOR="red"]#[/COLOR]
cd [COLOR="red"]#[/COLOR]
repo init -u [COLOR="red"]@[/COLOR]
Replace # with the name of the working dir (choose one)
Replace @ with the platform_manifest (or android) repository (for CyanogenMod @ = git://github.com/SamsungBCM-Cyanogenmod/android.git -b cm-10.2)
Click to expand...
Click to collapse
7. Time to sync!
Ok this is a boring part...
Code:
repo sync -j[COLOR="Red"]#[/COLOR]
Replace the # with the number of cores
It can take from 10 minutes to 2 hours. It depends by your connection and your pc specs
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Building
9. Finally... Time to build!!! :laugh:
This can be boring too if you have bad pc specs
Code:
. build/envsetup.sh
lunch cm_s2vep-userdebug
make -j[COLOR="Red"]#[/COLOR]
Replace # with the number of cores of your pc
Click to expand...
Click to collapse
Understanding where the bugs are
The first thing to do to understand where the bugs are is taking logcat
1.Open a terminal
2.cd to the adb folder
3.Write this to check that the device is recognized
Code:
adb devices
If serial shows continue
4.Now write this
Code:
adb logcat > logcat.txt
5.Wait 30 seconds and close the terminal
6.logcat.txt is the file containing the logcat
Click to expand...
Click to collapse
Reading the logcat
Search for the
Code:
E/> = error
F/> = fatal
Click to expand...
Click to collapse
Click to expand...
Click to collapse
KINGbabasula said:
Reserved 2
Click to expand...
Click to collapse
Thx !
SOMETIMES IT MAY NOT COMPILE CorRECTLY BECAUSE OF MY EXPERIMENTAL EDITS
just a question :
you will not compile the cm anymore and we have to compile for ourselves because its easier for you ?
BigT0mato said:
just a question :
you will not compile the cm anymore and we have to compile for ourselves because its easier for you ?
Click to expand...
Click to collapse
No... Some guys asked for the guide and i gave them. I will continue but they want to try themselves.
Inviato dal mio GT-I9070 con Tapatalk 2
KINGbabasula said:
No... Some guys asked for the guide and i gave them. I will continue but they want to try themselves.
Inviato dal mio GT-I9070 con Tapatalk 2
Click to expand...
Click to collapse
fatal: error parsing manifest /home/ryan/.repo/local_manifests/local_manifest.xml: junk after document element: line 3, column 0
I get this error : fatal: error parsing manifest /home/nils/CM10.1/.repo/local_manifests/local_manifest.xml: junk after document element: line 3, column 0
safariking said:
fatal: error parsing manifest /home/ryan/.repo/local_manifests/local_manifest.xml: junk after document element: line 3, column 0
Click to expand...
Click to collapse
warface123 said:
I get this error : fatal: error parsing manifest /home/nils/CM10.1/.repo/local_manifests/local_manifest.xml: junk after document element: line 3, column 0
Click to expand...
Click to collapse
Fixed
KINGbabasula said:
Fixed
Click to expand...
Click to collapse
What did you fixed ?
warface123 said:
What did you fixed ?
Click to expand...
Click to collapse
The error in local manifest
Inviato dal mio GT-I9070 con Tapatalk 2
@KINGbabasula
[email protected]:~/CM10.1$ repo init -u https://github.com/CyanogenMod/android.git -b cm-10.1
fatal: manifest 'default.xml' not available
fatal: error parsing manifest /home/nils/CM10.1/.repo/local_manifests/local_manifest.xml: junk after document element: line 3, column 0
Building now will see how it goes
warface123 said:
@KINGbabasula
[email protected]:~/CM10.1$ repo init -u https://github.com/CyanogenMod/android.git -b cm-10.1
fatal: manifest 'default.xml' not available
fatal: error parsing manifest /home/nils/CM10.1/.repo/local_manifests/local_manifest.xml: junk after document element: line 3, column 0
Click to expand...
Click to collapse
Did you copy paste new local manifest? I'm sure it works
Inviato dal mio GT-I9070 con Tapatalk 2
KINGbabasula said:
Did you copy paste new local manifest? I'm sure it works
Inviato dal mio GT-I9070 con Tapatalk 2
Click to expand...
Click to collapse
Yes it works syncing now
KINGbabasula said:
Did you copy paste new local manifest? I'm sure it works
Inviato dal mio GT-I9070 con Tapatalk 2
Click to expand...
Click to collapse
How do you do that?
Sent from my GT-I9105P using xda app-developers app
Do i need to delete all the information in userial.vendor.c and replace it with the link info you posted???
Same with audio.h
I don't get it can you post the right files?
safariking said:
Do i need to delete all the information in userial.vendor.c and replace it with the link info you posted???
Click to expand...
Click to collapse
No go to that line and delete red ones and add green ones
Inviato dal mio GT-I9070 con Tapatalk 2
Thanks for this! Not sure how you find the time between school and ROM compiling.
Related
I'm always surprised at the lack of good documentation for CM. But I thought I'd put together a quick guide for building CM9 on the G2X (this has been tested only on Ubuntu 11.10 32-bit)
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 openjdk-6-jdk pngcrush schedtool
Code:
mkdir -p ~/bin
mkdir -p ~/android/system
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
Code:
cd ~/android/system/
../../bin/repo init -u git://github.com/CyanogenMod/android.git -b ics
This is important:
You'll need to add the following lines to "~/android/system/.repo/manifest.xml"
Code:
<project path="device/lge/p999" name="CyanogenMod/android_device_lge_p999" />
<project path="device/lge/star-common" name="CyanogenMod/android_device_lge_star-common" />
Then you can run:
Code:
../../bin/repo sync -j16
I've had some issues with repo syncing properly, you might have to run this command a few times (don't be afraid to close the console and try running it again if it hangs)
Then you run:
Code:
~/android/system/vendor/cm/get-prebuilts
Please read the following:
In most guides you read, you are told to run "extract-files.sh" with the device plugged in, to pull the proprietary files off the phone. Do not do this. That script hasn't been updated for ICS and doesn't pull the needed files. Do the following instead:
Code:
cd ~
git clone git://github.com/koush/proprietary_vendor_lge.git -b ics
Then, make a new folder inside "~/android/system/vendor" named "lge". Copy the p999 folder inside ~/proprietary_vendor_lge into ~/android/system/vendor/lge.
Then you can run:
Code:
cd ~/android/system
. build/envsetup.sh
brunch p999
Please post any questions here, I'll try my best to answer them. There may be typo' so please let me know if you run into any issues, thanks!
Not to be snide, but maybe a 'tutorial' or link to a thread which explains the individual commands. Some of them I am familiar with, either because something like CD exists on PC as well or through beating my head into a table trying to find explanations of commands and either by way of a quick comment or s/g I get the answer. But I've had a hard time finding an explanation of android-related commands or CWM scripts. In short, for people who aren't noons but aren't Linux savvy or what not, a guide or link would be nice.
Otherwise, sweet! Thanks!
Sent from my LG-P999 using xda premium
@Волк,
If you dont know what something(tool, cmd, etc.) is, type man in your terminal. Ex: man git. You can also type the tool/cmd name and use the help switch. Ex: git --help Sometimes the help switch will vary. Could be --help, -h, or --h. Online Linux man pages can be found at Linux.die.net
-----------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------
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 openjdk-6-jdk pngcrush schedtool
*sudo apt-get is used to install packages in the terminal. The packages above are un-met dependencies such as java, tools, development files/packages, etc.
Also can be done in the software center.
----------------------------------------------------------------------
mkdir -p ~/bin
*mkdir is a tool/cmd to make a directory and the -p is a switch to make a parent directory.
----------------------------------------------------------------------
*The ~ is a command line shortcut. Instead of typing /home/computername/ use the ~ instead.
----------------------------------------------------------------------
mkdir -p ~/android/system
*same as above.
----------------------------------------------------------------------
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
*curl is a tool to transfer data to or from a server, using one of the supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP). The command is designed to work without user interaction. curl offers a busload of useful tricks like proxy support, user authentication, FTP upload, HTTP post, SSL connections, cookies, file transfer resume and more. curl is powered by libcurl for all transfer-related features.(Taken from the man pages)
in this case your downloading a git repo and piping it to ~/bin/repo. Type https://dl-ssl.google.com/dl/googlesource/git-repo/repo in your browser without the pipe and see what happens. But piping or directing output can be done by using the > symbol.
----------------------------------------------------------------------
chmod a+x ~/bin/repo
*chmod means to (CH)ange file (MOD)e bits. A is for all users, U is for root only, and O is for other(guests). You can add modes or remove them with the + or - signs. Permissions are r for read, w for write and x for execute. Sometimes you will need to be root to change/modify modes/permissions.
----------------------------------------------------------------------
CD means to (c)hange (d)irectory. Ex: cd /home/ubuntu/Documents/
----------------> I AM NOT TOO FAMILIAR WITH GIT, SVN, ETC.
Thank you for posting this guide. I have not tested it yet because I am out of town for work. I an going to attempt building this weekend. I used to roll my own on CM7 and want to do the same with CM9. Is the packages required to build CM9 the same as CM7 (software environment)?
loganmc10 said:
Please read the following:
In most guides you read, you are told to run "extract-files.sh" with the device plugged in, to pull the proprietary files off the phone. Do not do this. That script hasn't been updated for ICS and doesn't pull the needed files. Do the following instead:
Code:
cd ~
git clone git://github.com/koush/proprietary_vendor_lge.git -b ics
Then, make a new folder inside "~/android/system/vendor" named "lge". Copy the p999 folder inside ~/proprietary_vendor_lge into ~/android/system/vendor/lge.
Then you can run:
Code:
cd ~/android/system
. build/envsetup.sh
brunch p999
Please post any questions here, I'll try my best to answer them. There may be typo' so please let me know if you run into any issues, thanks!
Click to expand...
Click to collapse
you could do this part easier like this
Code:
cd ~/android/system
mkdir vendor
cd vendor
git clone git://github.com/koush/proprietary_vendor_lge.git -b ics
Then rename the folder you cloned to lge. in some cases you can do
Code:
git clone git://github.com/koush/proprietary_vendor_lge.git -b ics lge
and it will name the folder you clone lge for you
At least I do something along those lines.
If it freezes you do not have to close console. Simply push ctrl+z and it will kill the command and you can reissue it again.
codecaine21 said:
@Волк,
If you dont know what something(tool, cmd, etc.) is, type man in your terminal. Ex: man git. You can also type the tool/cmd name and use the help switch. Ex: git --help Sometimes the help switch will vary. Could be --help, -h, or --h. Online Linux man pages can be found at Linux.die.net
Click to expand...
Click to collapse
Beautiful, thanks a ton! Now I don't feel like I'm reading Czech, lol.
Awesome ..Thanks!
loganmc10, that was awesome!
Thanks!
------------------------------------------------------------------------------
edit1:
as proposed by kwes1020 used
git clone git://github.com/koush/proprietary_vendor_lge.git -b ics lge
to get the lge proprietary repo in place..
Image is bootable, has wifi, but no phone..
------------------------------------------------------------------------------
after many times of trying to get thhe repo to sync, I am finally building ICS for my G2x.
The sync would stall with two items remaining. I deleted everything and started over many times. What I finally did was monitor where it was failing and deleted just that directory (prebuilts). Restarted the sync and it completed cleanly. I have bee compiling for about 30 minutes without errors. I hope the final product is bootable.
edit, the final product was bootable. No camera, data, or phone.
Modified steps to build ROM (KOUSH repo not needed)
Steps:
1. 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 openjdk-6-jdk pngcrush schedtool
2. mkdir -p ~/bin
3. mkdir -p ~/android/system
4. use curl to get repo to ~/bin/repo
5. chmod a+x ~/bin/repocd ~/android/system/
6. ../../bin/repo init -u git://github.com/CyanogenMod/android.git -b ics
7. edit manifest.xml and add the following 2 lines..
<project path="device/lge/p999" name="CyanogenMod/android_device_lge_p999" />
<project path="device/lge/star-common" name="CyanogenMod/android_device_lge_star-common" />
8. repo sync -j16
9. ~/android/system/lunch (pick 21 or whatever references cm_p999)
10. ~/android/system/vendor/cm/get-prebuilts
11. cd ~/android/system/device/lge/p999
12. Plug in device and turn usb debugging on
13. ./setup-makefiles.sh
14. ./extract-files.sh
15. cd ~/android/system/
16. make clean && repo sync && brunch p999
THE BUILD SHOULD COMPLETE AFTER STEP 15
17. cd ~/android/system/out/target/product/p999
18. adb push update-cm-9.0.0-RC0-p999-KANG-signed.zip /sdcard/ROM/update-cm-9.0.0-RC0-p999-KANG-signed.zip
19. Boot into recovery, wipe cache, dalvik cache, install update-cm-9.0.0-RC0-p999-KANG-signed.zip, install gapps (currently 03042012)
enjoy..(Data/WIFI/Phone works.. No Camera)
wallhue said:
Edit 2 : IT ALL WORKS NOW (with some tweaks..)
Code:
Steps:
1. 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 openjdk-6-jdk pngcrush schedtool
2. mkdir -p ~/bin
3. mkdir -p ~/android/system
4. use curl to get repo to ~/bin/repo
5. chmod a+x ~/bin/repocd ~/android/system/
6. ../../bin/repo init -u git://github.com/CyanogenMod/android.git -b ics
7. edit manifest.xml and add the following 2 lines..
<project path="device/lge/p999" name="CyanogenMod/android_device_lge_p999" />
<project path="device/lge/star-common" name="CyanogenMod/android_device_lge_star-common" />
8. ~/android/system/lunch (pick 21 or whatever references cm_p999)
8. repo sync -j16
9. ~/android/system/vendor/cm/get-prebuilts
10. cd ~/android/system/device/lge/p999
11. Plug in device and turn usb debugging on
12. ./setup-makefiles.sh
13. ./extract-files.sh
14. cd ~/android/system/
15. make clean && repo sync && brunch p999
THE BUILD SHOULD COMPLETE AFTER STEP 15
16 cd ~/android/system/out/target/product/p999
17 adb push update-cm-9.0.0-RC0-p999-KANG-signed.zip /sdcard/ROM/update-cm-9.0.0-RC0-p999-KANG-signed.zip
18. Boot into recovery, wipe cache, dalvik cache, install update-cm-9.0.0-RC0-p999-KANG-signed.zip, install gapps (currently 03042012)
enjoy..
Click to expand...
Click to collapse
Did the camera work?
wallhue said:
Steps:
1. 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 openjdk-6-jdk pngcrush schedtool
2. mkdir -p ~/bin
3. mkdir -p ~/android/system
4. use curl to get repo to ~/bin/repo
5. chmod a+x ~/bin/repocd ~/android/system/
6. ../../bin/repo init -u git://github.com/CyanogenMod/android.git -b ics
7. edit manifest.xml and add the following 2 lines..
<project path="device/lge/p999" name="CyanogenMod/android_device_lge_p999" />
<project path="device/lge/star-common" name="CyanogenMod/android_device_lge_star-common" />
8. repo sync -j16
9. ~/android/system/lunch (pick 21 or whatever references cm_p999)
10. ~/android/system/vendor/cm/get-prebuilts
11. cd ~/android/system/device/lge/p999
12. Plug in device and turn usb debugging on
13. ./setup-makefiles.sh
14. ./extract-files.sh
15. cd ~/android/system/
16. make clean && repo sync && brunch p999
THE BUILD SHOULD COMPLETE AFTER STEP 15
17. cd ~/android/system/out/target/product/p999
18. adb push update-cm-9.0.0-RC0-p999-KANG-signed.zip /sdcard/ROM/update-cm-9.0.0-RC0-p999-KANG-signed.zip
19. Boot into recovery, wipe cache, dalvik cache, install update-cm-9.0.0-RC0-p999-KANG-signed.zip, install gapps (currently 03042012)
enjoy..(Data/WIFI/Phone works.. No Camera)
Click to expand...
Click to collapse
This will definitely not work. the "extract-files.sh" script hasn't been updated since gingerbread, it doesn't pull all the needed files from the device. Also why do you run "setup-makefiles.sh" before extract-files? It is run at the end of the "extact-files.sh" script, as you can see here:
https://github.com/CyanogenMod/android_device_lge_p999/blob/ics/extract-files.sh
On a final note, there is no need to run "lunch", "brunch" is all that is needed. You can go here for an explanation on the differences between lunch & brunch
I don't think pulling the proprietary files from Koush's repo works properly for the G2X yet, but it's definitely more correct than using the extract-files.sh script (how do you think the build bot builds the ROM's? Do they have all 70 CM devices plugged into the build server? Nope, they use that repo)
Thanks for the tutorial, loganmc10! I have built many CM7 KANG's for the G2x without issue, but I seem to be having some problems with CM9. I figured out what I assumed was the proper way to build CM9 for the G2x a few weeks ago, and your tutorial matches what I did, so I know I'm on the right path, but my CM9 KANG's have a few deal-breaking issues (and possibly others, but I haven't run my KANG's long enough to know of any others):
1.) No 4G/HSDPA+ network, Only EDGE. (Or at least I only see the "E" indicator).
2.) No Wi-Fi Calling. Get "Wi-Fi Calling has stopped" error messages starting immediately after boot.
3.) Camera doesn't work, receive an error message that the camera can't be accessed.
I'd like to know if anyone has created a G2x CM9 KANG without these issues and what they did differently. I know it's possible from running Ricardo Cerqueira's KANG's. Any help would be greatly appreciated.
Holy crap. I want to learn this stuff... but I am lost as sh*t! Any ideas of what I should read or learn so I can eventually follow along!
Sent from my LG-P999 using xda premium
BobbyDukes707 said:
Holy crap. I want to learn this stuff... but I am lost as sh*t! Any ideas of what I should read or learn so I can eventually follow along!
Sent from my LG-P999 using xda premium
Click to expand...
Click to collapse
You gotta at lease be able to read Java, some C++, and have a basic knowledge of how Linux works
and if you want to be lazy you can just add this to your manifest
<project name="koush/proprietary_vendor_lge.git" path="vendor/lge" remote="github" />
no need to fool around with the files from koush they will be placed in the right dir
i build using this command
cd vendor/cm && ./get-prebuilts && cd ../../ && . build/envsetup.sh && brunch p999 CC=gcc-4.4 CXX=g++-4.4 USE_CCACHE=1 -j24 2> warn.log
cd vendor/cm && ./get-prebuilts && cd ../../
for getting prebuilds everything time i build icheck for updates
. build/envsetup.sh
no need to explain i think
brunch p999
since it is less typing then breakfast p999 && mka bacon
CC=gcc-4.4 CXX=g++-4.4
selecting old gcc toolchain
USE_CCACHE=1
yup i want to use ccache should be enabled by default but just to be sure
-j24
building with 24 threats i want to use multiple cores and not just one
2> warn.log
filtering out hose annoying error and write them to warn.log
then i have two terminals one with the building process
and one with "tail -f warn.log" in case i get abuild error
this is interesting
Does anyone know how to get the camera to work after building? Everything else seems to work fine. Thanks!
is there an update to this? koush git isnt working for proprietary_vendor_lge... hmm let me scope his github
edit:
found it here:
https://github.com/x0xhellx0x/proprietary_vendor_lge
da-pharoah said:
is there an update to this? koush git isnt working for proprietary_vendor_lge... hmm let me scope his github
edit:
found it here:
https://github.com/x0xhellx0x/proprietary_vendor_lge
Click to expand...
Click to collapse
For some reason its been deleted from koushs git :-\
Sent from my LG-P999 using Tapatalk 2
Is there a way to shrink down the repo sync to just ics? It seems that its downloading also cm7 as well as every other phone. Humongous sync going on here... Im new at this, but I understand enough and there has to be a way to sync just the stuff needed for ics.
Sent from my LG-P999 using xda app-developers app
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
I know there are many other guides avalable regarding this, But I tried to focus on the small points also that many guides overlook
that's why I have this for you. Do let know if I have missed something or more details have to be included in case still there is a difficulty in compiling
This thread on Madteam Forums: http://madteam.co/forum/development...lt-rom-for-your-device-(ultra-noob-friendly)/
So lets start with simple things
Basic FAQ:
Q: What is a Source built rom?
A: Source Built Roms are roms that are compiled from source on a Linux Platform! They are not themed manually.
Q: How do we build these type of roms?
A: Setup Linux and then follow this guide.
Click to expand...
Click to collapse
This post/guide is divided into 4 parts:
1. Setting up build environment
2. Machine specifications etc.
3. Device Tree and source basics
4. Syncing Source and Building
PART 1: Setting up build environment
Type sudo su and then your password to get rid of Admin Permissions
#Installing Python
STEP 1: Open terminal (CTRL + ALT + T)
Then execute the following commands in terminal one by one
Code:
sudo apt-get install build-essential gcc
cd Downloads
wget http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz
tar -xvzf Python-2.5.6.tgz
cd Python-2.5.6
./configure --prefix=/usr/local/python2.5
make
sudo make install
sudo ln -s /usr/local/python2.5/bin/python /usr/bin/python2.5
Now Python is configured
#Installing JDK
As far as I know PPA which was the earlier method of installing JDK etc. doesn't exist's anymore, So I used another way!
Step 1: Open Terminal (CTRL + ALT + T)
STEP 2: Now we need to download the JDK 6 Binary by executing this command in terminal
Code:
wget --no-check-certificate --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin"
STEP 3: Then we need to run the binary and move it to a shared location:
Code:
chmod +x jdk-6u45-linux-x64.bin
sudo ./jdk-6u45-linux-x64.bin
sudo mv jdk1.6.0_45 /usr/lib/jvm/
STEP 4: Now you have to install all binaries and give them highest priority, This will also overwrite the previous version of Java Binaries in your computer
Code:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 1
sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_45/bin/javaws 1
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 1
sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 1
STEP 5: Now check if JDK 1.6 is selected on this:
Code:
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
sudo update-alternatives --config jar
sudo update-alternatives --config javadoc
Now JDK is configured! To check if it is done
Execute this is Terminal
Code:
java -version
Output will be similar to this
Code:
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)
#Installing GNU Make
Code:
cd Downloads
wget -o make.tar.gz http://ftp.gnu.org/gnu/make/make-3.81.tar.gz
tar -xvzf make-3.81.tar.gz
cd make-3.82
./configure
sudo make install
These commands are for Make 1.81 if you want to install Make 1.82 Execute these
Code:
cd
wget -o make.tar.gz http://ftp.gnu.org/gnu/make/make-3.82.tar.gz
tar -xvzf make-3.82.tar.gz
cd make-3.82
./configure
sudo make install
Now GNU make is configures
#Installing Android SDK
STEP ONE: Download the SDK from http://developer.android.com/sdk/index.html and extract it in a folder called "sdk" in the Downloads folder
STEP TWO: Now, Execute these commands in terminal
Code:
cd ~/Downloads/sdk/tools/
./android sdk
SDK is configured now :victory:
#Installing required packages:
STEP 1: Open Terminal
Now execute these commands:
Code:
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 pngcrush gcc-multilib lib32z1 schedtool
Good, Now you have successfully setup linux build environment!
PART 2: Machine specifications and other misc. stuff
Basic Computer Specs:
2Ghz Dual Core Processor
2GB Minimum ram
50GB File Space (For only one rom source)
*PLEASE NOTE*: This is the basic specification, It really depends on the condition of your ram and cpu!
If you want to use other apps while compilation you should make a 5GB minimum swap partition!
If ram is more than 4GB ram then you don't swap partition!
PART 3: DEVICE TREE AND SOURCE BASICS
Basic source folders:
/packages - Proprietary rom applications
/framework - Framework (Overall rom UI and stuff)
/device - Device config
/vendor - Vendor Tree and other vendor files
/hardware - Hardware drivers
Q: What is BoardConfig.mk?
A: It's the file where you setup path's to files like toolchain etc. and enable/disable stuff, its very easy to understand. You can find it in your device's tree
Q: Where is build.prop in source?
A. Build.prop is available in the source in the form of system.prop in the device tree!
Q: How to remove ringtones, video editor, CM wallpapers from bulid?
A: Go to device/releasetools/extras.txt and Delete anything you don't want in your build
PART 4: Syncing Source and Building
# Installing Repo Package
Code:
mkdir ~/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
STEP 2: Now it is recommended to reboot your computer (No need of sudo su after reboot)
STEP 3: Now make directory:
Code:
mkdir -p ~/rom/android/system
STEP 4: Go into directory and set path for Repo Package
Code:
cd ~/rom/android/system
PATH=~/bin:$PATH
STEP 5: NOW ITS TIME FOR SYNCING:
Their are different sources for different roms:
Some are listed bellow:
MIUI - www.github.com/micode/
Rootbox - www.github.com/Root-Box/
rasbeanjelly - www.github.com/rascarlo/
Xylon AOSP - www.github.com/xyaosp/
PAC-Man - www.github.com/PAC-Man/
CyanogenMod - www.github.com/Cyanogenmod/
CarbonROM - www.github.com/carbondev/
SaberMOD - www.github.com/SaberMOD/
AOKP - www.github.com/AOKP/
From the above collection some are Gingerbread some are ICS and some are JB 4.1/4.2 you have to visit these links via browser and see which source is which and follow the commands given at android.git/platform_manifest.git
Click to expand...
Click to collapse
For CM10.1 source execute this:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm10.1
For syncing CM10 source execute:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
You have to find for the rest!!
PS: You don't have to execute all the repo init commands written above
Now to sync execute this after the the repo init command
Code:
repo sync
Once it finishes without breaking all the folders will appear in rom/android/system folder
now execute this:
Code:
mkdir -p ~/rom/android/system/device/<ManufacturerName>/<DeviceCodeName>
and extract the device config/tree here
for me its samsung/totoro (galaxy Y, Don't mind )
then do the following:
Code:
mkdir -p ~/rom/android/system/vendor/<ManufacturerName>/<DeviceCodename>
Its the same as for the device folder
Now for compiling:
Code:
. build/envsetup.sh
lunch cm_<DeviceCodename>-eng
brunch cm_<DeviceCodename>-eng
Your build will be located at /rom/android/system/out as <RomName>-date/month/year-UNOFFICIAL-<DeviceCodeName>.zip
HAPPY COMPILING
Credits:
MadTeam (motafoca, whitexp etc.) for MADTeam Forums and many help
Team Broadcom CM (bieltv.3, SpaceCaker, Psychogame etc.) for giving my device a quite stable cm.. I learnt to compile because of them! Cheers
BeerGang
mithun46
abhisahara
galaxyfreak
cybojenix
Sniper Killer for supporting me a lot! Thanks dude
prototype-U for Supporting..
Others who supported me
IF YOU LIKE MY GUIDE, DO RATE THIS THREAD A FIVE STAR!
THOSE WHO ARE FACING ERRORS, DO POST YOUR PROBLEM at speed_bot's Source Building Help Thread
Good good !! Nicely compiled
abhisahara said:
Good good !! Nicely compiled
Click to expand...
Click to collapse
Thanks
I'll update this guide whenever I get time
Good work on this, I found it quite clear keep up the good work!
Sent from my GT-I9505 using Tapatalk 4 Beta
nicely copied
Aniruddh Chandratre said:
nicely copied
Click to expand...
Click to collapse
Just read what I said at the begging of the thread!
If you are too lazy then:
I know there are many other guides avalable regarding this, But I tried to focus on the small points also that many guides overlook
that's why I have this for you. Do let know if I have missed something or more details have to be included in case still there is a difficulty in compiling
Click to expand...
Click to collapse
And yes, I took reference from others guide... I do give credits!
Have you ever compiled it(successfully) yourself?
Sent from my HTC Desire X using xda app-developers app
prototype-U said:
Have you ever compiled it(successfully) yourself?
Sent from my HTC Desire X using xda app-developers app
Click to expand...
Click to collapse
Yes.. I did..
Thanks for your support
Arnav.G said:
Yes.. I did..
Thanks for your support
Click to expand...
Click to collapse
Where is it?
Sent from my HTC Desire X using xda app-developers app
prototype-U said:
Where is it?
Sent from my HTC Desire X using xda app-developers app
Click to expand...
Click to collapse
It will come...
Please don't spam the thread now! I know you are a RC and you know the rules but still.. Please
http://xda-university.com/as-a-developer/getting-started-building-android-from-source
Nice simplifications...
Noob friendly? Lol! Did you test it on yourself!
When I run the binaries on jdk
I get errors on the 2nd command-Syntax error
Why >
Fang Leone said:
When I run the binaries on jdk
I get errors on the 2nd command-Syntax error
Why >
Click to expand...
Click to collapse
Can you please explain your problem in a little more details?
"This Story Ends Where It Began" - Octavarium (Dream Theater)
Sent from my GT-I9505
Great Guide!!
This is very kind of you to make this helpful thread. It really helped me alot after setting up my new build environment. I ran into an error on you post that you may want to correct, other than that, great work! Here is the typo
"cd Downloads
wget -o make.tar.gz http://ftp.gnu.org/gnu/make/make-3.81.tar.gz
tar -xvzf make-3.81.tar.gz<--this is correct.
cd make-3.82<---it changes here.
./configure
sudo make install"
Hello guys!
I have an error at brunch:
Code:
host Java: guavalib (/home/richard/android/system/out/host/common/obj/JAVA_LIBRARIES/guavalib_intermediates/classes)
logtags: /home/richard/android/system/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/content/EventLogTags.java <= frameworks/base/core/java/android/content/EventLogTags.logtags
logtags: /home/richard/android/system/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/speech/tts/EventLogTags.java <= frameworks/base/core/java/android/speech/tts/EventLogTags.logtags
logtags: /home/richard/android/system/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/webkit/EventLogTags.java <= frameworks/base/core/java/android/webkit/EventLogTags.logtags
[B]make: *** No rule to make target `/home/richard/android/system/out/host/linux-x86/bin/dx', needed by `/home/richard/android/system/out/target/common/obj/APPS/Apollo_intermediates/proguard.classes-with-local.dex'. Stop.[/B]
make: *** Waiting for unfinished jobs....
logtags: /home/richard/android/system/out/target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates/src/src/java/com/android/internal/telephony/EventLogTags.java <= frameworks/opt/telephony/src/java/com/android/internal/telephony/EventLogTags.logtags
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Anyone knows what's causing it? It couldn't be the roomservice.xml in local_manifest as I used the one which another person successfully built CM with. I also repo sync'ed a few times already. I tried make clobber and built again, but nothing :crying:
I am building PACMAN ROM (4.3) now by the way.
All help is appreciated (with a thank!)
Greedings everyone
For some time now i am trying to download and compile CyanongenMod Sources for my Device. I Install VirtualBox + Linux Mint + all the needed stuff. Then i do the repo init and everything looks ok but when i do the repo sync it always throw me a error fetch stop because of sync errors. Ive done it a lot of time with no luck. Also i tried the repo sync -f which finaly finishes fetching things but stops at getting the project tree. Can anyone help me? :/ its really frustrating
vale amicis said:
I know there are many other guides avalable regarding this, But I tried to focus on the small points also that many guides overlook
that's why I have this for you. Do let know if I have missed something or more details have to be included in case still there is a difficulty in compiling
This thread on Madteam Forums: http://madteam.co/forum/development...lt-rom-for-your-device-(ultra-noob-friendly)/
So lets start with simple things
Basic FAQ:
This post/guide is divided into 4 parts:
1. Setting up build environment
2. Machine specifications etc.
3. Device Tree and source basics
4. Syncing Source and Building
PART 1: Setting up build environment
Type sudo su and then your password to get rid of Admin Permissions
#Installing Python
STEP 1: Open terminal (CTRL + ALT + T)
Then execute the following commands in terminal one by one
Code:
sudo apt-get install build-essential gcc
cd Downloads
wget http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz
tar -xvzf Python-2.5.6.tgz
cd Python-2.5.6
./configure --prefix=/usr/local/python2.5
make
sudo make install
sudo ln -s /usr/local/python2.5/bin/python /usr/bin/python2.5
Now Python is configured
#Installing JDK
As far as I know PPA which was the earlier method of installing JDK etc. doesn't exist's anymore, So I used another way!
Step 1: Open Terminal (CTRL + ALT + T)
STEP 2: Now we need to download the JDK 6 Binary by executing this command in terminal
Code:
wget --no-check-certificate --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin"
STEP 3: Then we need to run the binary and move it to a shared location:
Code:
chmod +x jdk-6u45-linux-x64.bin
sudo ./jdk-6u45-linux-x64.bin
sudo mv jdk1.6.0_45 /usr/lib/jvm/
STEP 4: Now you have to install all binaries and give them highest priority, This will also overwrite the previous version of Java Binaries in your computer
Code:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 1
sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_45/bin/javaws 1
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 1
sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 1
STEP 5: Now check if JDK 1.6 is selected on this:
Code:
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
sudo update-alternatives --config jar
sudo update-alternatives --config javadoc
Now JDK is configured! To check if it is done
Execute this is Terminal
Code:
java -version
Output will be similar to this
Code:
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)
#Installing GNU Make
Code:
cd Downloads
wget -o make.tar.gz http://ftp.gnu.org/gnu/make/make-3.81.tar.gz
tar -xvzf make-3.81.tar.gz
cd make-3.82
./configure
sudo make install
These commands are for Make 1.81 if you want to install Make 1.82 Execute these
Code:
cd
wget -o make.tar.gz http://ftp.gnu.org/gnu/make/make-3.82.tar.gz
tar -xvzf make-3.82.tar.gz
cd make-3.82
./configure
sudo make install
Now GNU make is configures
#Installing Android SDK
STEP ONE: Download the SDK from http://developer.android.com/sdk/index.html and extract it in a folder called "sdk" in the Downloads folder
STEP TWO: Now, Execute these commands in terminal
Code:
cd ~/Downloads/sdk/tools/
./android sdk
SDK is configured now :victory:
#Installing required packages:
STEP 1: Open Terminal
Now execute these commands:
Code:
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 pngcrush gcc-multilib lib32z1 schedtool
Good, Now you have successfully setup linux build environment!
PART 2: Machine specifications and other misc. stuff
Basic Computer Specs:
2Ghz Dual Core Processor
2GB Minimum ram
50GB File Space (For only one rom source)
*PLEASE NOTE*: This is the basic specification, It really depends on the condition of your ram and cpu!
If you want to use other apps while compilation you should make a 5GB minimum swap partition!
If ram is more than 4GB ram then you don't swap partition!
PART 3: DEVICE TREE AND SOURCE BASICS
Basic source folders:
/packages - Proprietary rom applications
/framework - Framework (Overall rom UI and stuff)
/device - Device config
/vendor - Vendor Tree and other vendor files
/hardware - Hardware drivers
Q: What is BoardConfig.mk?
A: It's the file where you setup path's to files like toolchain etc. and enable/disable stuff, its very easy to understand. You can find it in your device's tree
Q: Where is build.prop in source?
A. Build.prop is available in the source in the form of system.prop in the device tree!
Q: How to remove ringtones, video editor, CM wallpapers from bulid?
A: Go to device/releasetools/extras.txt and Delete anything you don't want in your build
PART 4: Syncing Source and Building
# Installing Repo Package
Code:
mkdir ~/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
STEP 2: Now it is recommended to reboot your computer (No need of sudo su after reboot)
STEP 3: Now make directory:
Code:
mkdir -p ~/rom/android/system
STEP 4: Go into directory and set path for Repo Package
Code:
cd ~/rom/android/system
PATH=~/bin:$PATH
STEP 5: NOW ITS TIME FOR SYNCING:
For CM10.1 source execute this:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm10.1
For syncing CM10 source execute:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
You have to find for the rest!!
PS: You don't have to execute all the repo init commands written above
Now to sync execute this after the the repo init command
Code:
repo sync
Once it finishes without breaking all the folders will appear in rom/android/system folder
now execute this:
Code:
mkdir -p ~/rom/android/system/device/<ManufacturerName>/<DeviceCodeName>
and extract the device config/tree here
for me its samsung/totoro (galaxy Y, Don't mind )
then do the following:
Code:
mkdir -p ~/rom/android/system/vendor/<ManufacturerName>/<DeviceCodename>
Its the same as for the device folder
Now for compiling:
Code:
. build/envsetup.sh
lunch cm_<DeviceCodename>-eng
brunch cm_<DeviceCodename>-eng
Your build will be located at /rom/android/system/out as <RomName>-date/month/year-UNOFFICIAL-<DeviceCodeName>.zip
HAPPY COMPILING
Click to expand...
Click to collapse
I had two things to ask
1)Was installing android-sdk needed
2)If device not yet had a cm build or device tree how to get them
Hi guys!
I wrote this guide because after a few month of kernel development i found useful tools and tricks than helped me a lot and speeded up my work and i want to share with you this knowledge.
Setup computer and download sources
Code:
Minumum reqirement:
* C knowledge
* Ubuntu 12.04 (13.10 if you want use Kdevelop + linux kernel plugin)
* Internet connection, possibly fast and unlimited
* the boot.img of the ROM you want to support with your kernel (AOSP, SENSE etc etc...)
* [URL="http://forum.xda-developers.com/showthread.php?t=2519416"]zImage switcher[/URL]
Install required package:
Linux 12.04;
Code:
sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2 bin86 libqt3-headers libqt3-mt-dev wget libncurses5 git-core nautilus-open-terminal
linux 13.10:
Code:
sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2 bin86 qt4-dev-tools wget libncurses5 git-core nautilus-open-terminal
and restart your PC.
Download Source:
Go to /home/<username>, create a new folder called "kernel", and enter in that folder.
right click somewhere in "kernel" folder and select "open terminal here" (CooL AH?)
and run
Code:
git clone <kernel-source-code-for-your-device-repository>
for example for HTC One S will be
Code:
git clone https://github.com/CyanogenMod/android_kernel_htc_msm8960.git
Download the toolchain
There are a lot of toolchain, stock, linaro optimized, based on gcc 4.7, based on gcc 4.8 the choice is yours! in this tutorial we use google gcc 4.7 toolchain.
Go to /home/<username>, create a new folder called "toolchains", and enter in that folder.
right click -> open terminal here
Code:
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7
Build the kernel
Build the kernel:
in this part we will work in "/home/<username>/kernels/<kernel-folder>" folder, i'll call it <root>
go to "<root>/arch/arm/configs" and copy "<you-device-name>_defconfig" to <root>
rename <you-device-name>_defconfig to ".config"
open a terminal window in <root>
type:
Code:
make ARCH=arm CROSS_COMPILE=/home/<username>/toolchains/arm-eabi-4.7/bin/arm-eabi- > compileLog
and the compilation will start.
Some explanation:
"ARCH=arm" tells to compiler what arch the kernel is made for
"CROSS_COMPILE=xxxxxx" tells to "make" the compiler to use
"> compileLog" saves all the messages in a file called compileLog, it's easier to read than terminal window
Click to expand...
Click to collapse
Pack the kernel to boot.img:
Unpack zImage switcher somewhere, i'll call that folder <ZimgSw>.
copy in the same folder of "repack.sh" file the stock boot.img and yout zImage, you can find it in <root>/arch/arm/boot.
run the script
Code:
./repack.sh
now in <ZimgSw> there's a new file called newBoot.img, that's your kernel!
to find the modules (*.ko files) open a teminal windows to <root> and type
Code:
find ./ -name "*.ko" -exec cp {} <absolute/path/destination/folder> \;
now you have the boot.img and the modules, download a custom kernel and use the flashable zip to make your flashable zip, just replace the modules and the boot.img!
Add featuresAdd features to kernel:
"Woah! i'd like to add intellimand governor to my kernel"
First you need to find a git repository that contains intellimand governor, than the commit that added the governor.
for example https://github.com/rmbq/android_kernel_htc_msm8960/commit/6c87d0e0b3c82ffff8c0704dfde7369872f5602f
Open a terminal window in <root>
type:
Code:
git remote add rmbq https://github.com/rmbq/android_kernel_htc_msm8960.git -b cm-10.2
git fetch rmbq
git cherry-pick 6c87d0e0b3c82ffff8c0704dfde7369872f5602f
Explanations:
Code:
git remote add rmbq https://github.com/rmbq/android_kernel_htc_msm8960.git -b cm-10.2
add a link to https://github.com/rmbq/android_kernel_htc_msm8960.git branch cm-10.2 and called it "rmbq"
Code:
git fetch rmbq
download all the commit history to your PC without modify your sources
Code:
git cherry-pick 6c87d0e0b3c82ffff8c0704dfde7369872f5602f
apply the commit 6c87d0e0b3c82ffff8c0704dfde7369872f5602f to your source
Click to expand...
Click to collapse
in termial window type:
Code:
make ARCH=arm xconfig
will open a new window where you can configure your kernel's features
press ctrl+f (find) and serach for "intellimand" and tick the checkbox. save clicking the floppy disk in upper left corner.
the modified configuration file will be saved in ".config"
now we can build the kernel again, but first type
Code:
make ARCH=arm clean CROSS_COMPILE=/home/<username>/toolchains/prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.8/bin/arm-linux-androideabi-
this will remove all the compiled files of previous build.
View git commits historyyou can easly view all the commits in your repo:
open a terminal window in <root> and type
Code:
gitk
will open a GUI where you can see all the commits, what files were modified for each commit, the author of the commit.
you can also revert commits.
There are other GUI for git, i also like "gitg"
Hacking the kernel
suggested by @pirlanofor easy work on kernel sources, add features & co. you can use kdevelop + linux kernel plugin, here is a guide
http://www.gnurou.org/code/kdevelop-kernel
and a video guide:
http://video.linux.com/videos/kernel-browsing-and-hacking-using-kdevelop
NOTE: for linux kernel plugin ubuntu 13.10 is required
if something is not working or it's not clear or you have useful tips just tell me and i'll update the guide
Nice! I usually use kdevelop + linux kernel plugin, so i have a fast IDE and i can save compilation config, fix warning and errors on the fly, and use git from a gui, it's a good solution for me
pirlano said:
Nice! I usually use kdevelop + linux kernel plugin, so i have a fast IDE and i can save compilation config, fix warning and errors on the fly, and use git from a gui, it's a good solution for me
Click to expand...
Click to collapse
cool! if you want/have time write a small tutorial for your method and i'll add to OP
EDIT: meanwhile i added this guide http://www.gnurou.org/code/kdevelop-kernel
rmbq said:
cool! if you want/have time write a small tutorial for your method and i'll add to OP
EDIT: meanwhile i added this guide http://www.gnurou.org/code/kdevelop-kernel
Click to expand...
Click to collapse
And video guide from a nVidia tegra developer
http://video.linux.com/videos/kernel-browsing-and-hacking-using-kdevelop
Hi rmbq,
many thanks for your tutorial! I really appreciate it as I already made some first steps with compiling Roms. Now I'll try to make a kernel
Sent from my One S using XDA Premium 4 mobile app
UPDATE:
added git GUI section
Thanks for this tutorial. Maybe I will finally sit down to making my own kernel someday. If I can do it for linux why can't I for android.
@rmbq
I get an error when i run the command
sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2 bin86 libqt3-headers libqt3-mt-dev wget libncurses5 git-core nautilus-open-terminal
Click to expand...
Click to collapse
Error
$ sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2 bin86 libqt3-headers libqt3-mt-dev wget libncurses5 git-core nautilus-open-terminal
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libqt3-headers
E: Unable to locate package libqt3-mt-dev
Click to expand...
Click to collapse
This is my first time trying to build a kernel, How do i fix it?
Edit:
Im running Ubuntu 13.10
phanitej said:
@rmbq
I get an error when i run the command
Error
This is my first time trying to build a kernel, How do i fix it?
Edit:
Im running Ubuntu 13.10
Click to expand...
Click to collapse
Hi!
instead
Code:
sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2 bin86 libqt3-headers libqt3-mt-dev wget libncurses5 git-core nautilus-open-terminal
can you try to run
Code:
sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2 bin86 qt4-dev-tools wget libncurses5 git-core nautilus-open-terminal
and see if "make xconfig" (qt is required only for this command) is working? i haven't got ubuntu 13.10 so i can't test
rmbq said:
Hi!
instead
Code:
sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2 bin86 libqt3-headers libqt3-mt-dev wget libncurses5 git-core nautilus-open-terminal
can you try to run
Code:
sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2 bin86 qt4-dev-tools wget libncurses5 git-core nautilus-open-terminal
and see if "make xconfig" (qt is required only for this command) is working? i haven't got ubuntu 13.10 so i can't test
Click to expand...
Click to collapse
Tried the command. Did not get any errors. But after downloading source i dont see the kernel folder insde the kernel. What am i doing wrong?
Im trying to build a hammerhead kernel so used the below link
git clone https://android.googlesource.com/kernel/msm.git
Click to expand...
Click to collapse
phanitej said:
Tried the command. Did not get any errors. But after downloading source i dont see the kernel folder insde the kernel. What am i doing wrong?
Im trying to build a hammerhead kernel so used the below link
Click to expand...
Click to collapse
because "master" branch (the default branch) is empty.
open a terminal in <root> and type
Code:
git checkout android-msm-hammerhead-3.4-kk-r1
and you will switch from master branch to android-msm-hammerhead-3.4-kk-r1 branch, i think it's the more updated branch for hammerhead. now you should see all the folders and files of your kernel
rmbq said:
because "master" branch (the default branch) is empty.
open a terminal in <root> and type
Code:
git checkout android-msm-hammerhead-3.4-kk-r1
and you will switch from master branch to android-msm-hammerhead-3.4-kk-r1 branch, i think it's the more updated branch for hammerhead. now you should see all the folders and files of your kernel
Click to expand...
Click to collapse
First of all, a big thanks to your patience for helping me out.
The above command did show up files. I then went to root and tried to use make
make ARCH=arm CROSS_COMPILE=/home/phanitej/toolchain/prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.8/bin/arm-linux-androideabi- > compileLog
Click to expand...
Click to collapse
It gives an error. I made sure the path is correct.
make[2]: *** [silentoldconfig] Error 1
make[1]: *** [silentoldconfig] Error 2
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
phanitej said:
First of all, a big thanks to your patience for helping me out.
The above command did show up files. I then went to root and tried to use make
It gives an error. I made sure the path is correct.
make[2]: *** [silentoldconfig] Error 1
make[1]: *** [silentoldconfig] Error 2
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
Click to expand...
Click to collapse
did you do these steps?
go to "<root>/arch/arm/configs" and copy "<you-device-name>_defconfig" to <root>
rename <you-device-name>_defconfig to ".config"
if yes try to (in <root>):
Code:
make ARCH=arm xconfig
save clickn' the floppy
Code:
make ARCH=arm CROSS_COMPILE=/home/<username>/toolchains/prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.8/bin/arm-linux-androideabi- > compileLog
P.S. to post code / script / terminal commands use CODE tag instead QUOTE
rmbq said:
did you do these steps?
go to "<root>/arch/arm/configs" and copy "<you-device-name>_defconfig" to <root>
rename <you-device-name>_defconfig to ".config"
if yes try to (in <root>):
Code:
make ARCH=arm xconfig
save clickn' the floppy
Code:
make ARCH=arm CROSS_COMPILE=/home/<username>/toolchains/prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.8/bin/arm-linux-androideabi- > compileLog
P.S. to post code / script / terminal commands use CODE tag instead QUOTE
Click to expand...
Click to collapse
Thanks for the tip Will use code tag from now on for codes.
After running
Code:
make ARCH=arm xconfig
I got the kernel config window. Saved it without modifying anything. THen ran the other command. Gives error. Checked the log and found few errors.
phanitej said:
Thanks for the tip Will use code tag from now on for codes.
After running
Code:
make ARCH=arm xconfig
I got the kernel config window. Saved it without modifying anything. THen ran the other command. Gives error. Checked the log and found few errors.
Click to expand...
Click to collapse
probably your new .config has got wrong configuration, try to delete .config in <root> (if you don't see it press ctrl+h)
and do again
go to "<root>/arch/arm/configs" and copy "<you-device-name>_defconfig" to <root>
rename <you-device-name>_defconfig to ".config"
this time run the make command without make xconfig
rmbq said:
probably your new .config has got wrong configuration, try to delete .config in <root> (if you don't see it press ctrl+h)
and do again
go to "<root>/arch/arm/configs" and copy "<you-device-name>_defconfig" to <root>
rename <you-device-name>_defconfig to ".config"
this time run the make command without make xconfig
Click to expand...
Click to collapse
Still got error
make[1]: *** [init/main.o] Error 1
make: *** [init] Error 2
Just to make sure im doing it right.
I copied hammerhead_defconfig to <root> and renamed it to .config
Then ran the make command without make xconfig i.e
Code:
make ARCH=arm CROSS_COMPILE=/home/phanitej/toolchain/prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.8/bin/arm-linux-androideabi- > compileLog
phanitej said:
Still got error
make[1]: *** [init/main.o] Error 1
make: *** [init] Error 2
Just to make sure im doing it right.
I copied hammerhead_defconfig to <root> and renamed it to .config
Then ran the make command without make xconfig i.e
Code:
make ARCH=arm CROSS_COMPILE=/home/phanitej/toolchain/prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.8/bin/arm-linux-androideabi- > compileLog
Click to expand...
Click to collapse
can you try to:
open <root>/Makefile
go to line 375 (it's "-fno-delete-null-pointer-checks") and replace this line with "-fno-delete-null-pointer-checks -march=armv7-a"
save and try to compile again
rmbq said:
can you try to:
open <root>/Makefile
go to line 375 (it's "-fno-delete-null-pointer-checks") and replace this line with "-fno-delete-null-pointer-checks -march=armv7-a"
save and try to compile again
Click to expand...
Click to collapse
Edited that, still no go
What am i doing wrong?
phanitej said:
Edited that, still no go
What am i doing wrong?
Click to expand...
Click to collapse
and if you change toolchain?
try to download this http://releases.linaro.org/13.11/co...ndroid-toolchain-eabi-4.8-2013.11-x86.tar.bz2
unpack it in toolchain folder and run make with new CROSS_COMPILE path
CROSS_COMPILE=/home/phanitej/toolchain/new folder/bin/new files name
to know the "new files name" go to
/home/phanitej/toolchain/prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.8/bin
you can see all files are starting with "arm-linux-androideabi-" that's why the command is
Code:
CROSS_COMPILE=/home/phanitej/toolchain/prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.8/bin/[COLOR="Red"]arm-linux-androideabi-[/COLOR]
make the same thing with the new toolchain
EDIT: shuold be
Code:
CROSS_COMPILE=/home/phanitej/toolchain/[COLOR="Red"]android-toolchain-eabi[/COLOR]/bin/[COLOR="Red"]arm-eabi-[/COLOR]
EDIT2: if still not working try to modify line 357 of <root>/Makefile from
CFLAGS_KERNEL =
to
CFLAGS_KERNEL = -mtune=cortex-a15 -mfpu=neon-vfpv4
Make your 'own' Nougat-ROM today!
Thank you note: Thank you to the whole CM-Team for bringing up-to-date-Android to so many devices.
Overview
I. Preparation
II. Installation of the required packages
III. The sources
IV. Building the ROM
I. Preparation
Things you need for building:
A computer
An internet connection
An open mind
Time
Patience
First of all, you need a running up-to-date Ubuntu/Linux system. I am using Debian Stretch (testing) 64-bit.
Use the terminal to make the steps. A terminal window can be opened by pressing Ctrl+Alt+T. Every single command for the terminal is marked with a $ sign. Just paste every command (without the $ sign) to your terminal window and there shouldn't be any problem.
IMPORTANT: INSTALL EVERYTHING AS A NORMAL USER. DON'T INSTALL AS ROOT!
II. Installation of the required packages (Debian Stretch (testing) 64-bit)
For both 32-bit & 64-bit systems, you'll need:
Code:
$ sudo apt-get install bison build-essential curl flex \
git gnupg gperf libesd0-dev liblz4-tool \
libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils \
lzop maven openjdk-7-jdk pngcrush schedtool \
squashfs-tools xsltproc zip zlib1g-dev
In addition to the above, for 64-bit systems, get these:
Code:
$ sudo apt-get install g++-multilib gcc-multilib \
lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
For Ubuntu 15.10 (wily) and newer, substitute:
lib32readline-gplv2-dev -> lib32readline6-dev
For Ubuntu 16.04 (xenial) and newer, substitute (additionally see java notes below):
libwxgtk2.8-dev -> libwxgtk3.0-dev
openjdk-7-jdk -> openjdk-8-jdk
Java versions: Different versions of CyanogenMod require different versions of the JDK (Java Development Kit):
CyanogenMod 7 - 9: Sun/Oracle Java SE 1.6
CyanogenMod 10.1: Sun/Oracle Java SE 1.6 or 1.7
CyanogenMod 10.2 - 11.0: Sun/Oracle Java SE 1.6 or 1.7 (OpenJDK 1.7 works fine, but the build system will display a warning)
CyanogenMod 12.0 - 13.0: OpenJDK 1.7 (see note about OpenJDK 1.8 below)
CyanogenMod 14.1: OpenJDK 1.8
Ubuntu 16.04 (Xenial Xerus) or newer and OpenJDK: Since OpenJDK 1.7 was removed from the official Ubuntu repositories, you have a couple options:
Obtain OpenJDK 1.7 from the openjdk-r PPA
Enable experimental OpenJDK 1.8 support in CyanogenMod 13.0 (not available in earlier version). To enable OpenJDK 1.8 support, add this line to your $HOME/.bashrc file:
Code:
export EXPERIMENTAL_USE_JAVA8=true
III. The sources
You will need to set up some directories in your build environment.
To create them:
Code:
$ mkdir -p ~/bin
$ mkdir -p ~/android/system
Install the repo command
Enter the following to download the "repo" binary and make it executable (runnable):
Code:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
Put the ~/bin directory in your path of execution
In recent versions of Ubuntu, ~/bin should already be in your PATH. You can check this by opening ~/.profile with a text editor and verifying the following code exists (add it if it is missing):
Code:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Time to initialize the CyanogenMod source repository
Enter the following to initialize the repository:
Note: Make sure the cm branch entered here is the one you wish to build and is supported on your device.
Code:
$ cd ~/android/system/
$ repo init -u https://github.com/CyanogenMod/android.git -b cm-14.1
Download the source code
To start the download of all the source code to your computer:
Code:
$ repo sync
The CM manifests include a sensible default configuration for repo, which we strongly suggest you use (i.e. don't add any options to sync). For reference, our default values are -j4 and -c. The -j4 part means that there will be four simultaneous threads/connections. If you experience problems syncing, you can lower this to -j3 or -j2. -c will ask repo to pull in only the current branch, instead of the entire CM history.
Prepare to wait a long time while the source code downloads.
IV. Building the ROM
Prepare the device-specific code
Code:
$ source build/envsetup.sh
$ breakfast jfltexx
Turn on caching to speed up build
You can speed up subsequent builds by adding
Code:
export USE_CCACHE=1
to your ~/.bashrc file. Then, specify the amount of disk space to dedicate to ccache by typing this from the top of your Android tree:
Code:
prebuilts/misc/linux-x86/ccache/ccache -M 50G
Start the build
Time to start building! So now type:
Code:
$ croot
$ brunch jfltexx
Happy building!
If you are familiar with your first build & GitHub, feel free to use the cm_build_script.
Code:
$ git clone https://github.com/BenJule/cm_build_scripts.git
Contributor
syphyr
BenJule
Can do this with i9515
Sent from my GT-I9505 using Tapatalk
Is this for I-9515 too or is it not?
salem.k.salem said:
Can do this with i9515
Sent from my GT-I9505 using Tapatalk
Click to expand...
Click to collapse
Mario472 said:
Is this for I-9515 too or is it not?
Click to expand...
Click to collapse
Qualcomm only unless stated otherwise.
He just made a guide for people who don't want to wait for developers or people whom are looking to start building CM from source. Great guide, I had done similar while using the Moto G3. Thanks for this.
Sent from my GT-I9505 using XDA-Developers mobile app
christopherrrg said:
Qualcomm only unless stated otherwise.
He just made a guide for people who don't want to wait for developers or people whom are looking to start building CM from source. Great guide, I had done similar while using the Moto G3. Thanks for this.
Sent from my GT-I9505 using XDA-Developers mobile app
Click to expand...
Click to collapse
I now and i want to learn about it
And descover it
You should put this on xda chef section. Also you should tell how to get the right repo in manifest sync by checking GitHub branches. Nice guide.
---------- Post added at 06:06 PM ---------- Previous post was at 06:04 PM ----------
Mario472 said:
Is this for I-9515 too or is it not?
Click to expand...
Click to collapse
Similar, you need to add a local manifest with jfvelte's device tree. Here is it https://github.com/jfvelte-dev
Mario472 said:
Is this for I-9515 too or is it not?
Click to expand...
Click to collapse
for GT-i9505
In your case, you can replace the device ID in ./repo/local_manifests/your_device.xml
Greetings
BenLue
I keep getting
Code:
Communication error with Jack server (56). Try 'jack-diagnose'
build/core/java.mk:730: recipe for target '/home/dovi/android/out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex' failed
make: *** [/home/dovi/android/out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex] Error 41
#### make failed to build some targets (01:34:46 (hh:mm:ss)) ####
..what do I do?
DroidKing18 said:
I keep getting
Code:
Communication error with Jack server (56). Try 'jack-diagnose'
build/core/java.mk:730: recipe for target '/home/dovi/android/out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex' failed
make: *** [/home/dovi/android/out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex] Error 41
#### make failed to build some targets (01:34:46 (hh:mm:ss)) ####
..what do I do?
Click to expand...
Click to collapse
post more of the log. But probably need to allocate more memory for jack / reduce parallel compilations
last post here:
http://stackoverflow.com/questions/...lding-the-android-source-code-on-ubuntu-15-10
Ran into another error here:
Code:
make: *** No rule to make target '/home/dovi/android/out/target/common/obj/JAVA_LIBRARIES/org.apache.http.legacy_intermediates/classes.dex.toc', needed by '/home/dovi/android/out/target/common/obj/APPS/Development_intermediates/with-local/classes.dex'. Stop.
make: *** Waiting for unfinished jobs....
Anyone know a fix?
BenLue said:
Make your 'own' Nougat-ROM today!
Thank you note: Thank you to the whole CM-Team for bringing up-to-date-Android to so many devices.
Overview
I. Preparation
II. Installation of the required packages
III. The sources
IV. Building the ROM
I. Preparation
Things you need for building:
A computer
An internet connection
An open mind
Time
Patience
First of all, you need a running up-to-date Ubuntu/Linux system. I am using Debian Stretch (testing) 64-bit.
Use the terminal to make the steps. A terminal window can be opened by pressing Ctrl+Alt+T. Every single command for the terminal is marked with a $ sign. Just paste every command (without the $ sign) to your terminal window and there shouldn't be any problem.
can't do like this with windows?? any guide or idea??
thanks.
Click to expand...
Click to collapse
Mario472 said:
Is this for I-9515 too or is it not?
Click to expand...
Click to collapse
9515 is Jfvelte, correct? If yes you must modified your roomservice.xml
Example for Jfvelte
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="jfvelte-dev/android_device_samsung_jfvelte" path="device/samsung/jfvelte" remote="github" />
<project name="LineageOS/android_device_samsung_jf-common" path="device/samsung/jf-common" remote="github" />
<project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="LineageOS/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" />
<project name="LineageOS/android_external_stlport" path="external/stlport" remote="github" />
<project name="jfvelte-dev/android_kernel_samsung_jf" path="kernel/samsung/jf" remote="github" />
<project name="LineageOS/android_hardware_samsung" path="hardware/samsung" remote="github" />
<project name="LineageOS/android_packages_resources_devicesettings" path="packages/resources/devicesettings" remote="github" />
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" />
<project name="TheMuppets/proprietary_vendor_qcom_binaries" path="vendor/qcom/binaries" />
</manifest>
Greetings
androidloveRs3104 said:
BenLue said:
Make your 'own' Nougat-ROM today!
Thank you note: Thank you to the whole CM-Team for bringing up-to-date-Android to so many devices.
Overview
I. Preparation
II. Installation of the required packages
III. The sources
IV. Building the ROM
I. Preparation
Things you need for building:
A computer
An internet connection
An open mind
Time
Patience
First of all, you need a running up-to-date Ubuntu/Linux system. I am using Debian Stretch (testing) 64-bit.
Use the terminal to make the steps. A terminal window can be opened by pressing Ctrl+Alt+T. Every single command for the terminal is marked with a $ sign. Just paste every command (without the $ sign) to your terminal window and there shouldn't be any problem.
can't do like this with windows?? any guide or idea??
thanks.
Click to expand...
Click to collapse
Install vmware or virtualbox!
Greetings
Click to expand...
Click to collapse
androidloveRs3104 said:
BenLue said:
Make your 'own' Nougat-ROM today!
Thank you note: Thank you to the whole CM-Team for bringing up-to-date-Android to so many devices.
Overview
I. Preparation
II. Installation of the required packages
III. The sources
IV. Building the ROM
I. Preparation
Things you need for building:
A computer
An internet connection
An open mind
Time
Patience
First of all, you need a running up-to-date Ubuntu/Linux system. I am using Debian Stretch (testing) 64-bit.
Use the terminal to make the steps. A terminal window can be opened by pressing Ctrl+Alt+T. Every single command for the terminal is marked with a $ sign. Just paste every command (without the $ sign) to your terminal window and there shouldn't be any problem.
can't do like this with windows?? any guide or idea??
thanks.
Click to expand...
Click to collapse
A better option is dualboot
Sent from my I9195I using Tapatalk
Click to expand...
Click to collapse
Doctor_Titi said:
Hello!
Thanks for your tutorial!
So, when i did
Code:
croot
, i got this message:
Code:
[email protected] ~/android/system $ croot
No command 'croot' found, did you mean:
Command 'chroot' from package 'coreutils' (main)
Command 'root' from package 'root-system-bin' (universe)
Command 'proot' from package 'proot' (universe)
croot: command not found
[email protected] ~/android/system $
Any idea?
Click to expand...
Click to collapse
Prepare the device
Code:
$ source build/envsetup.sh
$ breakfast seed(seed only exemple)
Ready Compile
Code:
$ croot
$ brunch seed(seed only exemple)
good luck :good:
Hello, I am compiling a Android 7 based ROM for my phone and after 4 hours of compilation it gives "out of memory error" and "try increasing the heap size".
I increased my heapsize by using " java -Xmx3072m" but still its showing the same error. My system specs are Core i3 peocessor and 6gb ram and using Ubuntu.
Can anyone please help me out ?
Suvam Mondal said:
Hello, I am compiling a Android 7 based ROM for my phone and after 4 hours of compilation it gives "out of memory error" and "try increasing the heap size".
I increased my heapsize by using " java -Xmx3072m" but still its showing the same error. My system specs are Core i3 peocessor and 6gb ram and using Ubuntu.
Can anyone please help me out ?
Click to expand...
Click to collapse
Try editing your jack setup file and reducing instances to compile to 2 or 1 from 4. I can't remember exact names as I'm not on Linux right now..
My java xmx is set at 6gb and i only have 2 instances set... your 6bg of ram may be the weak link here. Try xmx at 4500m
What size of a swap partition do you have? You may need to increase this too.
Buff99 said:
Try editing your jack setup file and reducing instances to compile to 2 or 1 from 4. I can't remember exact names as I'm not on Linux right now..
My java xmx is set at 6gb and i only have 2 instances set... your 6bg of ram may be the weak link here. Try xmx at 4500m
What size of a swap partition do you have? You may need to increase this too.
Click to expand...
Click to collapse
My swap partition is of 12gb
Suvam Mondal said:
My swap partition is of 12gb
Click to expand...
Click to collapse
12gb is more than enough.
try reducing your instances to 1 and leave mem at 3gb and see if that works.