[DEV] Building CM from scratch (the easy way)! - *nix Shell Script - Android Software/Hacking General [Developers Only]

<BACON>
This will Allow you to build CM7-Nightlies or "Kangs" at any time you please.
Compatible with Ubuntu or rpm distros
It's a bash/sh script for automation, as simple as a double click.
it's downloading and installing all files/repos/sdk/adb/fastboot and compiles. (If you already have some of this installed, it prompts before installing)
-------
Please test it, and report bugs here (files attached)
No donations wanted, just click that THANKS button
Github: https://github.com/nicandris/CM-from-scratch
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
-------
new build.sh menu
just unzip on ubuntu/linux and run ./douchebuild.sh
if ./douchebuild.sh is not recognized as an executable, just
Code:
sudo chmod 775 douchebuild.sh
You will be asked for sudo pass (since you edit repos and add adb in bin) and some info for git.
after completing you can always create a fresh build from the Desktop shortcut build.sh
ofcourse i don't take any credits for cm, all credit goes to cyanogen and teamdouche. the script is just a shell compilation of the cm wiki.
</BACON>

Reserved
If you want to set only udev try this script
View attachment udev.zip
unzip and
Code:
chmod 755 udev.sh
-----
If you already used the main script and want to have the new build.sh menu, run this script
View attachment buildshcreator.zip
-----
if you don't want all the files for all the devices to be synced, follow this!

Reserved
CHANGELOG
v1
Supporting only Nexus One (initial release)
v2
Supporting all cyanogenmod official devices. Added menu selection for device
v2.0.1
Fixed some nohup issues. Changed some code lines. fixed an if statement
v2.0.2
HD2/Leo support added
v2.1
Various Bugfixes
New build menu
v2.2
Few bug fixes
Some name changes
MORE options in build.sh!!
v2.3
Minor Bug Fixes
Added new devices:
Motorola Cliq XT
LG G2x
LG Optimus 2X
Samsung Captivate
Samsung Vibrant
Barnes & Noble - Nook Color support
Added udev support for Nook Color
v2.3.2
Fixed selection list
Added HTC Incredible 2 Support
v2.4.1
Added Samsung Galaxy S II and Fascinate support
Added Motorola Droid X support
udevs fixed
v2.4.3
Added HTC Tattoo
v2.5.1
Updated Android SDK to v13
Forced repo to sync from github and not from kernel.org (since kernel.org is down for maintenance)
Bugfix
v2.5.2
Added Nexus S 4G
v2.5.3/2.5.4
minor bugfix x4
changed repo fetch URL
v2.7.1
RPM compatibility
Small bugfix

nicandris said:
guys i made a small shell script for automation. tried it twice on clean ubuntu builds and it works just fine!
it's downloading and installing all files/repos/sdk/adb/fastboot and compiles. if anyone has a clean installation (or has the time to create a new vbox to test it try it)
http://dl.dropbox.com/u/6751304/androidmake
just unzip on ubuntu/linux and run ./androidmake
if you are on x64 run this first:
Code:
sudo apt-get update && sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev sun-java6-jdk gitg qt3-dev-tools libqt3-mt-dev eclipse valgrind pngcrush && sudo update-java-alternatives -s java-6-sun
after completing you can always create a fresh build from the Desktop shortcut build.sh
Click to expand...
Click to collapse
Thanks. this should come in handy since I just reinstalled my linux desktop. I'll try it out later tonight.

nicandris said:
guys i made a small shell script for automation. tried it twice on clean ubuntu builds and it works just fine!
it's downloading and installing all files/repos/sdk/adb/fastboot and compiles. if anyone has a clean installation (or has the time to create a new vbox to test it try it)
http://dl.dropbox.com/u/6751304/androidmake
just unzip on ubuntu/linux and run ./androidmake
if you are on x64 run this first:
Code:
sudo apt-get update && sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev sun-java6-jdk gitg qt3-dev-tools libqt3-mt-dev eclipse valgrind pngcrush && sudo update-java-alternatives -s java-6-sun
after completing you can always create a fresh build from the Desktop shortcut build.sh
ofcourse i don't take any credits for cm, all credit goes to cyanogen and teamdouche. the script is just a shell compilation of the cm wiki.
I was planning to do a GUI or text-based version with more options (more phone support etc) but i don't have the time. if anyone wants to do it the script is there have fun
Click to expand...
Click to collapse
Thanks. I'll give it a shot tonight.

can´t test it anymore, as I got all setup..but for future, just great!

rori~ said:
can´t test it anymore, as I got all setup..but for future, just great!
Click to expand...
Click to collapse
well take the ./build.sh only it's helpfull (for me that i'm bored to type the make bacon)

Excellent work, and thanks for sharing. This will be very useful for others. I modified the title and stickied this.

Sounds Good i'm on testing...

thanx for sticking this up
guys please test and if you find anyth wrong msg me to check it out.

After 3 hours i have a compiled Kang-update.zip !!! Thanks

Sweet... great job... nice to have some shortcuts... now I'm gonna use this to schedule sync and build... thanks a million

Trying on Debian right now (commented out the sources update ) Will post back with results.

