• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[ROM][S9+/S9][UNOFFICIAL][LineageOS 18.1][21-03-2021]

Search This thread

gusnz

Member
May 12, 2013
31
8
Glad you built it OK! I'm also running a self-built 18.1, many thanks to @Synt4x.93 too :). I dirty flashed on top of 17.1 with a changeover of signing keys, but it carried all the settings forward OK; most seem to stick but I don't reboot often.
 
  • Like
Reactions: dreas74

roizcorp2

Senior Member
Oct 25, 2015
83
28
Hi,

Thanks for the tips, I build my own and it work really good, big thanks to Synt4x93's for his work, Rom is stable and smooth. Maybe the battery life was a tiny little bit better with official Lineage 17.1 but that's just a feeling, and it's still really good to me. In fact I also use NikGapps instead OpenGapps on this rom witch maybe impact differently the battery, not sure about that.

I just discover a small bug: when I reboot, some settings are being reset (dark mode, lock screen settings, quick settings on the top). Is it just me or do you have the same problem ?
Can you share your builds, I really want security updated phone
 
  • Like
Reactions: dreas74

ElPakoTech

Member
Apr 18, 2020
21
30
Can you share your builds, I really want security updated phone
Hi,

I made a new one and you can download it here: https://github.com/pakaoraki/OTA/releases

