Jump to content
kidzrevil

Petition for Samsung NX1 hack

Recommended Posts

EOSHD Pro Color for Sony cameras EOSHD Pro LOG for Sony CamerasEOSHD C-LOG and Film Profiles for All Canon DSLRs

Looking at the information found about nx300 hack (the one which disables recording time limit), it seems that one way of doing some hacking would be with a firmware update.

Another way of doing it might be through wifi or connecting the camera to pc with a cable. If it would be possible to enter the camera as a developer/debug mode, maybe some code could be changed right in the camera.

As I understand, that nx1.zip file contains the updated firmware 1.4 which is running on the camera. Now when we have access to it, we can find the parameters, that describe the things we need to change, let's try the bitrate first. I just used search and was able to find many mentions of "bitrate" in the zip along with numbers like "min = 6000000" and "max = 8000000". Don't know what these numbers are for, but that is a start. So we need to find the right numbers and pack them in a new firmware update, like the nx300 hacker did.

Here is a description of that process: https://sites.google.com/site/nxcryptophotography/diy-firmware

And then someone needs to be brave enough to test it :D

 

Share this post


Link to post
Share on other sites
39 minutes ago, ReinisK said:

Looking at the information found about nx300 hack (the one which disables recording time limit), it seems that one way of doing some hacking would be with a firmware update.

Another way of doing it might be through wifi or connecting the camera to pc with a cable. If it would be possible to enter the camera as a developer/debug mode, maybe some code could be changed right in the camera.

As I understand, that nx1.zip file contains the updated firmware 1.4 which is running on the camera. Now when we have access to it, we can find the parameters, that describe the things we need to change, let's try the bitrate first. I just used search and was able to find many mentions of "bitrate" in the zip along with numbers like "min = 6000000" and "max = 8000000". Don't know what these numbers are for, but that is a start. So we need to find the right numbers and pack them in a new firmware update, like the nx300 hacker did.

Here is a description of that process: https://sites.google.com/site/nxcryptophotography/diy-firmware

And then someone needs to be brave enough to test it :D

 

i guess it's 80mbit

Share this post


Link to post
Share on other sites
1 hour ago, ReinisK said:

 I just used search and was able to find many mentions of "bitrate" in the zip along with numbers like "min = 6000000" and "max = 8000000". Don't know what these numbers are for, but that is a start. So we need to find the right numbers and pack them in a new firmware update, like the nx300 hacker did.

Let's put a "1" in front of those numbers and give it a shot!  180 Mbps should do the trick.

Share this post


Link to post
Share on other sites

Another really promising snipet from NX1_packages\standard-arm7\usr\include\wideo\drime5\hdmi\d5_hdmi_video_type.h

 

/**
 * @enum ColorSpace
 * @brief Color space of video stream.
 */
enum ColorSpace {
    HDMI_CS_RGB,/**< RGB color space */
    HDMI_CS_YCBCR444,/**< YCbCr 4:4:4 color space */
    HDMI_CS_YCBCR422/**< YCbCr 4:2:2 color space */
};

/**
 * @enum ColorDepth
 * @brief Color depth per pixel of video stream
 */
enum ColorDepth {
    HDMI_CD_36,/**< 36 bit color depth per pixel */
    HDMI_CD_30,/**< 30 bit color depth per pixel */
    HDMI_CD_24/**< 24 bit color depth per pixel */
};

 

I don't have an external recorder but doesn't the NX1 currently only offer 4:2:2 8 bit out?

Share this post


Link to post
Share on other sites
41 minutes ago, MountneerMan said:

Another really promising snipet from NX1_packages\standard-arm7\usr\include\wideo\drime5\hdmi\d5_hdmi_video_type.h

 

/**
 * @enum ColorSpace
 * @brief Color space of video stream.
 */
enum ColorSpace {
    HDMI_CS_RGB,/**< RGB color space */
    HDMI_CS_YCBCR444,/**< YCbCr 4:4:4 color space */
    HDMI_CS_YCBCR422/**< YCbCr 4:2:2 color space */
};

/**
 * @enum ColorDepth
 * @brief Color depth per pixel of video stream
 */
enum ColorDepth {
    HDMI_CD_36,/**< 36 bit color depth per pixel */
    HDMI_CD_30,/**< 30 bit color depth per pixel */
    HDMI_CD_24/**< 24 bit color depth per pixel */
};

 

I don't have an external recorder but doesn't the NX1 currently only offer 4:2:2 8 bit out?

yes, well thats what is purported around the internet. hard to test as the shogun wraps everything as 422 10bit regardless of input. the severe banding that still occurs makes me think that the output is still only 420 8bit but I'm not sure how to prove it.

