• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!
  • Fill out your device list and let everyone know which phones you have!    Edit Your Device Inventory

[DEV][ROM][UNOFFICIAL] LineageOS 14.1 (Android 7.1.2) for Raspberry Pi 3 B

Search This thread

KonstaT

Senior Member
Jan 20, 2016
428
291
KonstaKANG.com
Here’s my build of LineageOS 14.1 for Raspberry Pi 3 Model B. It is unofficial and unsupported by the LineageOS team. It’s for advanced users only.

Screenshot_20180817-200415.png


https://konstakang.com/devices/rpi3/CM14.1/

lineage-14.1-20180817-UNOFFICIAL-KonstaKANG-rpi3.zip
https://www.androidfilehost.com/?fid=1322778262903982504
md5:affa35dd70b51e4b70c9acb996f7304b

Sources:

Thanks:
  • peyo-hd and everyone who’s contributed to android-rpi
  • LineageOS team & everyone who’s been working on CM14.1
 
Last edited:

KonstaT

Senior Member
Jan 20, 2016
428
291
KonstaKANG.com
How to install:
  1. Follow the official Raspberry Pi instructions for writing the image to the SD card (Linux, Mac, Windows).

FAQ:

Q: I can’t find developer options, why?
A: Settings -> About phone -> Click ‘Build number’ several times

Q: I don’t have reboot options in power menu, why?
A: Settings -> Developer options -> Advanced restart

Q: I have no root, why? What is that hashtag on my status bar?
A: You need enable root access under Settings -> Developer options -> Root access. Root management is now integrated as part of LineageOS’ Privacy Guard and you can manage per app permissions under Settings -> Developer options -> Manage root access. You’ll have a persistent notification in the status bar when you’re running an app that uses root permissions.

Q: I have official 7” LCD display and touchscreen. What should I do?
A: Execute following commands in ‘adb shell’/serial console/terminal (you can enable built-in terminal app from Settings -> Developer options -> Local terminal) and reboot your device:
Code:
su
rpi3-display.sh

Q: Settings -> Storage shows xx GB used by system. There’s unallocated space on my sdcard. What should I do?
A: This is a 4 GB image, remaining space on your sdcard will remain unallocated. Settings app shows unallocated space as used by system which in reality it is not. You can use e.g. GParted and extend /data partition (/dev/block/mmcblk0p3) to cover the unallocated space. Resizing the partition manually will break support for encrypting /data. Format /data in TWRP recovery (Wipe->Format data) after resizing to leave required space for crypto footer.

Q: Raspberry Pi doesn’t have power button, how do I power off/reboot my device?
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.

Q: How to boot to TWRP recovery?
A: There’s currently no proper way to boot between Android and TWRP, but this can achieved by renaming the ramdisk you want to boot. Execute following commands in ‘adb shell’/serial console/terminal (you can enable built-in terminal app from Settings -> Developer options -> Local terminal) and reboot your device:

Code:
su
rpi3-recovery.sh
If mouse cursor doesn’t appear, try replugging your mouse.

Q: How to boot out of TWRP recovery?
A: Flash my recovery2boot zip in TWRP.

Q: How to install Google apps?
  1. Download open_gapps-arm-7.1-pico-xxxxxxxx.zip and save it to your device’s internal storage or use an external USB drive
  2. Boot to TWRP recovery (see FAQ)
  3. Install open_gapps-arm-7.1-pico-xxxxxxxx.zip from your selected storage
  4. Wipe->Factory reset!
  5. Boot out of recovery (see FAQ)
 
Last edited:
  • Like
Reactions: belrik

KonstaT

Senior Member
Jan 20, 2016
428
291
KonstaKANG.com
Merged commits not mentioned in the changelog.

17.8. changelog:
  • include TWRP 3.2.3-0 custom recovery (see FAQ how to boot)
  • fix Gallery app crashing (and likely various third party apps as well)
  • add support for encrypting the device
  • merge AOSP kernel/common android-4.4-n branch to have proper Android Nougat kernel
  • update to Linux 4.4.148 kernel and patch known vulnerabilities (CVE-xxxx-xxxx, and more)
  • Android security patch level: 5 August 2018 (merged)

15.6. changelog:
  • add support for USB webcams (UVC) with third party USB webcam apps
  • default to noop I/O scheduler
  • update to Linux 4.4.137 kernel and patch known vulnerabilities (CVE-xxxx-xxxx, and more)
  • Android security patch level: 5 June 2018 (merged)

