Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions building-101/ota_updates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
order: 5
---

# Setting up ota updates

First we need to tell the updater where to look for the updater info. We can do that using an [overlay in the device tree](https://github.com/SirRGB/android_device_oneplus_msm8998-common/commit/fe390cf65b910c9833b7cc4fbbd1359ff5b5fb9f). Be sure to use the exact url, that only provides text and not an entire webpage. {device} resolves to the devices codename, i.e. cheeseburger for the OnePlus 5.
On lineage you can simply pick [this commit](https://github.com/amyROM/vendor_amy/commit/eb0ff17ced46d969bdc5a4e8599433d76f93f8f5) and [use sha256sum](https://github.com/amyROM/vendor_amy/commit/1938b05bf3d0d8fc6e1bfb16a6be033b6a624502#diff-91c830a3d50e97454dfe32defa90f9635bd926ad3130f2a1cdf06f52e980026fR9) instead of md5sum.
After the build you get a json file named similarly to the package name, which you can upload to the url you specified in the updater overlay after you uploaded the package and adapted the url within the ota info to reflect that.
15 changes: 8 additions & 7 deletions legacy/build-legacy-android.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,8 @@ Old Android versions can be pretty difficult to build nowadays and thus this gui

Assuming you set up your build enviromnet already you still have to install legacy java and python for Android 8 and below. Newer versions ship the jdk inside the source.

The [Lineage wiki](https://wiki.lineageos.org/devices/flounder/build/#java) has a comprehensive guide on that for ubuntu/-based distros and fedora also still ships openjdk 8 in their repos, which you can install by running:
```bash
sudo dnf install temurin-8-jdk
```
The [Lineage wiki](https://wiki.lineageos.org/devices/flounder/build/#java) has a comprehensive guide on that for ubuntu/-based distros and fedora lets you [set up temurin 8](https://docs.fedoraproject.org/en-US/quick-docs/installing-java/#_installing_an_older_java_version) easily
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to fetch this from conda?

Does this work? https://anaconda.org/channels/main/packages/java-1.8.0-openjdk-el8-x86_64/overview

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds really nice, but Id rather go for something more well proven and audited, which this doesnt really imply:
Total Downloads
25

Copy link
Copy Markdown
Contributor

@sounddrill31 sounddrill31 Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, I kind of agree... I'll see if they have a better package

Update: how about openjdk==8.0.472 from https://anaconda.org/channels/conda-forge/packages/openjdk/overview? These are zulu openJDK builds, I think, according to https://stackoverflow.com/a/72366938

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, description says it is zulu too.
Last updated in dec 2025 and 15k downloads is good ig.
We could also go the weird way and tell people to download the jdk and export some variables, which is independant of python. I do so for dockdroid and it just works. :)


Note that you might need to use [update-alternatives](https://www.baeldung.com/linux/update-alternatives-command) to set the proper symlinks and use the old java/javac version.
In addition to that you need to allow Tls V1/1.1 by removing TLSv1 and TLSv1.1 from jdk.tls.disabledAlgorithms within /etc/java-8-openjdk/security/java.security on debian based distros.
```bash
Expand All @@ -30,8 +28,11 @@ outputs something like openjdk/javac 1.8 for Android 7 and 8


Next is python. You need python 2 to be set as default for Android 9 and below and python 3 for Android 10 and up.
You may need to manually install the python2 package and symlink it to python using [update-alternatives](https://www.baeldung.com/linux/update-alternatives-command) just like java.
Verify the version once again using
I highly recommend checking out pyenv for that. After having [set up pyenv](https://github.com/pyenv/pyenv?tab=readme-ov-file#linuxunix) you can simply run:
```bash
pyenv install 2
Comment thread
sounddrill31 marked this conversation as resolved.
```
And verify it worked with:
```bash
python --version
```
Expand All @@ -44,5 +45,5 @@ export LC_ALL=C && export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+Tiere
and continue the build as usual.

After verifying it boots you can implement the security backports from the lineage os gerrit.
For android 7 you can repopick the topics [n-asb-2021-10](https://review.lineageos.org/q/topic:%22n-asb-2021-09%22) up to the most recent backports [n-asb-2025-05](https://review.lineageos.org/q/topic:%22n-asb-2025-05%22) and [tzdb_N](https://review.lineageos.org/q/topic:%22tzdb_N%22) as of writing this guide.
For android 7 you can repopick the topics [n-asb-2021-10](https://review.lineageos.org/q/topic:%22n-asb-2021-09%22) up to the most recent backports [n-asb-2025-11](https://review.lineageos.org/q/topic:%22n-asb-2025-11%22) and [tzdb_N](https://review.lineageos.org/q/topic:%22tzdb_N%22) as of writing this guide.
[lin14-mGoms](https://codeberg.org/lin14-mgoms) is a notable fork that provides substratum, microg support and asb backports.