[TUTORIAL] Setting up and Compiling JB and ICS from AOSP

Search This thread

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
Alright :) Will stick at 4.2.1 for now.

Thanks !

Google "4.2.1 > 4.2.2 changelog"

Then check for changes in that project, and merge those in the 4.2.1 project. Just an example.

Sent from my Nexus

Edit:
JF Dionne
Feb 14

in 4.2.2 tag, all devices were removed.

Jean-Baptiste Queru
Feb 14
Re: [android-building] Re: couldn't find full_maguro option in lunch menu

My apologies. I didn't have those projects ready on time. I'll push
them as soon as I have them ready and tested.

JBQ

Our device isn't the only one.

https://groups.google.com/forum/?fromgroups=#!topic/android-building/WY6KRt8v738
 
Last edited:

xdp

Senior Member
Nov 30, 2010
599
93
Hi there,

After initializing a new 4.2.2 AOSP repo, the devices tree is missing.
Am I missing something?
Can anyone help me build android 4.2.2 from source?
Thank you in advance,

Best regards.

I am stuck here as well. I repo synced cm-10.1 branch, ran ./get-prebuilts and build/envsetup.sh, but when running "breakfast maguro" I get:

Code:
Device maguro not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_samsung_maguro
Default revision: cm-10.1
Checking branch info
CyanogenMod/android_device_samsung_maguro already exists
Syncing repository to retrieve project.
error: project device/samsung/maguro not found
Repository synced!
Looking for dependencies
Dependencies file not found, bailing out.
Done
ls: cannot access device/*/maguro/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "cm_maguro".  Stop.

** Don't have a product spec for: 'cm_maguro'
** Do you have the right repo manifest?

This prevents me from moving on to extracting blobs since that must be done from the device/samsung/maguro directory which doesn't exist yet. What might be the problem?
 

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
After Fetching project is completed.
It showing me a error:
error: frameworks/base/: platform/frameworks/base checkout 11e96c0dbce3425ee6ef2d180a5f5b54d007bf06

How to solve this?

that doesn't really provide any useful information

---------- Post added at 12:07 AM ---------- Previous post was at 12:06 AM ----------

I am stuck here as well. I repo synced cm-10.1 branch, ran ./get-prebuilts and build/envsetup.sh, but when running "breakfast maguro" I get:

Code:
Device maguro not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_samsung_maguro
Default revision: cm-10.1
Checking branch info
CyanogenMod/android_device_samsung_maguro already exists
Syncing repository to retrieve project.
error: project device/samsung/maguro not found
Repository synced!
Looking for dependencies
Dependencies file not found, bailing out.
Done
ls: cannot access device/*/maguro/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "cm_maguro".  Stop.

** Don't have a product spec for: 'cm_maguro'
** Do you have the right repo manifest?

This prevents me from moving on to extracting blobs since that must be done from the device/samsung/maguro directory which doesn't exist yet. What might be the problem?

You being on the wrong thread; This thread supports AOSP building, not CM building.
 

svprm

Senior Member
It showed me error when i tired to sync.
error: frameworks/base/: platform/frameworks/base checkout 11e96c0dbce3425ee6ef2d180a5f5b54d007bf06

Then i tried to sync the particular folder
repo sync framework/base/