15.4. changelog:
  • update audio HAL (fix USB microphone, etc)
  • add support for external USB GPS dongles (1546:01a7 U-Blox AG, etc - GPS dongle must be plugged-in while booting the device)
  • update to Linux 4.4.127 kernel and patch known vulnerabilities (CVE-xxxx-xxxx, and more)
  • Android security patch level: 5 April 2018 (merged)

18.1. 2018 changelog:
  • add support for I2C devices
  • enable Android low-RAM configuration
  • add lights HAL to control display brightness from Android on offical RPI display (version 1.1)
  • update to Linux 4.4.112 kernel and patch known vulnerabilities (CVE-xxxx-xxxx, and more)
  • Android security patch level: 5 January 2018 (merged)

17.11. changelog:
  • fix wifi reconnect on boot (thanks to Google)
  • update to Linux 4.4.97 kernel and patch known vulnerabilities (CVE-xxxx-xxxx, and more)
  • patch recently disclosed BlueBorne and KRACK vulnerabilities (merged)
  • Android security patch level: 5 October 2017 (merged)

10.8. changelog:
  • update to Linux 4.4.80 kernel
  • merge AOSP kernel/common android-4.4 branch to have proper Android kernel
  • enable sdcardfs
  • add BFQ i/o scheduler and enable it by default
  • Jelly browser (merged)
  • Android security patch level: 5 August 2017 (merged)

16.4. changelog:
  • add support for wifi tethering
  • add support for Widevine DRM
  • improve Play Store compatibility
  • Android 7.1.2 (merged)
  • Android security patch level: 5 April 2017 (merged)

11.4. changelog:
  • initial relase

Previous builds:
 
Last edited:
  • Like
Reactions: lguti

Project999

Senior Member
Feb 26, 2007
64
3
I cannot boot out of recovery after installing Gapps in TWRP. When I run rpi3-recovery.sh boot I got Segmentation Fault error. Please help. Thanks
 

KonstaT

Senior Member
Jan 20, 2016
428
291
KonstaKANG.com
Its possible to update ROM via recovery?

No, not currently. Partition structure (especially boot partition) on this device is different than on Android devices usually (well, as Raspberry is not an Android device to begin with). It would require some quite significant modifications to LineageOS build system to build recovery flashable ROM zips for this device (it's all open source so you're welcome to have a crack at it). There's also no proper way to cold boot (from power off) to recovery which makes it less useful than on other devices. I only included TWRP recently and it's currently mostly just used for installing gapps.
 
Last edited:
  • Like
Reactions: laharl_22

laharl_22

Senior Member
Jan 23, 2011
240
19
No, not currently. Partition structure (especially boot partition) on this device is different than on Android devices usually (well, as Raspberry is not an Android device to begin with). It would require some quite significant modifications to LineageOS build system to build recovery flashable ROM zips for this device (it's all open source so you're welcome to have a crack at it). There's also no proper way to cold boot (from power off) to recovery which makes it less useful than on other devices. I only included TWRP recently and it's currently mostly just used for installing gapps.
So no way for updating ROM without loose data?
 

ulfdogg

Member
Nov 20, 2008
8
0
Göttingen
Hi.
Is there a GPIO support? Everything is working great, but I build it into my car, and I have some pushbuttons connected. I would like to use it for opening apps or shutdown etc. Any ideas? couldn't find anything on google? Thanks
 

KonstaT

Senior Member
Jan 20, 2016
428
291
KonstaKANG.com
Hi.
Is there a GPIO support? Everything is working great, but I build it into my car, and I have some pushbuttons connected. I would like to use it for opening apps or shutdown etc. Any ideas? couldn't find anything on google? Thanks

Yes, that should be possible but you need to do a little work for that.

4.4 kernel used in LineageOS 14.1 doesn't have gpio-key overlay (https://github.com/raspberrypi/linux/commit/7bc9c88a0eb043c5387a23d4ade23359749398e0) but I have already enabled KEYBOARD_GPIO that is also needed for this. So you need to build that overlay, copy it to device, and configure it in config.txt depending on what GPIO pins you're using. There's also another similar approach (different overlay) that's been reported working. https://stackoverflow.com/questions/50224010/using-gpio-keys-interrupt-to-wake-up-screen-on-rpi3
 
  • Like
