Samsung S10 AVB Fail. Device is stuck in "Downloading.." screen
The phone reboots into a turquoise screen "Downloading..." with errors and refuses to boot or to get into TWRP.
The errors are: (top to bottom): MAIN MODE (AVB Fail) recovery: Error validating footer (0) recovery: Error verifying vbmeta image: invalid vbmeta header (6) CUSTOM RECOVERY VBMETA G973FXXSGHWC1. 62768582A
To Reproduce Steps to reproduce the behavior:
- Run Open Android Installer
- Remove cable & reboot
- Stuck in "Downloading..." screen with error messages
Expected behavior Rebooting into LineageOS.
Log file openandroidinstaller (copy).log
Screenshots
Desktop (please complete the following information):
- OS: Ubuntu 22.04.1
- Version: Open Android Installer 0.5.1 beta
Smartphone (please complete the following information):
- Device: Samsung Galaxy S10 (SM-973-F/DS)
- OS: LineageOS (lineage-22.1-20250105-microG-beyond1lte)
- Version 22.1
Additional context At first Open Android Installer failed to remove the bootloader. I've removed the bootloader using the following guide steps 1-9 This was succesful. I decided to retry installing LineageOS, re-ran OAI and ticked the box that the bootloader was already unlocked & followed along with the instructions.
I assume this issue has to do with verified boot in combination with TWRP as my problem seems similar to this person. Apparently I should be able to "unbrick" the phone by reflashing it with the stock recovery? Can anyone confirm & tell me more about how to do this on Linux?
Apparently this is an issue for this device now... TWRP mentions the issue now: https://twrp.me/samsung/samsunggalaxys10.html Interestingly, the LOS install instructions also don't mention the need to flash vbmeta first before flashing the recovery, I wonder how they get around the verified boot. (https://wiki.lineageos.org/devices/beyond1lte/install/)
If you can get to download mode, you could try to flash the vbmeta file from here (https://download.lineageos.org/devices/beyond1lte/builds) maybe that still helps.
To get back to stock ROM, you need to get heimdall setup (https://glassechidna.com.au/heimdall/) (or Odin, but I have no idea about that...) and get the stock rom from here: https://sfirmware.com/samsung-sm-g973f/ (make sure to find the right version and region)
If you picked a version and clicked on it, the page will show you details, the download and instructions how to install with odin.
If you want to use heimdall, boot to download mode, run heimdall to extract the partition information heimdall print-pit > pit.txt. In in print-pit output, for each entry, look at Partition Name and Flash Filename. This will help you determine which file goes with which partition name. Then boot to download mode again, and flash the partitions with heimdall. This is how it looks like for my Galaxy S7 heimdall flash --BOOT boot.img --CACHE cache.img --HIDDEN hidden.img --RECOVERY recovery.img --BOOTLOADER sboot.bin --SYSTEM system.img --CM cm.bin --RADIO modem.bin --CP_DEBUG modem_debug.bin --PARAM param.bin.
I did it often with my testing devices, and the risk is low. Worst case is, it won't boot and you need to try again with a different configuration.
@BjornW What would be a good way forward? I guess I'll just disable support for this device in the next release?
Thanks @tsterbak for looking into this. I agree that it would be best to disable support for the S10 for now. I'm happy to help out with debugging this issue so that we may be able to add it once it works with Open Android Installer again. I will check if I can get the phone to work with the instructions you mentioned. Will take me a bit longer as I'm preparing for Fosdem.
@tsterbak fixed the phone. I've installed LineageOS for MicroG on this telephone. These were the steps I performed:
First I tried to flash the phone with the vbmeta file like you suggested. This did not work: after flashing the issue persisted. So I decided to see if I could install the LineageOS recovery file over this mess. That worked & using the recovery I could install LineageOS for microG. Below are the steps I took:
-
Downloaded lineage-22.1-20250105-microG-beyond1lte-recovery.img and lineage-22.1-20250105-microG-beyond1lte-recovery.img.sha256sum both from https://download.lineage.microg.org/beyond1lte
-
Validated the checksum sha256sum from within the directory where I downloaded these files:
sha256sum --check lineage-22.1-20250105-microG-beyond1lte-recovery.img.sha256sum -
The validation was successful:
lineage-22.1-20250105-microG-beyond1lte-recovery.img: OK -
After the validation I flashed the recovery file:
heimdall flash --RECOVERY lineage-22.1-20250105-microG-beyond1lte-recovery.img --no-reboot
Result:
Heimdall v1.4.2
Copyright (c) 2010-2017 Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/
This software is provided free of charge. Copying and redistribution is
encouraged.
If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/
Initialising connection...
Detecting device...
Claiming interface...
Setting up interface...
Initialising protocol...
Protocol initialisation successful.
Beginning session...
Some devices may take up to 2 minutes to respond.
Please be patient!
Session begun.
Downloading device's PIT file...
PIT file download successful.
Uploading RECOVERY
100%
RECOVERY upload successful
Ending session...
Releasing device interface...
-
It seemed flashing the recovery images was successful and I assumed I could continue with following the install guide for this device from step 5 onwards.
-
Rebooted the phone manually: Volume Down + Power buttons for 8~10 seconds until the screen turns black & release the buttons immediately when it does, then immediately hold Volume Up + Bixby + Power while the device is connected to a PC via USB cable.
-
Result:
-
In the LineageOS Recovery menu I followed the instructions and tapped
Factory Reset, thenFormat data / factory resetand continue with the formatting process. -
As you can see in the photo the data is being removed from the phone.
Result:
-
I downloaded the LineageOS zip file and the checksum file from https://download.lineage.microg.org/beyond1lte and validated the file against its checksum like I did in step 2. The result was the same as in step 3, I got an OK.
-
I continued with step 5: "Sideload the LineageOS .zip package but do not reboot before you read/followed the rest of the instructions!"
-
In the LineageOS recovery menu on the device, I chose “Apply Update”, then “Apply from ADB” to begin sideload as instructed by the guide.
-
On my laptop I used ADB to sideload the LineageOS zip:
adb -d sideload lineage-22.1-20250105-microG-beyond1lte.zip -
ADB started doing it's thing and showed progress. It was quite slow and it stayed on 47% for quite some time before it displayed:
Total xfer: 1.00x -
Here's an image of the phone during this process.
Result:
-
When ADB was done it showed
Total xfer: 1.00xon the terminal and the phone showed this: -
I did not need to install any Google apps so this I skipped this step of the installation guide
-
Finally I rebooted the phone using the LineageOS Recovery menu's "Reboot System Now" (highlighted purple in the previous image)
-
The phone reboots, warns about an unlocked bootloader and asks if you want to continue. Follow the instruction and the phone will boot into LineageOS.
-
Celebrate with some beverage and a snack! 🥳 😜
@tsterbak would it be possible to add the Samsung S10 if we replace the TWRP recovery for the LineageOS Recovery?
@tsterbak would it be possible to add the Samsung S10 if we replace the TWRP recovery for the LineageOS Recovery?
Currently, the installer is solemnly based on TWRP (and OrangeFox in progress). These recoveries allow for more scripting and you basically don't have to touch your phone once you enabled usb debugging (and potentially unlocked the bootloader).
But I'm considering building a new version of the OpenAndroidInstaller that runs in the browser and only supports officially supported LOS devices with the LOS recovery. Ongoing discussion here: https://github.com/openandroidinstaller-dev/openandroidinstaller/discussions/638