The Samsung Open Source Release Center web portal is the go-to site for downloading the source code for open source packages used in all Samsung products. That spans everything from TVs and cameras and mobile devices and printers and much more.
The web portal is hosted at http://opensource.samsung.com/.
To make effective use of the web site, you will need to know Samsung’s product code (ie, SM-R750) for your device, and probably also the specific software version.
Like every other individual or corporation, Samsung is obliged to comply with any conditions attached as part of the licensing terms of any third party software it uses, which might include releasing source code for open source packages incorporated into its products.
The term “Open Source” is a very broad and confusing term. Many open source licenses are permissive, so do not require source code releases for any modifications. One such license is the Apache v2.0 license used for the majority of Tizen packages.
In contrast, the most common “copyleft” license is the GPLv2 used for the Linux kernel and many other common packages used in GNU/Linux operating systems like Tizen. The Linux kernel is an example of Free Software, which is not exactly synonymous with Open Source.
Looking purely at the Tizen mobile and wearable devices released to date, there are 5 relevant releases on the website, each of which comes in the form of a <filename>.TAR.GZ archive file, most of which are very large.
Search for the source code for particular devices by product code, ie.
Then you have a brief legal agreement dialog to fill in:
The content within these archives varies quite widely between the devices. Some contain RPMs. Some contain ZIPs. Some contain only the Linux kernel. Others appear to contain source code for a large number of packages (perhaps for all open source package used for that device?)
Device | Code | Version | Spec name | Kernel |
---|---|---|---|---|
Gear 2 | SM-R380 | Unknown | tizen_b2 | linux-3.4-exynos3250 |
Gear 2 Neo | SM-R381 | |||
Gear S | SM-R750 | NJ7 | ? | linux-3.4-msm8x26_SM-R750 |
Gear S2 | SM-R720 | R720XXU2AOIA / R732XXU2AOIA R720XXU2AOJ3 / R732XXU2AOJ3 |
tizen_wc1 | linux-3.4-exynos3250 |
Gear S2 Classic | SM-R732 | |||
Samsung Z1 | SM-Z130H | Z130HDDU0ANL7 | tizen-kiran | linux-3.10-sc7727 |
Samsung Z3 | SM-Z300H | Z300HDDU0AOJ4 | tizen_grandprimeve3g | linux-3.10-sc7730 |
I’ll just show an example of one of the source code for the most recently released Tizen device – the Samsung Z3.
That partial archive comes as a 1.8Gb file called SM-Z300H_Opensource.tar.gz. That contains two further archives. One called repos and one called source. The repos archive contains numerous RPMs used for building the kernel.
The source archive contains the actual source code for (all?) the open source packages used on the device:
I’m going to drop into the linux-3.10-sc7730 package, as the most interesting one – the Linux kernel used for the Z3. Here’s what the directory tree looks like:
A key file to look at is packaging/linux-3.10-sc7730.spec which is the specification / description for the Linux kernel used on the device itself. Here is a copy:
This fragment seems to indicate that the Z3 was codenamed “Grand Prime VE 3G” at some stage.
%if "%{?sec_product_feature_kernel_defconfig}" == "undefined" %define BOARDS tizen_grandprimeve3g %else %define BOARDS tizen_%{?sec_product_feature_kernel_defconfig} %endif
This defconfig file corresponds to arch/arm/config/tizen_grandprimeve3g_defconfig. There are a few more tizen-prefixed files in the same directory, which presumably correspond to further Tizen devices which may or may not have been released, or may have been development devices on the path to the Z3.
- tizen_coreprimeve3g_defconfig
- tizen_grandprimeve3g_defconfig
- tizen_z3_defconfig
- tizen_z3lte_defconfig
Here is a copy of that default defconfig config, which determines which Linux kernel features are turned on-and-on.
These TAR.GZ files are, of course, not the only way to get hold of source code for Tizen devices. The “shop window” is at https://source.tizen.org/ where the official SDK releases are made.
It would be an interesting exercise to compare-and-contract the source code in these two locations, and see where they differ, and also in what ways the source code within these Tizen releases differs from vanilla releases of the packages from their original authors. Another day 🙂