[Galaxy S 4 General] Gnarfoz:
Some people seem to have made up their mind beforehand and are now trying desperately to make the facts support their opinions and to to put down anyone who doesn't agree.

If we could stick to analysing the available information objectively, to the best of our abilities, without resorting to personal attacks, that'd be a lot more productive.

This is a pretty opaque issue, so attention to detail is of paramount importance.

The ultimate goal would of course be a solution everyone can confirm for themselves, without relying on the credibility of anyone else claiming to "know for sure".

Sadly, the best candidate for that, the CameraFirmware debug screen (*#34971539#) is not helpful on the I9505.

Differing SKUs don't necessarily mean different items. A single product can be referred to by multiple SKUs.

(Cf.: http://en.wikipedia.org/wiki/Stock_keeping_unit - "SKUs are not always physical objects." Also, "Example 2" on that page.)

The photos might also be the same because they're actually selling the same thing under each SKU. If that would be wrong is what we're here to find out.

Not only do the I9500 and SGH-I337 (not I9505) differ, not even the I9500 pictures match! Please note the differences here:

http://image20.it168.com/picshow/0x0/20130314/2013031420410751263.jpg

http://www.chipworks.com/blog/recentteardowns/files/2013/04/Galaxy-S4-internal-07-camera.jpg

Where are those concentric rings on the Chipworks picture?

Two (blurry) characters on the ribbon cable for Chipworks, four ("RII-A") for IT168.

The first piece of circuit board looks a bit damaged on the Chipworks picture, unlike the fine, hatched structure on the IT168 picture. Might be collateral damage of Chipworks trying to dig deeper.

The back isn't identical, either:

Chipworks: http://www.chipworks.com/blog/recentteardowns/files/2013/04/primarycamera-back.jpg (same picture as yours, higher res)

IT 168: http://image20.it168.com/picshow/0x0/20130314/2013031420411067641.jpg

Chipworks markings: SI_D_076 G, QCA28 80910 1243, K3318502J

IT168 markings: SI_D_0?4 D_G, QCA28 81210 1243, <missing>

Chipworks might have cut off the black masking tape from the module back side, explaining the difference in rear side colour. The K3318502J marking might be hidden behind foam padding on the IT168 picture.

Still, 0?4 != 076 (probably 014, since the 7 in 074 would reach closer to the 0 in this font, as can be seen on the Chipworks picture), G != D_G and 80910 != 81210.

So it's pretty safe to say that the modules (might still contain the same sensor) in the Chipworks and IT168 teardowns are not the same. Mentioning the IT168 teardown is pretty confusing anyway since it's both from before the launch of the S4 and about a special chinese, 3G-only, dual-SIM version (with the Exynos SoC, but that doesn't automatically make it a I9500).

But back to the issue at hand: I9500 vs. SGH-I337.

Front:

Chipworks: http://www.chipworks.com/blog/recentteardowns/files/2013/04/Galaxy-S4-internal-07-camera.jpg

iFixit: http://d3nevzfk7ii3be.cloudfront.net/igi/BcJeNBZyD4IihKN1.huge

Except for different markings again on the ribbon cable ("P" or "F" for iFixit) and the circuit board damage on the Chipworks picture (what is this? Heat-dissipating mesh?), these are basically identical.

Back:

Chipworks: http://www.chipworks.com/blog/recentteardowns/files/2013/04/primarycamera-back.jpg

iFixit: http://d3nevzfk7ii3be.cloudfront.net/igi/UNOkDUqj2k2MycHN.huge

Chipworks markings: SI_D_076 G, QCA28 80910 1243, K3318502J

iFixit markings: JF_V06(G), DD Logo, 13085 20, QCA29 B0910 1251, FS3321PA B04190

Right! Obviously some things differ here. The iFixit markings are the first that look like retail ones to me. "JF" is the device codename for the S4, so the camera also carrying that marking seems... fitting? The IC marking numbers are VERY close, it might just be revised edition (or a different chip altogether, as you claim). There's also one more resistor on the left side of the IC for iFixit. Apart from that, they look pretty much the same again.

In the end, I'd say it's pretty hard to infer anything from these superficial differences between the Chipworks and iFixit teardowns. They differ by one resistor, a slightly different IC and some markings. One marking is engraved into the little metal plate providing support for the connector that's on the other side, the other is printed on a piece of coating around the ribbon cable between sensor and IC. Both pretty irrelevant, unless you ascribe actual functions to them. All of these differences might have a ton of reasons beside "they're not the same module!".

Without knowing the actual meaning of the markings, every judgement seems based on conjecture rather than fact.

Also, it'd be helpful if there was an actual I9505 teardown (Chipworks: I9500, IT168: who knows, iFixit: SGH-I337), to eliminate that little difference, too.

Preferably one including X-rays of the I9505 sensor, which should easily point out if it's a stacked sensor or not.

I'm sorry, but where does the source code state that? Can you clarify?

The I9505 kernel sources do contain drivers for the IMX091, but they are not compiled into the kernel. See my previous post. It does have a driver for the M10MO ISP chip ("jc") compiled in.

It would be helpful if someone could provide the kernel config of a I9500. Just do "cp /proc/config.gz > /storage/sdcard0" via terminal emulator (or adb shell) and grab it from there. Extract it and nopaste the file somewhere.

Comparison (I used https://github.com/gokulnatha/GT-I9500 and https://github.com/gokulnatha/GT-I9505):

$ find gt-i9500 -iwholename '*media*imx*'
gt-i9500/drivers/media/video/imx074.c

$ find gt-i9505 -iwholename '*media*imx*'
gt-i9505/drivers/media/video/imx074.c
gt-i9505/drivers/media/video/msm/imx072_reg.c
gt-i9505/drivers/media/video/msm/imx074.h
gt-i9505/drivers/media/video/msm/imx074_reg.c
gt-i9505/drivers/media/video/msm/imx072.c
gt-i9505/drivers/media/video/msm/imx072.h
gt-i9505/drivers/media/video/msm/imx074.c
gt-i9505/drivers/media/video/msm/sensors/imx074_v4l2.c
gt-i9505/drivers/media/video/msm/sensors/imx119_v4l2.c
gt-i9505/drivers/media/video/msm/sensors/imx091.h
gt-i9505/drivers/media/video/msm/sensors/imx091.c
gt-i9505/drivers/media/video/msm/sensors/imx111.c
gt-i9505/drivers/media/video/msm/eeprom/imx074_eeprom.c
gt-i9505/drivers/media/video/msm/eeprom/imx091_eeprom.c

$ find gt-i9500 -iwholename '*media*jc*'
<nothing>

$ find gt-i9505 -iwholename '*media*jc*'
gt-i9505/drivers/media/video/msm/sensors/jc_regs.h
gt-i9505/drivers/media/video/msm/sensors/jc.h
gt-i9505/drivers/media/video/msm/sensors/jc_v4l2.c
gt-i9505/drivers/media/video/msm/sensors/jc_spi.c

$ find gt-i9500 -iwholename '*exynos*fimc-is-mc2*'
gt-i9500/drivers/media/video/exynos/fimc-is-mc2
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-device.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video-3a1.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-device-flite.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-framemgr.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-regs.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video-vdiso.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/crc32.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-spi.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-err.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-device-ischain.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-time.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-mem.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video-3a0.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video-vdisc.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-device-sensor.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-core.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-metadata.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/Makefile
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video-scc.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-framemgr.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/Kconfig
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-interface.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-device-flite.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-param.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-interface.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/crc32.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-cmd.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-device-ischain.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-mem.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-core.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-vb2.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-device-sensor.h
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-groupmgr.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video-sensor1.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video-scp.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video-isp.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video-sensor0.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-video.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-time.c
gt-i9500/drivers/media/video/exynos/fimc-is-mc2/fimc-is-groupmgr.h

$ find gt-i9505 -iwholename '*fimc-is*'
<nothing>

Only files in gt-i9500/drivers/media/video/exynos/fimc-is-mc2/ have any reference to IMX135. (grep -i -e 'IMX' -R gt-i9500/drivers/media/video)

It seems that way. This also means that the SoC does not need drivers for the sensor, just for the ISP. Which is exactly the situation for both I9500 (Exynos FIMC-IS) and I9505 ("jc" driver for the M10MO ISP), as I just elaborated. Presence of unused drivers in the kernel sources does not prove anything.

The "M10MO" return for the sensor type in the CameraFirmware debug screen is hard-coded into the "jc" driver, by the way (/drivers/media/video/msm/sensors/jc_v4l2.c:1055).

Name your sources, please. Most comparisons here are not remotely "1:1", and a "post your pictures" thread on XDA where everyone owns just on device or the other is certainly not a good starting point.

Post #1 of this thread has one (out of 3) barely comparable picture, sadly the shutter speed is not identical. The other two are HDR vs. non-HDR and HDR vs HDR. The author didn't bother to mention this, but it's obvious from the file names.

If they show "clear and inarguable" differences, linking to these comparisons would be a great boon to this thread.

Some "evidence" that one oneself can verify, would be nice. So far, there's just been a lot of guesswork, claims without sources, premature conclusions, opinions stated as fact, and most of all: unreflected regurgitation of stuff others have posted without providing reliable sources themselves. And that's just in this 78 post thread! XDA sadly has a really, really bad signal-to-noise ratio these days. Maybe more posts like this one, with actual research, can help improve it.