summaryrefslogtreecommitdiffstats
path: root/utils
AgeCommit message (Collapse)AuthorFilesLines
2019-01-25Fix host build of mkimxboot, mknwzboot, nwztools, and rbutil with crypto++Solomon Peachy3-9/+24
Necessary to get working builds on my Fedora 29 system. Change-Id: Ia6232427c959629ade9a85fc412738f688facedb
2018-11-30sonynwz: add NW-ZX300G nvp infoAmaury Pouly1-0/+93
There is something weird going on: the Sony website has two different entries: - NW-ZX300/NW-ZX300A/NW-A45/NW-A47/NW-A45HN/NW-A46HN - NW-ZX300,NW-ZX300A update(20181004)/NW-ZX300G with slightly different nvp entries, but it is impossible to tell whether an NW-ZX300(A) belong to one or the other. Since the diff is very small, I am adding this as nw-zx300g but treat all devices as nz-zx300 since the destination node is the same and that is the main usage of the tool anyway. Change-Id: I3dc2fdec52650f938d568bed578184f6bc43d130
2018-11-30sonynwz: add NW-A57 and NW-ZX300G to the databaseAmaury Pouly2-2/+4
Change-Id: I9bbfa56c5b2d79568de5443f1098d724c4beda6a
2018-11-30nwzstools/scsitool: try to guess series if possibleAmaury Pouly1-0/+19
If the model is not known (ie model ID in the database) but another device from the same series is known, then the database information probably applies and one can use the "force" option -s to tell the tool to ignore the model ID. Automatically print such advice when the series can be guessed. Change-Id: I6bcc7aa29693df8c3d7d8e709ece7cea650be717
2018-11-30nwztools/scsitool: add experimental command to list Sony devicesAmaury Pouly1-3/+51
Change-Id: Ic4f382667c5c84514be661d36032c47fb8f92e75
2018-11-30rbscsi: add experimental API to list connected SCSI devicesAmaury Pouly2-1/+236
For now it is only implemented on linux using /sys scanning Change-Id: Ifdfe7564e6e8d0307ae6ddc53e49bb9aaf5a8268
2018-11-30Indentation fixAmaury Pouly1-2/+2
Change-Id: Ia0f96dd27c520cf2bfec4765619f53eaffee3e20
2018-11-30Add the NWZ-A844 to the databaseAmaury Pouly2-1/+2
For some reason even Sony didn't have it in its list... Change-Id: I26de6071e5887cc7c6ebb695ea333c7b3d1b50db
2018-10-29sonynwz: add nvp map for NW-A50 seriesAmaury Pouly1-0/+93
Change-Id: I49f3399552721e515cc01021c2e0aa28c781ec28
2018-10-29sonynwz: add NW-A55 to databaseAmaury Pouly2-0/+2
Change-Id: I59861119c59490f586b3c6ed32a1c41df8b3d365
2018-09-07MIPS: fix memset()Marcin Bukat1-112/+3
swr/swl instructions used for word aligning were wrong. This made memset() terribly broken. I can't imagine how it went uncaught for soooo long. Spotted by Solomon Peachy. I run unit tests for alignments 0,1,2,3 size 1, 2, 3, 4, 5, 63, 64, 65, 127, 128, 129; and fill pattern 0x00 and other (since 0 is special case in this implementation). Change-Id: I513a10734335fe97734c10ab5a6c3e3fb3f4687a
2018-01-13nwztools/scsitool: fix completely stupid codeAmaury Pouly1-1/+0
Change-Id: I3771388d24fe5fa249dcb40b231d7a4e06d3c3c8
2018-01-13nwztools/scsitool: print clearer message when nvp info is incompleteAmaury Pouly1-3/+8
Change-Id: I13b20b88b35e825da929a31e71ff42d68a79f131
2018-01-13Add information for NWZ-S630 and NWZ-S730Amaury Pouly2-0/+140
Change-Id: I4c48c9a8d862eaf67ec27c1c13b9b7f1fb204fc0
2018-01-07sonynwz: Add NVP information for NWZ-A810Amaury Pouly2-2/+53
Change-Id: I37671ddf15ee1a4b469f97fe06ec86249ff9ce60
2017-11-12hwstub: add code to dump STMP romAmaury Pouly2-1/+18
Change-Id: I083024662f3c085f7bcd2f85b0a68de85725b0f3
2017-11-12hwstub: expose read/write functionsAmaury Pouly1-0/+30
Previously only atomic read/write 8/16/32 were exposed. But it is useful to be able to read a whole buffer at once, this is more efficient than N times read8. Change-Id: I06e331641e1ab1f74c0e16e8c432eafb398e8e6d
2017-11-12hwstub: fix horrible bugAmaury Pouly1-1/+1
It's a wonder it worked, basically any big transfer returned garbage Change-Id: Ic2b2fc1805423c70db8eac40692ba842c72462ab
2017-11-01nwztools/scsitools: print device list when listing seriesAmaury Pouly1-4/+22
Change-Id: Ic46c724c5d89a775dc20853410c8fe6f0ff9a4c8
2017-11-01nwztools: add NW-A46 to the databaseAmaury Pouly2-1/+2
Change-Id: I85dc2080e0be07ff689384c0445f4f1595baf4ac
2017-10-26atjboottool: document more header fields and crypto codeAmaury Pouly3-181/+264
The encryption definitely uses some standard elliptic curve encryption over binary fields (163 and 233 bits, standard polynomials). It is still unclear how this is used in the actual encryption, the key authentification and derivation do not look standard. Change-Id: I6b9180ff7e6115e1dceca8489e986a02a9ea6fc9
2017-10-24nwztools: add NW-A45Amaury Pouly2-1/+2
Change-Id: I75a7723498564ee73c3682391582e354ad672fd7
2017-10-24nwztools: add NW-ZX300AAmaury Pouly2-1/+2
Change-Id: I8b311ed6b48b92b9ecf4fb25c19119cfb2d5beb1
2017-10-22nwztools/upgtools: make the tool print the whole kas, not just 16 bytesAmaury Pouly1-1/+1
Change-Id: I9daca9148b7aaea905a765dfeb95faf6fb7198b1
2017-10-20atjboottool: add support for FwuTailAmaury Pouly1-6/+60
Change-Id: Ib01a2ff92294dd0bb59439c23f26bc31eafa4a39
2017-10-20nwztools: add KAS for NW-A40 seriesAmaury Pouly1-0/+1
Change-Id: I6e22ba0a58eb62dcc9f2025ee7233f5afae1bbec
2017-10-17nwztools/scsitools: don't try to get nodes when we don't know about the deviceAmaury Pouly1-2/+0
Change-Id: Id35671f1e039a94e2b319262e4faa51d73f12afd
2017-10-17nwztools/scsitool: slightly rework of help_us and helpAmaury Pouly1-5/+13
Now print list of devices immediately even if the rest of the command line is empty (ie 'scsitool -s ?' works, whereas before one would need an actual device to even get a list). Add more information in the help_us command: print kas, lyr and fpi. Change-Id: Icfeeaeebe28c774a74ca54661357fafa25c3d114
2017-10-17sonynwz: add NW-A47 to the database and regenerate nwz_db.{c,h}Amaury Pouly2-1/+2
Change-Id: I6331a48a4d336348e90a32cf151427b29eeedb2b
2017-10-07nwztools: add NW-ZX300 KAS, extracted from a deviceAmaury Pouly1-0/+1
Now this is very weird, is it yet another format/encryption? Change-Id: I119dec1e6d636a99508fb1394de27237ca3ab814
2017-10-07nwztools/scsitools: fix databaseAmaury Pouly1-1/+1
I forgot to add the NW-ZX300 to its series Change-Id: I78fd9440492e1868b887f6a2e137d4d0c2ff199a
2017-10-07Add Sony NW-ZX300 model id to databaseAmaury Pouly1-0/+1
Change-Id: I8e7a14b86408c52cbd4a059e2db6a9c9d0966fc6
2017-10-06fix typoAmaury Pouly1-2/+2
Change-Id: Ic357f82d61cc0004ac6193fa9dbbc90976042574
2017-10-06nwztools/scsitool: various improvementsAmaury Pouly1-19/+55
The tool now provides more useful information for developers when the device is not supported. Is also has a new verb "help_us" that also prints all this information (notably the device info and model ID). Change-Id: I04baec8fff23eb83a0408add6296b5d42e9aa8e7
2017-10-06sonynwz: add nvp nodes for NW-A40/ZX300, various fixes for toolsAmaury Pouly5-3/+201
We still miss the model IDS for those device so scsitool won't be able to recognize them automatically. Change-Id: I17ae0f0d95c011cea8e289def63c7673b6c4b667
2017-09-29atjboottool: put afi and fw code in its own filesAmaury Pouly7-392/+499
Change-Id: I16347ebee0f82d5fdf32f5aa8f955c07fe148eba
2017-09-29atjboottool: split fwu code into its own fileAmaury Pouly7-1072/+1143
Slightly cleanup the code by removing the old and dangerous --force option. Change-Id: I776633a9924797fcd509b8b80623bcd64b391672
2017-09-19nwztools/scsitools: make do_fw_upgrade output less confusingAmaury Pouly1-3/+7
Change-Id: If616e646aeddf20aa3cee79a821a420d9102c708
2017-09-19upgtools: fix bug in brute force searchAmaury Pouly1-6/+8
DES ignores the parity bit of each byte (making the 64-bit key really 56-bit), but the current code skipped the parity bit of each half-byte, thus missing some keys. Change-Id: Ia523ebb944e458905b7de1742df151df22166150
2017-09-17Add support for the NWZ-E350bootloader_nwze350_v1Amaury Pouly1-0/+1
Strangely it has the SAME encryption key as the E450. Either they didn't bother changing it or more likely they have exactly the same internals and a slightly different case. Change-Id: I39ab88845b3e40db34160c2e61dde421f391df44
2017-09-15ATJ hwstub: Add cache coherencyMarcin Bukat1-0/+7
All the hard work was done by pamaury. I simply added proper defines. Change-Id: Ib374eea7cd20f35518ad8a68d771c57c54ae01ca
2017-09-06qeditor: add workaround for c++11 in qt4, suggest to use qt5Amaury Pouly1-1/+10
Change-Id: Iad7b8fd171d57228796a68cb3406914213b91926
2017-09-05Initial commit for the Sony NWZ linux portAmaury Pouly31-4798/+10
SUPPORTED SERIES: - NWZ-E450 - NWZ-E460 - NWZ-E470 - NWZ-E580 - NWZ-A10 NOTES: - bootloader makefile convert an extra font to be installed alongside the bootloader since sysfont is way too small - the toolsicon bitmap comes from the Oxygen iconset - touchscreen driver is untested TODO: - implement audio routing driver (pcm is handled by pcm-alsa) - fix playback: it crashes on illegal instruction in DEBUG builds - find out why the browser starts at / instead of /contents - implement radio support - implement return to OF for usb handling - calibrate battery curve (NB: of can report a battery level on a 0-5 scale but probabl don't want to use that ?) - implement simulator build (we need a nice image of the player) - figure out if we can detect jack removal POTENTIAL TODOS: - try to build a usb serial gadget and gdbserver Change-Id: Ic77d71e0651355d47cc4e423a40fb64a60c69a80
2017-08-28qeditor: fix compile error and some commentsAmaury Pouly2-5/+6
Change-Id: I157c83fea8173adc53254f15aa49e41ee1ba7549
2017-07-30atjboottool: cleanup and add support for atj2127Amaury Pouly1-55/+203
Several people asked me recently how to decrypt atj2127 firmware. Someone posted on github (https://github.com/nfd/atj2127decrypt) a decrypt utility clearly reverse engineered from some unknown source. The code is an absolute horror but I concluded that ATJ changed very little between ATJ213x and ATJ2127 so I added support for the ATJ2127, credit to this github code that I stole and rewrite (code was under MIT licence). At the same time do some small code cleanups. Note that there is not 100% sure way that I know to distinguish between the two firmware types, so the code tries to do an educated guess to detect ATJ2127. If this does not work, use --atj21217 option. Also note that contrary to the github tool that decrypts and unpack in one go, this tool only does one step at once. So first decrypt: HEX -> AFI, then unpack AFI -> files. I also added for a different version of AFI. Based on AFI files I have, there are, I think, two versions: the "old" ones (pre-ATJ213x) and "new" ones. The tool only supported the new one but for some reason the ATJ2127 uses the old ones without a mostly empty header. Strangely, even this mostly empty header does not seem to follow the old layout as reverse engineered by the s1mp3 project (https://sourceforge.net/p/s1mp3/code/HEAD/tree/trunk/s1fwx/heads.h), so in fact there might be three versions. In any case, only the header is different, the rest of the file is identical so at the moment I just don't print any header info for "old" files. Change-Id: I1de61e64f433f6cacd239cd3c1ba469b9bb12442
2017-06-18nwztools/scsitool: add a command to query multiple nvp nodes at onceAmaury Pouly1-0/+17
Change-Id: I89fed904b282a202bc845b08f4c8d1200a49636d
2017-06-18nwztools/scsitool: fix devinfo, add dhpAmaury Pouly1-6/+69
The devinfo request returned the raw data, now the tool prints the various fields. Also add support for the dhp (destination/headphones/color ...): this one is untested because it's only supported starting from A10 or A20. There is still a problem with the dpcc prop: although it should work for DEVINFO, it does not, despite the fact that the get_dev_info command works and is internally (on the Sony) translated into a dpcc request. I keep the code just in case. Change-Id: I5aa8ef4afb0b11d3c0ddfa3d38f3e737ee1aff66
2017-06-18nwztools/scsitool: print error on check senseAmaury Pouly1-1/+14
The detailled error message is only printed if -d switch is on command line, otherwise there is no error message which is wrong so fix that. Change-Id: I397541c467940e9b290ee8d4ae704368b1ce132b
2017-06-13nwztools: add KAS for NW-S10 (brute-forced using upgtool)Amaury Pouly1-0/+1
Change-Id: Ia37818faee29130ffe3690c83f85a39bd35637e0
2017-06-13nwztools: add nvp description for NW-S10 seriesAmaury Pouly2-1/+90
Change-Id: Id6a6e51288f4ff24c0063b6c16b74109211e63c0