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/.

Open Source Release Center

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.

z3_search

Then you have a brief legal agreement dialog to fill in:

agreement

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.

repos

The source archive contains the actual source code for (all?) the open source packages used on the device:

source

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:

kernel

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 🙂