Hi,
I think it would be important to archive present and past files from opensource.samsung.com.
Rationale
Among other things, opensource.samsung.com contains copyleft source code releases for many devices. For instance you had the source code for the GT-I9300 variant of the Samsung Galaxy SIII.
This is interesting for many reasons:
- The zip releases are mentioned in commit messages of repositories from community Android distributions and the source code inside is reused, including updated code source for a new Android release and/or various bugfixes (for instance for eMMC issues).
- Some of the devices like the Galaxy SIII (all variants) have at least 70 million units sold so it ended affecting many human beings.
Loosing these zip files would be sad, and they are already disappearing:
- As I write at least some of the Galaxy Note II 4G (GT-N7105 variant) files are still available. To get them you need to click on the "RELEASE CENTER" menu, then on "Mobile Phone", and then you can search for either n7105 or N7105.
- Files for many devices are already gone, like for the GT-I9300 variant of the Galaxy SIII, the GT-I9100 variant of the Galaxy SII, etc.
Website structure:
The website looks very complicated to parse:
- The search seem to use JavaScript and downloading files seem to require user input (accepting waranty waiver, selecting the reason for download, etc).
- The files don't have an URL (Downloading a file with a web browser result in https://opensource.samsung.com/downSrcCode as the download URL).
- The search entries don't have an URL either (All the pages have the https://opensource.samsung.com/uploadList URL) , though it might be able to be listed with code as not entering any query result in the ability to list all files, with at the moment 2889 results for "Mobile Phone".
Files structure:
Searching for N7105 returns something like that:
Model | Version | Description | Source | Announcement |
GT-N7105 | N7105XXUFQH1 | GT-N7105_EUR_KK_Opensource.zip | [link] | [link] |
GT-N7105 | N7105XXDMB6 | GT-N7105_JB_Opensource.zip | [link] | [link] |
GT-N7105 | N7105XXUEMK9 | GT-N7105_JB_Opensource.zip | [link] | [link] |
GT-N7105 | N7105XXUFND3 | GT-N7105_KK_Opensource.zip | [link] | [link] |
GT-N7105 | N7105XXALID | GT-N7105_JB_Opensource.zip | [link] | [link] |
You've got a modal that pops up for downloading a give file (Source or Announcement), and after going through it you can download the file.
The Announcement file is an html file that mention with FLOSS projects were used and was always named NOTICE.html for all the GT-N7100.
The Source filename is the one in the "Description" field. So for the last line of the table it will be GT-N7105_JB_Opensource.zip.
I've downloaded that GT-N7105 N7105XXALID GT-N7105_JB_Opensource.zip file and inside I can see the following files:
- Kernel.tar.gz
- Platform.tar.gz
- README_Kernel.txt
- README_Platform.txt
The Kernel.tar.gz seem to contain no elf files ("find -type f | xargs file | sed 's#.*:##' | grep -i elf" returns nothing). However it probably contains firmwares, including binary firmwares released under the GPL without corresponding source code. The latter is typically in the form of hexadecimal array that is included in C source code that in turn contain either GPL headers or explicit indication that the kernel module is GPL. It might also contain hex array in separate files with no such indication (We found some test firmwares for the touchscree on similar kernels in Replicant for instance).
Platform.tar.gz is more complicated: Not only it contains multiple levels of zip and tar archives, but it also (accidentally?) contains some ARM elf files and some Java class files. I've not looked at it in great details as I'm less familiar with the software included here (bluetooth stack, java source code, etc) than Linux.