[GUIDE] Building CM10.2 for Nexus 4 with Mac OS X 10.8.X [UPDATED: 8.8.2013] - Nexus 4 Android Development

This is a guide to build CyanogenMOD 10.2 (Android 4.3) for Google Nexus 4. This guide is for OS X Mountain Lion (10.8).
[size=+1]Pre Requirements:[/size]
1) go to App Store on your OS X and Download Xcode 4. Once that is installed, open Xcode and go to preferences. There you find a tab “DOWNLOADS”, open it and there you can find “Command line tools” and next to it click INSTALL. It will take a few minutes to download and install
2) Make sure you have the android-sdk downloaded and setup adb and fastboot, so they work. It is recommended to place the android-sdk to /usr/local/
[size=+1]Initializing the build environment[/size]
First we need to set up our OS X to be able to build Android. This needs some extra things compared to for example, building in Linux, but the main stuff is pretty much the same. So let’s get started then, shall we?
Open up Terminal and type
Code:
java
If you don’t have java installed you will get a prompt to install it.
Next we will install homebrew (you can also use macports if you like)
Code:
ruby <(curl -fsSk https://raw.github.com/mxcl/homebrew/go)
Now make sure android-sdk and homebrew are in $PATH
Code:
touch ~/.bash_profile && echo "PATH=/usr/local/bin:/usr/local/sbin:$PATH:/usr/local/android-sdk/tools:/usr/local/android-sdk/platform-tools" >> ~/.bash_profile
I also recommend to add this edit to the .bash_profile file:
Code:
nano –w ~/.bash_profile
Code:
export BUILD_MAC_SDK_EXPERIMENTAL=1
Now run this and see if you need to update anything.
Code:
brew doctor
If you do (and you probably will once a day) type:
Code:
brew update
Now we need to get our dev packages
Code:
brew install git coreutils findutils gnu-sed gnupg pngcrush repo
Once that is done, run
Code:
brew outdated
if it shows anything, run
Code:
brew upgrade
Now run this the correct a few symlinks [Not sure if these are needed anymore]:
Code:
ln -s /usr/local/bin/gfind /usr/local/bin/find && ln -s /usr/local/bin/gsed /usr/local/bin/sed
Now to create our case sensitive image for our CM work [NOTE: the 60g can be changed to anything. It only takes up what it needs but I used 60GB]:
Code:
hdiutil create -type SPARSE -fs "Case-sensitive Journaled HFS+" -size 60g -volname "android" -attach ~/Desktop/Android
Now to create our working directory
Code:
cd /Volumes/Android && mkdir cm10.2 && cd cm10.2
[size=+1]Getting the source[/size]
Now to initialize the git and to download it
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2
Download the sources:
Code:
repo sync
Wait until it is finished. It will take a long time, depending on your internet connection.
[size=+1]Obtain the device build files and proprietary files:[/size]
To do this we will use CyanogenMods "tool" called roomservice. Roomservice is replacing the old local_manifest.xml file. Just run the code below to create the file directly into the folder.
Code:
nano -w /Volumes/android/cm10.2/.repo/local_manifests/roomservice.xml
Paste the following lines into the file:
Code:
<manifest>
<project name="TheMuppets/proprietary_vendor_lge.git" path="vendor/lge" remote="github" revision="cm-10.2"/>
</manifest>
It seems that nowadays you only need to have the TheMuppets repo there, the roomservice process takes care of the rest and downloads the needed mako bits automatically. And actually it doesn't matter what you name the xml file under the local_manifests directory. The process loads every xml file from there in a alphabetical order. If you still have that local_manifest.xml file in your .repo directory, i suggest you remove that, because at that case that file will be read first and after that all the other from the local_manifests folder
Save the file. And rerun the code:
Code:
repo sync
Download the necessary pre-builts:
Code:
/Volumes/android/cm10.2/vendor/cm/get-prebuilts
That is all. The sources are now ready.
[size=+1]Building CyanogenMOD[/size]
If you build now, you're probably gonna get kernel build errors regarding the missing elf.h header (this error might be device specific). Fortunately, we already have this file downloaded, so we only need to copy it to /usr/local/include:
Code:
cp /Volumes/android/cm10.2/external/elfutils/libelf/elf.h /usr/local/include
FINALLY, we are ready to build:
Code:
cd /Volumes/android/cm10.2 && source build/envsetup.sh && brunch mako
Change “mako” to something else if you want to build for another device (of course needs to be supported by CM)
Then we just let the Mac do the rest. Remember that it will take a while to do the build, and meantime you Macs fans will scream for mercy while CM punishes your system ☺
After the build is finished successfully you can find your newly created flashable zip by typing:
Code:
cd $out
Look for .zip file with a tag UNOFFICIAL
Happy building!
[size=+2]Credits:​Imperticus (borrowed some stuff from his guide
ArmanUV (borrowed some stuff from his guide​[/size]

Build errors
jeroenqui said:
if you get a similar error like this when building, here is the solution:
Zcat: /volumes/android/cm10.1/out/target/product/mako/ramdisk.img.z: No such file or directory
then it's because zcat is old and broken. Do this to fix it and use the newer version: Gzcat
sudo mv /usr/bin/zcat /usr/bin/broken-zcat
sudo ln -s /usr/bin/gzcat /usr/bin/zcat
Click to expand...
Click to collapse

And this too

Is it possibile to build on osx leopard 10.5?
Inviato dal mio Nexus 4

Excellent write up

Cice96 said:
Is it possibile to build on osx leopard 10.5?
Inviato dal mio Nexus 4
Click to expand...
Click to collapse
Not totally sure but it should be possible.

kennyp987 said:
Excellent write up
Click to expand...
Click to collapse
Thanks!

Can you do same things for aokp
Awesome work !
Envoyé depuis mon Nexus 4 avec Tapatalk

Excellent! Will give it a try and let you know how it goes! Can you maybe add instructions for cherry picks?
Thanks!!!
Sent from my Nexus 4 using xda premium

+1
Sent from my Nexus 4 using Tapatalk 2

This worked for me. Thanks OP!

how much time takes to build ?

Zasuk said:
how much time takes to build ?
Click to expand...
Click to collapse
Build times will depend on what Cpu, memory and hardrive you have.
My Macbook pro is a little older (2009) and is running a core 2 duo, with 8gigs of ram and a Momentus hybrid XT hardrive.
My build times are about 2.5 hours. Using ccache, and not doing a make clobber before the build, build times will drop down to about 30 minutes or less for me.
Just wanted to say thanks to the OP for the guide. Everything worked like a charm.
One thing I did, just to avoid any unknown problems was to download the 10.6 sdk and add it to the Xcode sdk folder just for a little extra insurance being new to building with my Mac.

i have this error any idea ? thank you for this excellent thread !
hdiutil: create failed - Ressource occupée

hey man,
what would the local_manifest.xml look like for the AT&T Galaxy S3 (d2att) ?

[GUIDE] Building CM10.1 for Nexus 4 with Mac OS X Mountain Lion (aka OS X 10.8)
jakew02 said:
hey man,
what would the local_manifest.xml look like for the AT&T Galaxy S3 (d2att) ?
Click to expand...
Click to collapse
No idea

jakew02 said:
hey man,
what would the local_manifest.xml look like for the AT&T Galaxy S3 (d2att) ?
Click to expand...
Click to collapse
This is what mine looks like for d2vzw. I'd imagine you just replace the vzw with att:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_samsung_d2vzw" path="device/samsung/d2vzw" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_msm8960-common" path="device/samsung/msm8960-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_d2-common" path="device/samsung/d2-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" revision="cm-10.1" />
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung/" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_kernel_samsung_d2" path="kernel/samsung/d2" remote="github" />
</manifest>

Re: [GUIDE] Building CM10.1 for Nexus 4 with Mac OS X Mountain Lion (aka OS X 10.8)
How big is the sparseimage you guys made? I tried with 5gb and it filled up without finishing. My Mac partition only got 10gb of free space.
Sent from my Nexus 4 using Tapatalk 2

[GUIDE] Building CM10.1 for Nexus 4 with Mac OS X Mountain Lion (aka OS X 10.8)
sh0td0wn said:
How big is the sparseimage you guys made? I tried with 5gb and it filled up without finishing. My Mac partition only got 10gb of free space.
Sent from my Nexus 4 using Tapatalk 2
Click to expand...
Click to collapse
5gigs isä way too small.
The source hogs at least 15gb (about) and building takes at least the same. So I made a 70gb image so it wouldn't fill up

Awesome guide! Any chance you can tell us how to build it with the Linaro toolchain and Bionic stuff everyone says makes android faster?
---------- Post added at 01:27 PM ---------- Previous post was at 12:34 PM ----------
FYI this command is failing:
/usr/bin/ruby -e "$(/usr/bin/curl –fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"
Looks like the URL is no good any more.
EDIT: This is the new command for downloading homebrew:
ruby <(curl -fsSk https://raw.github.com/mxcl/homebrew/go)

Related

[GUIDE] Compiling CyanogenMod and Kernels from Source on Mac OS X Lion using Homebrew

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?

[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 ?

Sound problems with self-compiled JB/CM10 "Hackfest" ROM

Hello,
This is my first post on XDA and because of this I can't post in the Dev thread (although it's there that I would have asked this question).
I have followed the instructions to build the JB/CM10 "Hackfest" ROM from Benee's Github repo - and everything went well, the ROM's .zip file was properly built. Flashed it, booted up, etc.
It's working.. except the sound! I can't play anything. The logcat (attached) shows some errors (when trying to preview and select a different ring tone):
Code:
E/AudioTrack(1257): Could not get audio output for stream type 1
E/SoundPool(1257): Error creating AudioTrack
I didn't make any changes to the source files before compiling (fixed the error with the volume keys, and enabled the Torch (as per ICS instructions, because it didn't work in the "official" build). I was expecting to get the same thing with the "official" build, maybe except some optimizations.
So, is there anything else that I need to do/add/change, after synching Benee's sources, before building?
Thanks,
Alex
PS: this is my first time building a ROM, so..
I think there is an audio fix in Eagleblood ICS thread...maybe that can help you. :good:
Sent from my LG-P990hN using xda premium
JasonBourne.Qc said:
I think there is an audio fix in Eagleblood ICS thread...maybe that can help you. :good:
Sent from my LG-P990hN using xda premium
Click to expand...
Click to collapse
There was an audio problem initially with the JB/CM10 build, but it was fixed by Pastime1971. I checked, and I have those patches (they're in Benee's repo, already merged), so it should be OK from this point of view.
Last night I just did a "make cobbler" and restarted the build, and this morning it was not finished (no .zip file), and it stopped with apparently no error. I'll have to check what happened - in the mean time I "brunch 990" again over it just to see if it "continues" this time.
To sum up:
- install build environment (Debian 64bit VM, android-sdk, build tools + libraries, repo binary, etc)
- sync Benee's repo - all done
- add .repo/local_manifest.xml with just the vendor files (from Owen94's repo) && repo sync
- fix the Settings.System.VOLUME_KEY_CURSOR_CONTROL errors
- cd vendor/cm && ./get-prebuilts && cd ../../ && clear && . build/envsetup.sh && brunch p990
- wait for output
Is there anything else that I missed? Adding any other vendor files, files, patches or something like that in the repo? Or maybe I have to add anything else to the .zip after the build?
PS: yes, I double checked the ROM build instructions, and I don't seem to have missed any step, but maybe there is something so obvious that is not written there, and I don't know about
Solved!
I have update the .repo/local_manifest.xml with the following:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="vendor_lge" path="vendor/lge" remote="vork" revision="ics"/>
</manifest>
replacing Owain's repo, and after a re-build, it appears to be working (that, or pure luck!)

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.

Custom ROM basics?

Hey guys, i am interested in making my own ROMO for this device. I know that it will probably be difficult to do so i just wanted to know the basics, as in, what do i need to know (skills) before i fully get into making a ROM. the difficulty is not a factor, i will get it eventually
Linux based operating system and effort
start by compiling cm from the instructions on there site
chococomaxim said:
Hey guys, i am interested in making my own ROMO for this device. I know that it will probably be difficult to do so i just wanted to know the basics, as in, what do i need to know (skills) before i fully get into making a ROM. the difficulty is not a factor, i will get it eventually
Click to expand...
Click to collapse
Set up cygwin kitchen with a Linux virtual machine and learn the structure and functions of rom folders and files.. That's all you need...
Sent from my MB886 using xda app-developers app
What you need really depends on what kind of rom you want to do. For Stock Based Roms, all you need is 7-zip, Notepad++, apktool and a wrapper for it (android kitchen, etc).
You don't need Linux unless you want to compile from source. Ignore the Cygwin suggestion -- Cygwin will eat the cpu/ram up and that's whats needed the most when compiling (well, disk IO is, but....). Once you have Linux installed, do a PAC or CM10.2 build since they both fully compile and ya need to test out your build environment.
Cygwin is fine if you just need to use some Linux apps\commands every once and a while and ya don't wanna boot into Linux. Unless you have a really, really bad ass PC (8 core AMD @ 3.8ghz, 16GB+ ram, SSD) Cygwin/virtual environments won't be worth using for things like compiling.
skeevydude said:
What you need really depends on what kind of rom you want to do. For Stock Based Roms, all you need is 7-zip, Notepad++, apktool and a wrapper for it (android kitchen, etc).
You don't need Linux unless you want to compile from source. Ignore the Cygwin suggestion -- Cygwin will eat the cpu/ram up and that's whats needed the most when compiling (well, disk IO is, but....). Once you have Linux installed, do a PAC or CM10.2 build since they both fully compile and ya need to test out your build environment.
Cygwin is fine if you just need to use some Linux apps\commands every once and a while and ya don't wanna boot into Linux. Unless you have a really, really bad ass PC (8 core AMD @ 3.8ghz, 16GB+ ram, SSD) Cygwin/virtual environments won't be worth using for things like compiling.
Click to expand...
Click to collapse
Thanks for the info, I do have Linux and I want to compile from the source.
Sent from my Atrix HD using Tapatalk 4
chococomaxim said:
Thanks for the info, I do have Linux and I want to compile from the source.
Sent from my Atrix HD using Tapatalk 4
Click to expand...
Click to collapse
Which distro & what rom?
I use Manjaro Linux and schroot into Ubuntu 12.04 for compiling -- its the best of both worlds -- a fully up-to-date modern Linux distro with an environment recommended for building android. Using just Ubuntu 12.04/Mint 13 kinda sucks cause its a bit outdated -- Old versions of apps, desktop environments (Gnome, XFCE, KDE, etc). Since I've been doing it for a while now, I gotta recommend the modern Linux/schroot for android way. So far the only downside is a 20 minute increase in compile time (probably due to my 3GB ram more than anything), but the benefit of having an up to date desktop for everything else is worth it.
I'll admit that I cheated a bit. I was dual booting Manjaro and Ubuntu 12.04 until I just said screw it and setup the schroot. Normally with an schroot setup, the other environment is setup from a basic command line environment and if you copy/paste the apt-get commands from the various guides around you'll be missing necessary files (those guides are written assuming you're doing it from an actual desktop install which includes a lot more files than the bare minimum command line only install). I've done schroot environments both ways and using my dual boot OS as my schroot has worked better (only problem is the GUI is broke if I try to boot into Ubuntu now, but apt-get update and upgrade work, from boot and schroot, and that's the only reason I'd actually boot into now anyways).
skeevydude said:
Which distro & what rom?
I use Manjaro Linux and schroot into Ubuntu 12.04 for compiling -- its the best of both worlds -- a fully up-to-date modern Linux distro with an environment recommended for building android. Using just Ubuntu 12.04/Mint 13 kinda sucks cause its a bit outdated -- Old versions of apps, desktop environments (Gnome, XFCE, KDE, etc). Since I've been doing it for a while now, I gotta recommend the modern Linux/schroot for android way. So far the only downside is a 20 minute increase in compile time (probably due to my 3GB ram more than anything), but the benefit of having an up to date desktop for everything else is worth it.
I'll admit that I cheated a bit. I was dual booting Manjaro and Ubuntu 12.04 until I just said screw it and setup the schroot. Normally with an schroot setup, the other environment is setup from a basic command line environment and if you copy/paste the apt-get commands from the various guides around you'll be missing necessary files (those guides are written assuming you're doing it from an actual desktop install which includes a lot more files than the bare minimum command line only install). I've done schroot environments both ways and using my dual boot OS as my schroot has worked better (only problem is the GUI is broke if I try to boot into Ubuntu now, but apt-get update and upgrade work, from boot and schroot, and that's the only reason I'd actually boot into now anyways).
Click to expand...
Click to collapse
I have Linux mint 15 and going to use a cm build
Sent from my Atrix HD using Tapatalk 4
Should I stay where I'm at or do something similar to what you are doing
Sent from my Atrix HD using Tapatalk 4
chococomaxim said:
I have Linux mint 15 and going to use a cm build
Sent from my Atrix HD using Tapatalk 4
Click to expand...
Click to collapse
You shouldn't have to do much more than search xda for an Ubuntu 13.04 guide (I think Mint 15 is Ubuntu 13.04). From there its pretty much
make a directory for the source, open a terminal, cd to the created directory
repo init -u https://github.com/CyanogenMod/android.git -b cm-10.2
add the codebox below to a new file named roomservice.xml
repo sync
-. vendor/cm/get-prebuilts
. build/env-setup.sh
brunch mb886
To update and build a new rom
make a copy of the last compiled rom if necessary (located at out/product/mb886)
open terminal at source directory
make clean
do everything from repo sync to brunch
Everything in italics is terminal commands
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_motorola_mb886" path="device/motorola/mb886" remote="github" revision="cm-10.2" />
<project name="CyanogenMod/android_device_motorola_msm8960-common" path="device/motorola/msm8960-common" remote="github" revision="cm-10.2" />
<project name="CyanogenMod/android_kernel_motorola_msm8960-common" path="kernel/motorola/msm8960-common" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_motorola" path="vendor/motorola" remote="github" revision="cm-10.2" />
</manifest>
Lots of the guides suggest using CCACHE, but I gotta recommend NOT using it. In the past I did use it, but sometimes builds would have random errors, FC's, and whatnot, and builds using the same sources (no repo sync) with CCACHE disabled didn't have the random bugs. Ccache might speed up the 2nd build and on, but risking random bugs isn't worth the small speed up IMHO.
---------- Post added at 01:00 PM ---------- Previous post was at 12:47 PM ----------
chococomaxim said:
Should I stay where I'm at or do something similar to what you are doing
Sent from my Atrix HD using Tapatalk 4
Click to expand...
Click to collapse
If you're happy with Mint 15, then stay with it. You might run into some Python2/3 issues, but the rest of it should work fine. "repo" doesn't like Python 3 and doesn't like being initialized with 3 and syncing with 2 and vice-a-versa. Luckily, the OpenJDK/Java7 patches are included in the CM repos now, so the BS of installing Java6 isn't here anymore (be glad you don't have to deal with it).
If you're having a difficult time using an updated Linux as an android build environment, then consider using the schroot way. IMO, its worth at least to try to compile on your current system -- only go the schroot or dual boot if your current system doesn't like android compiling.
skeevydude said:
If you're having a difficult time using an updated Linux as an android build environment, then consider using the schroot way. IMO, its worth at least to try to compile on your current system -- only go the schroot or dual boot if your current system doesn't like android compiling.
Click to expand...
Click to collapse
I'm also going to get a Linux install up (Debian 7.10), and probably going to start building/compiling, and will very likely run into issues. Would there be any extra packages I would need besides that giant list in every build guide to get it working right? Would there be issues like there would be trying to build with 13.04? I know Ubuntu is what everyone uses for compiling, but I'd rather be at the base of everything.
Also, incase there are big issues, how would we go about setting up a schroot?
skeevydude said:
You shouldn't have to do much more than search xda for an Ubuntu 13.04 guide (I think Mint 15 is Ubuntu 13.04). From there its pretty much
make a directory for the source, open a terminal, cd to the created directory
repo init -u https://github.com/CyanogenMod/android.git -b cm-10.2
add the codebox below to a new file named roomservice.xml
repo sync
-. vendor/cm/get-prebuilts
. build/env-setup.sh
brunch mb886
To update and build a new rom
make a copy of the last compiled rom if necessary (located at out/product/mb886)
open terminal at source directory
make clean
do everything from repo sync to brunch
Everything in italics is terminal commands
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_motorola_mb886" path="device/motorola/mb886" remote="github" revision="cm-10.2" />
<project name="CyanogenMod/android_device_motorola_msm8960-common" path="device/motorola/msm8960-common" remote="github" revision="cm-10.2" />
<project name="CyanogenMod/android_kernel_motorola_msm8960-common" path="kernel/motorola/msm8960-common" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_motorola" path="vendor/motorola" remote="github" revision="cm-10.2" />
</manifest>
Lots of the guides suggest using CCACHE, but I gotta recommend NOT using it. In the past I did use it, but sometimes builds would have random errors, FC's, and whatnot, and builds using the same sources (no repo sync) with CCACHE disabled didn't have the random bugs. Ccache might speed up the 2nd build and on, but risking random bugs isn't worth the small speed up IMHO.
---------- Post added at 01:00 PM ---------- Previous post was at 12:47 PM ----------
If you're happy with Mint 15, then stay with it. You might run into some Python2/3 issues, but the rest of it should work fine. "repo" doesn't like Python 3 and doesn't like being initialized with 3 and syncing with 2 and vice-a-versa. Luckily, the OpenJDK/Java7 patches are included in the CM repos now, so the BS of installing Java6 isn't here anymore (be glad you don't have to deal with it).
If you're having a difficult time using an updated Linux as an android build environment, then consider using the schroot way. IMO, its worth at least to try to compile on your current system -- only go the schroot or dual boot if your current system doesn't like android compiling.
Click to expand...
Click to collapse
i found this link from the CM wiki http://wiki.cyanogenmod.org/w/Build_for_mb886 and i was wondering what would be the different because it has totally different commands than what you provided. is it because this the wiki guide is 10.1 and the one you had was 10.2?
chococomaxim said:
i found this link from the CM wiki http://wiki.cyanogenmod.org/w/Build_for_mb886 and i was wondering what would be the different because it has totally different commands than what you provided. is it because this the wiki guide is 10.1 and the one you had was 10.2?
Click to expand...
Click to collapse
I believe it's all the same, except when you get to the repo init, change cm-10.1 to cm-10.2.
Sent from my MB886 using xda app-developers app

Categories

Resources