Cannot install iodeOS 7.7 on Pixel 8a using iode's installer on Linux

Hi all,

I am having trouble completing installation of iodeOS 7.7 using the official installer on my Google Pixel 8a. I’ve tried on both Windows and now Linux, but to no avail. Also, I’ve tried both USB-C to USB-C and USB-A to USB-C cables, but that does not seem to be the problem. I can reaching the “Installing the System” screen on the installer, but then the phone gets caught in a loop and Google stock OS takes over, after which time I have to enable USB debugging and try again. I’m nervous about bricking my phone, to be honest. Once in a while, I’m able to get to LineageOS’ recovery mode, and I’ve tried a couple of these options, but nothing seems to help. Also, I’ve made it through the installation process to where I can select “quit,” but the device just reverts to the Google logo and then goes into stock. UPDATE: Now I received a message saying that my device is corrupt. Uh-oh…..

Can anyone help, please? Here is the text I copied from the installer:

< waiting for any device >
Setting current slot to ‘a’ OKAY [ 0.068s]
Finished. Total time: 0.069s
Warning: skip copying bootloader_a image avb footer (bootloader_a partition size: 0, bootloader_a image size: 19195512).
Sending ‘bootloader_a’ (18745 KB) OKAY [ 0.392s]
Writing ‘bootloader_a’ (bootloader) Flashing pack version akita-16.4-14097582
(bootloader) flashing platform zuma
(bootloader) Validating partition ufs
(bootloader) Validating partition ufs
(bootloader) Validating partition partition:0
(bootloader) Validating partition partition:1
(bootloader) Validating partition partition:2
(bootloader) Validating partition partition:3
(bootloader) Validating partition bl1_a
(bootloader) Validating partition pbl_a
(bootloader) Validating partition bl2_a
(bootloader) Validating partition abl_a
(bootloader) Validating partition bl31_a
(bootloader) Validating partition tzsw_a
(bootloader) Validating partition gsa_a
(bootloader) Validating partition gsa_bl1_a
(bootloader) Validating partition ldfw_a
(bootloader) Validating partition gcf_a
(bootloader) Flashing partition ufs
(bootloader) Flashing partition ufs
(bootloader) Flashing partition partition:0
(bootloader) Flashing partition partition:1
(bootloader) Flashing partition partition:2
(bootloader) Flashing partition partition:3
(bootloader) Flashing partition bl1_a
(bootloader) Flashing partition pbl_a
(bootloader) Flashing partition bl2_a
(bootloader) Flashing partition abl_a
(bootloader) Flashing partition bl31_a
(bootloader) Flashing partition tzsw_a
(bootloader) Flashing partition gsa_a
(bootloader) Flashing partition gsa_bl1_a
(bootloader) Flashing partition ldfw_a
(bootloader) Flashing partition gcf_a
(bootloader) Loading sideload ufsfwupdate
OKAY [ 0.092s]
Finished. Total time: 0.486s
Rebooting into bootloader OKAY [ 0.000s]
Finished. Total time: 0.050s
< waiting for any device >
Warning: skip copying radio_a image avb footer (radio_a partition size: 0, radio_a image size: 115314828).
Sending ‘radio_a’ (112612 KB) OKAY [ 2.355s]
Writing ‘radio_a’ (bootloader) Flashing pack version g5300o-250909-251024-M-14326967
(bootloader) Flashing partition modem_a
OKAY [ 0.147s]
Finished. Total time: 2.506s
Rebooting into bootloader OKAY [ 0.000s]
Finished. Total time: 0.050s
< waiting for any device >
Erasing ‘avb_custom_key’ (bootloader) avb custom key: erase done
OKAY [ 0.024s]
Finished. Total time: 0.025s
Warning: skip copying avb_custom_key image avb footer (avb_custom_key partition size: 0, avb_custom_key image size: 1032).
Sending ‘avb_custom_key’ (1 KB) OKAY [ 0.000s]
Writing ‘avb_custom_key’ (bootloader) avb custom key: flash done
OKAY [ 0.034s]
Finished. Total time: 0.036s
Warning: metadata type is raw, but ext4 was requested for formatting.
mke2fs 1.47.2 (1-Jan-2025)
Creating filesystem with 16384 4k blocks and 16384 inodes

Allocating group tables: 0/1 done
Writing inode tables: 0/1 done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: 0/1 done

