Did someone actually try flashing/booting the blobfree build? Which devices work, which don’t?
Can’t we upload it anyway? I have the blob-free images. I’m sure someone will test it
I assume that a lot of things will not work. There are around 477 libs in the tar ball. Eight of those include the term “adreno” that’s the name of QC’s graphics chip … And over 30 .bin/.fw files. And around 70 config files … I’m sure I missed a lot of other important file types.
I hate to say it, but copying Sony is the way to go.
But keep in mind only the few libs mentioned above are really tricky (gps, audio, radio, fitness stuff), the rest just gets copied anyway.
I think most of the stuff that needs to be modified could be found here:
/kernel/arch/arm/boot/dts/ (dts for the chip, maybe already in the main kernel)
The qualcomm bin blob make files, I guess, can be found here:
#FM FM := qcom.fmradio FM += libqcomfm_jni #GPS GPS_HARDWARE := gps.conf GPS_HARDWARE += gps.default GPS_HARDWARE += gps.mahimahi GPS_HARDWARE += libloc_adapter GPS_HARDWARE += libgps.utils GPS_HARDWARE += libloc_eng GPS_HARDWARE += libloc_api_v02 #ANT stack PRODUCT_PACKAGES += \ AntHalService \ libantradio \ antradio_app #LIBCOPYBIT LIBCOPYBIT := copybit.msm8660 LIBCOPYBIT += copybit.msm8960 LIBCOPYBIT += copybit.msm8974 LIBCOPYBIT += copybit.msm8226 LIBCOPYBIT += copybit.msm8610 LIBCOPYBIT += copybit.apq8084
Was there any effort since February?
I tried to compile without blobs and got this:
$ make -j4 clang: error: linker command failed with exit code 1 (use -v to see invocation) build/core/host_shared_library_internal.mk:44: recipe for target 'out/host/linux-x86/obj32/lib/libnativehelper.so' failed make: *** [out/host/linux-x86/obj32/lib/libnativehelper.so] Error 1 make: *** Waiting for unfinished jobs.... #### make failed to build some targets (03:42 (mm:ss)) ####
Could you build it correctly on a clean
repo sync without blobs infection, @fp1_wo_sw_updates?
The desirable would be a blob-free flashable ZIP, to which add blobs from a running device with a neat script. B2G does exactly this (through a web interface that I think wouldn’t be hard to adapt), so it should be possible!
Hey, I haven’t tried yet ;(
If I remember correctly the blob libs are linked during the build. But I guess is possible to use the standard much slower Android based ones. It would be interesting if one could diff the Mozilla build script with the one FP provides. Or just ask the Mozilla coders
Reading about clang makes me a bit suspicious. I’m not sure if Android 5 already uses clang. Maybe something is using your systems linker and not the one provided with the code?
Yup, Lollipop+ use it, and the issue seems to be something about host
clang, acording to CM’s gerrit. Trying to workaround this by
WITHOUT_HOST_CLANG=true make systemimage -j4 doesn’t work for FPoOS. I’ll have to learn how to setup well my host clang then,
Okay, was just a guess! I don’t remember anymore, but accidentally mixing provided tools and compiler stuff from the host could look like this. Maybe you can use a verbose make to see all the tool paths during the build? I would try to avoid using tools from the host as much as possible.
I’m having the same exact linking error with clean msm8974 codeaurora sources, so it’s not FPoOS exclusive. I read it’s caused by updates libraries, probably because I try to compile in Ubuntu 16.04 and not on 14.04. I’m applying the
ld.gold workaround stated in this StackOverflow question and trying to build again.
Edit: I was sick of odd errors, so I setted up a
chroot environment with Ubuntu 14.04 and build seems to be doing fine. I firstly tried with Vagrant, but my machine is not powerful enought to use VMs for compiling things, only capable on bare metal, so this is a great solution for me (and not as complicated as I thought I’d be)
I successfuly compiled FP Open OS without blobs, as @keesj said, with the Ubuntu 14.04 chroot environment. I didn’t try to boot it yet, but…
…I have hope. Before FPoOS, I compiled general CodeAurora sources for msm8974 and flashed
boot.img didn’t work). Booting the system, ADB showed me a message about a specific missing required blob (
lib*.so). Thus, I think, adding the blobs locally (with some fancy script/WebExtension) happily will result in a working system, as B2G is!
Also, I’ll investigate how to make flashable ZIPs without images inside (with the same content unzipped, like custom ROM’s ZIPs)
I will keep you informed,
Great news, keep up your work :). Hope you’ll get some official support if you have problems you can’t solve for yourself.
Boo. Copying previously-extracted blobs from this list of blobs to the system (once flashed, from TWRP’s File Manager) result in a system somewhat booting, but not so well: there’s no graphical output,
adb does not respond and my laptop detect a bunch of raw partitions mounted from the device. Those partitions correspond to
userdata and internal storage (a guess from each partition content, capacity and UUID relationship).
I’m tired right now so I’ll quickly summarize what I did next (two firsts are pretty much this things):
- I managed to convert the own-built
system.imgand the FP-built
simg2imgtool to normal imgs, and
- mounted them in my laptop with
sudo mount -t ext4 -o loop system.raw.img /mnt/<mount-point>
- I extracted a list of files to diff with
find /mnt/<mount-point>/ | sed 's/mnt\/<mount-point>\///g' | tee system.list.txt
- Did a graphical diff with Meld: there are lot of diffs, not only
*.soblobs, that can cause a faulty system.
Need to investigate this further and its correlation with the other non-
*.so blobs of the official blobs ZIP.
Just a little non-update: kindly hosted by AndroidFileHost…