How-to: Use lineage-UL (ultra legacy) sources for /e/OS builds

How-to: Use lineage-UL (ultra legacy) sources for /e/OS builds

Works on /e/OS-S (LOS19) and /e/OS-T (LOS20), does not work (yet) for /e/OS-U (LOS21)

  1. Download /e/OS-S or /e/OS-T repos
  2. Download LineageOS-UL · GitHub sources for LOS19 or LOS20

LOS20:

LOS19:

The losul.xml shows which packages are available. You don’t need all packages, but I do not have the time to find out so I replaced all EXCEPT of android_vendor_lineage.
For LOS19 you also do not need to replace android_frameworks_base. You can do it, but you will get same build errors than in LOS20.
Do not replace android_vendor_lineage, keep it. Do not forget to copy the .git folder also if you replace manually.

There are not 2 build issues you need to take care of (if you use LOS19 without replacing android_frameworks_base you have one build error)

One build error (LOS 19 and LOS20) is related to OTA_ANON_HASH.
packages/apps/Updater/src/org/lineageos/updater/UpdatesCheckReceiver.java
packages/apps/Updater/src/org/lineageos/updater/misc/Utils.java

One can fix it by changing in /vendor/lineage/config/common.mk the following entry:

Lineage packages

PRODUCT_PACKAGES +=
LineageParts
LineageSettingsProvider
LineageSetupWizard
Updater

Change to:

Lineage packages

PRODUCT_PACKAGES +=
LineageParts
LineageSettingsProvider
LineageSetupWizard

This means that updater module and local update possibility wont be available anymore. I can live with that because my unofficial build do not offer OTA anyway and there are other ways to update the ROM.

The second one is related to SENTRY_USERID:

packages/apps/LineageParts/src/org/lineageos/lineageparts/utils/EUtils.java
packages/apps/LineageParts/src/org/lineageos/lineageparts/BootReceiver.java
packages/apps/Settings/src/com/android/settings/deviceinfo/firmwareversion/SentryDetailPreferenceController.java

Here you can either comment respective section out or replace SENTRY_USERID with a constant like SENTRY_USERID = “sentry_userid”;

There are surely much smarter ways of fixing, but I opted for a quick and dirty solution by now which works for me.
Any help is of course highly appreciated to streamline the LOS-UL emplacement and fixing the 2 build issues.

UPDATE:

I could resolve both issues now and also include full microG support (LOS20, /e/OS-T).

I just replaced the following base framework LOS-UL with the current eOS files from framework: base

frameworks/base/core/java/android/provider/Settings.java
→ This will fix both build issues

services/core/java/com/android/server/pm/ComputerEngine.java
services/core/java/com/android/server/pm/AppsFilterImpl.java
services/core/jni/Android.bp
services/core/jni/com_android_server_pm_ComputerEngine.cpp
services/core/jni/onload.cpp
core/api/current.txt
core/res/AndroidManifest.xml
core/res/res/values/strings.xml
→ This will include full microG support. I don’t know if you need all of them but did not have the time to find out

Also for LOS19 based (/e/OS-S) this are the steps to adapt framework base:
frameworks/base/core/java/android/provider/Settings.java
→ This will fix both build issues

core/res/AndroidManifest.xml
core/res/res/values/strings.xml
services/core/java/com/android/server/pm/PackageManagerService.java
services/core/jni/com_android_server_pm_PackageManagerService.cpp
services/core/jni/Android.bp
services/core/java/com/android/server/pm/AppsFilter.java
→ This will include full microG support. I don’t know if you need all of them but did not have the time to find out

So it seems /e/OS build with Lineage-UL sources are now pretty easily possible!

5 Likes

So nice Ron !
Did you ever build a rom based on LOS-UL ?

Yes, a couple now. For example latest Samsung S6 /e/OS-T builds as well as Samsung Tab S2 latest /e/OS-T builds…and some more!

Is there something to diff them in your SourceForge ?

No, but when I post them here I usually state that LOS-UL sources were used too

Adapted framework base and vendor lineage for /e/OS-S and /e/OS-T UL builds can now be found here:

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