Warning: skip copying metadata image avb footer due to sparse image.
Sending ‘metadata’ (204 KB) OKAY [ 0.005s]
Writing ‘metadata’ OKAY [ 0.007s]
Finished. Total time: 0.016s
Erasing ‘metadata’ OKAY [ 0.006s]
Finished. Total time: 0.007s
Warning: userdata type is raw, but f2fs was requested for formatting.

F2FS-tools: mkfs.f2fs Ver: 1.16.0 (2023-04-11)

Info: Debug level = 1

Info: Trim is disabled
Info: Set conf for android
Info: Enable Project quota
Info: not exist /proc/version!
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 479891624 (234322 MB)
Info: block size = 4096
Info: zone aligned segment0 blkaddr: 512
Info: add quota type = 0 => 4
Info: add quota type = 1 => 5
Info: add quota type = 2 => 6
Info: format version with
“7.0.0-30-generic”
[f2fs_init_sit_area: 743] Filling sit area at offset 0x00600000
[f2fs_init_nat_area: 777] Filling nat area at offset 0x01a00000
[f2fs_add_default_dentry_root:1393] Writing default dentry root, at offset 0x2c600
[f2fs_write_root_inode:1439] Writing root inode (hot node), offset 0x2c000
[f2fs_write_default_quota:1531] Writing quota data, at offset 0002c601 (1/2)
[f2fs_write_default_quota:1531] Writing quota data, at offset 0002c602 (2/2)
[f2fs_write_qf_inode:1582] Writing quota inode (hot node), offset 0x2c001
[f2fs_write_default_quota:1531] Writing quota data, at offset 0002c603 (1/2)
[f2fs_write_default_quota:1531] Writing quota data, at offset 0002c604 (2/2)
[f2fs_write_qf_inode:1582] Writing quota inode (hot node), offset 0x2c002
[f2fs_write_default_quota:1531] Writing quota data, at offset 0002c605 (1/2)
[f2fs_write_default_quota:1531] Writing quota data, at offset 0002c606 (2/2)
[f2fs_write_qf_inode:1582] Writing quota inode (hot node), offset 0x2c003
[f2fs_update_nat_default:1620] Writing nat root, at offset 0x00001a00
Info: Overprovision ratio = 0.300%
Info: Overprovision segments = 355 (GC reserved = 340)
[f2fs_write_check_point_pack: 969] Writing main segments, cp at offset 0x00000200
[f2fs_write_check_point_pack:1056] Writing Segment summary for HOT/WARM/COLD_DATA, at offset 0x00000201
[f2fs_write_check_point_pack:1070] Writing Segment summary for HOT_NODE, at offset 0x00000202
[f2fs_write_check_point_pack:1082] Writing Segment summary for WARM_NODE, at offset 0x00000203
[f2fs_write_check_point_pack:1096] Writing Segment summary for COLD_NODE, at offset 0x00000204
[f2fs_write_check_point_pack:1104] Writing cp page2, at offset 0x00000205
[f2fs_write_check_point_pack:1146] Writing cp page 1 of checkpoint pack 2, at offset 0x00000400
[f2fs_write_check_point_pack:1165] Writing cp page 2 of checkpoint pack 2, at offset 0x00000405
[f2fs_write_super_block:1198] Writing super block, at offset 0x00000000
Info: format successful
Warning: skip copying userdata image avb footer due to sparse image.
Sending ‘userdata’ (89 KB) OKAY [ 0.002s]
Writing ‘userdata’ OKAY [ 0.166s]
Finished. Total time: 0.651s
Sending ‘frp’ (512 KB) OKAY [ 0.011s]
Writing ‘frp’ OKAY [ 0.006s]
Finished. Total time: 0.019s

Bootloader Version…: akita-16.4-14097582

Baseband Version…: g5300o-250909-251024-B-14326967
Serial Number…: 49051JEKB01571

