β—πŸ“’πŸ”” Do you want to run the latest Android build? Are you brave? Help me test some theories. Project Lazarus! EXPERTS ONLYπŸ””πŸ“’β— - Upgrading, Modifying and Unlocking

WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.

Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?

Invitations for expert input:
@Lughnasadh
@Az Biker
@Namelesswonder
@roirraW "edor" ehT
@ipdev
Feel free to tag anyone else you think can provide some input and answer questions on this, as well as point out when something obviously won't work[/user]

V0latyle said:
WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Click to expand...
Click to collapse
This is very interesting. Definitely would like to see the results.

What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
V0latyle said:
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Click to expand...
Click to collapse

You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed

Yeedatoy said:
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
Click to expand...
Click to collapse
Bootloader
fastboot flash system <system.img>
Yeedatoy said:
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Click to expand...
Click to collapse
Yeah, I tried this. Unfortunately nothing more I can do now, bootloader is corrupted

tested on gogole pixel (sailfish) all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system and boot and flashed new one but after that it bootloop
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?

loonbgg said:
all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system boot but after that flashed them but it bootlopp
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
Click to expand...
Click to collapse
Please follow the format in the OP:
Device
Original firmware/build
Type of experiment
Findings and notes
Click to expand...
Click to collapse
I believe the GKI may include its own vbmeta image.

@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.

V0latyle said:
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
Click to expand...
Click to collapse
Doesn't all the pixels support Treble? At least that's what googling it says.

ieatabiscuit said:
Doesn't all the pixels support Treble? At least that's what googling it says.
Click to expand...
Click to collapse
I honestly do not know. I think it's only the Pixel 3 and up. The previous versions follow a similar format (ramdisk and kernel in boot partition) but either I'm an idiot or installing a GSI is more complicated than it is on Treble devices

Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.

ieatabiscuit said:
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
Click to expand...
Click to collapse
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.

V0latyle said:
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
Click to expand...
Click to collapse
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.

ieatabiscuit said:
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
Click to expand...
Click to collapse
A GSI does not include a kernel and is meant to be used "by itself" with the stock kernel. LineageOS is generally developed as a "whole" OS, including kernel and recovery, so it's not just a system image.
There are LOS GSIs though.

Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks

ieatabiscuit said:
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
Click to expand...
Click to collapse
Did you try booting TWRP to install the GSI?

V0latyle said:
Did you try booting TWRP to install the GSI?
Click to expand...
Click to collapse
Not yet, I'm trying that next

ieatabiscuit said:
Not yet, I'm trying that next
Click to expand...
Click to collapse
Same as doing it through fastboot: I get a system corrupted error, then it powers off/reboots to bootloader. Reflashing stock fixes this, and sets up for the next experiment.

Related

β—πŸ“’πŸ”” Do you want to run the latest Android build? Are you brave? Help me test some theories. Project Lazarus! EXPERTS ONLYπŸ””πŸ“’β—

WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Invitations for expert input:
@Lughnasadh
@Az Biker
@Namelesswonder
@roirraW "edor" ehT
@ipdev
Feel free to tag anyone else you think can provide some input and answer questions on this, as well as point out when something obviously won't work[/user]
V0latyle said:
WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Click to expand...
Click to collapse
This is very interesting. Definitely would like to see the results.
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
V0latyle said:
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Click to expand...
Click to collapse
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Yeedatoy said:
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
Click to expand...
Click to collapse
Bootloader
fastboot flash system <system.img>
Yeedatoy said:
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Click to expand...
Click to collapse
Yeah, I tried this. Unfortunately nothing more I can do now, bootloader is corrupted
tested on gogole pixel (sailfish) all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system and boot and flashed new one but after that it bootloop
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
loonbgg said:
all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system boot but after that flashed them but it bootlopp
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
Click to expand...
Click to collapse
Please follow the format in the OP:
Device
Original firmware/build
Type of experiment
Findings and notes
Click to expand...
Click to collapse
I believe the GKI may include its own vbmeta image.
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
V0latyle said:
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
Click to expand...
Click to collapse
Doesn't all the pixels support Treble? At least that's what googling it says.
ieatabiscuit said:
Doesn't all the pixels support Treble? At least that's what googling it says.
Click to expand...
Click to collapse
I honestly do not know. I think it's only the Pixel 3 and up. The previous versions follow a similar format (ramdisk and kernel in boot partition) but either I'm an idiot or installing a GSI is more complicated than it is on Treble devices
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
ieatabiscuit said:
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
Click to expand...
Click to collapse
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
V0latyle said:
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
Click to expand...
Click to collapse
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
ieatabiscuit said:
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
Click to expand...
Click to collapse
A GSI does not include a kernel and is meant to be used "by itself" with the stock kernel. LineageOS is generally developed as a "whole" OS, including kernel and recovery, so it's not just a system image.
There are LOS GSIs though.
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
ieatabiscuit said:
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
Click to expand...
Click to collapse
Did you try booting TWRP to install the GSI?
V0latyle said:
Did you try booting TWRP to install the GSI?
Click to expand...
Click to collapse
Not yet, I'm trying that next
ieatabiscuit said:
Not yet, I'm trying that next
Click to expand...
Click to collapse
Same as doing it through fastboot: I get a system corrupted error, then it powers off/reboots to bootloader. Reflashing stock fixes this, and sets up for the next experiment.

