Skip to content

Commit c6d83b9

Browse files
committed
rpi4: rpi5: lineage-23.0-20251007
1 parent 8b35e30 commit c6d83b9

File tree

9 files changed

+527
-8
lines changed

9 files changed

+527
-8
lines changed

_devices/rpi4/LineageOS23.md

Lines changed: 247 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
---
2+
title: LineageOS 23.0 (Android 16)
3+
subtitle: for Raspberry Pi 4
4+
date: 2025-10-07
5+
tags: [rpi4, LineageOS, LOS23]
6+
screenshot: /img/rpi4/LineageOS23/Screenshot_20251007-143920_Settings.png
7+
---
8+
9+
Here's my build of LineageOS 23.0 for Raspberry Pi 4 Model B, Pi 400, and Compute Module 4. It is unofficial and unsupported by the LineageOS team. It's for **advanced users** only. Pi 4 model with at least 2GB of RAM is required to run this build.
10+
11+
<span style="color:#FF0000;">Important!</span> Raspberry Pi hardware specific implementation in this build is based on source code released on my [Raspberry Vanilla](https://github.com/raspberry-vanilla) project but this build offers various additional features and enhancements. This image includes parts that are licensed under non-commercial license ([Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](http://creativecommons.org/licenses/by-nc-sa/4.0/)). You may use this build freely in personal/educational/etc use. Commercial use is not allowed with this build! You can contact me by email to discuss creating customized Android builds for commercial purposes.
12+
13+
![screenshot]({{ site.url }}{{ page.screenshot }})
14+
15+
<span style="color:#FF0000;">Do not mirror my builds!</span> Please post a link to this page instead.
16+
17+
[**lineage-23.0-20251007-UNOFFICIAL-KonstaKANG-rpi4.zip**](https://app.filen.io/#/d/d6807acc-cec6-4387-b789-60d727ee478f%237569564675353637796c6a4a54444a3732326c63542d30396e36774164357954)
18+
sha256:9bc1d81b4d4eb3dbc6ae119604f27fcdc411229074f9ef6095bb6b34c6bbfebf
19+
20+
<span style="color:#FF0000;">Note!</span> It's not possible to OTA update from builds older than 20250417. Clean installation is required!
21+
22+
[**lineage-23.0-20251007-UNOFFICIAL-KonstaKANG-rpi4-ota.zip**](https://app.filen.io/#/d/660faed1-2459-4338-b6d9-02d7c7675911%237a684163666145704a4a5f49597354446b6c612d3048716f443135554b764753) (TWRP flashable OTA package)
23+
sha256:5b696315cea707961ffe17492e122b0d4fbf167ed8d39390622d803c8d788c89
24+
25+
**Working:**
26+
27+
- Audio (HDMI, 3.5mm jack, USB microphones, bluetooth speakers/headphones, etc)
28+
- Audio DAC (using GPIO DACs e.g. Hifiberry DAC+)
29+
- Bluetooth (and bluetooth tethering)
30+
- Camera (using official Pi camera modules & UVC USB webcams)
31+
- GPIO
32+
- GPS (using external USB modules e.g. U-Blox 7)
33+
- Ethernet
34+
- Hardware accelerated graphics (V3D, OpenGL & Vulkan)
35+
- Hardware video decoding & encoding (H.265 decoding, H.264 decoding & encoding)
36+
- HDMI display (and HDMI-CEC)
37+
- I2C
38+
- IR remotes (using external GPIO IR modules e.g. TSOP4838)
39+
- RTC (using external GPIO I2C modules e.g. DS3231)
40+
- Sensors (using external GPIO I2C modules e.g. MPU6050, LSM6DS3, LSM303DLHC, BME280/BMP280, and APDS9930 accelerometer, gyroscope, magnetometer, temperature, pressure, humidity, ambient light, and proximity)
41+
- Serial console (using external GPIO serial console adapters e.g. PL2303)
42+
- SPI
43+
- Touchscreen/multi-touch (official 7" touchscreen, USB touchscreens, Waveshare SPI touchscreens)
44+
- USB (mouse, keyboard, storage, etc)
45+
- USB-C (ADB, MTP, PTP, USB tethering)
46+
- Wifi (and wifi tethering)
47+
48+
**Issues:**
49+
50+
- Various issues with CSI camera modules
51+
- SELinux is in permissive mode
52+
- Encrypting userdata is not supported
53+
- and more...
54+
55+
**Sources:**
56+
57+
- [kernel](https://github.com/raspberry-vanilla/android_kernel_manifest/tree/android-16.0)
58+
59+
----
60+
<!--block-->
61+
62+
**How to install:**
63+
64+
1. Follow the official [Raspberry Pi instructions](https://www.raspberrypi.org/documentation/computers/getting-started.html#installing-the-operating-system) for writing the image to the SD card.
65+
66+
You can also update to newer builds using TWRP flashable OTA packages. OTA updates pushed through the built-in Updater app are stored at /data/lineageos_updates/.
67+
68+
<span style="color:#FF0000;">Note!</span> It's not possible to OTA update from builds older than 20250417. Clean installation is required!
69+
70+
1. Download lineage-23.0-xxxxxxxx-UNOFFICIAL-KonstaKANG-rpi4-ota.zip and save it to your device's internal storage or use an external USB drive
71+
2. Boot to TWRP recovery (see FAQ)
72+
3. Install lineage-23.0-xxxxxxxx-UNOFFICIAL-KonstaKANG-rpi4-ota.zip from your selected storage
73+
4. (Flash Magisk/other add-ons you had previously installed)
74+
5. Boot out of recovery (see FAQ)
75+
76+
Changes that are backed up and restored flashing OTAs:
77+
78+
- Device specific settings changed using Settings -> System -> Raspberry Pi settings
79+
- Manual changes to /boot/resolution.txt and /boot/rc_keymap.txt
80+
- USB boot configuration in /boot/config.txt
81+
- User specific options in /boot/config_user.txt
82+
- GApps
83+
84+
Changes that are not backed up and restored flashing OTAs:
85+
86+
- Manual changes to /boot/config.txt (and any other manual changes to /boot partition)
87+
- Magisk
88+
- Widevine
89+
90+
**FAQ:**
91+
92+
Q: How to find several Raspberry Pi specific settings options?
93+
*A: Settings -> System -> Raspberry Pi settings*
94+
95+
*Most options in this menu require you to reboot your device for the setting to take effect.*
96+
97+
Q: How to enable advanced reboot options?
98+
*A: Settings -> System -> Buttons -> Power menu -> Advanced restart*
99+
100+
Q: How to enable developer options?
101+
*A: Settings -> About tablet -> Click 'Build number' several times.*
102+
103+
Q: How to enable root access?
104+
*A: LineageOS no longer has built-in root management for applications. You can have root access via ADB after enabling Settings -> System -> Developer options -> Rooted debugging, SSH (see FAQ below), or serial console. It is also possible to install Magisk following instructions later in the FAQ.*
105+
106+
Q: My display is not working. I can only see the rainbow screen but no Android boot animation. What should I do?
107+
*A: This build only supports HDMI displays that report supported resolutions using EDID. 1920x1080 resolution is used by default with this build. You can change value in /boot/resolution.txt to use a different resolution that your display supports. Removing /boot/resolution.txt will use the preferred resolution of your display.*
108+
109+
Q: How to use DSI touchscreen displays?
110+
*A: You can enable required configurations using a settings option found in Settings -> System -> Raspberry Pi settings -> DSI display. You need to disconnect any HDMI display when using the DSI display.*
111+
112+
Q: Raspberry Pi doesn't have a power button. How to power off/reboot device?
113+
*A: Following keyboard keys work as Android buttons: F1 = Home, F2 = Back, F3 = Multi-tasking, F4 = Menu, F5 = Power, F11 = Volume down, and F12 = Volume up. You can also use one of many third party reboot applications.*
114+
115+
Q: How to create a DIY hardware power button?
116+
*A: You can send power button events by connecting GPIO21 to ground.*
117+
118+
![fritzing]({{ site.url }}/img/rpi-common/powerbutton.png)
119+
120+
*You can enable the feature by using a settings option found in Settings -> System -> Raspberry Pi settings -> Power button.*
121+
122+
*You can also use the DIY power button to boot the device to TWRP recovery. Press and hold the button while powering on the device until you see the TWRP screen.*
123+
124+
Q: How to enable audio through HDMI?
125+
*A: 3.5mm jack is used for audio by default. You can select the audio device you want to use by using a settings option found in Settings -> System -> Raspberry Pi settings -> Audio device.*
126+
127+
Q: How to use IR remote?
128+
*A: You can enable the feature by using a settings option found in Settings -> System -> Raspberry Pi settings -> Infrared remote.*
129+
130+
*You can place a keymap for your remote as /boot/rc_keymap.txt to be automatically loaded on boot. See [available keymaps](https://github.com/lineage-rpi/android_external_ir-keytable/tree/lineage-18.1/rc_keymaps) for reference. You can use ```ir-keytable -p all -t``` in rooted shell to figure out the keycodes for the remote you're using.*
131+
132+
Q: How to use RTC?
133+
*A: You can enable the feature by using a settings option found in Settings -> System -> Raspberry Pi settings -> Real time clock.*
134+
135+
*System time is automatically read and set from the RTC on boot once you've enabled the feature. You need to write the system time you want to use to the RTC in rooted shell:*
136+
137+
```
138+
hwclock -w -f /dev/rtc0
139+
```
140+
141+
Q: How to use SSH?
142+
*A: You can start/stop the built-in SSH server by using a settings option found in Settings -> System -> Raspberry Pi settings -> SSH.*
143+
144+
*Android doesn't have user accounts with passwords so key based authentication is used with SSH instead. Necessary keys are generated on the first boot and you need to pull the private key to your computer (or alternatively you can push your own previously generated keys to the device). See Settings -> About tablet -> IP address for your device's IP address (192.168.0.100 is assumed here). Enable Android debugging & Rooted debugging under Settings -> System -> Developer options.*
145+
146+
```
147+
adb connect 192.168.0.100
148+
adb root
149+
adb pull /data/ssh/ssh_host_ed25519_key my_private_key
150+
```
151+
152+
```
153+
chmod 600 my_private_key
154+
ssh -i my_private_key root@192.168.0.100
155+
```
156+
157+
*It's recommended to disable adb after this.*
158+
159+
Q: How to use VNC?
160+
*A: You can start/stop the built-in VNC server by using a settings option found in Settings -> System -> Raspberry Pi settings -> VNC.*
161+
162+
*Default password for VNC is 'KonstaKANG'. You can change the password and create additional view-only password by using ```vncpasswd``` in rooted shell.*
163+
164+
Q: How to boot from USB device?
165+
*A:*
166+
167+
1. Install EEPROM that supports booting from USB
168+
2. Write image to your USB/NVME storage device as above
169+
3. Mount the USB/NVME device on your computer and modify /boot/config.txt under 'Boot device' section (e.g. for USB boot):
170+
```
171+
#dtoverlay=android-sdcard
172+
dtoverlay=android-usb
173+
#dtoverlay=android-nvme
174+
```
175+
4. Connect the USB/NVME device to your Raspberry Pi, remove any sdcard, and boot
176+
177+
Q: How to boot to TWRP recovery?
178+
*A: You can boot to TWRP by selecting recovery option in Android power menu after enabling advanced restart options.*
179+
180+
*If mouse cursor doesn't appear, try replugging your mouse.*
181+
182+
Q: How to boot out of TWRP recovery?
183+
*A: You can boot out of recovery by simply selecting reboot to system option in TWRP.*
184+
185+
Q: My device keeps booting into TWRP recovery. What should I do?
186+
*A: If you have GPIO21 connected to ground (or if you have something drawing power from it) your device will always boot to TWRP recovery (see FAQ section about DIY power button). If you have a hardware failure on GPIO21 you can edit /boot/config.txt to remove the GPIO21 related logic (see 'Ramdisk' and 'Graphics acceleration' sections).*
187+
188+
Q: Settings -> Storage shows total system size of 15.5 GB. There's unallocated space on my sdcard. What should I do?
189+
*A: This is a 15.5 GB image, remaining space on your sdcard will remain unallocated.*
190+
191+
1. Download [KonstaKANG-rpi-resize.zip](https://app.filen.io/#/d/359e14ab-fe03-4fa5-8382-d8bab79de308%23OcYCkizytCC8RXhUGHoeP1c3ejocPZDr) (sha256:851d67e03b5c290c3a223d0322f80fa1afba8ee4cb136938a743b1db7c95894e) and save it to your device's internal storage or use an external USB drive
192+
2. Boot to TWRP recovery (see FAQ)
193+
3. Install KonstaKANG-rpi-resize.zip from your selected storage
194+
4. Boot out of recovery (see FAQ)
195+
196+
Q: How to install Widevine L3?
197+
*A:*
198+
199+
1. Download [KonstaKANG-rpi-widevine-16.zip](https://app.filen.io/#/d/8a3a5db5-6f11-4e8a-b954-ad5e6237ee5b%23ZY4caco1Htxyu1zQcW8DmXeOzYmPC3Kw) (sha256:454026bf89e1755fef03c428e52980a9200afb4655b1b35da07124492745504a) and save it to your device's internal storage or use an external USB drive
200+
2. Boot to TWRP recovery (see FAQ)
201+
3. Install KonstaKANG-rpi-widevine-16.zip from your selected storage
202+
4. Boot out of recovery (see FAQ)
203+
204+
Q: How to install Magisk?
205+
*A:*
206+
207+
1. Download [KonstaKANG-rpi-magisk-v29.0.zip](https://app.filen.io/#/d/c0fed49e-f811-49cd-b898-2eafe21717a4%236QJz1hMHkv9cV3k8SCHAgu8eg4jrPLfi) (sha256:75f7db0fc3d87166da96e16523e258c0f6f5551df80ed238081c29abacc2a926) and save it to your device's internal storage or use an external USB drive
208+
2. Download [Magisk-v29.0.apk](https://github.com/topjohnwu/Magisk/releases/tag/v29.0)
209+
3. Boot to TWRP recovery (see FAQ)
210+
4. Install KonstaKANG-rpi-magisk-v29.0.zip from your selected storage
211+
5. Boot out of recovery (see FAQ)
212+
6. Install Magisk-v29.0.apk using Android's built-in file manager/```adb install```/etc.
213+
7. Ignore suggestions to reinstall Magisk within the app and/or warnings about the installation method
214+
215+
Q: How to install Google apps?
216+
*A:*
217+
218+
1. Download [MindTheGapps-16.0.0-arm64-xxxxxxxx_xxxxxx.zip](https://github.com/MindTheGapps/16.0.0-arm64/releases/latest) and save it to your device's internal storage or use an external USB drive
219+
2. Boot to TWRP recovery (see FAQ)
220+
3. Install MindTheGapps-16.0.0-arm64-xxxxxxxx_xxxxxx.zip from your selected storage
221+
4. Wipe -> Factory reset!
222+
5. Boot out of recovery (see FAQ)
223+
224+
----
225+
<!--block-->
226+
227+
[Merged commits](https://review.lineageos.org/#/q/status:merged+branch:lineage-23.0+-project:%255E.*device.*+-project:%255E.*kernel.*) not mentioned in the changelog.
228+
229+
**7.10. changelog:**
230+
231+
- initial LineageOS 23.0 release
232+
- Mesa 25.2.4
233+
- FFmpeg 8.0, AOSP dav1d 1.5.0
234+
- libcamera master/v0.5.2, libpisp v1.2.1
235+
- alsa-lib/alsa-utils v1.2.14
236+
- v4l-utils master/1.29.0
237+
- TWRP 3.7.0_11-2-KonstaKANG
238+
- Linux 6.12.49 kernel
239+
- Android security patch level: 1 September 2025
240+
241+
----
242+
243+
**Previous builds:**
244+
245+
- [Download](https://app.filen.io/#/f/207698ed-6204-4f2a-a168-5d04537cc692%234b735645716f464d62364c676e366868725f6171344e732d594c493049303634)
246+
247+
----

_devices/rpi4/api/lineage-23.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"response": [
3+
{
4+
"datetime": 1759830556,
5+
"filename": "lineage-23.0-20251007-UNOFFICIAL-KonstaKANG-rpi4-ota.zip",
6+
"id": "5b696315cea707961ffe17492e122b0d4fbf167ed8d39390622d803c8d788c89",
7+
"romtype": "UNOFFICIAL",
8+
"size": 856749732,
9+
"url": "https://github.com/lineage-rpi/OTA/releases/download/lineage-23.0-20251007/lineage-23.0-20251007-UNOFFICIAL-KonstaKANG-rpi4-ota.zip",
10+
"version": "23.0"
11+
}
12+
]
13+
}

_devices/rpi4/index.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,23 @@ permalink: /devices/rpi4/
1515

1616
#### LineageOS:
1717

18+
- [LineageOS 23.0 - KonstaKANG (Android 16)](/devices/rpi4/LineageOS23)
1819
- [LineageOS 22.2 - KonstaKANG (Android 15)](/devices/rpi4/LineageOS22)
19-
- [LineageOS 22.2 Android TV - KonstaKANG (Android 15)](/devices/rpi4/LineageOS22-ATV)
2020
- [LineageOS 21 - KonstaKANG (Android 14)](/devices/rpi4/LineageOS21)
21-
- [LineageOS 21 Android TV - KonstaKANG (Android 14)](/devices/rpi4/LineageOS21-ATV)
2221
- [LineageOS 20 - KonstaKANG (Android 13)](/devices/rpi4/LineageOS20)
23-
- [LineageOS 20 Android TV - KonstaKANG (Android 13)](/devices/rpi4/LineageOS20-ATV)
2422
- [LineageOS 19 - KonstaKANG (Android 12L)](/devices/rpi4/LineageOS19)
25-
- [LineageOS 19 Android TV - KonstaKANG (Android 12L)](/devices/rpi4/LineageOS19-ATV)
2623
- [LineageOS 18.1 - KonstaKANG (Android 11)](/devices/rpi4/LineageOS18)
27-
- [LineageOS 18.1 Android TV - KonstaKANG (Android 11)](/devices/rpi4/LineageOS18-ATV)
2824
- [LineageOS 17.1 - KonstaKANG (Android 10)](/devices/rpi4/LineageOS17.1)
29-
- [LineageOS 17.1 Android TV - KonstaKANG (Android 10)](/devices/rpi4/LineageOS17.1-ATV)
3025
- [LineageOS 16.0 - KonstaKANG (Android 9)](/devices/rpi4/LineageOS16.0)
26+
27+
#### LineageOS Android TV:
28+
29+
- [LineageOS 22.2 Android TV - KonstaKANG (Android 15)](/devices/rpi4/LineageOS22-ATV)
30+
- [LineageOS 21 Android TV - KonstaKANG (Android 14)](/devices/rpi4/LineageOS21-ATV)
31+
- [LineageOS 20 Android TV - KonstaKANG (Android 13)](/devices/rpi4/LineageOS20-ATV)
32+
- [LineageOS 19 Android TV - KonstaKANG (Android 12L)](/devices/rpi4/LineageOS19-ATV)
33+
- [LineageOS 18.1 Android TV - KonstaKANG (Android 11)](/devices/rpi4/LineageOS18-ATV)
34+
- [LineageOS 17.1 Android TV - KonstaKANG (Android 10)](/devices/rpi4/LineageOS17.1-ATV)
3135
- [LineageOS 16.0 Android TV - KonstaKANG (Android 9)](/devices/rpi4/LineageOS16.0-ATV)
3236

3337
#### Recovery:

0 commit comments

Comments
 (0)