extracting android-info.txt (0 MB) to RAM…
Checking ‘product’ OKAY [ 0.000s]
Setting current slot to ‘a’ OKAY [ 0.065s]
extracting fastboot-info.txt (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to disk… took 0.000s
Writable partitions are not supported
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting super_empty.img (0 MB) to RAM…
extracting boot.img (64 MB) to disk… took 0.131s
archive does not contain ‘boot.sig’
extracting super_empty.img (0 MB) to RAM…
Sending ‘boot_a’ (65536 KB) OKAY [ 1.368s]
Writing ‘boot_a’ OKAY [ 0.085s]
extracting super_empty.img (0 MB) to RAM…
extracting init_boot.img (8 MB) to disk… took 0.040s
archive does not contain ‘init_boot.sig’
extracting super_empty.img (0 MB) to RAM…
Sending ‘init_boot_a’ (8192 KB) OKAY [ 0.171s]
Writing ‘init_boot_a’ OKAY [ 0.022s]
extracting super_empty.img (0 MB) to RAM…
extracting dtbo.img (16 MB) to disk… took 0.059s
archive does not contain ‘dtbo.sig’
extracting super_empty.img (0 MB) to RAM…
Sending ‘dtbo_a’ (16384 KB) OKAY [ 0.343s]
Writing ‘dtbo_a’ OKAY [ 0.024s]
extracting super_empty.img (0 MB) to RAM…
extracting vendor_kernel_boot.img (64 MB) to disk… took 0.148s
archive does not contain ‘vendor_kernel_boot.sig’
extracting super_empty.img (0 MB) to RAM…
Sending ‘vendor_kernel_boot_a’ (65536 KB) OKAY [ 1.368s]
Writing ‘vendor_kernel_boot_a’ OKAY [ 0.086s]
extracting super_empty.img (0 MB) to RAM…
extracting pvmfw.img (1 MB) to disk… took 0.007s
archive does not contain ‘pvmfw.sig’
extracting super_empty.img (0 MB) to RAM…
Sending ‘pvmfw_a’ (1024 KB) OKAY [ 0.022s]
Writing ‘pvmfw_a’ OKAY [ 0.007s]
extracting super_empty.img (0 MB) to RAM…
extracting vendor_boot.img (64 MB) to disk… took 0.147s
archive does not contain ‘vendor_boot.sig’
extracting super_empty.img (0 MB) to RAM…
Sending ‘vendor_boot_a’ (65536 KB) OKAY [ 1.368s]
Writing ‘vendor_boot_a’ OKAY [ 0.092s]
extracting super_empty.img (0 MB) to RAM…
extracting vbmeta.img (0 MB) to disk… took 0.000s
archive does not contain ‘vbmeta.sig’
extracting super_empty.img (0 MB) to RAM…
Sending ‘vbmeta_a’ (8 KB) OKAY [ 0.001s]
Writing ‘vbmeta_a’ OKAY [ 0.006s]
extracting super_empty.img (0 MB) to RAM…
extracting vbmeta_system.img (0 MB) to disk… took 0.000s
archive does not contain ‘vbmeta_system.sig’
extracting super_empty.img (0 MB) to RAM…
Sending ‘vbmeta_system_a’ (8 KB) OKAY [ 0.001s]
Writing ‘vbmeta_system_a’ OKAY [ 0.005s]
extracting super_empty.img (0 MB) to RAM…
extracting vbmeta_vendor.img (0 MB) to disk… took 0.000s
archive does not contain ‘vbmeta_vendor.sig’
extracting super_empty.img (0 MB) to RAM…
Sending ‘vbmeta_vendor_a’ (4 KB) OKAY [ 0.001s]
Writing ‘vbmeta_vendor_a’ OKAY [ 0.005s]
Rebooting into fastboot OKAY [ 0.000s]
< waiting for any device >
extracting super_empty.img (0 MB) to disk… took 0.000s
Sending ‘super’ (5 KB) OKAY [ 0.004s]
Updating super partition OKAY [ 0.019s]
Resizing ‘system_a’ OKAY [ 0.013s]
Resizing ‘system_dlkm_a’ OKAY [ 0.008s]
Resizing ‘system_ext_a’ OKAY [ 0.007s]
Resizing ‘product_a’ OKAY [ 0.005s]
Resizing ‘vendor_a’ OKAY [ 0.005s]
Resizing ‘vendor_dlkm_a’ OKAY [ 0.004s]
Resizing ‘system_a’ OKAY [ 0.005s]
extracting super_empty.img (0 MB) to RAM…
extracting system.img (941 MB) to disk… took 3.906s
archive does not contain ‘system.sig’
Resizing ‘system_a’ OKAY [ 0.013s]
Invalid sparse file format at header magic
Sending sparse ‘system_a’ 1/4 (262116 KB) OKAY [ 5.897s]
Writing ‘system_a’ OKAY [ 0.429s]
Sending sparse ‘system_a’ 2/4 (262060 KB) FAILED (Error reading sparse file)
fastboot: error: Command failed
< waiting for any device >

I believe you may be hitting “ARB” (Anti-Rollback Protection)? You need to have Android 16 on the device, please reflash back to an older Android 16 version from Factory Images for Nexus and Pixel Devices  |  Google Play services  |  Google for Developers (using a Chromium based browser) and try again?

Thanks, @rik ! I appreciate your reply.

Using my past experience as a guide where I installed your unofficial build (6.9) on my Pixel Tablet (tangorpro), I gave sideloading my best shot using the Terminal after I found a ZIP file for iodeOS 7.7. Lo and behold, it worked! I had to restart the phone to apply updates through Recovery Mode, but I was relieved to see the iode splash screen after the quick appearance and disappearance of the Google logo! Woo-hoo!:grinning_face:

I now have a functional phone, with AT&T’s eSIM working right out of the gate. The only bummer is that when I boot up the phone, I’m still greeted by the scary greeting in red that states, “Your device is corrupt;” I have to manually press start, then I briefly see the orange warning stating I’m running an alternate OS, and then it boots into iodeOS.

I spent an evening getting everything up and running (apps, accounts, restorations from backups from when I used Graphene, etc.), but I could potentially start over if need be. Though I don’t like the red warning and having to manually press the power button to begin the boot process, I’m okay with living with it. If there is an actual way to repair this, given the time needed, is the juice worth the squeeze, in your opinion?

By the way, I’m getting a 404 error when I tried to use your link. I also tried adding an ‘s’ after image, but that was not the page, either.

Thank you so much again! I’m happy to have iodeOS on my phone!

Are you needing to manually confirm each time, or is it just the “your device is unlocked and may be corrupt” message (that goes away after about 5-10 seconds)? If the second, then this is “normal” if you don’t re-lock the bootloader.

Even with a locked bootloader you will still get the “less scary” message of “your device is loading a different operating system”, but it won’t imply your device is “corrupted”. I think Google needs a bit of coaching on what “corrupt” means, by the way :slight_smile: I suggest being out of their clutches is the only way to avoid corruption, regardless of locked or unlocked bootloaders :slight_smile:

You can re-lock manually with fastboot flashing lock but make absolutely sure you have “Allow OEM Unlocking” enabled in Developer Options first so if it fails to boot you can unlock and try again. Also not that locking / unlocking will wipe your userdata again, so once again you will have to re-setup everything :frowning:

PS fixed the link above, it was just the missing s at the end of imageS.

I have to manually press the power button to continue. I tried waiting to see what would happen, but after about 30 seconds the phone powers down.

Yes, indeed!

Also not that locking / unlocking will wipe your userdata again, so once again you will have to re-setup everything :frowning:

I think I may just leave the phone as-is. Aside from group texts with iOS users, everything seems to be working (though I haven’t tried Android Auto yet; but that’s not high on my priority list, anyhow). Besides, at the rate things are going, I may just end up “down-grading” to a Nokia candy bar style dumb phone and carrying keys, a YubiKey to use in laptops and desktops, an mp3 player, a Field Notes notepad and number 2 pencil, and a Canon point-and-shoot camera in my pockets :laughing: (I’m actually only half-joking here). There would be a couple apps and services I’d miss, but I would get over it…

As always, we appreciate you…thanks again!

Just to clarify, here is what happens on my Pixel 7 Pro with an unlocked bootloader:

When booting, this is the exact message on the splash screen:

Press power button to pause

:warning:
The bootloader is unlocked and software integrity cannot be guaranteed. Any data stored on the device may be available to attackers. Do not store any sensitive data on the device.

Visit this link on another device: g.co/ABH

So your “device is corrupt” message is a bit more heavy handed. Is the “warning” message you get after that “corrupt” message the same as above?

It may be you want to reinstall, I know it would be a pain but possibly other things would creep in. Can you confirm that Developer Options can still be enabled? If not then maybe you have triggered ARB (“Anti Rollback Protection”) but can still boot since you didn’t relock? I don’t know for sure it will give you any issues, but it does seem a bit messed up.