β—πŸ“’πŸ”” Do you want to run the latest Android build? Are you brave? Help me test some theories. Project Lazarus! EXPERTS ONLYπŸ””πŸ“’β—

WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Invitations for expert input:
@Lughnasadh
@Az Biker
@Namelesswonder
@roirraW "edor" ehT
@ipdev
Feel free to tag anyone else you think can provide some input and answer questions on this, as well as point out when something obviously won't work[/user]
V0latyle said:
WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Click to expand...
Click to collapse
This is very interesting. Definitely would like to see the results.
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
V0latyle said:
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Click to expand...
Click to collapse
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Yeedatoy said:
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
Click to expand...
Click to collapse
Bootloader
fastboot flash system <system.img>
Yeedatoy said:
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Click to expand...
Click to collapse
Yeah, I tried this. Unfortunately nothing more I can do now, bootloader is corrupted
tested on gogole pixel (sailfish) all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system and boot and flashed new one but after that it bootloop
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
loonbgg said:
all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system boot but after that flashed them but it bootlopp
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
Click to expand...
Click to collapse
Please follow the format in the OP:
Device
Original firmware/build
Type of experiment
Findings and notes
Click to expand...
Click to collapse
I believe the GKI may include its own vbmeta image.
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
V0latyle said:
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
Click to expand...
Click to collapse
Doesn't all the pixels support Treble? At least that's what googling it says.
ieatabiscuit said:
Doesn't all the pixels support Treble? At least that's what googling it says.
Click to expand...
Click to collapse
I honestly do not know. I think it's only the Pixel 3 and up. The previous versions follow a similar format (ramdisk and kernel in boot partition) but either I'm an idiot or installing a GSI is more complicated than it is on Treble devices
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
ieatabiscuit said:
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
Click to expand...
Click to collapse
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
V0latyle said:
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
Click to expand...
Click to collapse
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
ieatabiscuit said:
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
Click to expand...
Click to collapse
A GSI does not include a kernel and is meant to be used "by itself" with the stock kernel. LineageOS is generally developed as a "whole" OS, including kernel and recovery, so it's not just a system image.
There are LOS GSIs though.
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
ieatabiscuit said:
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
Click to expand...
Click to collapse
Did you try booting TWRP to install the GSI?
V0latyle said:
Did you try booting TWRP to install the GSI?
Click to expand...
Click to collapse
Not yet, I'm trying that next
ieatabiscuit said:
Not yet, I'm trying that next
Click to expand...
Click to collapse
Same as doing it through fastboot: I get a system corrupted error, then it powers off/reboots to bootloader. Reflashing stock fixes this, and sets up for the next experiment.

β—πŸ“’πŸ”” Do you want to run the latest Android build? Are you brave? Help me test some theories. Project Lazarus! EXPERTS ONLYπŸ””πŸ“’β—

WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Invitations for expert input:
@Lughnasadh
@Az Biker
@Namelesswonder
@roirraW "edor" ehT
@ipdev
Feel free to tag anyone else you think can provide some input and answer questions on this, as well as point out when something obviously won't work[/user]
V0latyle said:
WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Click to expand...
Click to collapse
This is very interesting. Definitely would like to see the results.
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
V0latyle said:
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Click to expand...
Click to collapse
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Yeedatoy said:
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
Click to expand...
Click to collapse
Bootloader
fastboot flash system <system.img>
Yeedatoy said:
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Click to expand...
Click to collapse
Yeah, I tried this. Unfortunately nothing more I can do now, bootloader is corrupted
tested on gogole pixel (sailfish) all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system and boot and flashed new one but after that it bootloop
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
loonbgg said:
all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system boot but after that flashed them but it bootlopp
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
Click to expand...
Click to collapse
Please follow the format in the OP:
Device
Original firmware/build
Type of experiment
Findings and notes
Click to expand...
Click to collapse
I believe the GKI may include its own vbmeta image.
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
V0latyle said:
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
Click to expand...
Click to collapse
Doesn't all the pixels support Treble? At least that's what googling it says.
ieatabiscuit said:
Doesn't all the pixels support Treble? At least that's what googling it says.
Click to expand...
Click to collapse
I honestly do not know. I think it's only the Pixel 3 and up. The previous versions follow a similar format (ramdisk and kernel in boot partition) but either I'm an idiot or installing a GSI is more complicated than it is on Treble devices
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
ieatabiscuit said:
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
Click to expand...
Click to collapse
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
V0latyle said:
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
Click to expand...
Click to collapse
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
ieatabiscuit said:
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
Click to expand...
Click to collapse
A GSI does not include a kernel and is meant to be used "by itself" with the stock kernel. LineageOS is generally developed as a "whole" OS, including kernel and recovery, so it's not just a system image.
There are LOS GSIs though.
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
ieatabiscuit said:
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
Click to expand...
Click to collapse
Did you try booting TWRP to install the GSI?
V0latyle said:
Did you try booting TWRP to install the GSI?
Click to expand...
Click to collapse
Not yet, I'm trying that next
ieatabiscuit said:
Not yet, I'm trying that next
Click to expand...
Click to collapse
Same as doing it through fastboot: I get a system corrupted error, then it powers off/reboots to bootloader. Reflashing stock fixes this, and sets up for the next experiment.

β—πŸ“’πŸ”” Do you want to run the latest Android build? Are you brave? Help me test some theories. Project Lazarus! EXPERTS ONLYπŸ””πŸ“’β—

WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Invitations for expert input:
@Lughnasadh
@Az Biker
@Namelesswonder
@roirraW "edor" ehT
@ipdev
Feel free to tag anyone else you think can provide some input and answer questions on this, as well as point out when something obviously won't work[/user]
V0latyle said:
WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Click to expand...
Click to collapse
This is very interesting. Definitely would like to see the results.
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
V0latyle said:
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Click to expand...
Click to collapse
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Yeedatoy said:
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
Click to expand...
Click to collapse
Bootloader
fastboot flash system <system.img>
Yeedatoy said:
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Click to expand...
Click to collapse
Yeah, I tried this. Unfortunately nothing more I can do now, bootloader is corrupted
tested on gogole pixel (sailfish) all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system and boot and flashed new one but after that it bootloop
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
loonbgg said:
all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system boot but after that flashed them but it bootlopp
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
Click to expand...
Click to collapse
Please follow the format in the OP:
Device
Original firmware/build
Type of experiment
Findings and notes
Click to expand...
Click to collapse
I believe the GKI may include its own vbmeta image.
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
V0latyle said:
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
Click to expand...
Click to collapse
Doesn't all the pixels support Treble? At least that's what googling it says.
ieatabiscuit said:
Doesn't all the pixels support Treble? At least that's what googling it says.
Click to expand...
Click to collapse
I honestly do not know. I think it's only the Pixel 3 and up. The previous versions follow a similar format (ramdisk and kernel in boot partition) but either I'm an idiot or installing a GSI is more complicated than it is on Treble devices
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
ieatabiscuit said:
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
Click to expand...
Click to collapse
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
V0latyle said:
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
Click to expand...
Click to collapse
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
ieatabiscuit said:
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
Click to expand...
Click to collapse
A GSI does not include a kernel and is meant to be used "by itself" with the stock kernel. LineageOS is generally developed as a "whole" OS, including kernel and recovery, so it's not just a system image.
There are LOS GSIs though.
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
ieatabiscuit said:
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
Click to expand...
Click to collapse
Did you try booting TWRP to install the GSI?
V0latyle said:
Did you try booting TWRP to install the GSI?
Click to expand...
Click to collapse
Not yet, I'm trying that next
ieatabiscuit said:
Not yet, I'm trying that next
Click to expand...
Click to collapse
Same as doing it through fastboot: I get a system corrupted error, then it powers off/reboots to bootloader. Reflashing stock fixes this, and sets up for the next experiment.

