• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[ROM][10][UNOFFICIAL] lineage-17.1 for Pixel 4a (sunfish)

Search This thread


Senior Member
Jul 21, 2005
Thank you @liamwhite - Very happy with a LOS rom on my pixel 4a with no Gapps. Great work.

I had factory 11 installed, downgraded to sunfish-qd4a.200805.003 in fastboot flash-all.sh

Fastboot vbmeta.img
fastboot rom zip


Senior Member
May 4, 2011
So, since no one seems to want to explain. How exactly are you supposed to sideload gapps without a recovery like twrp?

EDIT: figured it out from the other LineageOS thread, boot into recovery, select update, ADB sideload.
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 5

    LineageOS is a free, community built, aftermarket firmware distribution of android, which is designed to increase performance and reliability over stock android for your device. This is a straightforward port of the device tree for flame (Pixel 4) to sunfish (Pixel 4a).

    sunfish (Pixel 4a) rom (v2): https://mega.nz/file/zG4UVTQB#ZXLw_qULzC8-an-MEdxdAvUMhmIa5qLI6YG54Feh2z0
    410b3f523795d9d1481d183309adb170 lineage_sunfish-qd3a.200805.001-rel-v2.zip
    sunfish (Pixel 4a) rom (v1, broken, do not install): https://mega.nz/file/jXRB2a4B#a5Dcf9T6emWAwvAj3oFvofkI0la0zf7vj5KIMn-yQaM
    MD5: 86743134c3032a030d35195d44f02e1b lineage_sunfish-qq3a.200805.001.zip

    This is not a recovery-installable zip! Please read below for how to install this image

    Like the TWRP build for this device, this ROM build is only known to be compatible with older firmware. I only tested QD4A.200805.003, but .001 would likely work as well. If you have a newer version, you will need to downgrade at least the bootloader and radio first. I recommend installing the QD4A.200805.003 firmware image from Google, as that's what I tested with.

    1. Flash the vbmeta.img file in the included zip (fastboot flash vbmeta vbmeta.img)
    2. Reboot into fastbootd (fastboot reboot fastboot)
    3. Run fastboot update -w lineage_sunfish-qd3a.200805.001-v2.zip
    (If you do not have a working fastbootd, extract boot.img from the update zip and flash it from the bootloader first)

    - Camera
    - Fingerprint
    - Wi-Fi
    - Bluetooth
    - Sound
    - Mobile data (tested with T-Mobile only)

    Not tested:
    - Google apps (should work fine, but you never know)

    Changelog/Source Code:
    sunfish device tree: https://github.com/liamwhite/android_device_google_sunfish
    sunfish kernel tree: https://github.com/liamwhite/android_kernel_google_sunfish

    Many thanks to all LineageOS team members and all the contributors out there in the community.

    Android version: 10
    Kernel version: 4.14.117
    The fact that I messed up and didn't realize I had to include the vbmeta.img file in the first zip is my fault, and I totally own that. It isn't able to be flashed in Lineage's fastbootd ("file not found", presumably it's missing a devfs node) so I accidentally excluded it from the image I shipped, not realizing it was mandatory.

    Yes, I'm new to this forum, but I'm not new to building Lineage and I've done it many times before. I have serial UARTs for my phones. I'm posting this build here because I'm excited to be the first to get stable lineage running on the 4a, with the full list of vendor blobs and such (see my posted device tree), and this is the first time I've ported Lineage to a new board. It took me a week of tiring work bootstrapping the board, getting the first serial output, getting into recovery, and then finally figuring out that the kernel modules were missing before getting a full boot.

    I was annoyed that the flashable zip generated by mka bacon doesn't include the required modules, and in my testing applying it never worked (they were always excluded from the vendor parition, even after multiple makefile changes), which is why I decided to make an ad-hoc flash method using a fastboot update zip, which reliably worked. That was the primary source of the error here. I won't make that mistake again.

    I know you're frustrated that the first image I provided didn't work, but I have looked into it, reproduced your issue, and fixed it (and it ironically was only missing one 4K file needed to make it work).

    Understood and I'm sorry, I appreciate all the work that all the devs do. Taking time away from their families and other job functions to build a rom and I know it's not easy. Even more so with these later versions of Android firmware. I can try again later and report back. I do make donations. I have donated to the other roms and will do the same as long as it boots. I'm not picky, I understand, things happen and I was frustrated, my apologies.
    Flashing now, heads up your guide is wrong, q in place of d

    3. Run fastboot update -w lineage_sunfish-qq3a.200805.001-v2.zip
    3. Run fastboot update -w lineage_sunfish-qd3a.200805.001-v2.zip

    e: Definitely running now. I feel you've had the worst start to a thread, I appreciate your work!
    Why build modules? Build a monolithic kernel instead? Or do you use prebuilt kernel?
    Because I am replicating the config for lineage on flame/coral (Pixel 4/XL) which also builds modules. No, I'm not using the prebuilt kernel.
    Is this rom compatible with twrp?
    If you mean the ability to take backups, I wasn't able to get the prebuilt in the previous thread to decrypt my data partition, so it doesn't seem like it right now.
    there are no gapps preinstalled in this rom
    I didn't preinstall them or even test them at all, as I have no use or interest in them and they are not present as part of a stock lineage install anyway. You should be able to go install whatever gapps package you like from here after wiping data.
    When running the fastboot update command I get the following error and the installation fails. Any ideas?

    checking product...
    OKAY [ 0.000s]
    checking version-bootloader...
    OKAY [ 0.000s]
    sending 'boot_a' (65536 KB)...
    OKAY [ 1.647s]
    writing 'boot_a'...
    OKAY [ 0.266s]
    sending sparse 'system_a' 1/2 (515788 KB)...
    OKAY [ 12.789s]
    writing 'system_a' 1/2...
    OKAY [ 2.008s]
    sending sparse 'system_a' 2/2 (504152 KB)...
    OKAY [ 12.474s]
    writing 'system_a' 2/2...
    FAILED (remote: Operation not permitted)
    finished. total time: 30.418s
    You have to be running fastbootd (userspace fastboot) on the device, not the bootloader, to flash dynamic partition images on the Pixel 4a. To do this run fastboot reboot fastboot from the bootloader. You will know the difference because it will say "fastbootd" in centered text at the top of the screen. Here is a picture of AOSP fastbootd I ripped off a random news site:
    Here's what the fastbootd from lineage looks like if you needed to install the boot.img first to get a working system (my picture of my Pixel 4a):