Just let you know this build is signed with my own keys: so in the future if you want to update to an official or to another unofficial build, you will need to wipe and start over (or see this page https://wiki.lineageos.org/signing_builds.html to change keys for a dirty flash). It's also 100% source code from @Synt4x.93 so big thanks to him again.

I plan to do some other updates time to time to keep the ROM secure, and the OTA should be working. I am not a confirmed android/lineage dev so there is absolutely no guaranty that any issues come due to Lineageos updated code. If the main dev build again updated Rom in the future, I would recommend to use it.

After flashing properly data/system from Lineage Recovery this time, and installed the new build, the problem I had with settings is gone now: sor far, any issues. I also use MindTheGapps this time as Lineageos dev recommend it for 18.1 and everything is fine. Just let you know that I wasn't able to install it the first time with TWRP (got some errors), it is why I switched to NikGapps in the first place, which is working great too.
 

dreas74

Senior Member
Dec 24, 2010
80
54

@ElPakoTech

Thanks for your work!
I will test the build and give you feedback.

Nice , if we have a maintained LOS with current security patches.
Have you a paypal adress, that i can buy you a beer?

Regards
dreas
 

ElPakoTech

Member
Apr 18, 2020
21
30

@ElPakoTech

Thanks for your work!
I will test the build and give you feedback.

Nice , if we have a maintained LOS with current security patches.
Have you a paypal adress, that i can buy you a beer?

Regards
dreas
I will do my own build anyway if there is no official support so I'm happy to share it. No need to tips but thanks :)
 

dreas74

Senior Member
Dec 24, 2010
80
54
I will do my own build anyway if there is no official support so I'm happy to share it. No need to tips but thanks :)

Hi @ElPakoTech,

i have testet your build and i am very happy with it.
Now works the storage path in lineage snap cam to external sd-card.
I have waited long long time for fixing of this feature.

So, i would like to say thanks for your work and i recommend a separate treat on xda for your builds.

@nijazka
I dont´t use google pay but safety check would be pass.

congrets
dreas
 

Neurotical

Senior Member
Feb 7, 2011
149
190
Hello. I need help compiling Lineage 18.1. The following is the command that I used:

brunch lineage_arm64-userdebug

Unfortunately I get the following output with an error:

[...]
16:51:34 soong minibootstrap failed with: exit status 1
FAILED: ninja: ./build/blueprint/bootstrap/build.ninja:11: loading 'out/soong/.minibootstrap/build-globs.ninja': Exec format error
subninja ${myGlobs}
^ near here


I would really appreciate some help or ate least some advice on where to go in this forum for help. I think I am close to compiling a working version, but cannot find anything about this kind of error. Thanks!
 
Last edited:

Neurotical

Senior Member
Feb 7, 2011
149
190
You need to put your model name in there e.g. "brunch starlte" or "brunch star2lte" as per the official wiki instructions. That should get it building I hope! See my post a page back in this thread for tips if it runs out of RAM and crashes mid build.
Thank you so much for your advice.
I tried to run the command "brunch starlte" (because I have an S9) and the following error resulted:

[...]
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
[...]
** Don't have a product spec for: 'lineage_starlte'
** Do you have the right repo manifest?


I am suspecting that the roomservice.xml I included from Syntax's repository may have not been configured properly. I just downloaded it as is and placed it in the android\lineage\.repo\local_manifests directory. Since I created this directoiry in the Windows environment, it appears read permissions did not exist for the folder in the emulated Ubuntu environment.

I have since enabled full permissions for the new folder using: 'chmod +rwx android\lineage\.repo\local_manifests' and so far the repo sync command appears to be pulling in more data than usuall; specifically syntax's files. I will keep you posted on the progress.
 
Last edited:

Neurotical

Senior Member
Feb 7, 2011
149
190
Update: I was able to successfully compile LineageOS-18.1 for starlte and execute an update of the OS and Recovery!

Before I delve into what the problems were and how I solved them, it is important to note that I am working on Windows 10 using Ubuntu in virtual mode.

The problem with roomservice was a permission issue. I was downloading the roomservice.xml using windows and then placing it in the local_manifests folder through windows explorer. This resulted in a permissions problem when the compiler was trying to access it during repo sync. Further research revealed that I should really be working with WSL2, which offers better functionality than WSL1 but Windows explorer cannot browse Ubuntu directories (like was possible with WSL1). I just decided to start from scratch at this point, reinstalling Ubuntu and downloading roomservice into local_manifests in the virtual Ubuntu environment. There were no permission issues and repo sync fetched the additional files properly.

The problem with soong exec format error ninja actually ended up being a virtualization setting I had to enable in the BIOS. By habit, I always disable SVM in my BIOS since I never had to use it, until now that is. The error line is indicating that an executable cannot be run in the virtual environment, which requires CPU virtualization to be enabled. After enabling it in my BIOS, the compiling worked flawlessly.

The compile process took about 2 hours at 100% CPU usage (R5 3600, Pcie4 nvme, 16GB 3200), with no errors. The upload process was carried out in the Windows environment using Heimdall (for the new recovery), ADB (for the sideload in recovery), and zadig (per Lineage's standard guide). Since I was flashing 18.1 with the May 2021 security update over Synt4x's older 18.1, I just updated via ADB in recovery instead of a full format.

The starlte works perfectly and all my apps and settings are still there! I look forward to building whenever I need to; especially when security updates are released.

Many thanks to @Synt4x.93 for housing all the device specific repos and @gusnz for the helpful guidance!
 
Last edited:

sinnl0s

New member
Jun 15, 2021
4
4
Hi all,

wouldn't it be much better if you guys team up with each other? So there would be an OS for the entire community. I don't understand why everyone compiles for themselves.

Thank you.
 

gnarf49

Member
Jan 21, 2013
44
24
After reading the last few pages I also started my own builds - thanks very much to @Synt4x.93 for the S9 repo and @gusnz for the helpful hints!

In case any of you want to build with signature spoofing for MicroG:
1. Download the patch from the MicroG repo as described here: https://github.com/microg/GmsCore/wiki/Signature-Spoofing
2. Follow the official build guide + roomservice.xml step as per gusnz
3. Apply the MicroG patch before the "breakfast" step in the official build guide
4. git commit -a (otherwise build will fail with repo versioning error)
5. Continue with official guide
 

gnarf49

Member
Jan 21, 2013
44
24
Hi all,

wouldn't it be much better if you guys team up with each other? So there would be an OS for the entire community. I don't understand why everyone compiles for themselves.

Thank you.
Hi sinnl0s,

teaming up is (sort of) what we do here - building ad-hoc for own use is surprisingly easy with all the info found in this thread.

The tricky bit and for pros only would be to reliably build new versions for e.g. every security update, host somewhere for folks to download or even enable OTA update, and especially making sure everything is 100% safe & secure.
 

ElPakoTech

Member
Apr 18, 2020
21
30
Hi all,

wouldn't it be much better if you guys team up with each other? So there would be an OS for the entire community. I don't understand why everyone compiles for themselves.

Thank you.
Hi,

Many reason I guess, :)

Because It's fun ! teaching yourself how to do it, making your own and learning how to do it, having a better understanding of how it works, this is something I like to do.

I also want to see If I can apply small patch, maybe try to resolve some bug in the future, not sure if my knowledge would be enough.

But I understand what you mean, and team up to make a build for everyone look like doing an Official support. It would be nice, but you need a good understanding of the source code. Also you need to follow the Lineageos requirements : https://wiki.lineageos.org/submitting_device.html , https://github.com/LineageOS/charter/blob/master/device-support-requirements.md

@sinnl0s , @gnarf49

Using WSL to build look tricky but I am glad you did it !
I used a docker image for making my builds : https://hub.docker.com/r/lineageos4microg/docker-lineage-cicd
- sources: https://github.com/lineageos4microg/docker-lineage-cicd

It work really fine to me, it's base on ubuntu 20.04 and updated for lineage 18.1. You can sign the build with keys and there is also options for MicroG signature spoofing if you want (I'm not using it).

