• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root [Discussion - Developers _ONLY_] Building ICS from source (Isaac's github).

I'm using VMPlayer in Win7 x64, and have heard from others who do the same it works. I don't like dual-booting either. So it's either this or no tinkering with the source code or building at all.


Well I guess us guys who build our own computers are the minority becuase I took a hard drive out of a dvr somebody threw away and I installed ubuntu to its own disk. I mean you can find hard drives all over the place, I have six of them in a box, so why not use them? Most people who use ubuntu as a daily driver for there computers love it. I mean if Steam came to linux I would have made the move along time ago.


But anyways the rules for the thread are Dev talk so can anybody help me on my error?
I feel like im the only one who has even attempted a build....
 
But anyways the rules for the thread are Dev talk so can anybody help me on my error?
I feel like im the only one who has even attempted a build....

Konspiracy, I am not to far behind you. I just got done reloading my i7 MacBook Pro with Ubuntu 11.10. I am pulling down the source now, I will build it tomorrow while I am work and post on the outcome :eek:
 
Konspiracy, I am not to far behind you. I just got done reloading my i7 MacBook Pro with Ubuntu 11.10. I am pulling down the source now, I will build it tomorrow while I am work and post on the outcome :eek:
You could build it in the Mac OSX, unless there was another reason to use linux.
 
Make sure not to forget to pull the proprietary files from the stock rom,
also you have to copy the get-rommanager script from you gingerbread build directory and place it in the same spot in your ICS dir and run it.
I have another error but I cant post it right now because im on my windows hard drive :\
 
I just successfully compiled ICS after working on it all night. Some things to note:

You need the binaries from the stock rom as discussed in the building roms for cm7 thread.

Rename hardware/cm/audio/Android.mk so that the build system doesn't complain (e.g. Android.backup)

hardware/qcom/display/libgralloc/pmemalloc.cpp needs the file android_pmem.h for some macro and struct definitions (i placed it in the same directory)

delete the section about overlay in device/motorola/triumph/setup-makefiles.sh (this section is not compatible with ICS and the xml file causes the build to fail)

If you run into any other problems, let me know.
 
I have attempted to pull the source multiple times... but everytime is something different. I plan on using OSX the next time I pull, since there is less of a chance for something to get messed up. (I've been using a VM of Ubuntu, but it hasn't done me a lick of good. :( )
 
I just successfully compiled ICS after working on it all night. Some things to note:

You need the binaries from the stock rom as discussed in the building roms for cm7 thread.

Rename hardware/cm/audio/Android.mk so that the build system doesn't complain (e.g. Android.backup)

hardware/qcom/display/libgralloc/pmemalloc.cpp needs the file android_pmem.h for some macro and struct definitions (i placed it in the same directory)

delete the section about overlay in device/motorola/triumph/setup-makefiles.sh (this section is not compatible with ICS and the xml file causes the build to fail)

If you run into any other problems, let me know.

That's odd, I could of sworn I removed that. Either way, I'll check that again. You're right about the missing header (android_pmem.h). I forked android_bionic, but forgot to push the updated header file. I'll do that today.

I haven't built since the introduction of the CM hardware HAL repo. I'll look at side-stepping that as well. Right now, we're using the "legacy libaudio" workaround (which is found locally in the device folder). So, we don't want any of that new audio crap building (hardware/msm7k, hardware/qcom/media, hardware/cm/audio, etc.).

I backported genlock from the msm-3.0 kernel, but I haven't tried building it, yet. We'll need to build libgenlock and liboverlay as well.
 
When I pulled the sources from the repo, setup-makefiles.sh still had code in there to generate all_apps.xml , although the xml code in the file was commented out. The build system complained about not being able to find a xml element. I found that other ICS roms had that file, and its directory, removed altogether.
 
When I pulled the sources from the repo, setup-makefiles.sh still had code in there to generate all_apps.xml , although the xml code in the file was commented out. The build system complained about not being able to find a xml element. I found that other ICS roms had that file, and its directory, removed altogether.

Ohhhh, alright. I gotcha. Just the existence of the overlay is screwing up the build. I'll just remove it altogether. I doubt that the new Launcher2 will ever have a "3D drawer" effect ever again. Thanks for the heads up.

EDIT: Done, https://github.com/ikarosdev/androi...mmit/9804d645db8d023bb046c3efb0aba5d9276abb44
 
Rename hardware/cm/audio/Android.mk so that the build system doesn't complain (e.g. Android.backup)

For this, I think we could just add

TARGET_PROVIDES_LIBAUDIO := true

to

# Audio
BOARD_USES_GENERIC_AUDIO := false
BOARD_USES_AUDIO_LEGACY := true
TARGET_PROVIDES_LIBAUDIO := true

In the BoardConfig.mk file in device/motorola/triumph and it should get past that as well so you don't have to rename the file.
 
For this, I think we could just add

TARGET_PROVIDES_LIBAUDIO := true

to

# Audio
BOARD_USES_GENERIC_AUDIO := false
BOARD_USES_AUDIO_LEGACY := true
TARGET_PROVIDES_LIBAUDIO := true

In the BoardConfig.mk file in device/motorola/triumph and it should get past that as well so you don't have to rename the file.

That looks about right. Judging by this line (the directive conditional)
Code:
ifneq ($(TARGET_PROVIDES_LIBAUDIO),true)
https://github.com/CyanogenMod/android_hardware_cm/blob/ics/audio/Android.mk#L16

That's what is needed to side-step building the cm wrapper.

I'm about to merge in cm-upstream. It's the bump up to 4.0.3 (ics-mr1). It looks like it has a bunch of fixes in there.
 
Alright, I merged in ICS-mr1 from upstream and added the suggestion by Mantera. You guys can go ahead and try a build.
 
Okay what about this error.

Code:
ph/obj/NOTICE_FILES/src//system/lib/bluez-plugin/network.so.txt
Notice file: external/bluetooth/bluez/audio/NOTICE -- out/target/product/triumph/obj/NOTICE_FILES/src//system/lib/hw/audio.a2dp.default.so.txt
make: *** No rule to make target `out/target/product/triumph/obj/lib/libaudio.so', needed by `out/target/product/triumph/obj/SHARED_LIBRARIES/audio.primary.triumph_intermediates/LINKED/audio.primary.triumph.so'.  Stop.
make: *** Waiting for unfinished jobs....
Notice file: hardware/libhardware_legacy/NOTICE -- out/target/product/triumph/obj/NOTICE_FILES/src//system/lib/libpower.so.txt
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.
shane@shane-TA990FXE:~/ICS$
Saw that you just changed some thing so I repo synced and get this error

File "/home/shane/ICS/.repo/repo/main.py", line 366, in <module>
_Main(sys.argv[1:])
File "/home/shane/ICS/.repo/repo/main.py", line 346, in _Main
result = repo._Run(argv) or 0
File "/home/shane/ICS/.repo/repo/main.py", line 121, in _Run
copts, cargs = cmd.OptionParser.parse_args(argv)
File "/home/shane/ICS/.repo/repo/command.py", line 42, in OptionParser
self._Options(self._optparse)
File "/home/shane/ICS/.repo/repo/subcmds/sync.py", line 120, in _Options
self.jobs = self.manifest.default.sync_j
File "/home/shane/ICS/.repo/repo/manifest_xml.py", line 215, in default
File "/home/shane/ICS/.repo/repo/manifest_xml.py", line 255, in _Load
File "/home/shane/ICS/.repo/repo/manifest_xml.py", line 342, in _ParseManifest
error.ManifestParseError: duplicate project device/sample in /home/shane/ICS/.repo/manifest.xml

Srry paste screwed up
 
Okay what about this error.

Code:
ph/obj/NOTICE_FILES/src//system/lib/bluez-plugin/network.so.txt
Notice file: external/bluetooth/bluez/audio/NOTICE -- out/target/product/triumph/obj/NOTICE_FILES/src//system/lib/hw/audio.a2dp.default.so.txt
[B]make: *** No rule to make target `out/target/product/triumph/obj/lib/libaudio.so', needed by `out/target/product/triumph[/B]/obj/SHARED_LIBRARIES/audio.primary.triumph_intermediates/LINKED/audio.primary.triumph.so'.  Stop.
make: *** Waiting for unfinished jobs....
Notice file: hardware/libhardware_legacy/NOTICE -- out/target/product/triumph/obj/NOTICE_FILES/src//system/lib/libpower.so.txt
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.
shane@shane-TA990FXE:~/ICS$

Look at the error. This is a problem on your end. I already fixed it in the device configs: https://github.com/ikarosdev/android_device_motorola_triumph/blob/ics/extract-files.sh#L244

Take the libaudio.so lib (from a CM7 build) and stick it in ~/YOUR_SOURCE_FOLDER/vendor/motorola/triumph/proprietary
 
Okay what about this error.

Code:
ph/obj/NOTICE_FILES/src//system/lib/bluez-plugin/network.so.txt
Notice file: external/bluetooth/bluez/audio/NOTICE -- out/target/product/triumph/obj/NOTICE_FILES/src//system/lib/hw/audio.a2dp.default.so.txt
make: *** No rule to make target `out/target/product/triumph/obj/lib/libaudio.so', needed by `out/target/product/triumph/obj/SHARED_LIBRARIES/audio.primary.triumph_intermediates/LINKED/audio.primary.triumph.so'.  Stop.
make: *** Waiting for unfinished jobs....
Notice file: hardware/libhardware_legacy/NOTICE -- out/target/product/triumph/obj/NOTICE_FILES/src//system/lib/libpower.so.txt
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.
shane@shane-TA990FXE:~/ICS$
Saw that you just changed some thing so I repo synced and get this error

File "/home/shane/ICS/.repo/repo/main.py", line 366, in <module>
_Main(sys.argv[1:])
File "/home/shane/ICS/.repo/repo/main.py", line 346, in _Main
result = repo._Run(argv) or 0
File "/home/shane/ICS/.repo/repo/main.py", line 121, in _Run
copts, cargs = cmd.OptionParser.parse_args(argv)
File "/home/shane/ICS/.repo/repo/command.py", line 42, in OptionParser
self._Options(self._optparse)
File "/home/shane/ICS/.repo/repo/subcmds/sync.py", line 120, in _Options
self.jobs = self.manifest.default.sync_j
File "/home/shane/ICS/.repo/repo/manifest_xml.py", line 215, in default
File "/home/shane/ICS/.repo/repo/manifest_xml.py", line 255, in _Load
File "/home/shane/ICS/.repo/repo/manifest_xml.py", line 342, in _ParseManifest
error.ManifestParseError: duplicate project device/sample in /home/shane/ICS/.repo/manifest.xml

Srry paste screwed up

There's an extra sample line in the manifest.xml file.

Open up the .repo/manifest.xml file in a text editor and delete this line:

<project path="device/sample" name="device/sample" remote="aosp" revision="refs/tags/android-4.0.1_r1" />

The rest of the stuff are for android-4.0.1_r3 or something like that. I think this line just got missed.
 
Back
Top Bottom