Compiling Galaxy Android Open Source Project (Stock Gingerbread) from scratch
This will give you a ready-to-use update.zip package in out/target/product/I7500/.
To build the GAOSP, you will need to use Linux or Mac OS. 64Bit only! Building under Windows is not currently supported. You must set up your machine first. "Install the Build Packages" at http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Passion
This how to is now outdated. You can use the source snapshot in downloads to build gingerbread for I7500.
How to
1) Initial setup
- Install repo : curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > repo && chmod a+x repo
- Run : ./repo init -u git://github.com/drakaz/android.git -b gaosp-gingerbread to initialize the repositories
- Run ./repo sync to download the content (./repo sync -j10 for higher DL speed)
- Push the PDA tar file from official 1.6 JC6 Odin update http://box23.org/pub/7500/firmware/I7500XEJC6-PDA-CL209906.tar.gz in device/samsung/I7500/ renamed as I7500-PDA.tar.
- Push the latest Cyanogenmod zip file for "HTC Dream & Magic" (http://wiki.cyanogenmod.com/index.php?title=Latest_Version) in device/samsung/I7500/, renamed as CM.zip.
- Extract the proprietary files from update: cd device/samsung/I7500/ && ./unzip-files.sh I7500-PDA.tar && cd -
2) Update repos
- Run ./repo sync to update the repositories (./repo sync -j10 for higher DL speed)
3) Building
- Run source build/envsetup.sh to setup the build environnment
- Run lunch I7500-eng to setup the environnment for I7500
- Run mka bacon to make an flashable ZIP file with parallel jobs (or make -jX bacon if you want to define the number of parallel jobs)
- Note: If you want to clean everything before you build to build from scratch use make clean && make installclean or make clobber for 100% clean
Use your flashable ZIP file
That can be dangerous. It may introduce regressions or brick your phone, do this at your own risk.
Download the latest Drakaz recovery image - pick the latest version at: http://www.drakaz.com/forum/viewforum.php?id=13
- Boot recovery (vol down + call + end call)
- Backup the system with Nandroid
- Push the update.zip in /sdcard/
- Select 'Wipe data' from the recovery menu.
- Flash the update using 'Update sdcard:update.zip" option
- Restore gapps by your own
- Reboot : reboot
Note: "app2sd" (or /system/app to /data, as it's already on internal sd... you know what I mean.) seems to be needed since today - image something like 80MB (due to new locales I think) and it's impossible to restore gapps (no space left on /system).
May be not needed anymore - drakaz deleted some locales.
may be possible to make the standard firmware for recording through Odin as did Musty, because not all have linux, and the standard firmware would allow more people to test firmware.
can u add chinese? thanks
The weekly build looks like it could be installed directly using the 'update.zip' feature in the recovery image (I am currently using Galaxo). Is this the case?
Installation using 'update.zip' work fine with the drakaz recovery tool (i used version 4.4)
I think that the steps 12-13 in the section "Use your system image" don't make sense. After the step 11 (Wipe Data) the device done an automatic reboot and the steps 12 and 13 are useless.
starlab36: fixed, now sync comes before the wipe
If I follow these build instructions now I don't get a main level Makefile. I am creating a brand new build env, because the old one still failed with the same error, even with the updated local_manifest.xml.
Thanks marco
You have to clone the entire project before getting the gaosp manifest.
@ step 1.) you have to make a #repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.1_r2 and then a #repo sync
and then you can proceed to step 2.)
Maybe the guide can be corrected. Took me more than 3 hours.
Will this project bring 2.1 to Galaxy Spica? I don't have much hope on what samsung is going to build for spica... I heard they are trying to add touch viz interface in the update... I prefer google android 2.1 look that nexus has... How is this made? did samsung open source their drivers... (for the 1.5 version) .. and are you modifying them to work with android 2.1... OR are you using the same drivers(for 1.5) and making them work with android 2.1
What ever it is ... the work done here is great...
I don't think project will support Spica as you already have 2.1 (touchwiz can be easily deleted) and I'm not quite sure if this project would be of any help for Spica devs as it's different hardware. Spica is more similar to Moment as far as I've heard. If Spica devs come and add necessary tweaks - then yes. At the moment project supports only Galaxy and support for Behold 2 was planned (when they succeed with all flashing stuff at their side).
Hi,
I am a newbie here and followed the instructions to build it for my Galaxy, after doing everything for several hours, i have reached the final step (8) of building, the actual "make" but i received: make: No targets specified and no makefile found. Stop.
Any idea how to solve it or what i did wrong in the process?
Thanks alot.
@adi You have to clone the entire project before getting the gaosp manifest.
@ step 1.) you have to make a #repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.1_r2 and then a #repo sync
and then you can proceed to step 2.)
Maybe the guide can be corrected. Took me more than 3 hours.
Note : if you got a librpc error, just "make librpc" then "make" again.
Also I would like to thank everyone working on this. This looks really awesome. I can't wait till it is finished. If I had the money I would test this out on my phone but I just can't brick it or my family would be extremely mad at me so anyways good luck! I will keep watching this.
When should we expect the test release 09?
i have this error
collect2: ld returned 1 exit status make: [out/target/product/I7500/obj/EXECUTABLES/app_process_intermediates/LINKED/app_process] Erreur 1
an idea ??
make: [out/host/linux-x86/obj/EXECUTABLES/vm-tests_intermediates/tests] Erreur 1
Why do we need all those manipulations to update our Samsung Galaxy ? Is Android v2.1 only reserved to geeks or a computer engineers ? ;-) Updates via Odin would be perfect. Maybe for the final release ?
I think the procedure for updating with the test builds is rather simple... I'm suspecting the flashing process for the final release would be similar.
"I think the procedure for updating with the test builds is rather simple"
Tell your mother to :
- Clone the Android AOSP project (Follow instructions at http://source.android.com/download. - - Clone eclair branch by repo init -b android-2.1_r2 instead of cupcake) - Download local_manifest.xml : cd .repo && wget http://gaosp.googlecode.com/files/local_manifest.xml && cd - - Run repo sync to update the repositories - Push the PDA tar file from official 1.5 Odin update in vendor/Samsung/I7500/ - Extract the proprietary files from the update (NOTE: 1.6 update won't work): cd vendor/Samsung/I7500/ && ./unzip-files.sh I7500-PDA.tar && cd - - Run source build/envsetup.sh to setup the build environnment - Run lunch I7500-eng to setup the environnment for I7500 device - Run make (make -j3, make -j5, regarding of the number of parallel jobs you want)
Sorry, i'm webmaster and I'm used to code with php. But those lines are chinese for me. I dont even know what tools are required to do it. So, imagine my mother.
People searching for Android 2.1 (or just stable version) are not all geeks, the most are just customers disappointed by their Galaxy. So, I'm disappointed by my Galaxy and I don't understand how to upgrade it with this project and I DON'T want to spend hours to search how to. The only alternatives are to use Mustymod ROM (what i've done) or buy an other phone...
BUT, I think that the crew (thanks for your job) is smart enough to propose an Odin version when it will be finalized. ;-)
That's 'cause you're reading the 'building' instructions, click on 'testing builds' on the sidebar and look at the instructions there. Please read what people say more carefully (more specifically, 'test build')
How to install testing builds
You will need drakaz recovery 4.4. Download and put the desired testing build zip on the 7Gb memory of your Galaxy Boot into recovery Make a Nandroid backup (so you can restore your current rom after you tried the testing build) Select "Apply any zip from sd" and then select the zip of the testing build Do a wipe Reboot
Unless you find installing the drakaz recovery complicated (which I did too myself, at first), the instructions look straightforward enough. That said, all custom ROMs I've installed so far have required me to flash the recovery, not just GAOSP.
Oh, just a sidenote, my mother probably wouldn't even be able to figure out how to odin, so do watch your tone.
drakaz: bluetooth file send didn't work neither from pc to phone, nor from phone to pc. No luck with wifi too, posting logcat from launching wifi, trying to connect an open network (disabled security for a while), then (after failing to connect) disabling wifi. Dunno if there'll be any useful info but posting anyway. http://pastebin.org/120622 I've had no wifi issues on build from 26 February, but on one from 8th March (which was after 2 cyanogen merges) it wasn't working too. All of the builds were compiled with JIT - I'm going to check tomorrow if disabling it will improve situation. Catch me on IRC for more info.
drakaz: It's possible to create an update weekly new, because someone don't have linux or mac :)
Sorry
I think there is a missing backslash in system/core/toolbox/Android.mk on line 48
I encounter a fatal: error: Cannot fetch cyanogen/android_external_opencore when i run "repo sync".
what's worry?
Hi, Maybe someone can help me, i am trying to compile from either Mac, or Ubuntu, I was able to compile until about 2-3 weeks ago from my Mac, and it is worked great on the phone, but since then i am unable to compile, i have tried both methods, make or build_all, yesterday i have installed ubuntu in VM and tried to compile with no luck, (Installed java 5 or 6) I receive the following errors while running make or build_all: When running build_all i receive update.zip with 30MB only
packages/apps/Settings/src/com/android/settings/DevelopmentSettings?.java:106: cannot find sy mbol symbol : variable ADB_NOTIFY location: class android.provider.Settings.Secure
d symbol symbol : method pulseBreathingLightColor(int) location: interface android.os.IHardwareService packages/apps/Settings/src/com/android/settings/SoundAndDisplaySettings?.java:424: cannot fin d symbol symbol : variable BREATHING_LIGHT_COLOR location: class android.provider.Settings.System 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. 4 errors make: [out/target/common/obj/APPS/Settings_intermediates/classes-full-debug.jar] Error 41Hi! Can somebody help me with the compilation issue "adi.cicurel" has already posted? I have got exactly the same issue like him, is it a problem on my side on with the sources themselfes?
Comment out block beginning on 419 line in file file packages/apps/Settings/src/com/android/settings/SoundAndDisplaySettings?.java so it looks like:
} /*else if (KEY_BREATHING_LIGHT_COLOR.equals(key)) { int value = Color.parseColor((String) objValue); try { hardware.pulseBreathingLightColor(value); Settings.System.putInt(getContentResolver(), Settings.System.BREATHING_LIGHT_COLOR, value); Log.d(TAG, "BREATHING_LIGHT_COLOR set to " + value); } catch (NumberFormatException nfe) { Log.e(TAG, "could not persist breathing light color settings", nfe); } catch (RemoteException re) { Log.e(TAG, "could not preview breathing light color", re); } }*/ return true; } }ok, uncommented the bogus parts of gaosp/packages/apps/Settings/src/com/android/settings/DevelopmentSettings?.java and gaosp/packages/apps/Settings/src/com/android/settings/SoundAndDisplaySettings?.java
sado1 informed me in the irc that it is related to the cyanogen nexus one handling of the notification led which is missing on the galaxy.. thanks anyway ;D
can't open project cyanogen/android_external_opencore and drakaz/gaosp_frameworks_base on github.com
The Odin PDA.tar can be downloaded from samsung firmware:
http://www.samsungfirmwares.tk/pub/7500/firmware/
I think this should be mentioned somewhere on this page.
Which pda tar should I use?
Well I used II5 (1.5) but you can also use the JC6 (1.6) pda just you may get errors which will need to be fixed to get it to build.
I'm still very new to all of this, I don't really understand what the 1.6 pda provides over 1.5 ... maybe the 2.6.29 kernel?
SOMETHING wrong with the script
system/core/toolbox/Android.mk:49: missing separator (did you mean TAB instead of 8 spaces?). Stop.
Yup, missing separator, To fix add the Below :D
ifndef TINY_TOOLBOX
endifWithout meaning to sound rude, if you can't figure out that simple script error then you really shouldn't be trying to build gaosp.
Without meaning to sound rude, you didn't Bother to read above what you posted now did you.... LMAO.
To nfielding: This is not a very smart comment... Something that has a build error should not be checked-in in a first place and people who actually work on the project know it. BTW general comment - I think that project developers should provide a way to build a stable release based on betta.
Hmmm, new step 5 in the how to... Is that the reason it was failing mysteriously yesterday, after working perfectly the day before? :-)
Up the androids!
Http://source.android.com/source/download.html says to use sun-java5-jdk as jdk to avoid @Override issues. But when I'm building gaosp with sun-java5-jdk, it shows a lot of @Override errors. Anyone who has ideas about this?
There seems to be an error in local_manifest.xml Changing the path from eclair-ds to eclair should do the trick. 47c47 < <project path="external/opencore" name="CyanogenMod/android_external_opencore" remote="github" revision="eclair"/> --- > <project path="external/opencore" name="CyanogenMod/android_external_opencore" remote="github" revision="eclair-ds"/>
Syncing work tree: 75% (128/170) error: revision eclair in CyanogenMod?/android_packages_apps_Superuser not found
Its working for me.
Perhaps it may help you if you chechout the whole project again.
I tried to download it again from scratch
same error appeared
Syncing work tree: 75% (128/170) error: revision eclair in CyanogenMod??/android_packages_apps_Superuser not found
I'm same with you
With the froyo build, android_vendor_qcom_mm-core doesn't exist, should that be android_hardware_qcom_mm-core?
Seems so, android_hardware_qcom_mm-core is forked from android_vendor_qcom_mm-core, and it builds in this configuration.