I am just a bit confuse about one thing: the tag "dev-keys" instead of "released-keys" in the build name, not sure if it's normal as the process look different than the official docks (https://wiki.lineageos.org/signing_builds.html). But the build looks correctly signed so I guess it's ok.

Let me know if for some reason it's better to not use this docker image, I am very open to advice.


Today I uploaded a new build for starlte with security patchs from June 5 : https://github.com/pakaoraki/OTA/releases
I am currently running it and so far so good, no problem. I am happy to share it, but the build is signed with my own keys so dirty flash won't work (you will need fresh start with TWRP), but OTA is ok if you're already installled the previous one. For people who want to use it, let me know if you have any issues.
 
Sep 14, 2017
29
10
Hi everyone,

does anyone have any knowledge about the build Synt4x.93 was sharing in his last post ( May 15) on Telegram as "[Godlike9810]"?
It wasn't shared over OTA and there were absolutly no comments about this one so I am a little confused about it. Synt4x.93 only stated that we should Backup our **** and reflash Gapps afterwards (which I am not using).
Thanks a lot to ElPakoTech, sounds amazing I would very much like to switch to your build but I do not want to reset my phone right now. There is no other way I guess?

This community right here is just amazing, sadly I am just a user without any skill set to contribute to new builds, nevertheless I would very much like to do so.
 
Last edited:

gusnz

Member
May 12, 2013
31
8
I would very much like to switch to your build but I do not want to reset my phone right now. There is no other way I guess?

