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

Search This thread

hacker001

Senior Member
Oct 22, 2010
62
3
i have some question
I need to use hifiberry dacplus i2s dac on this android
what should i do?
please advice me
thanks
@KonstaT

---------- Post added at 05:45 PM ---------- Previous post was at 05:45 PM ----------

i have some question
I need to use hifiberry dacplus i2s dac on this android
what should i do?
please advice me
thanks
@KonstaT
 

KonstaT

Senior Member
Jan 20, 2016
984
608
KonstaKANG.com
i have some question
I need to use hifiberry dacplus i2s dac on this android
what should i do?
please advice me
thanks
@KonstaT

IDK, I haven't got the hardware so I haven't looked into it. That's something that you need to figure out yourself if you want to have it working.

Have you tried configuring config.txt following the documentation (https://www.hifiberry.com/build/documentation/configuring-linux-3-18-x/)? Check dmesg that the device is registered after adding the required overlays in config.txt. If it uses ALSA device 0 it might work with no modifications to Android audio HAL.
 
Last edited:

Paul_it

New member
Nov 8, 2018
4
2
Milan
Hey @KonstaT I'm having some new troubles with the build. After 10-30 days that I use it without any problems, it starts freezing. It boots fine but it slow down quickly and freezes completely after few minutes, adb still connects and I can see the logcat but commands don't work, and then I've to flash it again to get it back working fine.

I don't have a clue of where to start to debug this problem, I'll be glad if you can point in the right


These are some lines of the logcat of a freezed one:
Code:
04-25 16:38:22.819  1826  1837 W dex2oat : Compilation of android.os.Looper rrj.getLooper() took 136.370ms
04-25 16:38:22.831  1826  1838 W dex2oat : Compilation of long rrs.getCompletedTaskCount() took 141.142ms
04-25 16:38:22.831  1826  1826 W dex2oat : Compilation of long rrq.getId() took 129.461ms
04-25 16:38:22.949  1826  1838 W dex2oat : Compilation of long rrs.getTaskCount() took 116.883ms
04-25 16:38:23.058  1826  1826 W dex2oat : Compilation of void rrv.<init>() took 226.133ms
04-25 16:38:23.061  1826  1839 W dex2oat : Compilation of boolean rrn.cancel(boolean) took 234.059ms
04-25 16:38:23.133  1826  1837 W dex2oat : Compilation of void rrt.<init>(rrs, java.lang.Runnable, bgnz) took 127.209ms
04-25 16:38:23.149  1826  1838 W dex2oat : Compilation of java.util.concurrent.ThreadPoolExecutor com.google.android.gms.common.threads.internal.GlobalExecutorsImpl.getPool(int) took 105.378ms
04-25 16:38:23.164  1826  1826 W dex2oat : Compilation of java.lang.String com.google.android.gms.common.transporter.FileMigrationApi.getAbsolutePath(java.io.File) took 104.603ms
04-25 16:38:23.368  1826  1837 W dex2oat : Compilation of void rsc.<init>(android.content.Context) took 126.974ms
04-25 16:38:23.381  1826  1826 W dex2oat : Compilation of void rse.a(android.widget.TextView, java.lang.String[]) took 216.055ms
04-25 16:38:23.387  1826  1839 W dex2oat : Compilation of android.app.Dialog com.google.android.gms.common.ui.ErrorDialogActivity.onCreateDialog(int, android.os.Bundle) took 219.352ms
04-25 16:38:23.390  1826  1838 W dex2oat : Compilation of android.graphics.Rect rsd.a(rse, android.graphics.Rect) took 240.440ms
04-25 16:38:23.575  1826  1826 W dex2oat : Compilation of void rse.updateDrawState(android.text.TextPaint) took 100.868ms
04-25 16:38:23.676  1826  1837 W dex2oat : Compilation of void rsi.updateDrawState(android.text.TextPaint) took 216.649ms
04-25 16:38:23.676  1826  1826 W dex2oat : Compilation of int com.google.android.gms.common.ui.widget.MultiLineLayout.a(int) took 100.203ms
04-25 16:38:23.687  1826  1839 W dex2oat : Compilation of void rsj.a(double, double, double, double, float, float) took 187.574ms
04-25 16:38:23.762  1826  1838 W dex2oat : Compilation of void rsq.<init>(android.graphics.drawable.Drawable$Callback) took 200.963ms
04-25 16:38:23.879  1826  1837 W dex2oat : Compilation of boolean rte.a() took 113.888ms
04-25 16:38:23.887  1826  1838 W dex2oat : Compilation of int rtq.a(java.lang.String, int, java.lang.String) took 121.204ms
04-25 16:38:23.983  1826  1837 W dex2oat : Compilation of void rtr.a(java.lang.String, java.lang.String, int, rtp) took 103.535ms
04-25 16:38:24.001  1826  1839 W dex2oat : Compilation of void rsj.draw(android.graphics.Canvas) took 213.055ms
04-25 16:38:24.006  1826  1838 W dex2oat : Compilation of int rtt.e(java.lang.String, int, java.lang.String) took 104.511ms
04-25 16:38:24.103  1826  1839 W dex2oat : Compilation of int rsj.getIntrinsicHeight() took 101.371ms
04-25 16:38:24.199  1826  1826 W dex2oat : Compilation of void rtz.<init>(rty) took 108.930ms
04-25 16:38:24.407  1826  1837 W dex2oat : Compilation of java.lang.Object[] rtu.a(java.lang.Object[], java.lang.Object[]) took 200.579ms
04-25 16:38:24.417  1826  1826 W dex2oat : Compilation of void rud.a(byte[]) took 102.876ms
04-25 16:38:24.430  1826  1839 W dex2oat : Compilation of boolean ruh.a(android.content.Context) took 124.336ms
04-25 16:38:24.523  1826  1838 W dex2oat : Compilation of void rty.a(zf) took 324.102ms
04-25 16:38:24.767  1826  1839 W dex2oat : Compilation of int ruk.a(android.content.pm.PackageInfo) took 336.589ms
04-25 16:38:24.880  1826  1837 W dex2oat : Compilation of long ruq.a(android.content.Context, java.lang.String) took 191.900ms
 

sabaatworld

Senior Member
Feb 6, 2012
233
192
Seattle
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

Is it possible to do USB accessory mode instead of USB host mode on this ROM?
 

che0033

New member
Jul 10, 2019
2
0
你好 請問 使用藍牙配對藍牙揚聲器 可以成功配對但是沒有音頻輸出 該怎麼解決 謝謝
Hello Q. Pairing Bluetooth speakers with Bluetooth can be successfully paired but there is no audio output. How to solve it Thank you
 

KonstaT

Senior Member
Jan 20, 2016
984
608
KonstaKANG.com
你好 請問 使用藍牙配對藍牙揚聲器 可以成功配對但是沒有音頻輸出 該怎麼解決 謝謝
Hello Q. Pairing Bluetooth speakers with Bluetooth can be successfully paired but there is no audio output. How to solve it Thank you

This build doesn't support bluetooth A2DP. Added the support in LineageOS 15.1. Both of these builds are now discontinued.

Please update to using my LineageOS 16.0 build instead. It's much more up to date, bluetooth A2DP works, and it works much better than previous versions anyway.
 
  • Like
Reactions: reversegear

velis74

Senior Member
Mar 12, 2010
911
1,154
Radovljica
Is it possible to create an external storage partition for this ROM? Such that getExternalStorageDirectory() function would return something meaningful? I have an app that absolutely requires it...
 

KonstaT

Senior Member
Jan 20, 2016
984
608
KonstaKANG.com
Is it possible to create an external storage partition for this ROM? Such that getExternalStorageDirectory() function would return something meaningful? I have an app that absolutely requires it...

This build uses emulated internal storage (/data/media) as Android's 'sdcard'. Technically it's possible to create any physical partitions on the actual sdcard and add corresponding storage configuration (https://source.android.com/devices/storage/config-example). You'd need to compile the ROM from source with your changes of course (https://github.com/lineage-rpi/android_local_manifest/tree/cm-14.1).

Google had a bad habit of changing how sdcards are handled in Android with pretty much every new Android version at one point. Even a quick Google search couldn't tell me what path getExternalStorageDirectory() should return other that it's deprecated in recent Android versions. Many app developers didn't bother to keep up with the API changes either so I'd assume it's some issue with your app. Generally when referring to 'external storage' in Android means the primary sdcard which is internal storage on this device. To add to confusion this is the only device that boots from an actual external physical sdcard...
 
Last edited:
  • Like
Reactions: velis74

KonstaT

Senior Member
Jan 20, 2016
984
608
KonstaKANG.com

babai93

Senior Member
Feb 5, 2010
195
125
41
Sambalpur
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)

recovery2boot Download link is not working, it's showing "no mirrors found."
please share the zip file.
 

Attachments

  • Download_issue.png
    Download_issue.png
    42.3 KB · Views: 11

KonstaT

Senior Member
Jan 20, 2016
984
608
KonstaKANG.com
recovery2boot Download link is not working, it's showing "no mirrors found."
please share the zip file.

This build is seriously outdated and it's been discontinued for years. You really shouldn't be using this for anything! Use the latest LineageOS 16.0 (https://xdaforums.com/raspberry-pi/orig-development/dev-lineageos-16-0-android-9-raspberry-t3943678) or 17.1 (https://xdaforums.com/raspberry-pi/orig-development/dev-lineageos-17-1-android-10-raspberry-t4139051) build instead.

AndroidFileHost has server issues sometimes. Refresh the download page or try again later.
 
  • Like
Reactions: babai93

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.