[Sony Cross-Device General] munjeni:
Disclaimer:

newflasher tool was made for testing and educational purposes, ME is not responsible for what you do on/with your device using newflasher, you must agree that you using newflasher on your own risk, I am not responsible if you brick your device or anything else!

How to use:

OPTIONAL STEP 1:

- if you have missing flash driver just double click exe and confirm driver extraction, an exe will become available, run it and install driver.

OPTIONAL STEP 2:

- this step is optional, this step dump trim area, you can do this and keep those file somewhere on your pc in case you hard brick your device so give it to servicians to repair your phone.

STEP 1:

- Download right firmware for your device using XperiFirm tool, put newflasher.exe into firmware dir created by XperiFirm tool. Before you double click newflasher.exe do in mind something, newflasher tool is programed to flash everything found in the same dir!!! So tool flash all .ta files, all .sin files, boot delivery (whole boot folder), partition.zip, in short all files found in dir! If you no want to flash something just move file which you no want to flash OUT OF FOLDER! Partition.zip .sin files can be flashed only if you extract partition.zip into newly created folder called partition!

STEP 2:

- To start flashing phone put your phone into flash mode, double click newflasher.exe and wait wait wait until your device gets flashed, thats it. Look into log to see if something goes wrong! If all right you are done. If not post your log so I can look!

SOME MORE THINGS:

"You do not need to unlock bootloader or to root the phone if you want to flash a stock firmware from XperiFirm.

There are no files in the stock firmware that need to be deleted. Prompts will ask you to skip some files.

Feel free to press N to every prompt since:

- TA dumping it's not related with DRM keys.

- Flash persist_* files only if you know what you are doing, since you will lose your attest keys. Backup persist partition.

If you need the firmware on both A and B slot use fastboot commands to choose the inactive partion and re-flash."

Happy flashing!

Supported platforms:

- Newflasher is working on Windows, Linux, Android and Darwin, just chose right newflasher binary. With Android version you can flash phone by using another phone!

Changelog:

- version 1: Sorry a lot of work is done in pre pre alpha version and I can't count every changes, just folow development process about version 1, a lot of work is done before it started working. One esential change was done to tool improvement and it is described in one of the my posts related to moving function "erase:" to the section before function "flash:", it is realy improvement and more safer than in time when it was at the start of flashing routine.

- version v2 (15.Aug.2017)

Implemented free disk space safety check, it was missing and danger in case flashing process gets interupted because of the lack of the free disk space needed for sin extractions and temporary files. I have also include GordonGate flash driver prompt so in case somebody have missing flash drivers, simple need to double click exe and folow drivers archive extraction procedure, later need to install these drivers trought Windos device mannager. Also I have implemented an realy pre pre alpha version of the maybe non working trim (why maybe? Because I don't own xzp so can't test) area dump routine, in case it is working we can dump some esentials trim area units from device (probably not a full dump as like it was on every oldest xperia models - no permissions for dumping drm key unit)

- version v3 (23.09.2017)

Some more security checks, it's now a bit safer than v2

- version v4 (21.10.2017)

Updated trim area dumper, now it stores log to the trimarea.log but dump is now in .ta format and writen to the 01.ta and 02.ta

- version v5 (22.10.2017)

Updated trim area dumper, add progress meter, fix y-n prompt (thanks @pbarrette)

- version v6 (22.10.2017)

Updated trim area dumper

- version v7 (23.10.2017)

Updated trim area dumper, newflasher redesigned a bit, fix new partitioning for Oreo

- version v8 (24.10.2017)

Fix trim area dumper

- version v9 & v10 (25.10.2017)

Workaorunds on trim area dumper

- version v11 (07.04.2018)

Support for 2018 devices

- version v12 (29.04.2018)

Try fix doublefree bug/crash (most noticed on Linux 64 bit binary)

- version v13 (01.05.2018)

Fix doublefree bug/crash by removing dynamic allocation from function get_reply

- version v14 & v15 (12.06.2019)

Sony XPeria 1 support added.

- version v16 (16.06.2019)

LUN0 detection optimized.

- version v17 (24.06.2019)

LUN0 detection bug fixed.

- version v18 (10.08.2019)

Untested fix for https://xdaforums.com/crossdevice-dev/sony/progress-newflasher-xperia-command-line-t3619426/page105

Using builtin mkdir instead of calling it trought system call

- version v19 (08.10.2019)

Implemented prompt for flashing persist partition; print skipped .sin files

- version v20 (13.12.2019)

implemented prompt for flashing bootloader,bluetooth,dsp,modem,rdimage to booth a,b slots

- version v21 (29.06.2020)

implemented battery level status check before flashing, flashing bootloader,bluetooth,dsp,modem,rdimage to booth a,b slots is mandatory now and is flashed by default right now, more info, try fix previously reported isue on sync and powerdown command reported 2-3 years ago so I have disabled it and now enabled for test, implemented Macos support (curently need to be tested! If you have plan to test please flash only cache.sin DO NOT flash the rest because of safety for your device!)

- version v22 (30.06.2020)

trying to fix battery capacity retrieval

- version v23 (04.07.2020)

removed battery capacity retrieval (not going to work that way), fix trim area dump file name, new gordongate drivers

- version v24 (04.07.2020)

new feature - now you can run newflasher from script or console with your own command, e.g. newflasher getvar:Emmc-info , I didn't tested all the list of commands, if you do it share them with us!