(i'm making that assumption based on my experience with the a7s, which almost refused to band when i shot to the shogun, vs shooting internally)

Share this post


Link to post
Share on other sites
1 hour ago, Marco Tecno said:

I'm quite sure that if nx1 could output in 4:4:4 10/12bit, it would sell so many units that samsung could even think about starting again the production :-P 

It's all about the codec parameters. They chose file size over detail. They could have made it so that the user could choose.

Share this post


Link to post
Share on other sites
2 hours ago, undecided said:

It's all about the codec parameters. They chose file size over detail. They could have made it so that the user could choose.

They do, Its in the video quality setting. The question is are they sandbagging with the HQ video setting and by how much.

 

Honestly for me the 4K/UHD quality of the NX1 if good enough for my purposes. I would really just like to see things like the 29 min limit removed or 4k 60p :) or 1080 240p

Share this post


Link to post
Share on other sites

Looking at the drime5 kernel source I was pleasantly surprised to see that there is actually quite a lot there. I expected that they would probably do like almost every Android phone does and include all the important drivers as binary blobs, but it looks like most of the HEVC encoder driver is actually right there in the open-source part. Of course the code that actually sets the bitrate is in the closed-source camera application, but knowing which functions are used to actually pass the parameters to the driver should make it easier to find where to look in the closed-source part.

Another pleasant surprise was that the firmware update files look fairly straightforward to unpack. I'm no expert in reverse engineering, but judging by a cursory examination, the level of wacky encryption/obfuscation I've seen in the firmware updates for other devices doesn't seem to be present in the NX1 files.

At least that's my impression from browsing the files for an hour or two. It's always possible I could be completely wrong.

Share this post


Link to post
Share on other sites
2 hours ago, Syme said:

Looking at the drime5 kernel source I was pleasantly surprised to see that there is actually quite a lot there. I expected that they would probably do like almost every Android phone does and include all the important drivers as binary blobs, but it looks like most of the HEVC encoder driver is actually right there in the open-source part. Of course the code that actually sets the bitrate is in the closed-source camera application, but knowing which functions are used to actually pass the parameters to the driver should make it easier to find where to look in the closed-source part.

Another pleasant surprise was that the firmware update files look fairly straightforward to unpack. I'm no expert in reverse engineering, but judging by a cursory examination, the level of wacky encryption/obfuscation I've seen in the firmware updates for other devices doesn't seem to be present in the NX1 files.

At least that's my impression from browsing the files for an hour or two. It's always possible I could be completely wrong.

Progress ! Thats what i like to hear !!! 

Share this post


Link to post
Share on other sites

It should be possible to construct a new firmware and just apply it into the camera, basically all the features are already there we just need to unlock them. 

Though I would still like to see a hack to give it raw video output in 4k. 

Share this post


Link to post
Share on other sites
1 hour ago, Marco Tecno said:

For raw video output you mean...12bit? Or really raw in the sense of still images? In the second case, I doubt it could be technically possible.

Its as much possible as the existence of Magic Lantern, yes I mean CineDNG files. 

 

Apparently the Tizen Dev Tools exists but for Ubuntu Linux only.

Explains how to build a package for NX1 or NX500

Quote

System requirement (Strongly recommended)
  * OS: Ubuntu 12.04 or newer

Installing Development Tools in Ubuntu
  * Open the source list by using text editor.
    $ sudo vi /etc/apt/sources.list
  * Add Tizen tools repository to the source list.
    deb http://download.tizen.org/tools/latest-release/Ubuntu_12.04 /
  * Resynchronize the package index files from the sources specified in the source list by executing the following command:
    $ sudo apt-get update
  * Install a development tool by executing the following command:
    $ sudo apt-get install gbs

Build root strap setup
  * Download build rootstrap(NX1_packages.tar.gz) and unpack into home directory
    $ sudo tar xfz {build rootstrap name} --same-owner
  * Change root to the build rootstrap
    $ sudo chroot standard-armv7l
  * Change account to abuild
    $ su abuild

Building a package
  * Source packages are in the /home/abuild/rpmbuild/SRPMS
  * Build a package with rpmbuild
    $ cd /home/abuild/rpmbuild/SRPMS
    $ rpmbuild --rebuild {src.rpm name}
  * You can find binary rpms in /home/abuild/rpmbuild/RPMS

Building a kernel setup
  * Download the kernel file(NX1_kernel.tar.gz) and unpack into home directory
    $ tar xfz {kernel file name}

Building the kernel
  * Build the kernel 
    $ cd linux-3.5
    $ make

- End of file (2014.11.10) -

 

Edit:

I found Tizen SDK Tool for Windows, wonder if it will work with the Tizen OS in the NX series.

 

Share this post


Link to post
Share on other sites

Referring to nx1, each raw file (28mp) is about 40MB. So 30fps would translate into 1.2GB/sec. So even if the sensor could be able to stream at that rate, no IO device could record it (possibly those new pci-e ssd devices, but you'd need 1TB for few minutes of video...).

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...