I am trying to include Lineage Ultra Legacy, but returning to a previously working vanilla Lineage (a13 LOS 20) build environment for bacon.

The build fails early

[100% 1025/1025] analyzing Android.bp files and generating ninja file at out/soong/build.ninja
[snip]
#### failed to build some targets (01:42 (mm:ss)) ####

The error includes

error: external/dng_sdk/Android.bp:165:1: dependency "libjpeg" of "libdng_sdk" missing variant:

This is the mentioned Android.bp android_external_dng_sdk/Android.bp at lineage-20.0 · LineageOS/android_external_dng_sdk · GitHub

Firstly the error is too hard for me to resolve (cherry picking I find hard too), then I see that GitHub - LineageOS/android_external_dng_sdk at lineage-20.0 had 2 very recent commits

The verbose log error is
[1023/1025] out/soong/bpglob -o out/soong/globs/build/1023 -p "art/test/1900-track-alloc/AndroidTest.xml" -p "art/test/542-inline-trycatch/src/**/*.java" -p "art/test/590-checker-arr-set-null-regression/LICENCE" -p "art/test/617-clinit-oome/LICENCE" -p "art/tools/art_verifier/LICENCE" -p "cts/hostsidetests/jvmti/run-tests/test-1991/LICENSE" -p "cts/hostsidetests/jvmti/run-tests/test-932/LICENSE" -p "cts/hostsidetests/securitybulletin/securityPatch/CVE-2016-6733/NOTICE" -p "cts/hostsidetests/securitybulletin/test-apps/CVE-2021-39692/res/**/*" -e "*.scc" -e "*~" -e ".*" -e ".ds_store" -e ".git" -e ".svn" -e "CVS" -e "picasa.ini" -e "thumbs.db" -p "cts/tests/AlarmManager/app_policy_permission32/lint-baseline.xml" -p "cts/tests/media/NOTICE" -p "cts/tests/suspendapps/NOTICE" -p "cts/tests/tests/accounts/AndroidTest.xml" -p "cts/tests/tests/appop/AppThatUsesAppOps/jni/**/*.cpp" -p "cts/tests/tests/content/lib/accountaccess/LICENCE" -p "cts/tests/tests/instantapp/lint-baseline.xml" -p "cts/tests/tests/persistentdataservice/src/**/*.java" -p "development/apps/BluetoothDebug/assets" -p "development/samples/StartingWindow/LICENCE" -p "external/clang/lib/Serialization/LICENSE" -p "external/icu/icu4j/main/classes/currdata/src/**/*" -e "**/*.java" -e "**/*~" -e "**/.*.swp" -e "**/.DS_Store" -e "**/overview.html" -e "**/package.html" -e "external/icu/icu4j/main/classes/localespi/src/**/*" -p "external/iperf3/NOTICE" -p "external/libdrm/LICENCE" -p "frameworks/av/media/codec2/hidl/1.0/vts/functional/audio/LICENSE" -p "frameworks/av/media/libmedia/tests/mediaplayer/LICENSE" -p "frameworks/base/apct-tests/perftests/inputmethod/res" -p "frameworks/base/media/lib/remotedisplay/api/system-current.txt" -p "frameworks/base/packages/SimAppDialog/LICENCE" -p "frameworks/base/tests/ApkVerityTest/ApkVerityTestApp/assets" -p "frameworks/minikin/tests/stresstest/LICENSE" -p "frameworks/opt/localepicker/LICENCE" -p "frameworks/rs/tests/java_api/MathErr/src/**/*.java" -p "hardware/google/pixel/vibrator/cs40l26/LICENSE" -p "hardware/interfaces/bluetooth/audio/2.0/default/LICENCE" -p "hardware/interfaces/camera/device/3.2/default/LICENCE" -p "hardware/interfaces/graphics/composer/2.1/utils/passthrough/NOTICE" -p "hardware/qcom-caf/sm8150/display/libqservice/LICENSE" -p "packages/apps/Car/LinkViewer/LICENCE" -p "packages/apps/Dialer/java/com/android/incallui/incall/impl/res/**/*" -e "*.scc" -e "*~" -e ".*" -e ".ds_store" -e ".git" -e ".svn" -e "CVS" -e "picasa.ini" -e "thumbs.db" -p "packages/apps/EmergencyInfo/tests/common/LICENSE" -p "packages/modules/Connectivity/nearby/tests/integration/privileged/LICENCE" -p "packages/modules/NetworkStack/common/networkstackclient/aidl_api/ipmemorystore-aidl-interfaces/5/**/*.aidl" -p "packages/providers/MediaProvider/LICENSE" -p "packages/services/Car/car_product/car_ui_portrait/rro/CarUiPortraitSettingsProviderEmuRRO/LICENCE" -p "packages/services/Car/tests/carservice_unit_test/src" -p "platform_testing/libraries/sts-common-util/util/src/**/*.java" -p "platform_testing/tests/automotive/functional/dialer/assets" -p "system/ca-certificates/wfa_certs/LICENSE" -p "system/sepolicy/com.android.sepolicy/33/LICENSE" -p "system/tools/aidl/build/aidl_api/test-root-package/3" -p "test/vts/tools/vts-core-tradefed/LICENSE"
[1024/1025] out/soong/bpglob -o out/soong/globs/build/1003 -p "art/test/*40-*/**/*" -p "art/test/446-checker-inliner2/src" -p "art/test/449-checker-bce-rem/LICENCE" -p "art/test/643-checker-bogus-ic/LICENSE" -p "art/test/667-checker-simd-alignment/LICENCE" -p "art/test/900-hello-plugin/NOTICE" -p "cts/common/device-side/bedstead/activitycontext/lint-baseline.xml" -p "cts/hostsidetests/appsecurity/test-apps/SplitApp/libs/mips/LICENCE" -p "cts/hostsidetests/os/test-apps/EnvironmentTestApp/src" -p "cts/hostsidetests/packagemanager/installedloadingprogess/deviceside/lint-baseline.xml" -p "cts/tests/framework/base/windowmanager/appSecondUid/AndroidTest.xml" -p "cts/tests/framework/base/windowmanager/dndtargetappsdk23/lint-baseline.xml" -p "cts/tests/quickaccesswallet/NOTICE" -p "cts/tests/tests/companion/res" -p "cts/tests/tests/netsecpolicy/usescleartexttraffic-true/LICENSE" -p "cts/tests/tests/permission/AppToTestRevokeSelfPermission/assets" -p "cts/tests/tests/wifi/CtsWifiLocationTestApp/LICENCE" -p "cts/tests/tests/wrap/nowrap/res" -p "development/samples/TtsEngine/assets/**/*" -e "*.scc" -e "*~" -e ".*" -e ".ds_store" -e ".git" -e ".svn" -e "CVS" -e "picasa.ini" -e "thumbs.db" -p "device/lineage/sepolicy/common/public/port_contexts" -p "device/lineage/sepolicy/qcom/dynamic/mls_decl" -p "device/oneplus/bacon/sepolicy/*.te" -p "external/bc/AndroidTest.xml" -p "external/iproute2/lib/LICENSE" -p "external/rust/crates/serde-xml-rs/AndroidTest.xml" -p "external/shflags/LICENSE" -p "frameworks/base/core/tests/PackageInstallerSessions/lint-baseline.xml" -p "frameworks/base/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/res/**/*" -e "*.scc" -e "*~" -e ".*" -e ".ds_store" -e ".git" -e ".svn" -e "CVS" -e "picasa.ini" -e "thumbs.db" -p "frameworks/base/packages/CarrierDefaultApp/tests/unit/AndroidTest.xml" -p "frameworks/base/tests/ProtoInputStreamTests/res" -p "frameworks/base/tools/aapt2/integration-tests/StaticLibTest/App/src/**/*.java" -p "frameworks/ex/camera2/utils/tests/lint-baseline.xml" -p "frameworks/layoutlib/bridge/src" -p "frameworks/multidex/LICENCE" -p "frameworks/native/services/surfaceflinger/fuzzer/LICENSE" -p "hardware/google/pixel/vibrator/drv2624/LICENCE" -p "hardware/interfaces/gnss/measurement_corrections/1.0/LICENSE" -p "hardware/interfaces/usb/1.1/vts/functional/NOTICE" -p "hardware/libhardware/modules/hwcomposer/LICENSE" -p "packages/apps/Dialer/java/com/android/dialer/widget/res/**/*" -e "*.scc" -e "*~" -e ".*" -e ".ds_store" -e ".git" -e ".svn" -e "CVS" -e "picasa.ini" -e "thumbs.db" -p "packages/apps/RemoteProvisioner/tests/unittests/src" -p "packages/services/Car/tests/MultiDisplayTestHelloActivity/res/**/*" -e "*.scc" -e "*~" -e ".*" -e ".ds_store" -e ".git" -e ".svn" -e "CVS" -e "picasa.ini" -e "thumbs.db" -p "packages/wallpapers/LivePicker/res/**/*" -e "*.scc" -e "*~" -e ".*" -e ".ds_store" -e ".git" -e ".svn" -e "CVS" -e "picasa.ini" -e "thumbs.db" -p "platform_testing/libraries/automotive-helpers/home-helper/src" -p "platform_testing/tests/codecoverage/instrumentation/NOTICE" -p "prebuilts/sdk/9/module-lib/api/*.txt" -p "system/apex/tests/LICENCE" -p "system/tools/hidl/hidl2aidl/test/extension/1.2/LICENSE" -p "test/vts/testcases/host/selinux_test/src/**/*.java" -p "vendor/qcom/opensource/fm-commonsys/fmapp2/src"
[1025/1025] cd "$(dirname "out/host/linux-x86/bin/soong_build")" && BUILDER="$PWD/$(basename "out/host/linux-x86/bin/soong_build")" && cd / && env -i  "$BUILDER"     --top "$TOP"     --soong_out "out/soong"     --out "out"     -o out/soong/build.ninja --globListDir build --globFile out/soong/globs-build.ninja -t -l out/.module_paths/Android.bp.list --available_env out/soong/soong.environment.available --used_env out/soong/soong.environment.used.build Android.bp
FAILED: out/soong/build.ninja
e[31merror:e[0m external/dng_sdk/Android.bp:165:1: dependency "libjpeg" of "libdng_sdk" missing variant:
  os:android,image:,arch:arm_armv7-a-neon,sdk:sdk,link:shared
available variants:
  os:linux_glibc,arch:x86_64 (alias to os:linux_glibc,arch:x86_64,link:shared)
  os:linux_glibc,arch:x86_64,link:static
  os:linux_glibc,arch:x86_64,link:shared
  os:linux_glibc,arch:x86 (alias to os:linux_glibc,arch:x86,link:shared)
  os:linux_glibc,arch:x86,link:static
  os:linux_glibc,arch:x86,link:shared
  os:windows,arch:x86 (alias to os:windows,arch:x86,link:shared)
  os:windows,arch:x86,link:static
  os:windows,arch:x86,link:shared
  os:windows,arch:x86_64 (alias to os:windows,arch:x86_64,link:shared)
  os:windows,arch:x86_64,link:static
  os:windows,arch:x86_64,link:shared
  os:android,image:,arch:arm_armv7-a-neon (alias to os:android,image:,arch:arm_armv7-a-neon,sdk:,link:shared,version:)
  os:android,image:,arch:arm_armv7-a-neon,sdk: (alias to os:android,image:,arch:arm_armv7-a-neon,sdk:,link:shared,version:)
  os:android,image:,arch:arm_armv7-a-neon,sdk:,link:static
  os:android,image:,arch:arm_armv7-a-neon,sdk:,link:shared (alias to os:android,image:,arch:arm_armv7-a-neon,sdk:,link:shared,version:)
  os:android,image:,arch:arm_armv7-a-neon,sdk:,link:shared,version:
  os:android,image:,arch:arm_armv7-a-neon,sdk:,link:shared,version:latest (alias to os:android,image:,arch:arm_armv7-a-neon,sdk:,link:shared,version:)

Any clues please what I might try next?

I had this issue too! I resolved it that I took older versions of above LOS20 packages

1 Like