It also showed same error with these ins
Code:
Fetching projects: 100% (1/1), done.  
error: The following untracked working tree files would be overwritten by checkout:
	Android.mk
	CleanSpec.mk
	MODULE_LICENSE_APACHE2
	NOTICE
	api/1.xml
	api/10.xml
	api/11.xml
	api/12.xml
	api/13.xml
	api/14.txt
	api/15.txt
	api/16.txt
	api/2.xml
	api/3.xml
	api/4.xml
	api/5.xml
	api/6.xml
	api/7.xml
	api/8.xml
	api/9.xml
	api/current.txt
	cmds/am/Android.mk
	cmds/am/MODULE_LICENSE_APACHE2
	cmds/am/NOTICE
	cmds/am/am
	cmds/am/src/com/android/commands/am/Am.java
	cmds/app_process/Android.mk
	cmds/app_process/MODULE_LICENSE_APACHE2
	cmds/app_process/NOTICE
	cmds/app_process/app_main.cpp
	cmds/backup/Android.mk
	cmds/backup/NOTICE
	cmds/backup/backup.cpp
	cmds/bmgr/Android.mk
	cmds/bmgr/MODULE_LICENSE_APACHE2
	cmds/bmgr/NOTICE
	cmds/bmgr/bmgr
	cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
	cmds/bootanimation/Android.mk
	cmds/bootanimation/BootAnimation.cpp
	cmds/bootanimation/BootAnimation.h
	cmds/bootanimation/bootanimation_main.cpp
	cmds/bu/Android.mk
	cmds/bu/NOTICE
	cmds/bu/bu
	cmds/bu/src/com/android/commands/bu/Backup.java
	cmds/bugreport/Android.mk
	cmds/bugreport/bugreport.c
	cmds/content/Android.mk
	cmds/content/MODULE_LICENSE_APACHE2
	cmds/content/NOTICE
	cmds/content/content
	cmds/content/src/com/android/commands/content/Content.java
	cmds/ime/Android.mk
	cmds/ime/MODULE_LICENSE_APACHE2
	cmds/ime/NOTICE
	cmds/ime/ime
	cmds/ime/src/com/android/commands/ime/Ime.java
	cmds/input/Android.mk
	cmds/input/MODULE_LICENSE_APACHE2
	cmds/input/NOTICE
	cmds/input/input
	cmds/input/src/com/android/commands/input/Input.java
	cmds/installd/Android.mk
	cmds/installd/commands.c
	cmds/installd/installd.c
	cmds/installd/installd.h
	cmds/installd/tests/Android.mk
	cmds/installd/tests/installd_utils_test.cpp
	cmds/installd/utils.c
	cmds/ip-up-vpn/Android.mk
	cmds/ip-up-vpn/ip-up-vpn.c
	cmds/pm/Android.mk
	cmds/pm/MODULE_LICENSE_APACHE2
	cmds/pm/NOTICE
	cmds/pm/pm
	cmds/pm/src/com/android/commands/pm/Pm.java
	cmds/rawbu/Android.mk
	cmds/rawbu/NOTICE
	cmds/rawbu/backup.cpp
	cmds/requestsync/Android.mk
	cmds/requestsync/MODULE_LICENSE_APACHE2
	cmds/requestsync/NOTICE
	cmds/requestsync/requestsync
	cmds/requestsync/src/com/android/commands/requestsync/RequestSync.java
	cmds/screencap/Android.mk
	cmds/screencap/screencap.cpp
	cmds/screenshot/Android.mk
	cmds/screenshot/screenshot.c
	cmds/sensorservice/Android.mk
	cmds/sensorservice/main_sensorservice.cpp
	cmds/service/Android.mk
	cmds/service/MODULE_LICENSE_APACHE2
	cmds/service/NOTICE
	cmds/service/service.cpp
	cmds/servicemanager/Android.mk
	cmds/servicemanager/bctest.c
	cmds/servicemanager/binder.c
	cmds/servicemanager/binder.h
	cmds/servicemanager/service_manager.c
	cmds/svc/Android.mk
	cmds/svc/MODULE_LICENSE_APACHE2
	cmds/svc/NOTICE
	cmds/svc/src/com/android/commands/svc/DataCommand.java
	cmds/svc/src/com/android/commands/svc/PowerCommand.java
	cmds/svc/src/com/android/commands/svc/Svc.java
	cmds/svc/src/com/android/commands/svc/UsbCommand.java
	cmds/svc/src/com/android/commands/svc/WifiCommand.java
	cmds/svc/svc
	cmds/system_server/Android.mk
	cmds/system_server/MODULE_LICENSE_APACHE2
	cmds/system_server/NOTICE
	cmds/system_server/library/Android.mk
	cmds/system_server/library/system_init.cpp
	cmds/system_server/system_main.cpp
	core/java/android/accessibilityservice/AccessibilityService.java
	core/java/android/accessibilityservice/AccessibilityServiceInfo.aidl
	core/java/android/accessibilityservice/AccessibilityServiceInfo.java
	core/java/android/accessibilityservice/IAccessibilityServiceClient.aidl
	core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
	core/java/android/accessibilityservice/UiTestAutomationBridge.java
	core/java/android/accessibilityservice/package.html
	core/java/android/accounts/AbstractAccountAuthenticator.java
	core/java/android/accounts/Account.aidl
	core/java/android/accounts/Account.java
	core/java/android/accounts/AccountAndUser.java
	core/java/android/accounts/AccountAuthenticatorActivity.java
	core/java/android/accounts/AccountAuthenticatorCache.java
	core/java/android/accounts/AccountAuthenticatorResponse.java
	core/java/android/