- version v25 (09.07.2020)

New trim area dump tool, with this change trim area dump is created in 3 secconds. Do in mind this not dump protected units like drm key...etc! Some changes in scripting feature from v24

- version v26 (10.07.2020)

Added 4 diferent reboot modes, reboot to android, reboot to fastboot, reboot to bootloader, power off

- version v27 (11.07.2020) (not yet released)

Workaround in mac libusb

- version v28 (12.07.2020)

Workaround to sync response bug; Fully implemented support for Mac. I'm tested myself on mac 10.14 but confirmed working on mac 10.15 too

- version v29 (12.07.2020)

Mac proper libusb deinitialisation

- version v30 (13.07.2020)

Preparation for Debian packaging; I'm noticed that hex modified arm64 fake pie binary is not working so its now compiled with ndk and its true pie binary now

- version v31 (14.07.2020)

Fix cosmetic bug https://xdaforums.com/showpost.php?p=83056693&postcount=1212 which might confuse somebody

- version 32, not yet released

- version 33 (30.07.2020)

Allow bootloader unlocking with newflasher; Try fix sync response bug for win and darwin too

- version 34 (08.08.2020)

Added support for 32bit sized trim area units (as trim area api changed in xperia mark 2 line) (not yet released because of bug)

- version 35 (08.08.2020)

Updated support for 32bit sized trim area units (as trim area api changed in xperia mark 2 line); Move trim area dumps out of root folder so it not get acidentaly flashed, dumps is now inside folder tadump

- version 36 (27.08.2020)

Some improvements and and possible bug fixes

- version 37 (09.12.2020)

Added support for Xperia 5 II with emmc instead of ufs (not working)

- version 38 (10.12.2020)

Fixed impropper implementation from v37

- version 39 (13.12.2020)

Since mark 2 devices protocol is changed a bit and on some devices OKAY reply is not in separated usb poacket, instead it is merged with data packet, added support for it

- version 40 (03.01.2021)

Temporary solution for determining partition 0 sin file caused by two diferent emmc csd info we found recently on mark 2 devices

- version 41 (03.01.2021)

Removed temporary solution from version 41 so right lun0 sin file get flashed and seccond lun0 get skipped or booth skipped if lun0 sin file do not match device storage size

- version 42 (11.03.2021)

Fix bug in flashing booth slots when current slot is A, thanks to @chrisrg for discovering bug!

- version 43 (12.06.2021)

Support for Mark 3 devices

- version 44 (19.06.2021)

Fully Mark III device implementation

- version 45 (20.06.2021)

Implemented battery level check and prompt user to take a risk and continue flashing or stop flasing if battery level is less than 15 percent

- version 46 (08.07.2021)

Fix problem with filenames which contain "_other", it need to be always flashed to the diferent slot

- version 47 (15.07.2021)

Removed prompt for persist.sin flashing, now its by default skip. Implemented bootloader log retrieval at the end of flashing for better understanding when something goes wrong. Implemented firmware log history retrieval for those who want to know history of the flashed firmwares

- version 48 (19.07.2021)

Flash bootloader,bluetooth,dsp,modem,rdimage to booth slots only on a,b devices

- version 49 (31.07.2021)

Support for XQ-BT41

- version 50 (12.08.2021)

Workin progress on asynchronous usb to make it more like synchronous, added progress bar during send-receive usb packets and more logging. Increased usb timeout to 2 minute. Trying fix sync command at the end of flashing as reported here -> https://github.com/munjeni/newflasher/issues/42

- version 51 (12.08.2021)

Fix empry line printed while receiving usb packets, thanks @elukyan

- version 52 (01.10.2021)

Implemented userprompt for keeping userdata, thanks @OhayouBaka for figuring out! Removed bootloader log retrieval

- version 53, 54, 55 (20.08.2022)

Fix trimarea dumper crash on big endian machines, update building makefiles

- version v56, v57 (07.07.2023)

Add suport for Xperia 1 generation 5, changed bootdelivery xml atributes

Credits:

- without @tanipat and his pc companion debug logs this tool will never be possible! Thank you a lot for your time providing me logs! (by the influence of others, He was disappointed me with last post, but I still appreciate his help and can't forget it)

- without @thrash001 who helped testing our tool I never be continue building our tool since I don't have device for testing, thanks mate!

- didn't forgot @beenoliu, thanks mate for testing!

- thanks to @porphyry for testing linux version!

- thanks to @Snow_Basinger for providing sniff log from 2018 device and for testing on his 2018 device

- thanks to @frantisheq for testing newflasher on his 2018 device and for notify about doublefree bug

- thanks to @serajr for providing me some logs which helped me to figure out some things related to 2018 devices

- thanks to @noelex for helping in Xperia 1 implementation

- thanks to @Meloferz for testing on his xperia 1 mark II

- thanks to github contributors, testers and reporters: vog, noelex, TheSaltedFish, solarxraft, pbarrette, MartinX3, kholk

- thanks to Chirayu Desai for tracking addition to Debian and thanks to vog for initiating all that

- thanks to @elukyan for testing and providing me usb sniff logs for mark 3 devices imlementation, thank you so much

Common errors and how to solve:

https://xdaforums.com/t/tool-newflasher-xperia-command-line-flasher.3619426/post-72610228

Source code:

https://github.com/munjeni/newflasher