Reactions: ulfdogg

KonstaT

Senior Member
Jan 20, 2016
428
291
KonstaKANG.com
Does this build support 3b+?If not,how to ?

No, you can use LineageOS 15.1 build instead.

This build uses Linux 4.4 kernel and Broadcom added support for 3B+ only on later kernel versions (4.9 and 4.14). 4.4 is actually the newest that Android Nougat supports (https://android.googlesource.com/kernel/common/) and there's some network issues using newer ones. 4.9 is the newest for Oreo and 4.14 for Pie. So the Linux kernel in LineageOS 15.1 is actually too new for the Android version. ;) There's no major changes between Oreo and Pie kernels, though.

Android kernel versions lag behind mainline because chipset manufacturers (Qualcomm, etc) need to make significant modifications to support their hardware. Android devices usually stay with the Linux kernel version they initially shipped with so there also needs to be quite long support time (4.4 is still supported with Pie).
 

zhengyw

Senior Member
Nov 3, 2013
52
10
No, you can use LineageOS 15.1 build instead.

This build uses Linux 4.4 kernel and Broadcom added support for 3B+ only on later kernel versions (4.9 and 4.14). 4.4 is actually the newest that Android Nougat supports (https://android.googlesource.com/kernel/common/) and there's some network issues using newer ones. 4.9 is the newest for Oreo and 4.14 for Pie. So the Linux kernel in LineageOS 15.1 is actually too new for the Android version. ;) There's no major changes between Oreo and Pie kernels, though.

Android kernel versions lag behind mainline because chipset manufacturers (Qualcomm, etc) need to make significant modifications to support their hardware. Android devices usually stay with the Linux kernel version they initially shipped with so there also needs to be quite long support time (4.4 is still supported with Pie).
Thank you..So I have to wait till los 15.1 go stable
 

s1lex

Member
Aug 25, 2008
17
4
Hi, thanks for this build, I might have done something wrong as I can't past the setup wizard, after security setup it comes back to lineageOS startup screen and the begin button to start again the setup wizard :(
 

KonstaT

Senior Member
Jan 20, 2016
428
291
KonstaKANG.com
Hi, thanks for this build, I might have done something wrong as I can't past the setup wizard, after security setup it comes back to lineageOS startup screen and the begin button to start again the setup wizard :(

I've heard about this but can't reproduce it myself and I haven't seen any logs (logcat). You could try using another faster sdcard. Some people have also removed the SetupWizard apk from the image manually.
 

Minas90

Member
Jul 31, 2011
24
19
Hi there,
Thanks for amazing work!
The only issue I'm experiencing is some flickering in graphic heavy and full screen apps. Am I doing something wrong or it's a known issue?

I just noticed that it's happening more when I use: "dtoverlay=vc4-fkms-v3d,cma-256"
But with dtoverlay=vc4-kms-v3d,cma-256 composite video output is not there. Any solutions?
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    How to install:
    1. Follow the official Raspberry Pi instructions for writing the image to the SD card (Linux, Mac, Windows).

    FAQ:

    Q: I can’t find developer options, why?
    A: Settings -> About phone -> Click ‘Build number’ several times

    Q: I don’t have reboot options in power menu, why?
    A: Settings -> Developer options -> Advanced restart

    Q: I have no root, why? What is that hashtag on my status bar?
    A: You need enable root access under Settings -> Developer options -> Root access. Root management is now integrated as part of LineageOS’ Privacy Guard and you can manage per app permissions under Settings -> Developer options -> Manage root access. You’ll have a persistent notification in the status bar when you’re running an app that uses root permissions.

    Q: I have official 7” LCD display and touchscreen. What should I do?
    A: Execute following commands in ‘adb shell’/serial console/terminal (you can enable built-in terminal app from Settings -> Developer options -> Local terminal) and reboot your device:
    Code:
    su
    rpi3-display.sh

    Q: Settings -> Storage shows xx GB used by system. There’s unallocated space on my sdcard. What should I do?
    A: This is a 4 GB image, remaining space on your sdcard will remain unallocated. Settings app shows unallocated space as used by system which in reality it is not. You can use e.g. GParted and extend /data partition (/dev/block/mmcblk0p3) to cover the unallocated space. Resizing the partition manually will break support for encrypting /data. Format /data in TWRP recovery (Wipe->Format data) after resizing to leave required space for crypto footer.

    Q: Raspberry Pi doesn’t have power button, how do I power off/reboot my device?
    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.

    Q: How to boot to TWRP recovery?
    A: There’s currently no proper way to boot between Android and TWRP, but this can achieved by renaming the ramdisk you want to boot. Execute following commands in ‘adb shell’/serial console/terminal (you can enable built-in terminal app from Settings -> Developer options -> Local terminal) and reboot your device:

    Code:
    su
    rpi3-recovery.sh
    If mouse cursor doesn’t appear, try replugging your mouse.

    Q: How to boot out of TWRP recovery?
    A: Flash my recovery2boot zip in TWRP.

    Q: How to install Google apps?
    1. Download open_gapps-arm-7.1-pico-xxxxxxxx.zip and save it to your device’s internal storage or use an external USB drive
    2. Boot to TWRP recovery (see FAQ)
    3. Install open_gapps-arm-7.1-pico-xxxxxxxx.zip from your selected storage
    4. Wipe->Factory reset!
    5. Boot out of recovery (see FAQ)
    1
    Merged commits not mentioned in the changelog.

    17.8. changelog:
    • include TWRP 3.2.3-0 custom recovery (see FAQ how to boot)
    • fix Gallery app crashing (and likely various third party apps as well)
    • add support for encrypting the device
    • merge AOSP kernel/common android-4.4-n branch to have proper Android Nougat kernel
    • update to Linux 4.4.148 kernel and patch known vulnerabilities (CVE-xxxx-xxxx, and more)
    • Android security patch level: 5 August 2018 (merged)

    15.6. changelog:
    • add support for USB webcams (UVC) with third party USB webcam apps
    • default to noop I/O scheduler
    • update to Linux 4.4.137 kernel and patch known vulnerabilities (CVE-xxxx-xxxx, and more)
    • Android security patch level: 5 June 2018 (merged)

    15.4. changelog:
    • update audio HAL (fix USB microphone, etc)
    • add support for external USB GPS dongles (1546:01a7 U-Blox AG, etc - GPS dongle must be plugged-in while booting the device)
    • update to Linux 4.4.127 kernel and patch known vulnerabilities (CVE-xxxx-xxxx, and more)
    • Android security patch level: 5 April 2018 (merged)

    18.1. 2018 changelog:
    • add support for I2C devices
    • enable Android low-RAM configuration
    • add lights HAL to control display brightness from Android on offical RPI display (version 1.1)
    • update to Linux 4.4.112 kernel and patch known vulnerabilities (CVE-xxxx-xxxx, and more)
    • Android security patch level: 5 January 2018 (merged)

    17.11. changelog:
    • fix wifi reconnect on boot (thanks to Google)
    • update to Linux 4.4.97 kernel and patch known vulnerabilities (CVE-xxxx-xxxx, and more)
    • patch recently disclosed BlueBorne and KRACK vulnerabilities (merged)
    • Android security patch level: 5 October 2017 (merged)

    10.8. changelog:
    • update to Linux 4.4.80 kernel
    • merge AOSP kernel/common android-4.4 branch to have proper Android kernel
    • enable sdcardfs
    • add BFQ i/o scheduler and enable it by default
    • Jelly browser (merged)
    • Android security patch level: 5 August 2017 (merged)

    16.4. changelog:
    • add support for wifi tethering
    • add support for Widevine DRM
    • improve Play Store compatibility
    • Android 7.1.2 (merged)
    • Android security patch level: 5 April 2017 (merged)

    11.4. changelog:
    • initial relase

    Previous builds:
    1
    Yes. It worked this time after only flashing the recovery2boot zip file. Thank you.
    1
    Its possible to update ROM via recovery?

    No, not currently. Partition structure (especially boot partition) on this device is different than on Android devices usually (well, as Raspberry is not an Android device to begin with). It would require some quite significant modifications to LineageOS build system to build recovery flashable ROM zips for this device (it's all open source so you're welcome to have a crack at it). There's also no proper way to cold boot (from power off) to recovery which makes it less useful than on other devices. I only included TWRP recently and it's currently mostly just used for installing gapps.
    1
    So no way for updating ROM without loose data?

    No, not currently and who said there was going to be any updates. :p

    Well, you can actually restore your previous /data partition in TWRP after you've installed a new image.