Manual build with android_vendor_e advice (failing for FP4)

After not having much luck with Docker I’ve gone down the manual build route for FP4, using android_vendor_e. I’ve followed the instructions at:

https://gitlab.e.foundation/steadfasterX/android_vendor_e/-/tree/v1-s

With:

repo init -u https://gitlab.e.foundation/e/os/releases.git -b refs/tags/v1.12.3-s

.repo/local_manifests/eos.xml:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote name="fdroid" fetch="https://gitlab.com/fdroid/" />
  <remote name="sfX" fetch="https://github.com/sfX-Android/" />
  <project name="WeAreFairphone/android_device_fairphone_FP4" path="device/fairphone/FP4" revision="staging/lineage-19.1" remote="github" />
  <project name="WeAreFairphone/android_kernel_fairphone_sm7225" path="kernel/fairphone/sm7225" revision="staging/lineage-19.1" remote="github" />
  <project name="FairBlobs/proprietary_vendor_fairphone" path="vendor/fairphone" revision="staging/lineage-19.1" remote="github" />
  <remove-project name="LineageOS/android_hardware_qcom_display"/>
  <project name="LineageOS/android_hardware_qcom_display" path="hardware/qcom-caf/sm8250/display" remote="github" revision="lineage-19.1-caf-sm8250"/>
  <project name="LineageOS/android_external_bson" path="external/bson" remote="github" />
  <project name="steadfasterX/android_vendor_e" path="vendor/e" remote="e" revision="v1-s" />
</manifest>

The above is based on clues grubbed from a few places, but can’t be sure I’m not missing something

device/fairphone/FP4/vendorsetup.sh:

export EOS_CCACHE_DIR=/data/e/ab/ccache
export EOS_CCACHE_SIZE=100G
export EOS_DEVICE=FP4
export EOS_BRANCH_NAME=v1.12.3-s
export EOS_RELEASE_TYPE=UNOFFICIAL
export EOS_INCLUDE_PROPRIETARY=true

However, mka eos fails with:

build/make/core/Makefile:61: warning: overriding commands for target `out/target/product/FP4/vendor/lib64/libsdmcore.so'
build/make/core/base_rules.mk:525: warning: ignoring old commands for target `out/target/product/FP4/vendor/lib64/libsdmcore.so'
FAILED: ninja: 'prebuilts/prebuiltapks/AccountManager/app-standard-release-unsigned.apk', needed by 'out/target/product/FP4/obj/APPS/Acc
ountManager_intermediates/package.apk', missing and no known rule to make it
16:55:30 ninja failed with: exit status 1

#### failed to build some targets (01:59 (mm:ss)) ####

So it would seem like I do have some missing or incorrect configuration.

Does your docker built .repo/local_manifests/roomservice.xml still exist?

If yes, you would have the opportunity to copy that for your basic fairphone lines.

EDIT: Yes, the file exists, but it is empty. Could you expand on that please? I had to create the local_manifests directory, as that did not exist at all after repo init.

EDIT2: Sorry, just saw you meant the previous docker built one. Having a look…

By “docker built”, I meant your previous “regular” docker build – if you did not delete it.

I had to create the local_manifests directory

…is expected.

src/S/.repo/local_manifests# cat roomservice.xml:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <project name="e/devices/android_device_fairphone_FP4" path="device/fairphone/FP4" remote="e" />
  <project name="e/devices/android_kernel_fairphone_FP4" path="kernel/fairphone/FP4" remote="e" />
</manifest>

While you cannot be certain this is correct, (only as you did not get a successful build) it is “machine generated” and it potentially will lead to a successful build in an /e/ environment, if you were to substitute these lines into the framework from vendor_e README.

Edit, I always study the output of source build/envsetup.sh for clues to where I might have made errors.

1 Like

Did you call repo forall -v -c git lfs pull after doing the repo sync:

What files do you in the prebuilts/prebuiltapks/AccountManager directory?

EDIT:
PS I maintain a wiki page listing buid errors fixes and workarounds that I have encountered. I’ll be happy to update it if you find a way round your errors

1 Like

I saw this elsewhere and thought I had, but will check tomorrow when back with the build system.

Will check this also.

OK, seems I did run this before, but a dumb cut and paste error meant it used left and right-hand single quotes and thus returned immediately. Re-ran properly just now and it took some time to complete and downloaded a few more gigabytes of data with git-lfs.

Following the above this now has the previously missing APK.

Based on previous comments regarding .repo/local_manifests contents, I updated this based on the roomservice.xml contents from the Docker image run, plus android_vendor_e and blobs:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <project name="e/devices/android_device_fairphone_FP4" path="device/fairphone/FP4" remote="e" />
  <project name="e/devices/android_kernel_fairphone_FP4" path="kernel/fairphone/FP4" remote="e" />
  <project name="FairBlobs/proprietary_vendor_fairphone" path="vendor/fairphone" revision="staging/lineage-19.1" remote="github" />
  <project name="steadfasterX/android_vendor_e" path="vendor/e" remote="e" revision="v1-s" />
</manifest>

However, I could be wrong, but I think the build now fails at an earlier point:

FAILED: 
build/make/core/Makefile:61: error: overriding commands for target `out/target/product/FP4/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service', previously defined at build/make
/core/base_rules.mk:525
12:42:28 ckati failed with: exit status 1```

Going to retry with the previous local_manifests configuration.

Looks like you’re moving forward :slight_smile:

After the previous issues with repo forall etc. I would suggest starting from ‘clean’, by removing the out directory rm -rf out/ the calling source build/envsetup.sh and lunch again. The next build may take a bit longer, but better chance of success IMHO.

This topic was automatically closed after 90 days. New replies are no longer allowed.