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

Search This thread

Khalil777

Member
Jul 22, 2015
15
6
35
Cape Town
Samsung Galaxy S9+
I had TWRP and a custom Kernel on OneUI 2.5. I formatted System, Data & Cache. Then installed everything.

The other way is the try out the way that LineageOS says. They currently do not have a 18.1 for star2lte but the commands are basically the same across devices.
Hi thanks for your help, i got it to work. i think my issue was that i wiped vendor when flashing from stock.
This ROM is Awesome, i'm loving it, been tweaking my phone for 2 days now! haha
 

Queeq

Member
Jun 21, 2016
23
8
@Neurotical I'm not sure if there are any specifics in kernel build for Android, but for desktop/server systems it's pretty straightforward:
1. git clone from kernel.org (e.g. git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git) and checkout the relevant branch (e.g. linux-4.9.y). The branches are named by version: linux-<major>.<minor>.y (there is literal "y").
2. Then you can run `make help` from the cloned repo that will show you a bunch of options you can use to proceed with the build.
3. If you put kernel config file in there (named as .config), it'll pick it up and you'll have an option to choose how to apply newly introduced options to it (on patch releases there are usually none or they're trivial). E.g. you can use `make listnewconfig`, `make oldconfig`
4. Build it. For Debian-based systems I used this command: `make -j8 KDEB_PKGVERSION=4.14.1.queeq deb-pkg` - 8 jobs (coz I had 4 cores with hyper-threading), and package it as .deb with the given version. You'll definitely need some other options, especially as it has to be cross-compiled to different architecture (I never did this).

The above applies to Linux build system. Build dependencies are make, gcc, libssl-dev and dpkg-dev (last one you wouldn't need). There could be some other dependencies needed for cross-compilation.

P.S. Also cherry-picking tens or possibly hundreds of commits one by one is very annoying task. If you want to merge the upstream you can try to simply `git merge`, but there could be conflicts. I've no idea how complicated it may be to resolve them so just try.
 
Last edited:
Mar 19, 2021
22
5
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
 

Neurotical

Senior Member
Feb 7, 2011
268
441
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://xdaforums.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.
 

Rupdabe-GalaxyS6EdgePlus

Senior Member
Dec 28, 2017
51
3
Brussels
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://xdaforums.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.
Thank you very much.
Could you recommend an alternative firmware only for the camera for s9+? Because the camera from lineage is very bad.
 

deboopi2

Senior Member
Nov 12, 2011
587
50
MECHELEN
I'm willing to install a custom rom but I have my doubts for certain applications.
Since I'm running on a S9 plus I have a 2x zoom lens and the galaxy can work with it.
Is there a camera app already installed on lineage or not?
Whatever the case can you install the Samsung camera app and does it work?
Is google camera a good alternative, does it support a 2x zoom?

I also have a galaxy watch and therefore I use Galaxy STore that can install apps directly on the watch, does this store app still work on Lineage or is there an alternative?
 

awaisiqbal

Member
Jul 3, 2020
33
11
Lahore
Xiaomi Redmi Note 6 Pro
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
It have flashed ROM. It is working quite good. I have checked info through diskinfo and found that most of partitions have ext4 format Does it support f2fs system. If it is then can it be converted from ext4 to f2fs ?
 

OpenMinded

Senior Member
Oct 26, 2006
893
69
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.
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!
 

Linusrg1

Senior Member
Dec 19, 2017
78
14
Samsung Galaxy S9
Thx for this ROM especially the kernel you made for it l. I'm sure your lineage os build is great but I haven't tested it as I don't use lineage. But it has allowed me to make quite a few roms that are based off of this ROM's kernel. Thanks!
 

ElPakoTech

Member
Apr 18, 2020
27
37
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 "you@example.com"
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://xdaforums.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/emailAddress=android@android.com'

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.
 
Last edited:

Davy-Jones

Member
Aug 2, 2021
14
0
Hey,

anyone also got problems with:

- flickering screen while scrolling
- artefacts / blocks in dark pictures
- problem with GPS-positioning
- slow mobile data
- device get's hot sometimes
- very high battery use sometimes, till restart

Thank you.
 
Last edited:
Hey,

anyone also got problems with:

- flickering screen while scrolling
- artefacts / blocks in dark pictures
- problem with GPS-positioning
- slow mobile data
- device get's hot sometimes
- very high battery use sometimes, till restart

Thank you.
I never had any of this problems with my Galaxy S9 (only with HDMI output my TV sometimes flickers when scrolling). Maybe try wiping everything again and do a complete reinstall
 
  • Like
Reactions: francoism90

Neurotical

Senior Member
Feb 7, 2011
268
441
  • Like
Reactions: francoism90

ElPakoTech

Member
Apr 18, 2020
27
37
Hi @ElPakoTech

I have seen you have updated you build on 03.08.
Can you provide a changelog or something?
That would be good to know wether a update is necessary or not.

Thanks
dreas
Hi,

I did the last build because I noticed a very annoying bug on the previous one: the keyboard doesn't respond well, and some input were ignored. So for example, when you're typing a text, some letters/word were missing and you had to be very slow to avoid any lost letters. Same issue when entering a code to unlock the phone for example. Since yesterday on the last build, the problem seams to be solved.

Initially, I wanted to build at least once a month for security patch, but I also like to make some build time to time to keep rom updated from LOS sources when I can (I don't have a precise schedule). So basically, the last build will be the most updated.

There is the full LOS 18.1 changelog here : https://www.lineageoslog.com/18.1
And here the link to the list of merged commit (I excluded devices and kernels changes to match our build): https://review.lineageos.org/q/bran...ndroid_kernel+-repos:LineageOS/android_device, so you can check all changes between two dates.

Changelog is good point, I will see what I can do. Maybe first, I think i'll just add "security patch version..." in description when it get updated.

About bugs, I notice also a keyboard flikering when I use chrome (and only chrome). I also want to update baseband as suggested by Neurotical.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 46
    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 "you@example.com"
    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://xdaforums.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/emailAddress=android@android.com'
    
    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://xdaforums.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.