Sony Xperia 10 III, Android 13 - how can I flash SailfishOS to this device?

Hi all,

I preordered the Jolla phone 2026 and, having to wait for it to be released, I wanted to tinker with SailfishOS on a Sony Xperia 10 III in the meantime.

That Sony phone runs Android 13 and I don’t have a Windows PC (Linux only) which means I cannot use the Windows-only EMMA tool to revert to Android 11 for the available SailfishOS image to be flashed.

Are there other ways to flash SailfishOS onto my Sony phone with Android 13 or to revert back to Android 11?

Any help would be greatly appreciated as I am new to this community and need your support.

Thanks in advance!

jwalesch

EDIT:

I’ve read in other posts on this forum that flashing SailfishOS (intended for Android 11) onto Android 13 can be done. But trying that I’ve run into another problem:

When trying to flash the SW_binaries_for_Xperia_Android_11_4.19_v9a_lena.img my computer says it cannot find the needed img file in the directory. But I’m certain everything needed (flashing tools and the Android_11-img) are in the correct same directory.

So, what else could have gone wrong?

Then this should corroborate the result of ls in the same directory

It does, thank you.

This is the output of my terminal when I try to flash the SailfishOS image:

~/Handy/JOLLA/Sailfish_OS-Jolla-5.0.0.72-xqbt52-1.0.1.48$ sudo ./flash.sh
Legen Sie Ihren Finger auf den Fingerabdruckleser
Flash utility v1.2
Detected Linux
Searching device to flash..
Found XQ-BT52, serial:HQ619U1DAB, baseband:62.2.A.0.533, bootloader:1322-1665_X_Boot_SM6350_LA2.0.2_T_205
Found matching device with serial HQ619U1DAB
Fastboot command: fastboot -s HQ619U1DAB

fastboot -s HQ619U1DAB getvar secure
<< secure: no
fastboot -s HQ619U1DAB flash:raw boot_a hybris-boot.img
Sending ‘boot_a’ (28312 KB) FAILED (Write to device failed (Protocol error))
fastboot: error: Command failed
Flashing failed (1)

So, my phone is detected but cannot be flashed.

I think everything else is as it should be:

fastboot installed on my laptop, developer options on my phone enabled, OEM unlocking enabled, USB debugging also.

The above output says “flash:raw boot_a hybrid-boot.img” - does that mean that the laptop tries to flash the wrong image file?

You need to unlock the bootloader first using fastboot oem unlock 0x + unlock code generated for your IMEI on the Sony developer portal.

I had done that before. Therefore the output in my terminal this time was:

sudo fastboot oem unlock 0x55D94BA6E07D51A0
FAILED (remote: 'Device already unlocked')
fastboot: error: Command failed
jw@ThinkPad-T495-LM22:~/Handy/JOLLA/Sailfish_OS-Jolla-5.0.0.72-xqbt52-1.0.1.48$ sudo ./flash.sh
Flash utility v1.2
Detected Linux
Searching device to flash..
Found XQ-BT52, serial:HQ619U1DAB, baseband:62.2.A.0.533, bootloader:1322-1665_X_Boot_SM6350_LA2.0.2_T_205
Found matching device with serial HQ619U1DAB
Fastboot command: fastboot -s HQ619U1DAB
>> fastboot -s HQ619U1DAB getvar secure
<< secure: no
>> fastboot -s HQ619U1DAB flash:raw boot_a hybris-boot.img
Sending 'boot_a' (28312 KB)                        OKAY [  0.896s]
Writing 'boot_a'                                   OKAY [  0.211s]
Finished. Total time: 1.144s
>> fastboot -s HQ619U1DAB flash:raw boot_b hybris-boot.img
Sending 'boot_b' (28312 KB)                        OKAY [  0.892s]
Writing 'boot_b'                                   OKAY [  0.214s]
Finished. Total time: 1.142s
>> fastboot -s HQ619U1DAB flash dtbo_a dtbo.img
Sending 'dtbo_a' (238 KB)                          FAILED (Status read failed (Protocol error))
fastboot: error: Command failed
Flashing failed (1)