Aborting

error: frameworks/base/: platform/frameworks/base checkout 11e96c0dbce3425ee6ef2d180a5f5b54d007bf06
 

mannyboy28

Member
Jun 5, 2012
22
6
Atlanta
Thanks this thread helps alot

: )

---------- Post added at 01:23 AM ---------- Previous post was at 01:18 AM ----------

the sun java command no longer works :eek::highfive:
 

dxdiag32

Senior Member
Feb 21, 2011
902
350
Chongqing
I am stuck here as well. I repo synced cm-10.1 branch, ran ./get-prebuilts and build/envsetup.sh, but when running "breakfast maguro" I get:

Code:
Device maguro not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_samsung_maguro
Default revision: cm-10.1
Checking branch info
CyanogenMod/android_device_samsung_maguro already exists
Syncing repository to retrieve project.
error: project device/samsung/maguro not found
Repository synced!
Looking for dependencies
Dependencies file not found, bailing out.
Done
ls: cannot access device/*/maguro/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "cm_maguro".  Stop.

** Don't have a product spec for: 'cm_maguro'
** Do you have the right repo manifest?

This prevents me from moving on to extracting blobs since that must be done from the device/samsung/maguro directory which doesn't exist yet. What might be the problem?

me too dude!
i stucked here for whole day!In order to solve this i tried to download entire source 2 times!maybe it's the cm server problem:(
 

djMesias

Member
Mar 22, 2011
45
41
Toledo
It showed me error when i tired to sync.
error: frameworks/base/: platform/frameworks/base checkout 11e96c0dbce3425ee6ef2d180a5f5b54d007bf06

Then i tried to sync the particular folder
repo sync framework/base/

Delete the frameworks/base directory (rm -rf frameworks/base) and try repo sync frameworks/base again.
 
  • Like
Reactions: svprm

svprm

Senior Member
I got this error when on make cmd
Code:
 find: `src': No such file or directory
build/core/base_rules.mk:171: *** vendor/widevine/maguro/proprietary: MODULE.TARGET.SHARED_LIBRARIES.libdrmdecrypt already defined by hardware/ti/omap4xxx/libdrmdecrypt.  Stop.

How to solve?

Sent from my Galaxy Nexus using xda app-developers app
 
Last edited:

jjhiza

Senior Member
Dec 19, 2010
3,163
2,697
Dirty Jersey
I got this error when on make cmd
Code:
 find: `src': No such file or directory
build/core/base_rules.mk:171: *** vendor/widevine/maguro/proprietary: MODULE.TARGET.SHARED_LIBRARIES.libdrmdecrypt already defined by hardware/ti/omap4xxx/libdrmdecrypt.  Stop.

How to solve?

Sent from my Galaxy Nexus using xda app-developers app

You can ignore the src error... the ROM will be just fine. If you don't have the widevine binaries, you need to get them, and include them in the build. You'll need all of the binaries for a fully functional build.
 
Last edited:
  • Like
Reactions: svprm

svprm

Senior Member
Now I'm facing this error.
Code:
 frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java:1442: cannot find symbol
symbol  : class TextView
location: class android.net.wifi.p2p.WifiP2pService.P2pStateMachine
        ((TextView) row.findViewById(R.id.value)).setText(value);
          ^
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java:1475: inconvertible types
found   : android.view.View
required: android.widget.EditText
        final EditText pin = (EditText) textEntryView.findViewById(R.id.wifi_p2p_wps_pin);
                                                                  ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1167 errors
make: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar] Error 41

After I updated the Java SDK to 1.6.0.41.
Again facing the same problem.

Sent from my Galaxy Nexus using xda app-developers app
 

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
Now I'm facing this error.
Code:
 frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java:1442: cannot find symbol
symbol  : class TextView
location: class android.net.wifi.p2p.WifiP2pService.P2pStateMachine
        ((TextView) row.findViewById(R.id.value)).setText(value);
          ^
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java:1475: inconvertible types
found   : android.view.View
required: android.widget.EditText
        final EditText pin = (EditText) textEntryView.findViewById(R.id.wifi_p2p_wps_pin);
                                                                  ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1167 errors
make: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar] Error 41

After I updated the Java SDK to 1.6.0.41.
Again facing the same problem.

Sent from my Galaxy Nexus using xda app-developers app

Could you try adding

Code:
import android.widget.EditText;
import android.widget.TextView;

to file frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java, commit your changes and rebuild?


-----


EDIT: Anyone not being able to sync device trees? switch to 'jb-mr1-dev-plus-aosp', it's the state of the AOSP master branch when it was merged with google's internal tree (which then gave birth to android-4.2.2_r1): it will have the device trees. ;)

.repo/manifest.xml

Code:
<?xml version="1.0" encoding="UTF-8"?>                                                                                                                                        [0/1]
<manifest>

  <remote  name="aosp"
           fetch=".."
           review="https://android-review.googlesource.com/" />
           <default revision="jb-mr1-dev-plus-aosp"
           remote="aosp"
           sync-j="4" />

credit: JBQ@android-building/google groups
 
Last edited:

beekay201

Senior Member
Nov 8, 2010
5,224
1,221
It already having that two line.
Also it showing error from various Java files.
Any other solution?

Sent from my Galaxy Nexus using xda app-developers app

various java files? this may be related to java version. Are you using openjdk or sun's jdk?

Please see this commit, it may be worth pulling it to relax java, as I don't know exactly what version you're using.

-------

Tip: to minimize the size of the source tree when downloading it first time:

- 'repo init' will create a hidden folder at the top of the build tree, which contains
Code:
tango% ls -othr .repo
total 24K
drwxr-xr-x  7 bk201 4.0K Feb 25 04:02 repo
lrwxrwxrwx  1 bk201   21 Feb 25 04:02 manifest.xml -> manifests/default.xml
drwxr-xr-x  9 bk201 4.0K Feb 25 04:03 manifests.git
drwxr-xr-x  3 bk201 4.0K Feb 25 04:31 manifests
drwxr-xr-x 24 bk201 4.0K Feb 25 07:04 projects
-rw-r--r--  1 bk201 6.9K Feb 25 07:15 project.list
- before doing 'repo sync', edit .repo/manifest.xml and remove the projects you don't need; for example, since i only build on Linux, for manta and maguro, i removed projects android_device_samsung_toro, android_device_samsung_toroplus, the mac toolchains, clang support for mac;

Brings down the size of the build tree to 13.7GB. :)
 
  • Like
Reactions: MBQ_

Top Liked Posts

  • There are no posts matching your filters.
  • 118
    Quite a few people have asked about compiling ROMs from source, so here's a guide.

    This guide is directed mainly at compiling JB or ICS for the GSM Galaxy Nexus.

    It will show you how to set up the building environment really quickly with a few simple commands in the Terminal, then show you how to sync up with the repository and compile a ROM.

    http://www.freeyourandroid.com/guide/compile-ics

    It can also be done in a Virtual Machine.

    Thanks Nathan (nprussell) for the write up!



    My XDA TV Video Guide:

    http://www.youtube.com/watch?v=H_ReU-0w4IE&feature=g-u&context=G2a40714FUAAAAAAAZAA


    ---




    Here are the steps:
    (There are additional things you can do via the link above).




    ======================

    4star.png



    IMPORTANT NOTES:

    - For the purposes of this guide, you MUST be running 64-bit Ubuntu. This can be set up on a VM (it will compile if set correctly).
    - If using a VM, ensure you give it at LEAST 2gb RAM and 2xCores (it'll take 3-4 hours at best)
    - The source download is approximately 6gb.. you're going to need 25gb HD space for a single build.

    To learn how to setup a Ubuntu 64bit VM on your Windows PC, use THIS GUIDE. I recommend using 10.04.

    So... let's assume you're running Ubuntu 64 bit for the first time, and start right from the beginning.

    NOTE : You're probably better of copying and pasting these commands, as some are quite long! All commands are in RED!


    ======================


    1. Preparing your development environment

    The very first thing you're going to need to do, is ensure you're working in a root terminal. Much like when using your Android phone, you'll want the # and not the $. In order to do this, open TERMINAL, and type:

    sudo -i

    Then type in your password. From this point forward, all of the commands in this guide assume you have root priviliges (saves typing sudo *superuser do* before everything!)

    Next, we need to add a repository so that apt-get knows where to look for Java JDK:

    add-apt-repository "deb http://archive.canonical.com/ lucid partner"

    After that, you'll need to update the repository with the following command:

    apt-get update

    Now that your repository has been updated, you can proceed with installing the required packages to make building Android from source possible. The first thing you're going to need is the Java Development Kit 6:

    apt-get install sun-java6-jdk

    Followed by (and this may already be installed depending on which version of Ubuntu you went for):

    apt-get install python

    Now you're going to need Git. Git is the revision control system.

    apt-get install git-core

    Now, you're going to pull in all the required packages needed for the build process. As I have stated already, this guide is for 64 bit ONLY. Some of these will not work on 32-bit, so if you're using 32 bit, you're reading the wrong guide (sorry)!

    apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils

    IF YOU'RE USING UBUNTU 11.10, TYPE THIS COMMAND (if not, ignore this next one)

    ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so

    Congratulations; you now have all the required packages to proceed with the next step!


    ======================


    2. Installing and initialising the repo

    Now we need to download repo, add it to our path and set the permissions . Please note that if you close terminal, you'll have to do this again. Type each command on a new line, pressing enter after each:

    mkdir ~/bin
    PATH=~/bin:$PATH
    curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
    chmod a+x ~/bin/repo


    Now we need to create a directory for where our source is going to be pulled to, and change directory to it:

    mkdir ICS_SOURCE
    cd ICS_SOURCE


    Next, you'll need to initialize the repo. There are two commands below; the top one initializes the specific branch, and the bottom is the master.

    ONLY USE ONE OF THE FOLLOWING COMMANDS (recommended - TOP)

    ICS: repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.4_r1
    Jellybean: repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2_r1

    OR:

    repo init -u https://android.googlesource.com/platform/manifest

    You will now be prompted to provide your name and email address. Please give it real details; that way you can use the gerrit code review tool if your email is connected with a Google account.


    ======================


    3. Downloading the source (sync)

    This is probably the most simple part, but depending on your connection speed, it could take a while. I am on 40mb download/10mb up, and it took about 25 mins. If you're on a typical DSL connection, expect to be waiting 60-120 minutes.

    repo sync


    ======================


    4. Obtaining proprietary binaries

    New for ICS, Android cannot just be compiled from source code only. It requires additional hardware-related proprietary libraries to run, specifically for graphics acceleration (and GSM/LTE).

    The binaries must first be downloaded from here

    Each set of binaries comes as a self-extracting script in a compressed archive. After uncompressing each archive, run the included self-extracting script from the root of the source tree, confirm that you agree to the terms of the enclosed license agreement, and the binaries and their matching makefiles will get installed in the vendor/ hierarchy of the source tree. For example... after extracting one of the files, you will have 'extract-imgtech-maguro.sh'. Simply run:

    sh extract-imgtech-maguro.sh

    From your ICS_Source directory.

    IMPORTANT NOTE : If you are building for the Nexus S, you will need the Nexus S binaries.


    ======================


    5. It's build time!

    If you're a JAVA developer, feel free to have a play with the source and make any changes you want to make at this stage. Be careful though, adding rubbish/old syntax code to the source (formatting is slightly different to gingerbread) will cause the build to fail.

    Assuming that you just want to get on with building ICS, set the build environment up with:

    source build/envsetup.sh

    Next, you'll need to lunch. I don't mean go and have a sandwich, I mean... select which device you're building for.

    NOTE - you can add other devices to this list PRIOR to proceeding with this step. If you're NOT building for the GNexus, go to the bottom of this guide and look at how to add devices to the list.

    As previously stated, we're going to assume you're building for the Galaxy nexus, so type:

    lunch

    You'll be presented with a number of options (full-eng, etc).
    ASlBF.png


    If you're building for the Galaxy Nexus (codename: Maguro), type:

    8

    (7 for Nexus S and 6 for Nexus S 4G)


    and hit enter. Now, we're ready to set the compile in motion, ladies and gentlemen. There's a lot of debate over the next bit. the -j part of the below command is technically not needed, but I have had MUCH more success compiling on a virtual machine with the -j1 added. Could be random... who knows...

    Anyway, to set your build in motion, you now have TWO options. The first option will output the build as img files. The second option will output a flashable .zip file. I recommend the latter if you intent to use CWM over fastboot.

    make -j1

    or

    make -j1 otapackage

    Congratulations - in a few hours, you should have a working AOSP build for the Galaxy Nexus!
    8
    Ok, here's what I'm doing...I downloaded the aosp source tree and compile for the toro build. I created a repo in github and pushed the frameworks/base/ to it so I can make edits and compile based from those edits. A friend told me to just repo what I want to edit. So my question is, how do I implement my repo in the build when compiling but yet pull the rest of the things I didn't change from the aosp repos? Another friend told me the default.xml but I don't know where to look for that. Any help in this matter would be most appreciated.

    Are you literally making a new project and uploading to it? Or are you going to github.com/android and forking the platform_frameworks_base from there into your git and then modyfying your own fork?

    Personally, best practice is to fork projects from github.com/android into your own repo by pressing the
    repostat_forks.png
    Fork button, then clone your own repo

    Within there, you then want to add the upstream branch, eg:

    git clone git@github.com:YourUserName/platform_manifest.git
    cd platform_manifest
    git remote add upstream git://github.com/android/platform_manifest.git
    git fetch upstream
    git merge upstream/master

    (note, I use Master branch, hence upstream/master. For other branches, simply replace master for the branch)

    Same for other projects (frameworks_base) that way, to keep up to date with google's commits too, you simply go into the folder and type:

    git fetch upstream
    git merge upstream/master

    :)

    Also, fork your own copy of github.com/android/platform_manifest

    Then to pull your own repo from git instead of Androids, edit the file platform_manifest/default.xml and include the following:

    Where it says this:
    Code:
      <remote  name="aosp"
               fetch=".."
               review="https://android-review.googlesource.com/" />
      <default revision="master"
               remote="aosp"
               sync-j="4" />

    Change it to this
    Code:
      <remote  name="aosp"
               fetch="https://android.googlesource.com/"
               review="https://android-review.googlesource.com/" />
               
      <remote  name="gh"
               fetch="git://github.com/"
               revision="master" />
    
      <default revision="master"
               remote="aosp"
               sync-j="4" />

    Then to pull your own packages (for instance, your own platform_frameworks_base, do this change:

    From
    Code:
      <project path="frameworks/base" name="platform/frameworks/base" />

    To
    Code:
      <project path="frameworks/base" remote="gh" name="PaulW/platform_frameworks_base" />

    (Change PaulW to whatever the username of your github account is)

    Hope this helps a little!
    5
    Where do I find these proprietary blobs to include?
    I only have the google-supplied extract sh-scripts..
    This explains why my gps won't work..

    You've got 2 options:

    Git clone a vendor/samsung repository into your [built root]/vendor directory.

    or

    install a working 4.0.3 rom from here plug your phone into your computer and do this:

    Code:
    cd [build root]/vendor
    rm -rf samsung
    rm -rf imgtec
    cd [build root]/device/samsung/[maguro or toro]
    ./extract-files.sh

    That'll pull the proprietary files from the working build into your vendor directory. They'll all be in vendor/samsung rather than split between vendor/samsung and vendor/imgtec but they'll all be there.

    Might be a good idea to make clean before you build again after that.
    4
    Has anyone managed to build the android-4.0.1_r1.2 branch with Ubuntu 11.10?

    I know it works on the master branch and the r1 branch supposedly didn't support it but have the build tools been updated this one?

    Just wanted to check before commiting to a massive download!

    The only thing to note with 11.10, is when you install all the build libraries, one of them is incorrect (no longer available in 11.10). Instead of installing lib32readline5-dev you need to install lib32readline-dev instead.

    Code:
    $ sudo apt-get install git-core gnupg flex bison gperf build-essential \
      zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
      x11proto-core-dev libx11-dev lib32readline-dev lib32z-dev \
      libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
      libxml2-utils