If you're brave you can follow the instructions on the Lineage Signing Builds page; I did this to switch to from 17.1 official release-keys to 18.1 test-keys for my build, before rebooting. Dangerous but worked! Note that if you want to switch to someone's dev-keys (as ElPakoTech suggests they're using) you would have to edit them into the script.
 
  • Like
Reactions: citizenserious

Top Liked Posts

  • There are no posts matching your filters.
  • 42
    2okPze5.png


    REQUIREMENTS:
    • Stock Samsung Oneui 2 - 2.5 (Android 10) Firmware. (Bootloader + Vendor)

    INSTRUCTIONS:
    • Lineage Recovery or TWRP
    • Format /system + /data + /cache
    • Flash
    • Reboot

    WORKING:
    • Wi-Fi
    • Bluetooth
    • Mobile Network
    • GPS
    • NFC
    • Audio
    • Camera
    • Fingerprint Sensor
    • HDMI
    • Ethernet
    • MTP/ADB
    • Call Recording
    • Encryption
    • SELinux Enforcing
    • Android Auto
    • Glove Mode
    • OTA Updates

    BROKEN:
    • Iris Scanner
    • VoLTE

    DOWNLOADS:

    XDA:DevDB Information
    LineageOS 18.1, ROM for the Samsung Galaxy S9

    Version Information
    Status:
    Stable
    ROM OS Version: Android 11
    ROM Kernel: Linux 4.9.118
    ROM Firmware Required: Oneui 2 - 2.5

    Contributors
    synt4x.93

    Source Code: https://github.com/synt4x93/

    Created: 16-12-2020
    Last Updated: 21-03-2021
    6
    would you mind specifying exactly what you did to build this? I am using the lineage for microg docker based build and it currently succesfully builds 17.1. I would like to build 18.1 with OTA and sign it myself and provide the OTA like you do.
    There are fragments of info across this thread, it would be great if you or anyone else can put them together.
    Thanks!
    Hi,

    Sure I can share what I did.

    1. Prepare directories and get Lineage sources (https://wiki.lineageos.org/devices/starlte/build)

    # Create directories
    Bash:
    mkdir -p ~/bin
    mkdir -p ~/android/build
    mkdir -p ~/android/build/src
    mkdir -p ~/android/build/ccache
    mkdir -p ~/android/build/keys
    mkdir -p ~/android/build/logs
    mkdir -p ~/android/build/zips
    mkdir -p ~/android/build/manifests

    # Get repo tools
    Bash:
    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo

    # Create a "~/.profile" file and paste this into:
    Bash:
    “if [ -d "$HOME/bin" ] ; then
        PATH="$HOME/bin:$PATH"
    fi”

    # Prepare git
    Bash:
    cd ~/android/build/src
    git config --global user.email "[email protected]"
    git config --global user.name "Your Name"

    # Init repo
    Bash:
    source ~/.profile
    repo init -u https://github.com/LineageOS/android.git -b lineage-18.1

    # Time to sync (it can take a very long time, so be patient).
    Bash:
    repo sync

    2. At this point, I forked all Synt4x.93 related repositories on my Github. But, you don’t really need to do that if you just want to build.

    For OTA, the only repo you will need to fork is android_device_samsung_starlte.

    3.
    Create an other repository named OTA.

    4. From your forked android_device_samsung_starlte repository, modify the file lineage_starlte.mk

    Change the last line with your GitHub username:
    Code:
    PRODUCT_PROPERTY_OVERRIDES += \
    lineage.updater.uri=https://raw.githubusercontent.com/<Your_username>/OTA/lineage-18.1/starlte.json

    5. Then you need to add the roomservice.xml file to add the device and kernel sources.

    You can use the resources from Synt4x.93, mine or from Neurotical (He’s maintaining a more recent version of the kernel, you should have a look: https://forum.xda-developers.com/t/rom-s9-s9-unofficial-lineageos-18-1-weekly.4302901/ )

    Get one of the manifests:
    -Synt4x.93: https://github.com/synt4x93/local_manifests
    -pakaoraki: https://github.com/pakaoraki/local_manifests
    -Neurotical: https://github.com/Geoknyda/local_manifests

    Then modify the file roomservice.xml: change "project name" with your GitHub username to match your repository:
    Code:
    ...
    <project name="synt4x93/android_device_samsung_starlte" path="device/samsung/starlte" remote="github" revision="lineage-18.1" />
    ...

    Copy your version of roomservice.xml into ~/android/build/manifests directory.

    # Update source again
    Bash:
    repo sync

    6. Generate your own keys (https://wiki.lineageos.org/signing_builds.html)

    From the root of your Android tree, run these commands, altering the subject line to reflect your information:
    Bash:
    subject='/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
    
    cd ~/android/build/src
    for x in releasekey platform shared media networkstack testkey; do \
        ./development/tools/make_key ~/android/build/keys/$x "$subject"; \
    done
    make a copy of the “keys” directory and keep it safe.

    7. Install docker and get docker-lineage-cicd image:

    You can use lineaos4microg : https://hub.docker.com/r/lineageos4microg/docker-lineage-cicd/Dockerfile
    Bash:
    docker pull lineageos4microg/docker-lineage-cicd

    Or

    I also re-write my own docker image to add some options. You can try: https://hub.docker.com/r/pakaoraki/docker-lineage-cicd
    Bash:
    docker pull pakaoraki/docker-lineage-cicd

    8. Then you are ready to build:

    Execute this command (change pakaoraki/docker-lineage-cicd with lineaos4microg/docker-lineage-cicd if needed)

    Bash:
    docker run \
    -e "BRANCH_NAME=lineage-18.1" \
    -e "DEVICE_LIST=starlte" \
    -e "INCLUDE_PROPRIETARY=false" \
    -e "SIGN_BUILDS=true" \
    -v "~/android/build/src:/srv/src" \
    -v "~/android/build/zips:/srv/zips" \
    -v "~/android/build/logs:/srv/logs" \
    -v "~/android/build/ccache:/srv/ccache" \
    -v "~/android/build/keys:/srv/keys" \
    -v "~/android/build/manifests:/srv/local_manifests" \
    pakaoraki/docker-lineage-cicd

    9. When build is done, create a new release on your OTA repo: choose a tag and upload recovery.img and zips file.

    you will need to create a starlte.json that match to your build and release information:
    Code:
    {
       "response": [
          {
             "datetime": 1627204505,
             "filename": "lineage-18.1-20210725-UNOFFICIAL-starlte.zip",
             "id": "39b85208c5c30edfafd983673a703d60",
             "romtype": "UNOFFICIAL",
             "size": 608774193,
             "url": "https://github.com/<username>/OTA/releases/download/<tag>/lineage-18.1-20210725-UNOFFICIAL-starlte.zip",
             "version": "18.1"
          }
       ]
    }

    <tag>: the tag you use when creating the release on Github.
    <username>: your username.

    Then, upload starlte.json to your OTA repository.

    It's possible that I forget something but you get the global idea.
    4

    @ElPakoTech

    Thanks for your work!
    I will test the build and give you feedback.

    Nice , if we have a maintained LOS with current security patches.
    Have you a paypal adress, that i can buy you a beer?

    Regards
    dreas
    I will do my own build anyway if there is no official support so I'm happy to share it. No need to tips but thanks :)
    4
    5th July security update ready on this build if you are compiling your own.
    How to check when its available besides going thru the make process and checking
    ~/android/build/core/version_defaults.mk
    once complete for the security update date ?

    Also checking the
    //source.android.com/security/bulletin
    for the monthly date and
    https://lineageos.org/blog/
    changelog
    isnt helpful. How to know what patch is ready to build before I go thru the whole process ???

    Need to keep the device patched to the latest at all times to be able to use as a daily for work :p
    To check for security update version of Lineage 18.1 before building your own: https://github.com/LineageOS/android_build/blob/lineage-18.1/core/version_defaults.mk#L243

    There is a build with July security update and an upstreamed kernel here: https://forum.xda-developers.com/t/rom-s9-s9-unofficial-lineageos-18-1-weekly.4302901/

    I am upstreaming the kernel daily and building these new builds daily as well.
    4
    Don't mean to be a jerk, simply stating my choices. The person who made this unoffical rom has been online several days this past week and has given us zero communication on future updates.

    I'll be heading to arrow os soon.
    In open source nobody owes anything to anyone. People are working in their free time. Which is kind of obvious.