[HOWTO] ✏ Compiling Fairphone Open OS / Rooting

fastboot flash system system.img

finished without any error messages (just OKAYs and finish time)

Do I have to flash one of the other files as well, maybe?

No. Only the three (boot.img, recovery.img, system.img). Can you do them one by one? Just to see if there is an error message? I don’t have any more ideas here, sorry.

But if those already went through fine, maybe just leave it like that and try a: fastboot -w flash system system.img


1 Like

That’s what I did.

I also tried out the modified boot.img with supersu.

Sorry, there is nothing more I can recommend. But you can still use the recovery to reinstall the OTA right?

1 Like

sorry, what does OTA stand for? and where do I get that?
I can access the recovery.

Just if all else fails you can use it to reinstall the FP2 stock software back onto your phone. The thread is a bit confusing to read, but it looks like it worked.

1 Like

Thank you for the link.
Maybe I have to reflash before I send my phone back, bcz I really do not want to have gapps on my phone :slightly_smiling:

If you not in a rush to return the phone … maybe someone else will haven an idea in the meantime. It worked before :slightly_smiling:

Also, I assume you copied all the libs around and the stuff like described in the HOWTO, right? You used docker, so I guess yes, but … sometimes a script can fail for strange reasons … Maybe some logcat logs will help, if available, not sure what state your phone is in after booting …

I have one more week before the phone must be returned.

For building I just followed the (very easy and short) instructions for the docker file.

For a better description of the phone’s state: :wink:

  • it is not in fastboot mode. (fastboot devices can’t find it)
  • the led shines red (after 2-3 seconds when turned on, turns off when disconnecting the USB cable)

How would I find logcat logs?

Good descriptions. I hope someone can use them to help you better. If your phone accepts adb devices you could try adb logcat or adb shell afterwards to see what’s going on inside. Not sure about the default settings in the rom regarding usb debugging. I hope someone else can fill in the blanks here (build properties for debugging are set, right?).

The recovery looks broken, too.
at the bottom it says
“E:Can’t open /dev/block/platform/msm_sdcc.1/by-name/misc
(Permission denied)”

That’s actually nomal. I’ve had it from the start and everythings workd fine for me…

1 Like

As you can see from my other posts, something must have gone wrong. My system doesn’t start (yet fastboot mode and recovery seem to work).
How do I restart the compiling process with the Docker image? (best would be without downloading 30GB one more time)

You can get a shell inside the Docker image and work from there:

$ docker run -v $PATH_ON_HOST/:/var/fairphone_os/ -i -t jftr/fairphone2-build-env /bin/bash

$PATH_ON_HOST is where the repository is stored on your host.

Now you have a shell and can reset the repository and start over again. This probably works with the following command:

$ repo forall -vc "git reset --hard"

This resets all git repositories managed by repo. You might need to take some other steps to clean up. I don’t know what you’ve changed.

Yesterday I started building files again with a fresh Docker installation (on Debian Jessie 8.3):

Today I have the same results.
FP2 gets detected with fastboot -devices
fastboot flashall gives the error message
neither -p product specified nor ANDROID_PRODUCT_OUT set
after flashing system recovery boot one by one the phone still hangs on the Start Logo Screen.

If anyone wants to have a look at my image files for testing purposes I can upload them.
Any help on this is appreciated.

I have similar problems as @Bergziege:

I’ve compiled successfully on my own machine Ubuntu 14.04.3 LTS, though it took ~9 hours (2 CPU cores, 4GB RAM, 4GB Swap, used make -j4 instead of make -j8 according to this). Btw, I did compare the file sizes and had similar (but not identical) results (though my boot.img.nonsecure has exactly the same size as @lklaus’ and @Max_Sboot.img, which seems a bit odd to me - but okay)

Now, some days later, I wanted to flash this to my phone, but got major problems. My device got detected by fastboot (after having adjusted the udev-rules), so no problem there. But:

1. Try:

~/fairphone_os$ fastboot -w flashall
error: neither -p product specified nor ANDROID_PRODUCT_OUT set