β—πŸ“’πŸ”” Do you want to run the latest Android build? Are you brave? Help me test some theories. Project Lazarus! EXPERTS ONLYπŸ””πŸ“’β—

WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Invitations for expert input:
@Lughnasadh
@Az Biker
@Namelesswonder
@roirraW "edor" ehT
@ipdev
Feel free to tag anyone else you think can provide some input and answer questions on this, as well as point out when something obviously won't work[/user]
V0latyle said:
WARNING: This is an EXPERIMENT for EXPERTS ONLY and is NOT for beginners or the faint of heart. If results are good, a guide will be forthcoming to use these methods to update obsolete devices.
As many of us are aware, older devices often get left out in the cold when it comes to updates. Users of the Pixel series are well aware of this - devices are generally only supported for 3 years after their release. This means that users of the OG Pixel through the Pixel 4/4XL no longer receive any updates.
However, I think I may have found a way to get around this. To combat fragmentation, AOSP introduced Project Treble as a modular solution for Android builds on various devices. The idea here is that the device-specific software would be kept separate from the kernel and system images, which would be generic, meaning that any kernel or system image could potentially run on any device. The device and vendor specific code are supposed to be contained to partitions such as /vendor_boot, /product, etc.
So, my thinking here is we may be able to manually update the kernel and/or system images on obsolete devices, thereby giving them a bit more life.
Your mission, if you choose to accept it, is to help me develop a way that older Android devices can be easily and painlessly updated to the latest Android builds.
Prerequisites:
Any Project Treble compliant device (Use this app to determine whether your device is compliant)
Unlocked bootloader
Knowledge of ADB/fastboot, device partitions, partition images, and what to do when something goes wrong
Now, the fun part.
Android Preview Generic System Image testing (should work on most devices)
Note: these builds are NOT up to date with current Pixel builds.
Download a Developer GSI release (make sure you're using the correct architecture for your device, use the GMS flavor if you want Gapps)
Extract system.img from the release zip and flash to /system (Not sure if vbmeta will be necessary)
More instructions here
AOSP Generic System Image testing
Note: These builds do NOT include GMS; you'll need to flash the GApps package of your choice. They ARE however updated continually.
Download a GSI from Android Continuous Integration:
master - Updated continuously. Builds below may be updated less frequently.
Android 13
Android 12
Android 11
Android 10
Extract system.img and flash to /system
If desired, flash the GApps package of your choice - unless someone can suggest otherwise, I believe this can only be done through TWRP
NikGapps
LiteGapps
MindTheGapps
Generic Kernel Image testing (may not work for all)
Download a Generic Kernel Image release that corresponds to your Android build (android12-5.10 is the 5.10 kernel for Android 12)
Extract boot.img from the release zip and flash to /boot
Pixel system "upgrade" (These are updated monthly, should work same as a GSI)
Download a full factory image for a newer device (Pixel 6, 7) from Factory Images for Nexus and Pixel Devices
DO NOT attempt to flash bootloader or radio images not intended for your device, this will result in a brick!
Extract system.img from the update image.zip and flash it to /system
Pixel feature "upgrade" (Most likely to have issues)
Download a full factory image for a newer device as described above
Again, DO NOT attempt to flash bootloader or radio images that are not for your device, this will result in a brick!
Extract system.img, system_ext.img, product.img from the update image.zip and flash them to their corresponding partitions
Feel free to try any one or combination of the above, and please share your results in this format:
Device
Original firmware/build
Type of experiment
Findings and notes
Other stuff:
To gain root, just patch your boot image in Magisk, then flash to /boot.
Samsung users: It's highly recommended that you use TWRP. However, if TWRP is not available, you can patch your stock recovery to enable Fastbootd, which will allow you to flash partitions directly from ADB command line.
Click to expand...
Click to collapse
This is very interesting. Definitely would like to see the results.
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
V0latyle said:
Tried some experimenting on my Pixel 2
Is it possible to use fastboot update to update the device using the zip? No, fastboot update apparently expects to see a full update image starting with boot.img. Android-info.txt can be blank
Flashing system.img directly failed too, probably requires resizing /system
Tried to use this guide to resize system. Ended up nuking something important, device would no longer boot any image due to an authentication failure. Tried to flash factory firmware, after flashing bootloader and commanding reboot device is now stuck in EDL mode...but doesn't respond to EDL commands. Maybe only Pixel 3 and above are GSI ready?
Click to expand...
Click to collapse
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Yeedatoy said:
What command did you use to try to flash the system.img and did you try to flash from fastboot or fastbootd?
Click to expand...
Click to collapse
Bootloader
fastboot flash system <system.img>
Yeedatoy said:
You typically have to erase your system.img before flashing a new one, as well as the other partitions you've listed
Click to expand...
Click to collapse
Yeah, I tried this. Unfortunately nothing more I can do now, bootloader is corrupted
tested on gogole pixel (sailfish) all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system and boot and flashed new one but after that it bootloop
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
loonbgg said:
all has fine i expand system partition from this guide https://forum.xda-developers.com/t/guide-expand-the-system-partition-on-pixel-xl-pixel.4097839/
eased system boot but after that flashed them but it bootlopp
did some one try this generic kernel (boot.img) or it need to run em with disable dm-verity ?
Click to expand...
Click to collapse
Please follow the format in the OP:
Device
Original firmware/build
Type of experiment
Findings and notes
Click to expand...
Click to collapse
I believe the GKI may include its own vbmeta image.
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
V0latyle said:
@ieatabiscuit Here's more information on GSIs, although I cannot emphasize enough how important it is to know what you're doing especially on devices that do not support Treble out of the box.
Click to expand...
Click to collapse
Doesn't all the pixels support Treble? At least that's what googling it says.
ieatabiscuit said:
Doesn't all the pixels support Treble? At least that's what googling it says.
Click to expand...
Click to collapse
I honestly do not know. I think it's only the Pixel 3 and up. The previous versions follow a similar format (ramdisk and kernel in boot partition) but either I'm an idiot or installing a GSI is more complicated than it is on Treble devices
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
ieatabiscuit said:
Here's something that may help someone. It directly references a detail about the pixel2/2xl in troubleshooting.
Click to expand...
Click to collapse
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
V0latyle said:
Good find.
I wish I hadn't bricked my Pixel 2...lol
I'll probably be doing this on my Pixel 5 when official support ends.
Click to expand...
Click to collapse
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
ieatabiscuit said:
What are the differences between a GSI on your pixel 5 vs LOS on the same hardware? I have my 5 running LOS right now. When I tinker with my 2xl I'll post results, and what not.
Click to expand...
Click to collapse
A GSI does not include a kernel and is meant to be used "by itself" with the stock kernel. LineageOS is generally developed as a "whole" OS, including kernel and recovery, so it's not just a system image.
There are LOS GSIs though.
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
ieatabiscuit said:
Device: Taimen
Firmware/build: OEM Dec build stock ROM/kernel
Experiment: Repartition and install GSI
Outcome: Soft brick with flashing system.img, but success repartitioning. Flashing a full ROM unbricks
Click to expand...
Click to collapse
Did you try booting TWRP to install the GSI?
V0latyle said:
Did you try booting TWRP to install the GSI?
Click to expand...
Click to collapse
Not yet, I'm trying that next
ieatabiscuit said:
Not yet, I'm trying that next
Click to expand...
Click to collapse
Same as doing it through fastboot: I get a system corrupted error, then it powers off/reboots to bootloader. Reflashing stock fixes this, and sets up for the next experiment.

Categories

Resources