glad to see that this is helping you guys. if anyone has another phone (except N1) it would be really helpful to send me the proprietary files so i can make this for other devices also (i can do it without but it's easier for users if i have the files) i can explain how to obtain them.

Is this working for you on a x86*nix build? I get a warning when I start building that only x64 is supported.

electrostat said:
Is this working for you on a x86*nix build? I get a warning when I start building that only x64 is supported.
Click to expand...
Click to collapse
i tried it twice on a x86 and it was fine. AOSP or tmobile's theme engine is not compiling on x86 but cm7 is. i think i twitted abt this a couple of days ago.
http://twitpic.com/43mezo

nicandris said:
i tried it twice on a x86 and it was fine. AOSP or tmobile's theme engine is not compiling on x86 but cm7 is. i think i twitted abt this a couple of days ago.
http://twitpic.com/43mezo
Click to expand...
Click to collapse
Sweet. It's building right now, don't care much about tmobile's theme anyway

all works perfectly on ubuntu x64 but one thing: how can i build always latest nightly? repo ar different? i must change this? git://github.com/CyanogenMod/android.git -b gingerbread
what is the repo for latest merge? thank you very much thi topic is fantastic

drigerott said:
all works perfectly on ubuntu x64 but one thing: how can i build always latest nightly? repo ar different? i must change this? git://github.com/CyanogenMod/android.git -b gingerbread
what is the repo for latest merge? thank you very much thi topic is fantastic
Click to expand...
Click to collapse
well this is the latest merge just use the buils.sh shortcut from your desktop

mmmm but the latest merge aren't on rom (like profiles on power down screen etc.)
with this repo we build rc1? or nightly? ^_^
and... build.sh doesn't work properly... i modified like this:
cd ~/android/system/;
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread;
repo sync;
cd;
cd ~/android/system/vendor/cyanogen/;
./get-rommanager;
cd ~/android/system/;
. build/envsetup.sh;
lunch cyanogen_passion-eng;
make -j`grep 'processor' /proc/cpuinfo | wc -l` bacon;
cp ~/android/system/out/target/product/passion/update*.zip ~/Scrivania/update-cm7-N1-$(date +%d_%m-%H.%M.%S).zip
echo -e [=-This is an ALPHA-test version of whatever this is-=];
Click to expand...
Click to collapse
instead of
repo sync ;
cp ./vendor/cyanogen/products/cyanogen_passion.mk ./buildspec.mk;
. build/envsetup.sh;
lunch cyanogen_passion-eng;
make -j`grep 'processor' /proc/cpuinfo | wc -l` bacon;
cp ~/android/system/out/target/product/passion/update*.zip ~/Desktop/update-cm7-N1-$(date +%d_%m-%H.%M.%S).zip
Click to expand...
Click to collapse
is correct? ^^
thanks for you're replay)

Related

[GUIDE] Get Android 2.2 source for n00bs

I did this in Ubuntu 10.4 linux that i installed on a 14gig partition of my laptop.
You can do this in VMware or make a partition of your HDD and download wubi.exe to install linux on your partition... its easier than installing windows. You can use this to help develop if you know anything, or as i have done, used it to get the uncompiled .9.png's to edit for themeing, bypassing the draw9patch step cause the guides are already there ready to go through eclipse IDE.
INSTALL ALL LINUX UPDATES THAT WILL POPUP WITH AUTO-UPDATER BEFORE GETTING SOURCE.
on to the good stuff.... open up the terminal and run the following commands
Code:
sudo nano /etc/apt/sources.list
Then add the following to the bottom by scrolling down with your arrow keys and pasting by right clicking, CTRL-V WONT WORK.

Code:
deb http://cz.archive.ubuntu.com/ubuntu jaunty-updates main multiverse
Hit CTRL O and ENTER to save and CTRL X to return to the command line. Now lets get the repo packages cached onto your box using the following command.
Code:
sudo apt-get update
install Java 5 SDK and all the other little packages needed to build Android with this command.
32-bit x86
Code:
sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind
64-bit x86
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl sun-java5-jdk zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
Code:
sudo update-java-alternatives -s java-1.5.0-sun
Code:
sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so
moving on
INSTALLING REPO
You can install repo tool any place in your path. We choose a bin directory in our home folder:
Code:
$cd ~
$mkdir bin
$export PATH=$PATH:~/bin
$curl https://android.git.kernel.org/repo >~/bin/repo
$chmod a+x ~/bin/repo
DOWNLOADING ANDROID SOURCE CODE:
Create an empty directory to hold your working files:
Code:
$mkdir mydroid
$cd mydroid
# Run repo init to bring down the latest version of Android with all its most recent bug fixes. You must specify a URL for the manifest:
Code:
$repo init -u git://android.git.kernel.org/platform/manifest.git
NOTE: using -b option we can choose which android version to install:
Code:
$repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
To pull down files to your working directory from the repositories as specified in the default manifest, run
Code:
$repo sync
NOTE: mydroid directory size grows up to 3.6G.
BUILDING ANDROID
Simply on top of your android directory execute make command:
Code:
$cd mydroid
$make
After some time it will finish.
We get the installed file list in this file:
out/target/product/generic/installed-files.txt
Also some images are created in the same directory: (system.img userdata.img ramdisk.img)
mydroid$ ls out/target/product/generic/
android-info.txt data obj ramdisk.img symbols system.img
clean_steps.mk installed-files.txt previous_build_config.mk root system userdata.img
We have built android source code but now we want to test it:
run the Android Emulator, which comes within the Android SDK
http://developer.android.com/guide/developing/tools/emulator.html
Download Android SDK
http://developer.android.com/sdk/index.html
Install Android SDK
http://developer.android.com/sdk/installing.html
ill post the location of the framework-res.apk drawables and stock app apks to edit for those of you interested in theming.
I appreciate the effort but isn't this almost the same from android central by gbhil?
Sent from my HERO200
Wouldnt know. Die hard xda member. Im sure im not the only one that checks this site only. Im just trying to do my part. We need devs and themers with creative ideas. This is the one of the first few steps toward those interested in learning.
Sent from my Hero CDMA using XDA App
Thank You!!!!!!!
WELL DONE SIR!!!!! Thank you for posting a good repo link for froyo!!!!!
riggsandroid said:
I appreciate the effort but isn't this almost the same from android central by gbhil?
Sent from my HERO200
Click to expand...
Click to collapse
Isn't android central a different website?
myth_mn said:
Isn't android central a different website?
Click to expand...
Click to collapse
Yes, I was thinking if he took it from there to give credit. But the effort is appreciated and not trying to start a problem.
Sent from my HERO200
Made this because of all the errors i ran into and gathered all my sources of research of linux commands like changing your $PATH and installing java after my machine wouldnt find it in the repository, or not being able to get repo installed. Im just trying to help. I would have sourced gbhil if i took it from there. And this isnt a college essay, work cited pages arent necessary, its a courtesy out of respect. Besides... my sources where from blogs and most didnt have anything to do with android. Just throwin that out there. ©
epitaphromance said:
Made this because of all the errors i ran into and gathered all my sources of research of linux commands like changing your $PATH and installing java after my machine wouldnt find it in the repository, or not being able to get repo installed. Im just trying to help. I would have sourced gbhil if i took it from there. And this isnt a college essay, work cited pages arent necessary, its a courtesy out of respect. Besides... my sources where from blogs and most didnt have anything to do with android. Just throwin that out there. ©
Click to expand...
Click to collapse
no problem. i appreciate the work, I'm gonna give it a shot at some piont when I get some time to install ubuntu.
not doubting you didn't do the work, it was only fresh in my mind because i literally looked at it yesterday. thanks again for the info gathering.
Welcome
Sent from my Hero CDMA using XDA App
Just hope your patient between builds... or at least the first build unless you have a real killer machine. Tried it on my laptop (1.8ghz dual core amd)... 2hrs and had to ctrl+c cause I had to go to bed...
Just wanted to say that this also works on linux mint kde 8 (also known as user friendly linux) it is taking forever though as posted good write-up. oh by the f ubuntu. just saying
Hello,
Not sure if you follow this thread or not anymore but I get an error I was hoping someone could help me with? When I run the last "make" commange I get this error:
Checking build tools versions...
************************************************************
You are attempting to build with the incorrect version
of java.
Your version is: java version "1.6.0_20".
The correct version is: 1.5.
Please follow the machine setup instructions at
http://source.android.com/download
************************************************************
build/core/main.mk:117: *** stop. Stop.
Any ideas?
Thanks
jschill31 said:
Hello,
Not sure if you follow this thread or not anymore but I get an error I was hoping someone could help me with? When I run the last "make" commange I get this error:
Checking build tools versions...
************************************************************
You are attempting to build with the incorrect version
of java.
Your version is: java version "1.6.0_20".
The correct version is: 1.5.
Please follow the machine setup instructions at
http://source.android.com/download
************************************************************
build/core/main.mk:117: *** stop. Stop.
Any ideas?
Thanks
Click to expand...
Click to collapse
Assuming you've installed an openjdk-6-jdk package, you can override the normal build restriction of Java 5 by editing the file build/core/main.mk and changing the Java version test to match against "1.6" instead of "1.5". You'll need to do it in two places, once for java and once for javac. I never had to do this to build Cyanogenmod, but you may need to for AOSP.
Decad3nce said:
Assuming you've installed an openjdk-6-jdk package, you can override the normal build restriction of Java 5 by editing the file build/core/main.mk and changing the Java version test to match against "1.6" instead of "1.5". You'll need to do it in two places, once for java and once for javac. I never had to do this to build Cyanogenmod, but you may need to for AOSP.
Click to expand...
Click to collapse
Decad3nce, thanks for posting so fast. The funny thing is I figured it out within 5 minutes of posting but got sucked in to finalizing my source code that I am now just getting back to the post. There are several here in this forum that really help out and you are one of them. I am just now getting brave enough to start cooking but catch on fast. Can't wait to see what you, nfinite and beezy do to the wildfire port!

[GUIDE] Ubuntu dev platform installation

I've been toying with my own kernels for 2.1 and now 2.2. After much help from netarchy, ffolkes, joeykrim, maejrep, toastcfh, and sentenced, I finally got my Ubuntu box churning out 2.6.29.6 kernels that work on CM6. (If I neglected to mention anybody, kindly remind me). Anyway, sentenced suggested I put together a quick guide on how to do it, so here it is.
I setup my development box as an Ubuntu 8.04 VM on Parallels for OSX. Virtualbox is a free alternative to Parallels. I reckon if you can't figure out how to install Linux, you should probably go do that first and come back to this later.
Once Ubuntu is up and running:
apt-get install gnupg
apt-get install flex
apt-get install bison
apt-get install gperf
apt-get install build-essential
apt-get install zip
apt-get install curl
apt-get install sun-java5-jdk-zlib1g-dev
apt-get install sun-java5-jdk
apt-get install zlib1g-dev
apt-get install gcc-multilib
apt-get install g++-multilib
apt-get install libncurses5-dev
update-java-alternatives -s java-1.5.0-sun
Setup Android NDK
Download the NDK here.
Unpack and put the android-ndk-r4b folder somewhere where you have access to it. ~/src is fine. I used /src.
Setup your environment
There are many ways to do this. It's probably more appropriate to place the following in ~/.profile, but I put mine in /etc/profile so they are system wide.
export ARCH=arm
export CC=/src/android-ndk-r4b/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-gcc
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:/src/android-ndk-r4b/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/
Pay attention to the path statement. If you see "can't find arm-eabi-gcc" errors when you try to make your kernel, something is WRONG with your path statement. Don't ask me how I know this.
Get the kernel source you want to work with.
I started with CM6 found here.
Or git:
git init
git pull git://github.com/CyanogenMod/htc-kernel-supersonic.git
Ok, time to play
make supersonic_defconfig - Builds the default .config for Evo.
make menuconfig (or make xconfig)
Select options
Exit and save
Time to Build!
make -m
If your kernel builds successfully, you'll find it in ./arch/arm/boot/ It's the file: zImage
Test and Install
You can temporarily test with fastboot boot <path-to>/zImage
To survive reboot: fastboot flash zimage <path-to>/zImage
You'll have to get the wifi module from drivers/net/wireless/bcm4329/bcm4329.ko and the wimax module from drivers/net/wimax/SQN/sequans_sdio.ko and push them to /system/lib/modules. You should probably save the modules from the ROM first though.
Hope this helps.
it is so nice to see all the steps put together in this guide!
thanks for taking the time to write everything up!
Here is a guide I'm working on, same thing except its for Windows host using Ubuntu 10.04..
http://htc-linux.org/wiki/index.php?title=Ubuntu_VirtualBox_Dev_Environment
Vinny, If you'd like to include this in your wiki, please feel free.
jmxp69 said:
Vinny, If you'd like to include this in your wiki, please feel free.
Click to expand...
Click to collapse
likewise, feel free to contribute to the wiki article
I'm going to add links to setting up the build environment; the NDK, the Android/CM source (my preference), and uClibc.
This is a good source http://wiki.cyanogenmod.com/index.php?title=Building_from_source just follow "Building for Passion/Nexus One" and subistitute supersonic and skip the zx.patch stuff

[DEV][WIP] Wanna learn to dev correctly?

Recently there has been some issues with people thinking they are developing when they are not. Now this isn't here to call out anyone. I am here for one simple reason. To teach people how to develop on android correctly. This is an initial post to stir up some interest.
Simply I wanted to try and setup a google+ webchat with questions or comments. How-tos. This can all be done through a google+ chat. If anyone is interested just hit me up on google+ and watch out for the invites it will be in about 2 weeks.
I will be updating this OP with tons of android tips and tricks I have picked up. Currently finshing the first draft in a few minutes.
Thanks!
============
Installing the android sdk and getting adb working.
NOTE: You will need to install java before this will work correctly.
Code:
wget http://dl.google.com/android/android-sdk_r12-linux_x86.tgz
tar xvf android-sdk_r12-linux_x86.tgz
mkdir $HOME/.sdk
mv android-sdk-linux_x86/ $HOME/.sdk/android-sdk/
echo "
#Android Paths
export PATH='$HOME/.sdk/android-sdk/tools/:$HOME/.sdk/android-sdk/platform-tools/:${PATH}'
#Adb Alias
alias start-adb='sudo $HOME/.sdk/android-sdk/platform-tools/./adb start-server'
alias kill-adb='sudo $HOME/.sdk/android-sdk/platform-tools/./adb kill-server'
" >> ~/.bashrc
rm android-sdk_r12-linux_x86.tgz
Now simply type in your terminal:
Code:
source ~/.bashrc
or restart your terminal session.
then type:
Code:
android
Working with Sense
Installing apktool
Apktool - http://code.google.com/p/android-apktool/
All apktool credits go to the apktool devs, I just use the tool!
NOTE: Install sdk using my sdk install guide in post 1.
Code:
wget http://android-apktool.googlecode.com/files/apktool1.4.1.tar.bz2
wget http://android-apktool.googlecode.com/files/apktool-install-linux-r04-brut1.tar.bz2
tar -jxvf apktool-install-linux-r04-brut1.tar.bz2
tar -jxvf apktool1.4.1.tar.bz2
mv apktool $HOME/.sdk/android-sdk/platform-tools
mv aapt $HOME/.sdk/android-sdk/platform-tools
mv apktool.jar $HOME/.sdk/android-sdk/platform-tools
rm apktool-install-linux-r04-brut1.tar.bz2
rm apktool1.4.1.tar.bz2
Now if your sdk is setup like mine and you placed it in this folding after following my sdk guide. apktool should now be installed on your system.
Using the apktool (quick overview)
You can simply do the "apktool if" to your framework resources. This is sense below.
Code:
apktool if framework-res.apk
apktool if com.htc.resources.apk
then decompile:
Code:
apktool d framework-res.apk
compile:
Code:
apktool b framework-res
batch decompile:
Code:
for x in $(ls |grep '.apk' |sort); do apktool d $x; echo Decompiled $x; done
batch compile:
Code:
for x in $(ls |grep -v '.apk' |sort); do apktool d $x; echo Compiled $x; done
Languages to look for when removing system languages from apks:
Code:
values-ar values-ar-rEG values-ar-rIL values-bg values-bg-rBG values-br values-ca-rES values-cs values-cs-rCZ values-da values-da-rDK values-de values-de-rAT values-de-rCH values-de-rDE values-de-rLI values-el values-el-rGR values-en-rAU values-en-rCA values-en-rGB values-en-rIE values-en-rIN values-en-rNZ values-en-rSG values-en-rUS values-en-rZA values-es values-es-rES values-es-rUS values-fi values-fi-rFI values-fr values-fr-rBE values-fr-rCA values-fr-rCH values-fr-rFR values-he-rIL values-hi-rIN values-hr values-hr-rHR values-hu values-hu-rHU values-id-rID values-it values-it-rCH values-it-rIT values-ja values-ja-rJP values-ko values-ko-rKR values-lt-rLT values-lv-rLV values-mcc204 values-mcc204-cs values-mcc204-da values-mcc204-de values-mcc204-el values-mcc204-es values-mcc204-es-rUS values-mcc204-fr values-mcc204-it values-mcc204-ja values-mcc204-ko values-mcc204-nl values-mcc204-pl values-mcc204-pt values-mcc204-pt-rPT values-mcc204-ru values-mcc204-sv values-mcc204-tr values-mcc204-zh-rCN values-mcc204-zh-rTW values-mcc230 values-mcc230-cs values-mcc230-da values-mcc230-de values-mcc230-el values-mcc230-es values-mcc230-es-rUS values-mcc230-fr values-mcc230-it values-mcc230-ja values-mcc230-ko values-mcc230-nl values-mcc230-pl values-mcc230-pt values-mcc230-pt-rPT values-mcc230-ru values-mcc230-sv values-mcc230-tr values-mcc230-zh-rCN values-mcc230-zh-rTW values-mcc232 values-mcc232-cs values-mcc232-da values-mcc232-de values-mcc232-el values-mcc232-es values-mcc232-es-rUS values-mcc232-fr values-mcc232-it values-mcc232-ja values-mcc232-ko values-mcc232-nl values-mcc232-pl values-mcc232-pt values-mcc232-pt-rPT values-mcc232-ru values-mcc232-sv values-mcc232-tr values-mcc232-zh-rCN values-mcc232-zh-rTW values-mcc234 values-mcc234-cs values-mcc234-da values-mcc234-de values-mcc234-el values-mcc234-es values-mcc234-es-rUS values-mcc234-fr values-mcc234-it values-mcc234-ja values-mcc234-ko values-mcc234-nl values-mcc234-pl values-mcc234-pt values-mcc234-pt-rPT values-mcc234-ru values-mcc234-sv values-mcc234-tr values-mcc234-zh-rCN values-mcc234-zh-rTW values-mcc260 values-mcc260-cs values-mcc260-da values-mcc260-de values-mcc260-el values-mcc260-es values-mcc260-es-rUS values-mcc260-fr values-mcc260-it values-mcc260-ja values-mcc260-ko values-mcc260-nl values-mcc260-pl values-mcc260-pt values-mcc260-pt-rPT values-mcc260-ru values-mcc260-sv values-mcc260-tr values-mcc260-zh-rCN values-mcc260-zh-rTW values-mcc262 values-mcc262-cs values-mcc262-da values-mcc262-de values-mcc262-el values-mcc262-es values-mcc262-es-rUS values-mcc262-fr values-mcc262-it values-mcc262-ja values-mcc262-ko values-mcc262-nl values-mcc262-pl values-mcc262-pt values-mcc262-pt-rPT values-mcc262-ru values-mcc262-sv values-mcc262-tr values-mcc262-zh-rCN values-mcc262-zh-rTW values-nb values-nb-rNO values-nl values-nl-rBE values-nl-rNL values-pl values-pl-rPL values-pt values-pt-rBR values-pt-rPT values-ro values-ro-rRO values-ru values-ru-rRU values-sk values-sk-rSK values-sl values-sl-rSI values-sr values-sr-rRS values-sv values-sv-rSE values-th values-th-rTH values-tl-rPH values-tr values-tr-rTR values-uk-rUA values-vi values-vi-rVN values-zh-rCN values-zh-rHK values-zh-rTW values-zh-rTW-hdpi values-cs-nokeys values-da-nokeys values-de-nokeys values-el-nokeys values-es-nokeys values-es-rUS-nokeys values-fr-nokeys values-it-nokeys values-ja-nokeys values-ko-nokeys values-nb-nokeys values-nl-nokeys values-pl-nokeys values-pt-nokeys values-pt-rPT-nokeys values-ru-nokeys values-sv-nokeys values-tr-nokeys values-zh-rCN-nokeys values-zh-rTW-nokeys values-lt values-ca values-uk values-lv values-tl values-in values-iw values-ms values-no values-rm values-fa values-sw values-zh-rMO values-mcc262-sk values-mcc262-tl values-mcc234-hr values-mcc234-hu values-mcc262-fi values-mcc234-tl values-mcc234-sr values-mcc234-lv values-mcc262-lv values-mcc234-bg values-mcc234-en-rGB values-mcc234-sl values-mcc262-nb values-mcc234-uk values-mcc262-en-rGB values-mcc262-vi values-mcc234-nb values-mcc262-uk values-mcc262-lt values-mcc262-sr values-mcc262-ar values-mcc262-bg values-mcc234-sk values-mcc262-ca values-mcc262-ro values-mcc234-vi values-mcc262-th values-mcc234-ar values-mcc234-ca values-mcc262-hu values-mcc234-fi values-mcc234-lt values-mcc262-hr values-mcc262-sl values-mcc234-th values-mcc234-ro values-mcc206-de values-mcc228-de values-mcc262-fa values-mcc295-de values-mcc262-rm values-mcc270-de values-mcc262-in values-mcc262-iw values-zh-rHK-land-hdpi values-zh-rCN-land-hdpi values-zh-rHK-hdpi values-zh-rTW-land-hdpi values-mcc214 values-mcc311 values-mcc310 values-mcc466 values-mcc310-mnc220 values-mcc310-mnc200 values-mcc310-mnc270 values-mcc890-mnc126 values-mcc214-mnc1 values-mcc310-mnc800 values-mcc234-mnc15-gb values-mcc310-mnc490 values-mcc204-mnc4 values-mcc310-mnc260 values-mcc250-mnc1 values-mcc204-mnc4-nl values-mcc214-mnc1-es values-mcc310-mnc230 values-mcc310-mnc26 values-mcc310-mnc210 values-mcc310-mnc330 values-mcc234-mnc15 values-mcc310-mnc170 values-mcc310-mnc280 values-mcc310-mnc290 values-mcc310-mnc660 values-mcc310-mnc160 values-mcc262-mnc2-de values-mcc310-mnc240 values-mcc310-mnc580 values-mcc310-mnc310 values-mcc310-mnc250 values-mcc262-mnc2 values-en-rSA values-mcc238-mnc6 values-mcc235-mnc94 values-mcc505-mnc6 values-mcc240-mnc2 values-mcc505-mnc3 values-zh-rCN-hdpi values-mcc234-mnc20 values-mcc272-mnc5 values-mcc232-mnc10 values-en-rUA values-en-rRU values-en-rUA-hdpi values-en-rRU-hdpi values-es-rMX values-zh-rCN-normal-port values-zh-rCN-normal-land values-ur values-ja-rEN values-et values-is values-nn values-tr-800x480 values-zz-rZZ values-mcc466-zz-rZZ values-mcc230-zz-rZZ values-mcc234-zz-rZZ values-mcc214-zz-rZZ values-mcc204-zz-rZZ values-mcc232-zz-rZZ values-mcc262-zz-rZZ values-mcc260-zz-rZZ values-en values-zh-rTW-finger values-de-keysexposed values-ru-keysexposed values-ja-finger values-zh-rTW-keyshidden values-de-keyshidden values-fr-keyshidden values-it-keysexposed values-ru-finger values-ja-keyshidden values-nl-finger values-pl-finger values-fr-finger values-de-finger values-ko-finger values-zh-rCN-keysexposed values-nl-keyshidden values-es-keyshidden values-ru-keyshidden values-zh-rCN-keyshidden values-cs-keysexposed values-cs-finger values-es-finger values-cs-keyshidden values-fr-keysexposed values-nl-keysexposed values-zh-rTW-keysexposed values-it-keyshidden values-it-finger values-pl-keyshidden values-ja-keysexposed values-pl-keysexposed values-ko-keyshidden values-es-keysexposed values-zh-rCN-finger values-ko-keysexposed values-zh values-he values-es-rCR values-es-rCL values-eu values-es-rSV values-es-rNI values-ln values-es-rAR values-gl values-es-rPY values-es-rBO values-es-rPE values-es-rVE values-hi values-mo
Dsixda Android Kitchen:
Dsixda Android Kitchen - https://github.com/dsixda/Android-Kitchen
Again all credit goes to the developers of this kitchen. I only simply use it!
There are two ways to install this kitchen.
- Download it here and unzip it - https://github.com/dsixda/Android-Kitchen/archives/master
- What I do is sync with his github using git.
Note: Make sure you have git installed.
Code:
sudo apt-get install git-core
Then simply clone there repo where ever you like locally.
Code:
git clone https://github.com/dsixda/Android-Kitchen.git
Note: This method is a way to use the latest code. Use at your own risk might be bugs. Don't report issues for versions not released yet!
Working with AOSP
Compiling SalvageMod
NOTE: Until kernel.org is up. This will not work at all!
Hey there, you are here because you want to be able to compile SalvageMod for your HTC Evo. There is one simple way to do so and its very easy. Here are the current versions of SalvageMod that you can compile.
* SalvageMod1.3 (Stable)
* gingerbread (Development)
Click to expand...
Click to collapse
Please note that the gingerbread branch is the same as our "nightly" or unstable branch. As other releases come available this page will be updated with those branches. Now its time for the fun stuff.
Let's make sure we have all the needed files to compile on [http://www.ubuntu.com Ubuntu 11.04].
Use this repo for java:
Code:
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
32 bit install:
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
64 bit users will need:
Code:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.4-multilib g++-4.4-multilib
Now we create a development directory, it doesn't matter what the name is or where its at. For example I always do:
Code:
mkdir -p ~/Development/SalvageMod
Now you need to install repo:
Code:
sudo bash
curl http://android.git.kernel.org/repo > /usr/bin/repo
chmod a+x /usr/bin/repo
exit
Now go into the directory you just created. This is where we will initate the repo we want to use.
* *Remember those branches from before?*
* SalvageMod1.3 (Stable)
* gingerbread (Development)
Click to expand...
Click to collapse
Now initate the repo you want.
* Development
Code:
repo init -u https://github.com/SalvageMod/salvage.git -b gingerbread
Click to expand...
Click to collapse
* Stable
Code:
repo init -u https://github.com/SalvageMod/salvage.git -b SalvageMod1.3
Click to expand...
Click to collapse
Now sync it.
Code:
repo sync
Now it will do some things, could take a long time depending on your internet connection. Go grab a beer.
Now that it is done compiling there are only a few steps before you are on your way to a compiled SalvageMod rom.
Go into the supersonic(Htc Evo) device tree and run extract-files.sh
Code:
cd device/htc/supersonic
./extract-files.sh
Now you want to go back into the root of the build.
Code:
cd ../../..
Should look something like this:
Code:
[email protected]:~/Development/SalvageMod$ ls
bionic build dalvik device frameworks libcore ndk prebuilt system
bootable cts development external hardware Makefile packages sdk vendor
Once you are here we start to get everything together. Run these commands. Then you will use make to build the rom!
Code:
. build/envsetup.sh
lunch salvage_supersonic-userdebug
time make -j$(grep -ic ^processor /proc/cpuinfo) otapackage
That is about it! After this is completed go into the following folder to get your rom!
Code:
cd out/target/product/supersonic
well this means im getting a google +
Considering that i already follow you on Google+, I would definitely want to check this out Lithid. Thanx in advance man.
Thanks Lithid. We appreciate all you do to help us.
Sent from my supersonic using XDA App
What's your plus lith
Sent from my PC36100 using xda premium
I have been really wanting to start without a clue as to where to begin...can I get a Google+ invite?
Sent from my supersonic using XDA App
Me too
I would love to get in on this. send me a G+ invite - jtwalker1
I will forewarn you, I have not done any coding or programming since I learned in college which was many, many moons ago (think pre WWW days)
Thanks
James
renegade37918 said:
What's your plus lith
Sent from my PC36100 using xda premium
Click to expand...
Click to collapse
Plus is in the sig man.
I know basic linux and would like to learn..
What kind of skills would you consider a prerequisite for this? Would not want to be the slow kid in class slowing everyone else down.
Cool I forgot I was already following you lol
Sent from my PC36100 using XDA App
renegade37918 said:
What's your plus lith
Sent from my PC36100 using xda premium
Click to expand...
Click to collapse
its in his sig
lithid-cm said:
Recently there has been some issues with people thinking they are developing when they are not. Now this isn't here to call out anyone. I am here for one simple reason. To teach people how to develop on android correctly. This is an initial post to stir up some interest.
Simply I wanted to try and setup a google+ webchat with questions or comments. How-tos. This can all be done through a google+ chat. If anyone is interested just hit me up on google+ and watch out for the invites it will be in about 2 weeks.
I will be updating this OP with tons of android tips and tricks I have picked up. Currently finshing the first draft in a few minutes.
Thanks!
Click to expand...
Click to collapse
I'm down man I sent you a request on plus Andres luque
Thanks alot
corynat said:
What kind of skills would you consider a prerequisite for this? Would not want to be the slow kid in class slowing everyone else down.
Click to expand...
Click to collapse
I would say basic linux command line functions. Like changing directories, running scripts, listing files, copy and paste, and removing, and text editing.
lithid-cm said:
I would say basic linux command line functions. Like changing directories, running scripts, listing files, copy and paste, and removing, and text editing.
Click to expand...
Click to collapse
"running out to get basic linux for dummies" brb
This sounds cool but I suck with commands LOL.
Sent from my PC36100 using XDA App
DrDr3z85 said:
"running out to get basic linux for dummies" brb
Click to expand...
Click to collapse
Haha +1 that off to barnes and noble!
Thanks lith this is great and much needed will def hit you up on g+
Sent from my PC36100 using Tapatalk

[Guide]Make your own rom(CM9/EVERVOLV) and kernel from source code | Advanced users

I think many want to know how this stuff is actually done,so....read
Kernel Development
U need Linux or Mac OS .The End
I can confirm the below method works on Ubuntu 11.10,32 bit(or other linux distros/mac u need different packages)
1)Open terminal and download these packages(for both 32/64 bit)
Code:
apt-get install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
For 64 bit ,install more packages,otherwise leave
Code:
ia32-libs lib32z1-dev lib32ncurses5-dev gcc-multilib g++-multilib
2)Download kernel source code for pico ,which u will compile,from www.htcdev.com (if u want to compile kernel for ics/jb,use lirokoa's source code from www.github.com/lirokoa/htc_pico_kernel )
Extract the archive somewhere safe
3)Download toolchain needed to compile the kernel from www.github.com/sakindia123/android_toolchains
We'll use arm-eabi-4.4.3 for pico
Now let's assume u have correctly set up your machine
extract the sources and everything else u downloaded....then go into the top directory
Code:
cd Kernel
u enter into the root of the kernel directory with this
then type :
Code:
gedit Makefile
The Make file will open.........look out for this and change CROSS_COMPILE= "your toolchain path"
EXAMPLE:
Code:
CROSS_COMPILE ?= /home/sarthak/Downloads/Toolchains/arm-eabi-4.4.3/bin/arm-eabi-
This will open up the Makefile in a gedit,and the changed values will correspond to wherever u placed your toolchain...
Make the kernel config
Code:
make msm7627a_defconfig
NOTE- Do "make htc_pico_defconfig" is making ics/jb kernel
This will make a working kernel config acc. to the source code
Now,make the necessary changes in your source.When you are done,type:
Code:
make -jX
,where X=no.op cpu threads multiplied by 1 or 2.
Sit down and have a smoke!
The resulting kernel will be in Kernel/arch/arm/boot/zImage
Easy,ain't it?
Remember,this guide doesnt teach u how to make particular changes,it just helps u setting up your build environment and compiling from a given source.
Packaging kernel for flashing on target device
- Take a stock boot.img(or any boot.img that works with the rom)
- Downloads boot image tools from -> https://github.com/sakindia123/boot-image-tools and keep them somewhere
- Place boot.img in source_img folder inside the boot.img-tools folder(create if not there)
- Enter the boot tools directory
- Unpack:
Code:
$ mkdir -p unpack
$ tools/unpackbootimg -i source_img/boot.img -o unpack
-Extracting boot.img-ramdisk.gz
Code:
$ mkdir -p boot
$ cd boot
$ gzip -dc ../unpack/boot.img-ramdisk.gz | cpio -i
$ cd ../
Packing a new ramdisk:
Code:
$ tools/mkbootfs boot | gzip > unpack/boot.img-ramdisk-new.gz
Create a new boot.img:
Code:
$ mkdir -p target_img
$ tools/mkbootimg --kernel unpack/boot.img-zImage --ramdisk unpack/boot.img-ramdisk-new.gz -o target_img/boot.img --base `cat unpack/boot.img-base`
Done!
Now take the boot.img from target_img folder and flash via fastboot.Also push the compiled modules or else wifi wont work
Code:
fastboot flash boot boot.img && fastboot reboot
adb push drivers/net/wireless/bcmdhd/bcmdhd.ko /system/lib/modules
adb push drivers/net/kineto_gan.ko /system/lib/modules
NOTE: If u are compiling kernel for stock/sense roms,wifi module will be found in drivers/net/wireless/bcm4330b2/bcm4330.ko
Enjoy !
Compile rom from source
1) Make your own CyanogenMod9 nightly
So cant wait for the developer to release the next build?gettin' itchy?
Compile on your own!
- Packages
For 64-bit systems(For ICS and above,u need 64 bit and above)
Code:
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-dev:i386 g++-multilib mingw32 openjdk-6-jdk pngcrush schedtool tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
- Create working directories for the build environment:
mkdir -p ~/bin
mkdir -p ~/android/system
- Get Google's repo tool
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
Reboot
- Sync the Repository
Code:
cd ~/android/system/
repo init -u git://github.com/CyanogenMod/android.git -b ics
repo sync -j16
NOTE- USe -j4 if u have slow net connection!
Wait for a few hours depending upon your net connection,it will download 4-5 GB or more
Then ,after syncing finishes,in the root of the source,open the hidden folder ".repo"
create a file local_manifest.xml and put this xml code to sync relevant repos for compiling cm9 for pico
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="lirokoa/android_device_htc_pico_ics" path="device/htc/pico" revision="ics" />
<project name="sakindia123/ics-vendor-pico" path="vendor/htc/pico" revision="master" />
</manifest>
then save and do "repo sync " again
- Compile the actual rom
This is fun bit.Make changes to the sourc code if u want to fix bugs or experiment,then,in the root of working directory,type
Code:
. build/envsetup.sh
brunch pico -jX
NOTE- REPLACE X with the no. of cores on your computer,do not enter X
Wait for it to compile(depends on how crap the computer is)
When it finishes compiling,output will be in out/target/product/pico/cm9-UNOFFICIAL-xxxxxxxx.zip
Flash the zip via recovery
Enjoy
Compile Evervolv Nightly
SO u dont want cm9,u want to compile evervolv,eh?
Follow the setups upto "Get Google's repo tool" in cm9 guide,but instead of cm9 source ,sync this
Code:
cd ~/android/system/
repo init -u git://github.com/cm2pico/android.git -b ics
repo sync -j16
After syncing,do this
Code:
nano vendor/ev/vendorsetup.sh
in the text editor that opens up,type
[/CODE]add_lunch_combo ev_pico-eng[/CODE]
Then to compile,
Code:
. build/envsetup.sh
lunch
Select pico in menu and type
Code:
make -jX otapackage
Replace X with no. of cores on pc!
pico up output zip from out/target/product/pico/Evervolv-2.2.0.zip
Nice think I might try this. I'm running osx is there different tools avalible or am I better off installing win or Linux in a vm
Sent from my HTC Explorer A310e using xda app-developers app
---------- Post added at 01:48 PM ---------- Previous post was at 01:45 PM ----------
Sorry just read the op properly and seen my question answered
Sent from my HTC Explorer A310e using xda app-developers app
May I use cygwin software to use this on windows to emulate properties of Linux? I heard so!
Nice to see new how to threads...
Sent from my Galaxy Nexus using Tapatalk 2
arunsai123 said:
May I use cygwin software to use this on windows to emulate properties of Linux? I heard so!
Click to expand...
Click to collapse
Not really..there are some things that cant be properly emulated..u need a native install or Virtual MAchine
BUMP- Kernel part of the tut has been completed.Hope u guys are successfully in making your own kernel
dude wheres the tutorial for ROM developement!!
updated with instruction to compile own CM9 and evervolv kang
Great Tutorial dude ...
Great Tutorial dude ... ... very clearly explained .... :laugh: :good: :fingers-crossed:
Great I'm going to compile aokp from its source
Sent from my HTC Explorer A310 using xda premium
time to download
well i have airtel broadband connection(unlimited) on 256 kbps, i get a downloading speed of 30-40 kbps.
so, i wanted to ask you all the size of all the sources/data required to compile a single ROM and time taken to download all those things.
siddharth1102 said:
well i have airtel broadband connection(unlimited) on 256 kbps, i get a downloading speed of 30-40 kbps.
so, i wanted to ask you all the size of all the sources/data required to compile a single ROM and time taken to download all those things.
Click to expand...
Click to collapse
cm9 about 4-5gb, evervolv ics about 6-6.5gb
unlike cm7 where you had to download all supported devices which added additional size to main source (16gb or so) cm9 (by default) and evervolv (from sakindia123 that includes device tree and vendor prop files) both only download the main source only which makes the downloads less in size...........for you it would take a long time to download afew hours (i have 15mbps or 1.5meg a sec so didnt take long) once all setup and synced a single cm9 build takes me just over 1hr and evervolv slightly more, all depends on your hardware ie ram, processor etc.....have fun
LiVeRpOoL-FaN said:
cm9 about 4-5gb, evervolv ics about 6-6.5gb
unlike cm7 where you had to download all supported devices which added additional size to main source (16gb or so) cm9 (by default) and evervolv (from sakindia123 that includes device tree and vendor prop files) both only download the main source only which makes the downloads less in size...........for you it would take a long time to download afew hours (i have 15mbps or 1.5meg a sec so didnt take long) once all setup and synced a single cm9 build takes me just over 1hr and evervolv slightly more, all depends on your hardware ie ram, processor etc.....have fun
Click to expand...
Click to collapse
Can i download these things in installments?
siddharth1102 said:
Can i download these things in installments?
Click to expand...
Click to collapse
really the best way is to fully download in 1 go but in terminal you press Ctrl + z (on Ubuntu) to stop the process and then carry it on later, although it wont sync the whole project until all source is downloaded............
LiVeRpOoL-FaN said:
really the best way is to fully download in 1 go but in terminal you press Ctrl + z (on Ubuntu) to stop the process and then carry it on later, although it wont sync the whole project until all source is downloaded............
Click to expand...
Click to collapse
While learning to compile i found that compiling jelly bean on ubuntu 12.04 is it experimental mode. So, i wanted to ask won't it compile properly and will it work i do so?
siddharth1102 said:
While learning to compile i found that compiling jelly bean on ubuntu 12.04 is it experimental mode. So, i wanted to ask won't it compile properly and will it work i do so?
Click to expand...
Click to collapse
i`ve not used 12.04 for anything, i used 11.10 for cm7 and cm9 but found had to use 10.04.4 (lucid) for evervolv ics (aosp code, not cm modified code) i think jb aosp was compiled on 10.04.4 by android aosp team

[GUIDE][DEV][AOSP/LINARO]Compile SaberMod ROM on Ubuntu 12.04+ 64-bit

Hi all, I don't have a nexus 7 3G so I decided to post this guide for people that want to build their own ROMs using my AOSP source from github.
Working on both Ubuntu 12.04+
NOTE: DEPENDING ON YOUR COMPUTER'S HARDWARE, COMPILING TIME WILL BE DIFFERENT
If you have a MAC OSX, I do not have a guide for that as I don't have one.
EVERYTHING THAT IS IN A BOX, OPEN TERMINAL AND ENTER THE COMMAND IN THAT SECTION
Guide Requirements:
- Computer
- Common Sense
- Some Linux Experience
- Ubuntu 64-bit Installed
- At least 4GB of ram with a quad core processor.
Required Software to Install:
Code:
sudo apt-get install git-core gnupg flex bison python gawk p7zip-full gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool xsltproc wx2.8-doc lib32z1-dev ia32-libs lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib libc6-dev x11proto-core-dev libx11-dev libgl1-mesa-glx libreadline6-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils gcc-4.7 g++-4.7
Link libx11
Code:
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
1a. Use this guide to install it before continuing. Use java 1.7
http://forum.xda-developers.com/showpost.php?p=33061055&postcount=1
Setting Up Android SDK
2a. Download Android SDK at http://developer.android.com/sdk/index.html
2b. Extract it to your home folder [e. x. ~/android/sdk]
Setting Up the .bashrc file
Code:
gedit ~/.bashrc
Add this to the very bottom of the file:
Code:
export PATH=$PATH:~/bin:~/android/sdk:~/android/sdk/tools:~/android/sdk/platform-tools
Setup Workplace
3a. Downloading the Source
Code:
mkdir -p ~/bin
mkdir -p ~/android/SaberMod
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
(Open a new terminal window after this)
3b. Setup Necessary Source
Code:
cd ~/android/SaberMod
Code:
repo init -u https://github.com/SaberMod/android.git -b sm-jb-mr1
3c. Download Necessary Source. Put the number of cpu's you have where # is
Code:
repo sync -j#
3d. Set up ccache. The suggested cache size is 50-100GB. You will need to run the following commands once you have downloaded the source code:
Code:
prebuilts/misc/linux-x86/ccache/./ccache -M 50G
3e. Extract needed files for building a fully funtional ROM. I've added CyanogenMod's extraction scripts to the device tree for tilapia which is only needed to be run one time. Do not do this with every build. Make sure your device is plugged in and adb is working.
Code:
bash device/asus/tilapia/extract-files
3f. Building the source code
Building The Source
Code:
bash sm-tilapia
Checking for updates
Code:
repo sync -j#
My own current working builds for tilapia can be found HERE
Note which ones are for tilapia and which ones are for grouper
Gapps (optional add-on package) can be found HERE
Original thread for the device I own for a full list of changes is HERE
Full ROM source code including kernel is available from viewing on my github HERE
Will definitely try this out tomorrow
wesStyle said:
Will definitely try this out tomorrow
Click to expand...
Click to collapse
Let me know how it goes.
Sent from my Nexus 7 using Tapatalk 2
This is a great guide. I really like the CM extract-files script. If you go back far enough in AOSP commit history you can find the commit where the blobs file was deleted. Looking at the diff will get you the file before it was nerfed.
Also, unrelated, but figure I'd help support fellow devs as this drove me nuts. Not sure if it is already in CM but the following core res is required if you have any hope of getting network based location services going:
Code:
<string-array name="config_locationProviderPackageNames" translatable="false">
<!-- The standard AOSP fused location provider -->
<item>com.android.location.fused</item>
<!-- The Google Network Location Services location provider -->
<item>com.google.android.location</item>
</string-array>
Got that one from craigacgomes over at rootzwiki
http://rootzwiki.com/topic/36369-rompure-android-42-jelly-bean-aosp/page__st__160#entry1023485
Synman said:
This is a great guide. I really like the CM extract-files script. If you go back far enough in AOSP commit history you can find the commit where the blobs file was deleted. Looking at the diff will get you the file before it was nerfed.
Also, unrelated, but figure I'd help support fellow devs as this drove me nuts. Not sure if it is already in CM but the following core res is required if you have any hope of getting network based location services going:
Code:
com.android.location.fused
com.google.android.location
Got that one from craigacgomes over at rootzwiki
http://rootzwiki.com/topic/36369-rompure-android-42-jelly-bean-aosp/page__st__160#entry1023485
Click to expand...
Click to collapse
The fused location is already in there. And I got it from XDA not rootzwiki. I'll add the blobs file as well thanks for pointing that out. Wonder why it got removed :/
Sent from my Nexus 7 using Tapatalk 2
I was referring to my ROM source which already has fused location services fixed...
Sent from my Nexus 7 using Tapatalk 2
Synman said:
gotcha! thanks again for the share... It got me past my last hurdle building pure aosp
Click to expand...
Click to collapse
I'm really confused on what your talking about man... Are you trying to build my source? This guide is only for discussion of building my Rom source.
Sent from my Nexus 7 using Tapatalk 2
Building now, no problems so far.
I added kernel building to the source yesterday so your name should be in the kernel version
This makes it 100x easier so I don't have to commit the prebuilt kernel into the source and build the kernel seperate from the ROM source.
Sent from my Nexus 7 using Tapatalk 2
Everything went fine. Successfully flashed and booted. And yeah, kernel building is a good feature too.
Glad to hear. Some new features lockscreen shortcut targets and time/date shortcuts are in. Clicking on the time in notification drawer takes you to alarm settings. Clicking on date will take you to calendar. Long pressing either one will take you to date and time settings.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Sent from my Nexus 7 using Tapatalk 2
Hi sparksco,
Sharing, what is your domain.
I love, what you do for the community!!!
Thank you!!!:good:
daveheart14 said:
Hi sparksco,
Sharing, what is your domain.
I love, what you do for the community!!!
Thank you!!!:good:
Click to expand...
Click to collapse
Domain? And NP it's what I love about android
Sent from my Nexus 7 using Tapatalk 2
Updated for building SaberMod
I attempted to build the Xylon ROM for the Galaxy Nexus using the guide at the thread linked below. I tried using your GCC toolchain from the SaberMod github repo since it was the first Linaro 4.9 toolchain I found. It gave me a internal compiler error.
ROM Compile Guide (Galaxy Nexus): http://forum.xda-developers.com/showthread.php?t=2269825
Do you have any idea what might be causing it? Thanks in advance.
Code:
external/aac/libAACenc/src/aacenc_tns.cpp: In function 'INT FDKaacEnc_TnsEncode(TNS_INFO*, TNS_DATA*, INT, const TNS_CONFIG*, INT, FIXP_DBL*, INT, INT)':
external/aac/libAACenc/src/aacenc_tns.cpp:1004:5: error: definition in block 48 follows the use
INT FDKaacEnc_TnsEncode(
^
for SSA_NAME: value_155 in statement:
# DEBUG D#405 => MAX_EXPR <value_155, _111>
external/aac/libAACenc/src/aacenc_tns.cpp:1004:5: internal compiler error: verify_ssa failed
0xc2358c verify_ssa(bool)
../.././../gcc/gcc-SaberMod/gcc/tree-ssa.c:1046
0x9f66e2 execute_function_todo
../.././../gcc/gcc-SaberMod/gcc/passes.c:1970
0x9f704d execute_todo
../.././../gcc/gcc-SaberMod/gcc/passes.c:2002
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [/home/kemikalelite/android/out/target/product/maguro/obj/STATIC_LIBRARIES/libFraunhoferAAC_intermediates/libAACenc/src/aacenc_tns.o] Error 1
Also: There should be a link to the other guide thread I used at the top my quote. This is the fourth fifth sixth attempt to post this at this thread due to a reply bug in Tapatalk. Putting this notice here in case it goes to the wrong thread again.
KemikalElite said:
I attempted to build the Xylon ROM for the Galaxy Nexus using the guide at the thread linked below. I tried using your GCC toolchain from the SaberMod github repo since it was the first Linaro 4.9 toolchain I found. It gave me a internal compiler error.
ROM Compile Guide (Galaxy Nexus): http://forum.xda-developers.com/showthread.php?t=2269825
Do you have any idea what might be causing it? Thanks in advance.
Code:
external/aac/libAACenc/src/aacenc_tns.cpp: In function 'INT FDKaacEnc_TnsEncode(TNS_INFO*, TNS_DATA*, INT, const TNS_CONFIG*, INT, FIXP_DBL*, INT, INT)':
external/aac/libAACenc/src/aacenc_tns.cpp:1004:5: error: definition in block 48 follows the use
INT FDKaacEnc_TnsEncode(
^
for SSA_NAME: value_155 in statement:
# DEBUG D#405 => MAX_EXPR <value_155, _111>
external/aac/libAACenc/src/aacenc_tns.cpp:1004:5: internal compiler error: verify_ssa failed
0xc2358c verify_ssa(bool)
../.././../gcc/gcc-SaberMod/gcc/tree-ssa.c:1046
0x9f66e2 execute_function_todo
../.././../gcc/gcc-SaberMod/gcc/passes.c:1970
0x9f704d execute_todo
../.././../gcc/gcc-SaberMod/gcc/passes.c:2002
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [/home/kemikalelite/android/out/target/product/maguro/obj/STATIC_LIBRARIES/libFraunhoferAAC_intermediates/libAACenc/src/aacenc_tns.o] Error 1
Also: There should be a link to the other guide thread I used at the top my quote. This is the fourth fifth sixth attempt to post this at this thread due to a reply bug in Tapatalk. Putting this notice here in case it goes to the wrong thread again.
Click to expand...
Click to collapse
My toolchain is not Linaro, it's SaberMod toolchain I built myself. Er, this guide isn't for building Xylon it's for building SaberMod
sparksco said:
My toolchain is not Linaro, it's SaberMod toolchain I built myself. Er, this guide isn't for building Xylon it's for building SaberMod
Click to expand...
Click to collapse
EDIT - After 12 hours its finally done
sparksco I am following the guide of CI3kener to build your toolchain. I have repo synced eveything , but when I run the script to make the android eabi folder, it runs fine for first few minutes then hangs. I am using it in virtual box. Have assigned 6 gb ram and have 20 gb of swap size. But its getting forward in a snail's pace. It stops responding then after 15-20 minutes I see 3-4 lines in terminal then the same thing again. Good thing is it hasnt stopped however slow it maybe
Any suggestions.
vikas724 said:
EDIT - After 12 hours its finally done
sparksco I am following the guide of CI3kener to build your toolchain. I have repo synced eveything , but when I run the script to make the android eabi folder, it runs fine for first few minutes then hangs. I am using it in virtual box. Have assigned 6 gb ram and have 20 gb of swap size. But its getting forward in a snail's pace. It stops responding then after 15-20 minutes I see 3-4 lines in terminal then the same thing again. Good thing is it hasnt stopped however slow it maybe
Any suggestions.
Click to expand...
Click to collapse
Check 'Makefile.in'. Variable 'NUM_JOBS' is probably not declared resulting in infinite(!) jobs. Set manually as workaround. I have no clue how this should be handled properly. Maybe i'm missing a parent script here?
Edit: Fixed in latest releases.
vikas724 said:
EDIT - After 12 hours its finally done
sparksco I am following the guide of CI3kener to build your toolchain. I have repo synced eveything , but when I run the script to make the android eabi folder, it runs fine for first few minutes then hangs. I am using it in virtual box. Have assigned 6 gb ram and have 20 gb of swap size. But its getting forward in a snail's pace. It stops responding then after 15-20 minutes I see 3-4 lines in terminal then the same thing again. Good thing is it hasnt stopped however slow it maybe
Any suggestions.
Click to expand...
Click to collapse
I fixed the high resource issue. It was a commit from AOSP I reverted.
Hey, I am a beginer on ROM dev.
I was setting up AOSP build enviroment on Ubuntu 12.04 64 bit and I followed google's tutorial, when i was on the step
$ 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 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
There is error prompt up,
The following packages have unmet dependencies:
libgl1-mesa-glx:i386 : Depends: libglapi-mesa:i386 (= 9.0-0ubuntu1)
Recommends: libgl1-mesa-dri:i386 (>= 7.2)
E: Unable to correct problems, you have held broken packages.
I can't install libglapi-mesa:i386 or libgl1-mesa-dri:i386, as doing so would remove my xserver component. I am not sure what is the next step.

Categories

Resources