I searched for this error and according to the results I tried the following:

  1. Tried to set the environment variable ANDROID_PRODUCT_OUT=~/fairphone_os/out/target/product/FP2 - didn’t work, got the same error after fastboot -w flashall
  2. Tried to put the same variable in .bashrc - again same result
  3. Tried
    ~/fairphone_os$ fastboot -w -p FP2 flashall
    and got this:
    error: could not load android-info.txt: No such file or directory
    The same error occured after executing the flash command in the directory ~/fairphone_os/out/target/product/FP2, where the file android-info.txt and all the images are definitely located.

2. Try:

According to this earlier post I tried:

~/fairphone_os/out/target/product/FP2$ fastboot flash recovery recovery.img
~/fairphone_os/out/target/product/FP2$ fastboot -w flash system system.img
~/fairphone_os/out/target/product/FP2$ fastboot reboot

with some hope first, but big failure afterwards:

  • Commands went through successfully! I unplugged the phone.
  • Phone rebooted, but stuck at FP-logo (same problem as @Bergziege had) and gets quite warm/hot (especially in the area above the battery)
  • After >30min (>1h in 2nd try) I hold the power button to power it off
  • Now the phone was dead (no reaction at all); only after connecting via USB the LED blinked and was then permanently on (sign for charging)
  • Only then did I see that the battery dropped down to 1% (from 70% at most 2 hours earlier)!!
  • Accessing the recovery worked, but it reacted quite slowly

Afterwards I tried to flash boot, cache and userdata in addition with the same results.

I’m a bit scared by the slow reaction, the temperature and (probably connected) the drop in battery charge (which in turn was obviously responsible for the phone not reacting at all while unplugged). I hope that the hardware is ok (in case my OS will boot some time in the future :sweat_smile:)

3. Try:

One remark from a link above:

suggests that the ./build/envsetup.sh step should have set up all this. I wonder whether this was messed up by not flashing directly after the build in the same terminal?! It seems to me that one has to run this before each flashing attempt (more precisely once in every new shell)?! Btw, is @anon41484458’s comment related to this (which I wouldn’t understand because I’ve never cleared my /out-directory …)?

Anyway, the cited links more or less advise to run

~/fairphone_os$ ./build/envsetup.sh
~/fairphone_os$ lunch ...

but the lunch command seems to be suitable only for some other (in particular Nexus) devices. I guess, the choosecombo step is the FP-counterpart, so I ran:

~/fairphone_os$ ./build/envsetup.sh
~/fairphone_os$ choosecombo 1 FP2 2
~/fairphone_os$ fastboot -w flashall

which then was successful! After rebooting, however, my phone is again still stuck at FP-logo. I therefore now tend to believe that my self-compiled build is broken somehow. :disappointed_relieved:

Ah btw, maybe I should mention that I haven’t gone through the FP2 setup before (though I can’t really imagine why this should make a difference) - I immediately flashed the phone before doing anything else with it.

If someone has a any explanation or other ideas what to try next, please share! :slightly_smiling: My next step would be to start compilation again.

Any comments/answers are very appreciated - thanks a lot in advance!

1 Like


just got my FF2 and it’s awesome.
I’ve now finished compiling FP2 OSOS. Before testing… Is it possible to get the stock FP2 OS (Onion) as an image file?

yes, that is very possible. Check this post for details on how to download the ota update:

Helped me recover after wrecking the system :slight_smile:

Can you try again with the new blobs (2.0.1)? Extract them as described in the build instructions and then try a clean start:

$ rm -rf out
$ . ./build/envsetup.sh
$ choosecombo 1 FP2 2
$ mm -j 8
$ fastboot -w flashall

Thank you for your report.
I am a bit relieved, that it was not my fault.
I can confirm the battery drain.
Obviously something with the code is wrong.
So I guess re-compiling won’t help until something has been fixed there. (I compiled two times with the same result.)
Did you also use the Docker image or did you built “by yourself”?

Maybe someone would provide us with working images, even when Fairphone doesn’t want the users to share their builds, but then again, they can’t want users who have bricked phones as well.