Interestingly my computer this time tried to flash several img files but not the one needed. It seems to do something different at every attempt.

I’m lost now…

So, I had another idea: What if my USB cable was defective? I tried a rater new one, one that is designed for high capacity up- and downloads. This is what happened:

sudo ./flash.sh
Flash utility v1.2
Detected Linux
Searching device to flash..
Found XQ-BT52, serial:HQ619U1DAB, baseband:62.2.A.0.533, bootloader:1322-1665_X_Boot_SM6350_LA2.0.2_T_205
Found matching device with serial HQ619U1DAB
Fastboot command: fastboot -s HQ619U1DAB
>> fastboot -s HQ619U1DAB getvar secure
<< secure: no
>> fastboot -s HQ619U1DAB flash:raw boot_a hybris-boot.img
Sending 'boot_a' (28312 KB)                        OKAY [  0.892s]
Writing 'boot_a'                                   OKAY [  0.137s]
Finished. Total time: 1.066s
>> fastboot -s HQ619U1DAB flash:raw boot_b hybris-boot.img
Sending 'boot_b' (28312 KB)                        OKAY [  0.887s]
Writing 'boot_b'                                   OKAY [  0.120s]
Finished. Total time: 1.043s
>> fastboot -s HQ619U1DAB flash dtbo_a dtbo.img
Sending 'dtbo_a' (238 KB)                          OKAY [  0.015s]
Writing 'dtbo_a'                                   OKAY [  0.004s]
Finished. Total time: 0.036s
>> fastboot -s HQ619U1DAB flash dtbo_b dtbo.img
Sending 'dtbo_b' (238 KB)                          OKAY [  0.015s]
Writing 'dtbo_b'                                   OKAY [  0.005s]
Finished. Total time: 0.030s
>> fastboot -s HQ619U1DAB flash userdata sailfish.img001
Warning: skip copying userdata image avb footer (userdata partition size: 112111374336, userdata image size: 140728838122184).
Sending sparse 'userdata' 1/3 (746685 KB)          OKAY [ 23.514s]
Writing 'userdata'                                 OKAY [ 15.323s]
Sending sparse 'userdata' 2/3 (773655 KB)          OKAY [ 24.487s]
Writing 'userdata'                                 OKAY [ 15.373s]
Sending sparse 'userdata' 3/3 (304425 KB)          OKAY [  9.604s]
Writing 'userdata'                                 OKAY [  8.272s]
Finished. Total time: 99.803s
>> fastboot -s HQ619U1DAB flash oem_a ./SW_binaries_for_Xperia_Android_11_4.19_v9a_lena.img
Sending 'oem_a' (819200 KB)                        FAILED (remote: 'Requested download size is more than max allowed
')
fastboot: error: Command failed
Flashing failed (1)

So, hooray, we got to the binary img file, the one for Android 11 as intended by Jolla!

But what does “Requested download size is more than max allowed” mean???
I had downloaded that image afresh just before my flashing attempts.

Or does that error mean that “userdata” uses up too much space for the whole flashing process to go through all the way? (userdata partition size: 112111374336, userdata image size: 140728838122184)

Are you using an USB 2.0 port, flashing via USB3 often makes problems.

1 Like

Here’s an article about USB trouble with links to the docs.

And here’s another one about flashing Android from a Linux machine.

1 Like

Thanks for all your suggestions!

The problem doesn’t seem to be a faulty USB connection or a faulty cable but the size of the needed userdata image. As I’m not sure what that image actually is I just presume the error (see above) means the SO image cannot be flashed onto the phone because it is larger than the partition it needs to be flashed to.

Correct?

Whenever I tried a different binary image (Android 12 and 13 I tested) it gave me the error “The supported Sony Vendor partition image wasn’t found in the current directory.” Only when I used “SW_binaries_for_Xperia_Android_12_4.19_v2a_lena.img” did I get as far with the flashing process as reported.

Weird.

If you search this forum for the error message, you’ll probably find others who have come across the same issue and also a solution to it. I think it was option -S in the flashing command for setting larger maximum file size or something like that.

I did this with Windows PC, following the instructions exactly. I didn’t have any problems when flashing over Android 13. But as I have learned after is that flashing over A12 is better option as I have lost audio bug present. At least one user has experimented and Android 12 fixed that bug

Sorry but you really need to walk us through the process with all commands & output and any other relevant info. It does not enable us to help you if you guess what could be wrong.

What happens is this:

~/Handy/JOLLA/Sailfish_OS-Jolla-5.0.0.72-xqbt52-1.0.1.48$ sudo ./flash.sh
Legen Sie Ihren Finger auf den Fingerabdruckleser
Flash utility v1.2
Detected Linux
Searching device to flash..
Found XQ-BT52, serial:HQ619U1DAB, baseband:62.2.A.0.533, bootloader:1322-1665_X_Boot_SM6350_LA2.0.2_T_205
Found matching device with serial HQ619U1DAB
Fastboot command: fastboot -s HQ619U1DAB
>> fastboot -s HQ619U1DAB getvar secure
<< secure: no
>> fastboot -s HQ619U1DAB flash:raw boot_a hybris-boot.img
Sending 'boot_a' (28312 KB)                        OKAY [  0.915s]
Writing 'boot_a'                                   OKAY [  0.130s]
Finished. Total time: 1.081s
>> fastboot -s HQ619U1DAB flash:raw boot_b hybris-boot.img
Sending 'boot_b' (28312 KB)                        OKAY [  0.894s]
Writing 'boot_b'                                   OKAY [  0.130s]
Finished. Total time: 1.061s
>> fastboot -s HQ619U1DAB flash dtbo_a dtbo.img
Sending 'dtbo_a' (238 KB)                          OKAY [  0.010s]
Writing 'dtbo_a'                                   OKAY [  0.005s]
Finished. Total time: 0.025s
>> fastboot -s HQ619U1DAB flash dtbo_b dtbo.img
Sending 'dtbo_b' (238 KB)                          OKAY [  0.015s]
Writing 'dtbo_b'                                   OKAY [  0.005s]
Finished. Total time: 0.030s
>> fastboot -s HQ619U1DAB flash userdata sailfish.img001
Warning: skip copying userdata image avb footer (userdata partition size: 112111374336, userdata image size: 140721101071640).
Sending sparse 'userdata' 1/3 (746685 KB)          OKAY [ 23.519s]
Writing 'userdata'                                 OKAY [ 15.413s]
Sending sparse 'userdata' 2/3 (773655 KB)          OKAY [ 24.623s]
Writing 'userdata'                                 OKAY [ 15.354s]
Sending sparse 'userdata' 3/3 (304425 KB)          OKAY [  9.594s]
Writing 'userdata'                                 OKAY [  8.072s]
Finished. Total time: 99.954s
>> fastboot -s HQ619U1DAB flash oem_a ./SW_binaries_for_Xperia_Android_11_4.19_v9a_lena.img
Sending 'oem_a' (819200 KB)                        FAILED (remote: 'Requested download size is more than max allowed
')
fastboot: error: Command failed
Flashing failed (1)

I read somewhere that when flashing a large img file (the SO image I’m trying to flash is about 1.9 GB) I might have to add a flag that allows the large img file to be accepted.

Ever heard of that?

Not sure if you could resolve these two points, so I’ll add my two cents.

This should work if you run the script from the correct directory. However, if you try flashing something else than the recommended binaries you will need to edit the file that lists accepted versions. You will also have to update checksums to pass the integrity check made by the flashing script.

When I experience this error it helps running the fastboot flash command with -S 512K. Again, if you modify the script, you will need to update the checksum file.

1 Like

Both error messages faintly ring a bell.
And I seem to remember that the solution had very little to do with their wording.

Did you go through both articles I linked, incl. further links to documentation etc.?

I think you need to find a better tutorial (they are in the docs) and retrace your steps, or start from zero.

@jwalesch

If you search the forum for “Requested download size is more than max allowed”, you’ll get several results. Among them is this one: [4.5.0.16] cannot send SMS when VoLTE enabled - #32 by Louis

Only thing I did differently was to run sudo ./flash.sh --extra-opts “-S 512K” to get around this error: " FAILED (remote: Requested download size is more than max allowed)"

and here Android 13 and SailfishOS on Xperia 10 III - #119 by Fellfrosch with

Edit: Got it to work, flashed the SW binaries now with the option
-S 256M

3 Likes

Halleluja! It worked:

sudo ./flash.sh --extra-opts "-S 256M"
Flash utility v1.2
Detected Linux
Searching device to flash..
Found XQ-BT52, serial:HQ619U1DAB, baseband:62.2.A.0.533, bootloader:1322-1665_X_Boot_SM6350_LA2.0.2_T_205
Fastboot extra options detected: -S 256M, let's ignore device count check.
Fastboot command: fastboot -S 256M
>> fastboot -S 256M getvar secure
<< secure: no
>> fastboot -S 256M flash:raw boot_a hybris-boot.img
Sending 'boot_a' (28312 KB)                        OKAY [  0.903s]
Writing 'boot_a'                                   OKAY [  0.117s]
Finished. Total time: 1.059s
>> fastboot -S 256M flash:raw boot_b hybris-boot.img
Sending 'boot_b' (28312 KB)                        OKAY [  0.887s]
Writing 'boot_b'                                   OKAY [  0.124s]
Finished. Total time: 1.046s
>> fastboot -S 256M flash dtbo_a dtbo.img
Sending 'dtbo_a' (238 KB)                          OKAY [  0.009s]
Writing 'dtbo_a'                                   OKAY [  0.005s]
Finished. Total time: 0.022s
>> fastboot -S 256M flash dtbo_b dtbo.img
Sending 'dtbo_b' (238 KB)                          OKAY [  0.016s]
Writing 'dtbo_b'                                   OKAY [  0.004s]
Finished. Total time: 0.030s
>> fastboot -S 256M flash userdata sailfish.img001
Warning: skip copying userdata image avb footer (userdata partition size: 112111374336, userdata image size: 140730239549704).
Sending sparse 'userdata' 1/8 (240203 KB)          OKAY [  7.576s]
Writing 'userdata'                                 OKAY [  7.442s]
Sending sparse 'userdata' 2/8 (237145 KB)          OKAY [  7.356s]
Writing 'userdata'                                 OKAY [  4.101s]
Sending sparse 'userdata' 3/8 (249732 KB)          OKAY [  7.860s]
Writing 'userdata'                                 OKAY [  4.371s]
Sending sparse 'userdata' 4/8 (258615 KB)          OKAY [  8.184s]
Writing 'userdata'                                 OKAY [  5.212s]
Sending sparse 'userdata' 5/8 (262072 KB)          OKAY [  8.282s]
Writing 'userdata'                                 OKAY [  5.692s]
Sending sparse 'userdata' 6/8 (262143 KB)          OKAY [  8.320s]
Writing 'userdata'                                 OKAY [  4.251s]
Sending sparse 'userdata' 7/8 (243588 KB)          OKAY [  7.665s]
Writing 'userdata'                                 OKAY [  5.322s]
Sending sparse 'userdata' 8/8 (71265 KB)           OKAY [  2.249s]
Writing 'userdata'                                 OKAY [  3.011s]
Finished. Total time: 100.295s
>> fastboot -S 256M flash oem_a ./SW_binaries_for_Xperia_Android_11_4.19_v9a_lena.img
Warning: skip copying oem_a image avb footer (oem_a partition size: 838860800, oem_a image size: 140725230238312).
Sending sparse 'oem_a' 1/2 (258696 KB)             OKAY [  8.204s]
Writing 'oem_a'                                    OKAY [  0.002s]
Sending sparse 'oem_a' 2/2 (84940 KB)              OKAY [  4.919s]
Writing 'oem_a'                                    OKAY [  0.001s]
Finished. Total time: 13.250s

Flashing completed.

Remove the USB cable and bootup the device by pressing powerkey.

The flag --extra-opts “-S 256M” was the trick needed - thank you very much, everybody that helped!

I’m happy and will start tinkering now!

6 Likes