-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recovering a bricked NX500 #121
Comments
No, they have a different CPU and architecture. I've recently documented the different architecture generations in https://github.com/ge0rg/samsung-nx-hacks#device-support however even with two cameras from the same generations, you can not do a 1:1 firmware swap. The service manual for other NX cameras outline that you can do an emergency install of a standard firmware file from SD card by shortening two triangle pins on the board. I haven't found these pins on the NX500 board though, and I don't have the service manual. Here's how it looks for the NX300: If you find those pins on the NX500 board, then download and unzip the file from https://www.samsung.com/uk/support/model/EV-NX500ZBMHDE/#downloads to a FAT32 SD card, short these pins and turn on the camera. When the LED stops blinking and turns off, you should have a new firmware installed. |
This will not be possible, except maybe for some tiny parts like buttons or dials. |
Thanks for the tips. So there's a hope to reincarnate my nx500. I think I have a service manual. Need to look for the pins to short if they exist on nx500 board. Will update this post in a couple of days. |
I'm very sorry. I've now checked the OSS dumps I have from Samsung, but the only downloader I was able to find is the one from NX300, ge0rg/samsung-nx-hacks#16 I'm pretty sure it won't work as is on the NX500 due to the different architecture. |
Thanks for taking your time and checking it out! That dnloader.bin file you linked to is 27KB and looks like a binary executable file with ASCII characters/error strings at the end of file and references. So a similar file but for nx500 exist(ed). What does that file actually do, if you know that? I tried searching that file via wayback machine (archive.org) and using some links I had to the file but that did not went that well. If you come up with some other idea just let me know. :) |
I assume that
Bummer. |
Samsung has uploaded the source code for Galaxy NX, and there is also a TIZEN folder, with a |
I can have a look inside it and see if I can find anything valuable. Will also try to email contacts that are available at their open source site. I'm pretty sure they have all the software archived internally. Just finding the right person at Samsung wiling to help can solve it too. |
I even contacted the developer who packaged the NX500 source zip, and he told me that he's working in a different Samsung department and doesn't have access to old source code. I think we really need an insider to make any further progress. That said, I've documented the "SLP" bin file format and had a look at the boot / flashing process. Flashing the NX300 works by starting the "vImage" Linux kernel + initramfs from the
chunk-00 and 03 are >6MB, so I suppose at least one of them contains the "regular" firmware update code, but I didn't look inside yet. chunk-01 is the DRIMe5 bootloader that's probably responsible for the recovery mode, but it doesn't contain any of the relevant file names ("nx500.bin", "downloader.bin"). There are a few firmware update related strings in chunk-05.bin, but it's 11MB and probably the whole OS for the "real-time" CPU core of the DRIMe5, and also no mention of the two interesting file names. If you want to further reverse engineer the "regular" updater:
|
wow looks like you have already done quite a lot work👍 :) If I follow the recipe above and reach point 5, having initramfs.cpio in hand will likely not yield downloader.bin but could just be a fun exercise to do. |
Got a reply from Samsung, of course a standard reply and with reference to their open source site. Interestingly there is a 1.3G file available called NX500_opensource.zip if you search for it using this URL https://opensource.samsung.com/uploadSearch?searchValue=nx500 I wonder if you have previously looked into it in case if contains source for the downloader that could be compiled into a binary? |
I checked the NX500_opensource.zip, it contains the Linux kernel and a large collection of boring OSS packages. It's missing all of the booting and flashing related things and any resemblance of a I've also made some progress with the chunk-00 "vImage" partition. It contains a shell script I'd say the rough execution is as follows:
|
Thus suddenly started to look like an impossible task 😒 |
There are actually three init script templates inside the initramfs:
I assume that the rImage is flashed to the eMMC as part of the regular update process, and used as some kind of fallback if firmware updating fails, and xImage is loaded from SD based on some magic inside the bootloader that I haven't identified yet. Maybe "downloader.bin" was a red herring after all and we need something else? |
You mean downloader.bin is questionable and was not even used, since you cannot find any references to it, so long. If that is the case then the whole recovery process of a bricked nx500 is being questioned. Do we have anyone doing that in the past successfully? |
I don't think we have anybody who unbricked an NX500 or NX1 before. I've now extracted the actual bootloader from a camera's The second 256 bytes are quite interesting, as they have a version identifier and some kind of file table mentioning interesting files:
I'm not sure yet what this header is about, |
To add confusion to the list of (non)bootloaders. I've now dumped the first 32KB of physical memory, starting at I've uploaded the extracted memory to https://op-co.de/tmp/nx500-memory-dump-0x00000000.bin - if anybody is bored enough, it's ARM7 code to be loaded to memory location |
I apologies if this question is inappropriate but please bear with me since this is the only technically advanced place I know of where I can get some expert opinion.
There is one interesting discussion in a closed Issue about bricking of nx500 and possibly fixing it using special recovery fw which only is available at Samsung. Have tried to contact them in the past with no result. I have one bricked nx500 since a few years back which I am still keeping in the drawer in the hope (just dreaming :) that one day I would get hold of such fw and recover it.
But now I have got my hands on nx300 and I wonder if:
The text was updated successfully, but these errors were encountered: