[GUIDE] Compiling CyanogenMod and Kernels from Source on Mac OS X Lion using Homebrew - Nexus S Android Development

I have written this guide as most existing guides for Mac OS X use MacPorts and include steps that are now unnecessary. It is geared towards intermediate users and up, who know some Terminal basics.
I had used the same build environment previously on Snow Leopard and later on when I upgraded to Lion. Now that I have just clean installed Lion, I documented the steps I took to rebuild my build environment.
I did the following on Lion 10.7.2 and Xcode 4.2. As far as I can recall, it should work with Snow Leopard and Xcode 4 and above. Do let me know if it does not.
Setup Build Environment
Install Xcode
Install Java
Install Homebrew: (For more on Homebrew: http://mxcl.github.com/homebrew)
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
Click to expand...
Click to collapse
Install Android SDK:
$ brew install android-sdk
Click to expand...
Click to collapse
with ADB:
$ android
Click to expand...
Click to collapse
then install "Android SDK Platform-tools" and close the window.
Install Repo:
$ brew install repo
Click to expand...
Click to collapse
Install and symlink packages:
$ brew install findutils gnu-sed gnupg pngcrush
$ echo "PATH=/usr/local/bin:\$PATH" >> ~/.bash_profile
$ ln -s /usr/local/bin/gfind /usr/local/bin/find
$ ln -s /usr/local/bin/gsed /usr/local/bin/sed
Click to expand...
Click to collapse
Create a case-sensitive partition or disk image:
$ hdiutil create -type SPARSE -fs "Case-sensitive Journaled HFS+" -size 16g -volname "Android" -attach ~/Desktop/Android
Click to expand...
Click to collapse
Download CyanogenMod Source
$ mkdir /Volumes/Android/cm7
$ cd /Volumes/Android/cm7
$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
$ repo sync -j32
Click to expand...
Click to collapse
Copy Proprietary Files
This only needs to be done once.
Connect device to computer and then:
$ cd /Volumes/Android/cm7/device/samsung/crespo
$ ./extract-files.sh
Click to expand...
Click to collapse
Download ROM Manager
This only needs to be done when ROM Manager is updated.
$ /Volumes/Android/cm7/vendor/cyanogen/get-rommanager
Click to expand...
Click to collapse
Edit CyanogenMod Source
Build will fail unless the following edits are made.
Add lines in red to cm7/external/elfutils/config-compat-darwin.h:
#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
static inline size_t strnlen (const char *__string, size_t __maxlen)
{
int len = 0;
while (__maxlen-- && *__string++)
len++;
return len;
}
#endif
Click to expand...
Click to collapse
Comment out every line in cm7/external/qemu/Android.mk:
# the following test is made to detect that we were called
# through the 'm' or 'mm' build commands. if not, we use the
# standard QEMU Makefile
#
#ifeq ($(DEFAULT_GOAL),droid)
# LOCAL_PATH:= $(call my-dir)
# include $(LOCAL_PATH)/Makefile.android
#else
# include Makefile.qemu
#endif
Click to expand...
Click to collapse
Compile CyanogenMod Source
$ cd /Volumes/Android/cm7
$ . build/envsetup.sh
$ brunch crespo -j`sysctl -an hw.logicalcpu`
Click to expand...
Click to collapse
If the build was successful, there should be an update-cm-X.X.X-NS-KANG-signed.zip in the cm7/out/target/product/crespo folder.
Congrats! If you've made it up to here, you can breathe a sigh of relief and enjoy your own hot smoking bacon. And when you want fresher bacon:
Update CyanogenMod Source
$ cd /Volumes/Android/cm7
$ repo sync -32
Click to expand...
Click to collapse
then build as before.
Building Kernels
If you have done the above, there is nothing much more to add for building kernels.
Install packages:
$ brew install coreutils xz
Click to expand...
Click to collapse
Download kernel source:
$ cd /Volumes/Android
$ git clone git://github.com/CyanogenMod/samsung-kernel-crespo.git
Click to expand...
Click to collapse
Generate default config:
$ cd samsung-kernel-crespo
$ make ARCH=arm herring_defconfig
Click to expand...
Click to collapse
Compile kernel source:
$ ln -s /usr/local/bin/gstat /usr/local/bin/stat
$ ln -s /usr/local/bin/gexpr /usr/local/bin/expr
$ make -j`sysctl -an hw.logicalcpu` ARCH=arm CROSS_COMPILE=../cm/prebuilt/darwin-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- HOSTCFLAGS="-I../cm/external/elfutils/libelf"
$ rm /usr/local/bin/stat
$ rm /usr/local/bin/expr
Click to expand...
Click to collapse
Best to put the above in a Bash script. Temporarily symlink stat and expr, only for kernel compilation, as OS X versions might be expected elsewhere (like in CyanogenMod's scripts). Other guides for cross-compiling Linux kernels on Mac mention several ways to resolve missing elf.h definitions. Luckily for us, CM7 source already has an elf.h, so we can include it with HOSTCFLAGS="-I../cm/external/elfutils/libelf".

Wow...and guide for compile kernel??
Ihihih...
Inviato dal mio Nexus S

Mac?..........
Hahahhahaahahahahhahahahahahhaa

dario3040 said:
Mac?..........
Hahahhahaahahahahhahahahahahhaa
Click to expand...
Click to collapse
Unfortunately yeah, I need it for *gasp* iOS development

coloxim said:
Wow...and guide for compile kernel??
Ihihih...
Inviato dal mio Nexus S
Click to expand...
Click to collapse
Just added. It's about the same as on linux, much less mac quirks to work around.

ahbeng said:
Just added. It's about the same as on linux, much less mac quirks to work around.
Click to expand...
Click to collapse
Thank you so much...
Inviato dal mio Nexus S

I know a lot of people will be able to save precious time due to this. Including me Thanx a lot!

So how do you take the compiled kernel and make it the default kernel in the new Bacon, or will it be automatic on the next Bacon build?
Sent from my Nexus S using XDA App

viper2g1 said:
So how do you take the compiled kernel and make it the default kernel in the new Bacon, or will it be automatic on the next Bacon build?
Sent from my Nexus S using XDA App
Click to expand...
Click to collapse
It won't, that's just to compile. The kernel part of the guide is more to document Mac-specific workarounds for people who want to work with the source of the CM7 kernel or other kernels.
If you're just making Bacon, the latest CM7 kernel binary would already be included in the CM7 source. It is the same as what you'd get if you compiled unmodified CM7 kernel source and I think it is a good idea to have that to fall back on.
However, I guess it would be useful to document how to package the compiled kernel and modules in a flashable AnyKernel zip. Bit busy now, will add it later.

ahbeng said:
It won't, that's just to compile. The kernel part of the guide is more to document Mac-specific workarounds for people who want to work with the source of the CM7 kernel or other kernels.
If you're just making Bacon, the latest CM7 kernel binary would already be included in the CM7 source. It is the same as what you'd get if you compiled unmodified CM7 kernel source and I think it is a good idea to have that to fall back on.
However, I guess it would be useful to document how to package the compiled kernel and modules in a flashable AnyKernel zip. Bit busy now, will add it later.
Click to expand...
Click to collapse
Ok thanks, it would be awesome to know how to make Bacon with matr1x already set as the default kernel.
Sent from my Nexus S using XDA App

quality post.

viper2g1 said:
Ok thanks, it would be awesome to know how to make Bacon with matr1x already set as the default kernel.
Sent from my Nexus S using XDA App
Click to expand...
Click to collapse
I realized that if I started to include instructions for that, I should split it out along with other tips into a new post on how I bake in some simple customizations with a bash script, without a full-blown kitchen. (Because that is not platform-specific) When I have time! In the meantime, some quick pointers:
To change the default kernel for any ROM, you'll need to change the boot.img in the zip using unpackbootimg and mkbootimg, which would have been built along with CM7 in cm7/out/host/darwin-x86/bin (linux-x86 for linux). Copy them to somewhere in your path like /usr/local/bin. Copy the boot.img from the ROM zip and the zImage for the kernel you want to embed into another directory then run the following commands in that directory:
unpackbootimg -i boot.img
mkbootimg --kernel zImage --ramdisk boot.img-ramdisk.gz --cmdline "`cat boot.img-cmdline`" --base `cat boot.img-base` --pagesize `cat boot.img-pagesize` -o boot.img
Click to expand...
Click to collapse
then replace the original boot.img in the ROM zip with this new one. Hope that helps!
PS: And replace the modules in system/modules with the ones from the kernel you want to embed. (Caveat: I don't do any of this manually)

ahbeng said:
I realized that if I started to include instructions for that, I should split it out along with other tips into a new post on how I bake in some simple customizations with a bash script, without a full-blown kitchen. (Because that is not platform-specific) When I have time! In the meantime, some quick pointers:
To change the default kernel for any ROM, you'll need to change the boot.img in the zip using unpackbootimg and mkbootimg, which would have been built along with CM7 in cm7/out/host/darwin-x86/bin (linux-x86 for linux). Copy them to somewhere in your path like /usr/local/bin. Copy the boot.img from the ROM zip and the zImage for the kernel you want to embed into another directory then run the following commands in that directory:
then replace the original boot.img in the ROM zip with this new one. Hope that helps!
PS: And replace the modules in system/modules with the ones from the kernel you want to embed. (Caveat: I don't do any of this manually)
Click to expand...
Click to collapse
I'm gonna give this a shot after work. Its great info and I never found it searching. Thanks!
Sent from my Nexus S using XDA App

Couldn't one just us the process for initializing the environment like how you would for AOSP? Or will that still have issues?

BlueDrgBlade said:
Couldn't one just us the process for initializing the environment like how you would for AOSP? Or will that still have issues?
Click to expand...
Click to collapse
No need. What you see is just cosmetic fix
Sent from my Nexus S using Tapatalk 2

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
-e:1: syntax error, unexpected ']'
[This script has been moved.]
^[/QUOTE]
... What do I do :$
Click to expand...
Click to collapse

Does anyone know where I can find a CM9 version of this guide?

Sorry for bump...will this work for any gingerbread device?

Aquethys said:
Sorry for bump...will this work for any gingerbread device?
Click to expand...
Click to collapse
Yes

I get an error trying to mkdir /Volumes/Android/cm7
mkdir: /Volumes/Android: No such file or directory
Help?

Related

[Q] [KERNEL] ARMv6 vs ARMv7 cross-compile question / tun.ko for LG Revo

hello all -- ive mostly been a lurker (been too busy), but i finally found some time to try and get the ipsec vpn working on my stock-but-rooted LG Revo. despite some ardent googling, i couldn't find a working tun.ko that would work with vpc/VPN Connections. so i decided to compile my own.
i figure since there's certainly nothing in the LG Revo boards here specific to compiling tun.ko for the LG Revo, i'd start this thread and document my steps along the way. i figure other board users can use for reference etc. hope it's ok mods/admins!
the short version/TL;DR:
i have compiled my own tun.ko for my stock/rooted LG Revolution. i have the correct kernel version (etc) but am stuck because i dont seem to be able to compile ARMv7, only ARMv6. this is the error i receive when i try to insmod:
Code:
tun: version magic '2.6.32.9-perf preempt mod_unload ARMv6 ' should be '2.6.32.9-perf preempt mod_unload ARMv7 '
basically i need to compile it for ARMv7 not ARMv6. i don't know how.
the long version, aka the steps i took:
starting in a nice clean folder, download the linux kernel src specific to the version of the kernel on my rooted stock LG Revo. i obtained this earlier (you can check via Settings -> About Phone -> Kernel version. if you have a stock (rooted or not) LG Revolution it will be: 2.6.32.9-perf.
Code:
$ mkdir -p $HOME/tmp/lgrevosrc
$ export LGREVOSRC=$HOME/tmp/lgrevosrc
$ cd $LGREVOSRC
$ wget -q http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.9.tar.bz2
$ wget -q http://dl.google.com/android/android-sdk_r10-linux_x86.tgz
$ wget -q http://dl.google.com/android/ndk/android-ndk-r5b-linux-x86.tar.bz2
$ tar xjf linux-2.6.32.9.tar.bz2
$ tar xzf android-sdk_r10-linux_x86.tgz
$ tar xjf android-ndk-r5b-linux-x86.tar.bz2
earlier, i copied the config file for the kernel specific to my LG Revo by using Root Explorer and copying the /proc/config.gz file. i now copy this into my linux kernel src tree, being sure to gzunzip it first and to copy it to the src folder as ".config", not "config".
Code:
$ cd $LGREVOSRC/linux-2.6.32.9
$ gzip -d ~rickt/tmp/from_my_lgrevo/config.gz
$ cp ~rickt/tmp/from_my_lgrevo/config .config
now we have to edit the .config file and add the tun module so it will be compiled. i added the following line to the .config file:
Code:
CONFIG_TUN=m
now, we compile the modules, being sure to set the environment variables for the architecture we NEED, not the one we're compiling on:
Code:
$ export ARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ export PATH=$PATH:$LGREVOSRC/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin
$ make modules
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/docproc
HOSTCC scripts/basic/hash
HOSTCC scripts/kconfig/conf.o
< snipped, for brevity >
LD [M] net/sched/cls_flow.ko
CC net/sched/sch_dsmark.mod.o
LD [M] net/sched/sch_dsmark.ko
$
let make sure the tun.ko module was compiled, and we'll see what type of arch it was compiled for:
Code:
$ find . -name tun.ko
./drivers/net/tun.ko
$ ls -l ./drivers/net/tun.ko
-rw-r--r-- 1 root root 190705 Aug 19 06:35 ./drivers/net/tun.ko
$ file ./drivers/net/tun.ko
./drivers/net/tun.ko: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped
$ strings ./drivers/net/tun.ko | grep -i arm
vermagic=2.6.32.9-perf preempt mod_unload ARMv6
BOOM! note the ARMv6. this is important, because when i try to insert the module into the kernel on my android (after copying it over, obviously) i get:
Code:
# insmod tun.ko
insmod: init_module 'tun.ko' failed (Exec format error)
ok, so i start nosing around in the logs to see what i can see, and i see:
Code:
<3>[122130.240509] tun: version magic '2.6.32.9-perf preempt mod_unload ARMv6 ' should be '2.6.32.9-perf preempt mod_unload ARMv7 '
so... i guess this was a long and drawn-out way of saying that i have a great desire to have a tun.ko for our beloved LG Revolution, but i'm not sure how to have gcc on a linux box cross-compile for ARMv7, not ARMv6.
anyone? bueller?
I work quite a bit with cross-compilers in my day job, but I haven't tried to use any of the pre-packaged ones in the Android SDK(s).. however, until I have time to play with them, the ARMv6 versus 7 probably relates to these 2 variables:
$ export ARCH=arm
$ export CROSS_COMPILE=arm-eabi-
Also, gcc has -march and -mtune params that can sometimes be used to select specific CPUs and/or sub-architectures within a main CPU family.. if someone (e.g. LG) gave out an SDK for the Revo specifically, their gcc would probably already be "spec'ed" to march and mtune for the specific CPU..so maybe the generic Android ARM gcc cross-compiler defaults to ARMv6.
I may have time to poke into this later, but it probably won't be today..
- Phil
I've been informed that GCC cannot output ARMv7. I think licensed developer tools are needed. Can anyone confirm this?
RMT.
GCC4.3 added ARMv7 support. This discussion seems to confirm the various details:
I think in GCC 4.3 is where you get ARMv7 architecture support, (see
http://gcc.gnu.org/gcc-4.3/changes.html), which is EABI and at GCC 4.4
you have "EABI-compatible profiling interface for EABI targets." (again see
http://gcc.gnu.org/gcc-4.4/changes.html).
So I've chosen to work on 4.4 just to be sure, and it also supports Cortex-A9, as
well as VFPv3 (yeah!).
Click to expand...
Click to collapse
Full discussion here:
http://freebsd.1045724.n5.nabble.com/ARMv7-EABI-Cross-Compiler-tp4201510p4201523.html
Depending on who is providing the cross-compiler you are trying to use, they may either be using something prior to gcc4.3, or, they are providing a compiler which has not been enabled with the ARMv7 target. You could try using Kegel's cross-tool with a recent gcc (4.4 or 4.5) to build your own ARMv7 cross-compiler, but not sure how deep you want to go with this!
- Phil
I haven't been able to get a working tun.ko for this either. I've having trouble compiling my own. Could you post the adapter you're working with?
I just saw a verizon update come down, but kernel is 2.6.32.9-perf [email protected] #1.
Bumping this ol' thread hoping that progress has been made or someone knows about a thread I missed. Trying (hoping) to get OpenVPN going with my Revo so I'm hoping there's a tun.ko available.
I successfully compiled a tun.ko for mine using the "crossdev" package on gentoo. Just setting ARCH=arm CROSS_COMPILE=arm-eabi- did the trick for me.
I believe older verions of gcc were not yet capable of producing ARMv7.
gcc 4.5.3 certainly is. I would try upgrading to that if possible and that ought to work.
I'd be happy to share my tun.ko with anyone that wants it as well...
Slightly unrelated, I also found that loading the module (insmod tun.ko) did not cause the /dev/net/tun node to be created for some reason...
a simple
Code:
mkdir /dev/net
mknod /dev/net/tun c 10 200
as root, and AFTER loading the module resolves that problem, at least until the next reboot. I haven't figured out how to get it to run a script at boot yet to automate it.
If anyone wants the tun.ko let me know and I'll upload it somewhere.
Bait-Fish said:
Bumping this ol' thread hoping that progress has been made or someone knows about a thread I missed. Trying (hoping) to get OpenVPN going with my Revo so I'm hoping there's a tun.ko available.
Click to expand...
Click to collapse
Blitz includes tun.ko
Sent from my VS910 4G using xda premium
nasaiya said:
I'd be happy to share my tun.ko with anyone that wants it as well...
Click to expand...
Click to collapse
Thanks you very much for the offer. I am a total noob as far as compiling goes!
mtmichaelson said:
Blitz includes tun.ko
Click to expand...
Click to collapse
Damn sweet! I never needed it before so that went right over my head previously. Can I simply extract it or would I have to be on BK? (which I'm not)
Sent from my VS910 4G using Tapatalk
I believe you need to install ClockWorkMod to flash blitz onto your phone. You can backup first and try it out safely with CWM. Just follow the instructions in the thread it's easy.
Here's my tun.ko for anyone that wants it. I found "openvpn installer" and "openvpn settings" apps perfect for my needs (only issue is I still have to manually add the device node -- even with blitzkrieg, but it's no big deal)
http://www.box.com/s/a50pnexofiej4in7s5h7
Bait-Fish said:
Thanks you very much for the offer. I am a total noob as far as compiling goes!
Damn sweet! I never needed it before so that went right over my head previously. Can I simply extract it or would I have to be on BK? (which I'm not)
Sent from my VS910 4G using Tapatalk
Click to expand...
Click to collapse
You could try pulling it from the blitz zip and dropping it in your /system/lib/modules and see if it works!
Sent from my VS910 4G using xda premium
Cool, thanks. I'll attempt the 'easy' way first.
Sent from my VS910 4G using Tapatalk

[GUIDE] Rolling your own CM7

Here's a short tutorial on how to build your own version of CM7.
Requirements:
- Linux distro such as Ubuntu.
- 30 GB of space.
- Fast internet.
Instructions:
1. Open terminal and install these packages through the commands:
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
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 pngcrush schedtool
If you are on a 64-bit system, install these also:
Code:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.4-multilib g++-4.4-multilib
2. Create directories.
Code:
mkdir -p ~/bin
mkdir -p ~/android/system
3. Fetch files from CM.
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
cd ~/android/system
~/bin/repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
~/bin/repo sync
This will take some hours.
4. Download this git: https://github.com/koush/proprietary_vendor_lge - then extract to /vendor/lge/ (so you have /vendor/lge/p970/...).
5. Build.
Code:
~/android/system/vendor/cyanogen/get-rommanager
. build/envsetup.sh && brunch p970
You'll have the .zip in ~/android/system/out/target/product/p970/.
6. Flash the kang!
That's it.
Only a remark:
- Trying to build my own ROM, I've found that the .zip were 15MB smaller than the same nightly because it doesn't include proprietary files into the ROM. Then arcee told me that before build it, you have to run ./setup-makefiles.sh inside the device's dir.
Huexxx said:
Only a remark:
- Trying to build my own ROM, I've found that the .zip were 15MB smaller than the same nightly because it doesn't include proprietary files into the ROM. Then arcee told me that before build it, you have to run ./setup-makefiles.sh inside the device's dir.
Click to expand...
Click to collapse
No need, check point 4.
thank you very much manuel, very kind of you to share your knowledge with those of us who want to continue your work!
When I tried, I ran ./extract-files.sh in order to get proprietary files from phone itself.
Getting it from the indicated git, you get also the needed .mk files, and then there's no need to run ./setup-makefiles.sh
Forget what I've said...
I hope this guide may inspire some members to give a hand cooking own rom, and we can see this development section filled with different roms. What an optimistic scenario it would be ! .
Thanks again all devs.
knzo said:
Here's a short tutorial on how to build your own version of CM7.
Code:
curl http://android.git.kernel.org/repo > ~/bin/repo
chmod a+x ~/bin/repo
cd ~/android/system
~/bin/repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
~/bin/repo sync
Click to expand...
Click to collapse
in case anyone else faces this, could not run repo init and was going crazy, finally realized repo was not taking the exec flag, opened it up and saw the url was moved, but the link it provided did not work either. remembered the original setup i did for the full android development on another machine and tried this instead -
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
worked like a charm! now, on to the rest...
i am happy to say that i have successfully built and am running my first homegrown KANG, thanks to this tutorial! give it a try, it isn't as hard as you might think (but it does take a VERY long time!)
Hi.
I am a completely n00b here and on the Android environment in general.
So, I was watching the Knzo's instructions and I noted this:
Code:
~/bin/repo init -u git://github.com/CyanogenMod/android.git -b [/bold]gingerbread[/bold]
So I changed it to:
Code:
~/bin/repo init -u git://github.com/CyanogenMod/android.git -b [/bold]isc[/bold]
And it worked!
But, trying to build here:
Code:
~/android/system/vendor/cyanogen/get-rommanager
. build/envsetup.sh && brunch p970
My system says:
Code:
bash: /home/said/android/system/vendor/cyanogen/get-rommanager: No such file or directory
Then I tough, "It's ok, I can get the rom-manager from the market. And skipped to:
Code:
. build/envsetup.sh && brunch p970
But then my system said:
Code:
[email protected]:~/android/system$ . build/envsetup.sh && brunch p970
including device/samsung/maguro/vendorsetup.sh
including device/samsung/tuna/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/p970/cm.mk]]: "device/*/p970/cm.mk" does not exist. Stop.
Device p970 not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_lge_p970
Duplicate device 'CyanogenMod/android_device_lge_p970' found in local_manifest.xml.
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/p970/cm.mk]]: "device/*/p970/cm.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_p970'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
Then I tried:
Code:
. build/envsetup.sh && breakfast p970
And this is the output:
Code:
including device/samsung/maguro/vendorsetup.sh
including device/samsung/tuna/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/p970/cm.mk]]: "device/*/p970/cm.mk" does not exist. Stop.
Device p970 not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_lge_p970
Duplicate device 'CyanogenMod/android_device_lge_p970' found in local_manifest.xml.
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/p970/cm.mk]]: "device/*/p970/cm.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_p970'
** Do you have the right repo manifest?
So I went to:
Code:
/android/system/build/envsetup.sh
But couldn't find anything resembling the repo manifest. So that's why I'm here... any help?
Thanks in advanced.
EDIT: Maybe I'm just naïve...
saidhabla said:
I am a completely n00b here and on the Android environment in general.
So I changed it to:
Code:
~/bin/repo init -u git://github.com/CyanogenMod/android.git -b [b]isc[/b]
And it worked!
Click to expand...
Click to collapse
What is isc? Do you mean ics stands for Ice Cream Sandwich?
ICS from CyanogenMod isn't even completed yet, then what are you trying to do?
If you really want to hacking the Android system, I suggest that you synchronize the original android source for ICS to build your own ROM:
Code:
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
PS: I don't know yet the size of ICS source would be.. It says ~6 GB, but I'm not getting into it yet...
.CMIIW.
The first part is easy, rom-manager is in vendor/cm folder instead. The second part is a bit more difficult - there are only device branches for a few models, you need to look at those makefiles and figure out how to recreate them for our device. I'm at the same point myself. Don't be discouraged by negatives, it certainly can be done (arcee is running it) but we should probably discuss it elsewhere and not hijack this thread. Good luck, and PM me of you get anywhere, I'll do the same.
Sent from my LG-P970 using XDA App
redy2006 said:
What is isc? Do you mean ics stands for Ice Cream Sandwich?
ICS from CyanogenMod isn't even completed yet, then what are you trying to do?
If you really want to hacking the Android system, I suggest that you synchronize the original android source for ICS to build your own ROM:
Code:
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
PS: I don't know yet the size of ICS source would be.. It says ~6 GB, but I'm not getting into it yet...
.CMIIW.
Click to expand...
Click to collapse
Thanks!
So, just in case some lost soul come here and watch your post, the command has to be like this:
Code:
~/bin/repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
Thanks again...
---------- Post added at 12:19 PM ---------- Previous post was at 12:18 PM ----------
dharmabm said:
The first part is easy, rom-manager is in vendor/cm folder instead. The second part is a bit more difficult - there are only device branches for a few models, you need to look at those makefiles and figure out how to recreate them for our device. I'm at the same point myself. Don't be discouraged by negatives, it certainly can be done (arcee is running it) but we should probably discuss it elsewhere and not hijack this thread. Good luck, and PM me of you get anywhere, I'll do the same.
Sent from my LG-P970 using XDA App
Click to expand...
Click to collapse
Agree!
And if someone knows how to open a new thread, please let us know. Over for now.
saidhabla said:
And if someone knows how to open a new thread, please let us know. Over for now.
Click to expand...
Click to collapse
"How to open a new thread" ?
Just on the thread list of General/Android Development section, you will notice a yellow box on the top saying in capital : "NEW THREAD". Just click it..
saidhabla said:
Thanks!
So, just in case some lost soul come here and watch your post, the command has to be like this:
Code:
~/bin/repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
Click to expand...
Click to collapse
If you've read the main Android documentation, before we can run just "repo" command, we should set the path:
Code:
$ PATH=~/bin:$PATH
If the path didn't set, then it should run the command:
Code:
$ ~/bin/repo
.CMIIW.
Why would I build my own CM7
Hi
Cyanogen has nightly builds fo CM7. Why would I build my own?
Does it make it possible to change the packages included? Is there a tutorial for it?
Is it possible to take out the LG launcher, widgets and that top bar thing that allows to control the connections, and include it in my build?
(please don't ask why would I want the LG launcher. I just like it...).
Thanks
Mário
offcourse said:
Hi
Cyanogen has nightly builds fo CM7. Why would I build my own?
Does it make it possible to change the packages included? Is there a tutorial for it?
Is it possible to take out the LG launcher, widgets and that top bar thing that allows to control the connections, and include it in my build?
(please don't ask why would I want the LG launcher. I just like it...).
Thanks
Mário
Click to expand...
Click to collapse
i'm sorry,but how long have you been in mars ? lol
the nightlies had stopped at v #20 because of the buildbot was down, and no more update till now
that's why all of us (i don't know if it's just me) are so desperated
offcourse said:
Hi
Cyanogen has nightly builds fo CM7. Why would I build my own?
Does it make it possible to change the packages included? Is there a tutorial for it?
Is it possible to take out the LG launcher, widgets and that top bar thing that allows to control the connections, and include it in my build?
(please don't ask why would I want the LG launcher. I just like it...).
Thanks
Mário
Click to expand...
Click to collapse
Well you can build your own ROM if you having the source code, for example this CM source. And yes, you can do everything you want (change the packages, framework, anything). AFAIK there's no tutorial how to do it, but you should have basically programming skill, especially with C++ and Java, since it's based from those programming language. If you don't have that, then you can just using any launcher out there
CMIIW
redy2006 said:
Well you can build your own ROM if you having the source code, for example this CM source. And yes, you can do everything you want (change the packages, framework, anything). AFAIK there's no tutorial how to do it, but you should have basically programming skill, especially with C++ and Java, since it's based from those programming language. If you don't have that, then you can just using any launcher out there
CMIIW
Click to expand...
Click to collapse
OK, thanks. Clearly not for me coz' we, Martians, don't have programming skills. Just wanted a gingerbread rom without all the crap, neither LG's, Vodafone or even Cyanogen.
Also, because LG's gingerbread update, when it comes, will probably not have the VPN and I can't get any vpn software to work currently, except in Cyanogen (which is buggy in some apps).
I am sorry but vendor lge have 404 error can you get another link ?

Development! Project JellyBeanSwift - Open Source Project!

I will teach you build ROM.
Lets get some ROCK!!!
Operating System
First step is having a fully functional linux distro. You can choose what you prefer, I'm using ubuntu and I write commands for it. You can use OSX too, as I know, but I've completely no idea how, I never had a Mac.
Well, talking about linux, you need a 64bit distribution, so if you have an old 32 bit processor youn cannot go ahead.
To check which version do you have, type in a shell
uname -a
If the results include "x86_64" you're ok.
Required Packages
You need to install some little packages, to be able to proceed, you can do this with your favorite package manager:
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-dev:i386 g++-multilib mingw32 openjdk-6-jdk pngcrush schedtool tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
Some systems need some trick to install all this package, is your care to check this process completed correctly and fix eventually problems.
Install "repo"
Repo is the program that handles synchronization between our pc and the repository, in this case Cyanogen's one. To install do:
mkdir -p ~/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
So we have downloaded and added executables flag to it. Now we need a folder to store locally the sources, you can put it everywhere, but to be coherent with other guides, I do:
mkdir -p ~/CM10/
Repository initialization
Well, now it's time to initialize our source folder to correctly sync with repository:
cd CM10
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
Nota: Maybe the repo command is not recognized. In this case you can restart the shell or te machine.
Download
Now is download time! Write this command and get a fresh beer, you have to download several GB of data, please wait.
repo sync -j16
The "-j16" switch may be modified as you want, is the number of concurrent thread downloading from repo. 16 is my value, for a 100Mbit connection, maybe you can decrease a little to match your line speed. Someone uses 8 threads for an 8Mbit ADSL line.
Download precompiled files.
There are some others files needed, like the toolchain, including GCC, to compile code.
~/CM10/vendor/cm/get-prebuilts
Another small wait time and we're ready!
Add sources code for GT540
Copy sources from https://github.com/mmxtrem/device_lge_swift to ~/CM10/device/lge/swift
Or extract this archive http://depositfiles.com/files/1chflk58r to ~/CM10/device/lge/swift
Build
Great, we're ready to build!
The build process takes some hours, so be patient. My notebook, takes more than 10 hours!
cd CM10
source build/envsetup.sh && brunch swift
Install
When is ready, we can find the result here:
~/CM10/system/out/target/product/swift/cm-10-XXXXX-JellyBeanSwift-XXXX.zip
This is the package to be flashed in recovery mode.
There are Gapps included.
Update
If you want to update your build, you have to do only this:
cd CM10
repo sync
and build again!
P.S. Dont forget write Credit my name, when will be publish your ROM. Good Luck!
[Guide] How to use Github
http://forum.xda-developers.com/showthread.php?t=1877040
Wow I always wanted to try this out! Thanks for the surprise tutorial!
Wow wow wow.. forget my post in the other thread. This thing miro, this thing here is possible your best contribution to this community.. I'm getting my old gt540 back from my brother and trying these right tomorrow..
I actually thought about asking you for such a tutorial but scratched it as I didn't believe you would do it. But thank you again and again.. I was so wrong
I've just one question, we do the build, ok and we try it, ok, but if we find any bug, where we solve it?! and where we put the corrects librarys for our phone?!
Sorry i'm just very noob
Miroslav is best men on a whole world
Thank you so much for this tutorial
Btw is gt540 msm 7x27 ? if yes could someone try to build this kernel for our phone https://github.com/Californication/lge-kernel-msm7x27-ics-3.0.8
-bfar97- said:
I've just one question, we do the build, ok and we try it, ok, but if we find any bug, where we solve it?! and where we put the corrects librarys for our phone?!
Sorry i'm just very noob
Click to expand...
Click to collapse
+1
Sent from my LG-P990 using Tapatalk 2
smileydr0id said:
Miroslav is best men on a whole world
Thank you so much for this tutorial
Btw is gt540 msm 7x27 ? if yes could someone try to build this kernel for our phone https://github.com/Californication/lge-kernel-msm7x27-ics-3.0.8
Click to expand...
Click to collapse
Yes, gt540 is msm7x27
smileydr0id said:
Miroslav is best men on a whole world
Thank you so much for this tutorial
Btw is gt540 msm 7x27 ? if yes could someone try to build this kernel for our phone https://github.com/Californication/lge-kernel-msm7x27-ics-3.0.8
Click to expand...
Click to collapse
https://github.com/Californication its my repo!
lge-kernel-msm7x27-ics-3.0.8 - not working. I did try port it from LG L5. Kernel not starting, kernel not finish.
lge-kernel-msm7x27 - kernel from SDSL and AOSP, I ported it from https://github.com/CyanogenMod/lge-kernel-msm7x27 for LG 7227 devices (P500/510/C660/and other), but it dont have latest fixes.
Please dont write stupid massages like "smiles" or +1 or other, make it clean! Devs only, if you want build ROM real, if no go spaming into other thread!
XiproX said:
Yes, gt540 is msm7x27
Click to expand...
Click to collapse
https://github.com/Californication its my repo!
lge-kernel-msm7x27-ics-3.0.8 - not working. I did try port it from LG L5. Kernel not starting, kernel not finish.
lge-kernel-msm7x27 - kernel from SDSL and AOSP, I ported it from https://github.com/CyanogenMod/lge-kernel-msm7x27 for LG 7227 devices (P500/510/C660/and other), but it dont have latest fixes.
Click to expand...
Click to collapse
damn
-bfar97- said:
I've just one question, we do the build, ok and we try it, ok, but if we find any bug, where we solve it?! and where we put the corrects librarys for our phone?!
Sorry i'm just very noob
Click to expand...
Click to collapse
^ This, make a guide for this, or is just all "lets google it"?
thanks for that tut miroslav !!
i would be happy if you can make example of bug fixing/driver porting (something simple as example).
Oh, nice post Miro
But one thing, why don't you post how to make device files. It would be of more use as people will try to make their own sources and a good chance that they could make their own device in collaboration. :good:
i've ear i can do a build in a 32bits processor too! but you know xD do what was said up please!!
Could someone try to build this because I can't cause I have 32bit system in my PC.
We need JB for daily use!
Why are you using -mfloat-abi=softfp
why not -mfloat-abi=hard ?
aaa801 said:
Why are you using -mfloat-abi=softfp
why not -mfloat-abi=hard ?
Click to expand...
Click to collapse
forgot about this line, not using for ROM. it need only for android-ndk for kernel building.
Niquel97 said:
We need JB for daily use!
Click to expand...
Click to collapse
Just do it! (c. Nike)
P.S. Dreams-dreams-dreams.... :laugh:
miroslav_mm said:
forgot about this line, not using for ROM. it need only for android-ndk for kernel building.
Click to expand...
Click to collapse
So should work fine if set to hard yes?
i'm getting this error when compiling:
Install system fs image: out/target/product/swift/system.img
out/target/product/swift/system.img+ maxsize=262225920 blocksize=135168 total=277360512 reserve=2703360
error: out/target/product/swift/system.img+ too large (277360512 > [264929280 - 2703360])
al3000 said:
i'm getting this error when compiling:
Install system fs image: out/target/product/swift/system.img
out/target/product/swift/system.img+ maxsize=262225920 blocksize=135168 total=277360512 reserve=2703360
error: out/target/product/swift/system.img+ too large (277360512 > [264929280 - 2703360])
Click to expand...
Click to collapse
Yes, me too, the build comes so big that it fails the size checks on the default partition layout.
To avoid that change the contents in device/lge/swift/BoardConfig.mk, I've used these values:
Code:
# PARTITIONS
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x00500000
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00900000
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x0010B07600
BOARD_USERDATAIMAGE_PARTITION_SIZE := 0x007478A00
BOARD_FLASH_BLOCK_SIZE := 131072
I believe you can still zip up the right files in out/target/product/swift/ to have a signable update zip, the command "make otapackage" which I found somewhere didn't seem to work.

[CyanogenMod] / [OmniRom] [Q/A] - DISCUSSION THREAD

I have created this thread to ask whatever you want about unofficial builds for Samsung Galaxy S Advance and make dev threads cleaner.
Original DEV thread: http://forum.xda-developers.com/showthread.php?t=2108362
Just an overall review:
What's working:
It Boots
CWM Recovery
Bluetooth
USB ADB
RIL
Leds
Accelerometer
Gyro sensor
Proximity sensor
Light sensor
GPS
Camera (Pictures and panorama)
Audio
WiFi
USB Mass Storage
USB Tethering
Vibrator
USB MTP
OMX codecs, HW video acceleration and video recording
Bluetooth tethering
WiFi tethering
Microphone in third party apps​
Magnetometer (compass)
LPM Charging (poweroff charging)
WiFi direct
NOT WORKING:
?
Known issues:
?
https://github.com/TeamCanjica/TeamCanjica/issues?milestone=&page=1&state=open
Sources: https://github.com/TeamCanjica
All credits to diego-ch, Oliver, Shaaan, Cocafe, Codeworkx, and everyone involved, go to his thread and thank him to encourage his work: http://forum.xda-developers.com/showthread.php?t=2108362
Are you trying to build?
Read this: http://wiki.cyanogenmod.org/w/Main_Page
Info about porting cm: http://wiki.cyanogenmod.org/w/Doc:_porting_intro
Compilling:
repo init -u https://github.com/TeamCanjica/android.git -b cm-10.2
repo sync
cd frameworks/av
git fetch http://review.cyanogenmod.org/CyanogenMod/android_frameworks_av refs/changes/32/52032/2
git cherry-pick FETCH_HEAD
cd ../native
git fetch http://review.cyanogenmod.org/CyanogenMod/android_frameworks_native refs/changes/33/52033/3
git cherry-pick FETCH_HEAD
cd ../../system/core
git fetch http://review.cyanogenmod.org/CyanogenMod/android_system_core refs/changes/34/52034/2
git cherry-pick FETCH_HEAD
cd ../..
. build/envsetup.sh
brunch janice
Click to expand...
Click to collapse
i added my java version here but i dont think it causes the issues
Code:
$ java -version
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)
im gonna try to init the repo again with cm-10.1
anyone trying to build,
Read This: http://wiki.cyanogenmod.org/w/Build_for_i9300
everything you need to build is in there...
@m4kl4
your java version is fine
diego-ch said:
anyone trying to build,
Read This: http://wiki.cyanogenmod.org/w/Build_for_i9300
everything you need to build is in there...
@m4kl4
your java version is fine
Click to expand...
Click to collapse
i think cm10.1 instead of jellybean could be the issue
to forget about dependencies:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Click to expand...
Click to collapse
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-dev:i386 g++-multilib mingw32 oracle-java7-installer pngcrush schedtool tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
Click to expand...
Click to collapse
yes, I use jdk7 as deprecated java commands were fixed in cm9 but you can use jdk6 to be sure that it will work.
To init and sync the repo:
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync -j16
Click to expand...
Click to collapse
Where 16 is the number of jobs to do simultaneously, some people say that this number must be your cpu cores count +1 so if you have a quad core cpu you use -j5, well I really doubt this and I prefer to use at least j8, you can try it yourself.
frapeti said:
to forget about dependencies:
yes, I use jdk7 as deprecated java commands were fixed in cm9 but you can use jdk6 to be sure that it will work.
To init and sync the repo:
Where 16 is the number of jobs to do simultaneously, some people say that this number must be your cpu cores count +1 so if you have a quad core cpu you use -j5, well I really doubt this and I prefer to use at least j8, you can try it yourself.
Click to expand...
Click to collapse
java is working correct, i think i tested -j a few times now i think j16 is great also j32 makes no big difference, but thanks a lot
could someone try to build using external/dhcpd from cm7.2 branch? I will as soon as I get my pc maybe that fix the wifi issue
Re: [CM10.1][Q/A] CM10.1 for the Galaxy S Advance - Q/A - DISCUSSION THREAD
So need any help here anyone?
Sent from my GT-I9070 using xda premium
Shaaan said:
So need any help here anyone?
Sent from my GT-I9070 using xda premium
Click to expand...
Click to collapse
frapeti helped me a lot, its building atm after that there will be probs :silly:
do you know if brunch cm_janice-eng -j4 makes any differences in build-speed?
edit complete
Running releasetool...
MODVERSION: 10.1-20130201-UNOFFICIAL-janice
Package complete: /home/m4kl4/cm10.1/system/out/target/product/janice/cm-10.1-20130201-UNOFFICIAL-janice.zip
md5: fd70e7ea94727d572f9f410ce9eca471
real 80m14.967s
user 206m55.080s
sys 16m23.589s
Click to expand...
Click to collapse
i built it with -j4 next time i gonna try with -j1 to find out if there are differences
In repo '-j#' corresponds to the jobs being executed at a time. When brunch is used, the maximum possible of jobs is used.
if i add diegos repo to local_manifest get these folders updated automatically?
Re: [CM10.1][Q/A] CM10.1 for the Galaxy S Advance - Q/A - DISCUSSION THREAD
m4kl4 said:
if i add diegos repo to local_manifest get these folders updated automatically?
Click to expand...
Click to collapse
Yes. If you do a repo sync and if there are any changes to Diego's repo by any of the devs, the changes will get synced automatically!
Sent from my GT-I9070 using xda premium
@diego-ch
will this line:
Code:
write /sys/class/leds/button-backlight/brightness 255
@
Code:
/device/samsung/u8500-common/init.samsungjanice.rc
fix button leds? I can't try at the moment, just done the same thing by adding "echo 255 > /sys/class/leds/button-backlight/brightness" in "/system/etc/init.d/90userinit" and it works fine but it's like a workaround I guess XD
PS: I have synced your repo and build but kernel still doesn't boot the system, the recovery still works fine
if you dont do
Code:
$ make clobber
files of older builds are used? only unchanged or everything, should i make clobber everytime?
frapeti said:
@diego-ch
will this line:
Code:
write /sys/class/leds/button-backlight/brightness 255
@
Code:
/device/samsung/u8500-common/init.samsungjanice.rc
fix button leds? I can't try at the moment, just done the same thing by adding "echo 255 > /sys/class/leds/button-backlight/brightness" in "/system/etc/init.d/90userinit" and it works fine but it's like a workaround I guess XD
Click to expand...
Click to collapse
I'm not sure if we should add this to the init.rc, meanwhile we can use it...
frapeti said:
PS: I have synced your repo and build but kernel still doesn't boot the system, the recovery still works fine
Click to expand...
Click to collapse
cm team updated something on cm10.1 branch (or maybe I messed up something)
I'm looking into it...
Re: [CM10.1][Q/A] CM10.1 for the Galaxy S Advance - Q/A - DISCUSSION THREAD
m4kl4 said:
if you dont do
Code:
$ make clobber
files of older builds are used? only unchanged or everything, should i make clobber everytime?
Click to expand...
Click to collapse
Make clobber removes all files including the objective files. This is only needed if you edit the core files like boardconfig.mk
If you edit any other files like recovery.fstab, common.mk then the change is recognized by the system and the files are updated automatically!
So tl;dr, make clobber is to be used only if you edit core config files (mostly only boardconfig.mk)!
Sent from my GT-I9070 using xda premium
I have seen OliverG96 changing the device name on 10.1 repo from bcm4330 to bcm4334 but I think we have different chipsets, for instance our binary file is "/system/bin/bcm4330.hcd" while in sgs3 mini is "/system/bin/bcm4334.hcd"
EDIT: little BIG difference:
i9070: NovaThor U8500
i8190: NovaThor U8420
frapeti said:
I have seen OliverG96 changing the device name on 10.1 repo from bcm4330 to bcm4334 but I think we have different chipsets, for instance our binary file is "/system/bin/bcm4330.hcd" while in sgs3 mini is "/system/bin/bcm4334.hcd"
EDIT: little BIG difference:
i9070: NovaThor U8500
i8190: NovaThor U8420
Click to expand...
Click to collapse
I'm aware of that (see the kernel defconfig).
I pointed it out on that commit... see here
shaaan was the one who merged it.
hope not to be so annoying
@defconfig:
CONFIG_BCMDHD_FW_PATH="/system/etc/firmware/fw_bcmdhd.bin"
CONFIG_BCMDHD_NVRAM_PATH="/system/etc/wifi/bcmdhd.cal"
Click to expand...
Click to collapse
is ths right? XD

[GUIDE]How to Build CM10 for HTC Wildfire Buzz

Hey Guys!
As you all know I'm working CM10.1 for HTC Wildfire but yesterday suddenly my Ubuntu stucked at boot so I couldn't continue.
But I thought to share my knowledge as sharing is caring.I like to help people and I like to do things on my own way and here I can do this.
I'll show you how I built CM10 for HTC Wildfire.But I got tons of errors which I solved on my own(of course some help of my friends) so please do the same!And the best thing is I'll show you how to build without ADB, so no device is needed.
NOTE: This guide will not turn you into a Android Developer.I will just show you how to setup the source and compile CM10 for the HTC Wildfire succesfully!You need to have basic knowledge before you begin to read this!And please if you get any errors don't spam this thread as I don't have time for others problems.I'll help people if they get problems in setting up or while building what they didn't got but the errors please ask somewhere else or try to solve on your own!As this guide isn't made for Linux newbies, please look at it first before you are posting!
Click to expand...
Click to collapse
What you need:
-Basic Linux Knowledge
-A Mind
-Pre-Knowledge of Android
Click to expand...
Click to collapse
Step 1 - Setting up the Build Environment
1.You need to install Ubuntu(12.04 64-Bit recommended) on a partition or on a virtual machine.
2.After this you need to install these required packages with the "sudo apt-get install" command:
Code:
git-core, gnupg, flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev, build-essential, zip, curl, libncurses5-dev, zlib1g-dev, ia32-libs, lib32z1-dev, lib32ncurses5-dev, gcc-multilib, g++-multilib
Click to expand...
Click to collapse
Step 2 - Getting the source
1.Create the directories:
Code:
$ mkdir -p ~/bin
$ mkdir -p ~/android/system
2.Enter the following to download the "repo" binary:
Code:
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
And to give it proper permissions type:
Code:
$ chmod a+x ~/bin/repo
3.To put the ~/bin directory in your path of execution(permanent variant) type:
Code:
$ gedit ~/.bashrc
It'll open a text file.Copy this line at the bottom:
Code:
$ export PATH=${PATH}:~/bin
4.Go to your source directory by this:
Code:
$ cd ~/android/system/
And to initialize the repo type:
Code:
$ repo init -u git://github.com/CyanogenMod/android.git -b jellybean
5.Download the source by typing:
Code:
$ repo sync
If you are done with syncing the source then you can continue with the next step.
Click to expand...
Click to collapse
Step 3 - Registering the device tree/config
1.Download the device tree from here.
2.Download the local_manifest.xml from here and copy it to your repo subdirection.
3.Now run again "repo sync" to syncing the work tree and everything should be set up now.
Click to expand...
Click to collapse
Step 4 - Start to build
1.CD to your source:
Code:
$ cd android/system
2.Type this:
Code:
$ source build/envsetup.sh
3.Now to lunch type this:
Code:
$ lunch
4.Type now the number which is the device tree listed for HTC Buzz.
5.Now to build type the following command:
Code:
$ make -j4 otapackage
NOTE: The "-j4" means how much cores your CPU has.So if you have a dual-core then buse "-j2" and if you have a octa-core use "-j8" and so on...
Click to expand...
Click to collapse
Credits
-bennii - He was the one who build a good working CM10 for the first time so a big Thanks goes to him.
-Adhi1419 - He showed me lot on this and also supported me much.
-ErwinP - He made a lot of work to HTC Wildfire and we should thanks him a lot.
Click to expand...
Click to collapse
Hit the Thank You Button if you like my Thread ​
thank for share
this is a perfect guide
kid1519 said:
thank for share
this is a perfect guide
Click to expand...
Click to collapse
Welcome!
And if you like it please hit the thank you button!
Nice guide and a good write up!
I think this guide can be made more general by covering building of other AOSP ROMs from source too
Sent from my A89 using Xparent BlueTapatalk 2
Adhi1419 said:
Nice guide and a good write up!
I think this guide can be made more general by covering building of other AOSP ROMs from source too
Sent from my A89 using Xparent BlueTapatalk 2
Click to expand...
Click to collapse
Thank you!
Yes you are right.I should make it more general! :good:
Awesome guide, thanks also I'll try to make a CM10 with this guide
looks easy the way you set it out, thanks man really appreciate that very much :good:
Stone. Cold said:
Awesome guide, thanks also I'll try to make a CM10 with this guide
looks easy the way you set it out, thanks man really appreciate that very much :good:
Click to expand...
Click to collapse
Thanks and welcome!
And all the best for the CM10 :good:
SasaKovacic said:
Thanks and welcome!
And all the best for the CM10 :good:
Click to expand...
Click to collapse
Np, Thanks!
Stone. Cold said:
Np, Thanks!
Click to expand...
Click to collapse
Welcome!
SasaKovacic said:
Welcome!
Click to expand...
Click to collapse
Np
Thanks for this, syncing up PAC CM10 now ready to build
32% downloaded already!
faZevoLv said:
Thanks for this, syncing up PAC CM10 now ready to build
Click to expand...
Click to collapse
Awesome! Can't wait to see it! :good:
faZevoLv said:
Thanks for this, syncing up PAC CM10 now ready to build
32% downloaded already!
Click to expand...
Click to collapse
I'm feeling appreciated now! :angel:

Categories

Resources