Hello,
J'ai fait quelques tests dans mon coin, et j'ai quelques infos:
Il semble que tous les champs de la requêtes soient nécessaires, je n'ai pas été exhaustif, mais je reçois une erreur 500 chaque fois que j'enlève un paramètre. Casse pied.
Les paramètres unique, et arch se trouvent dans /etc.defaults/synoinfo.conf, timezone, language dans /etc/synoinfo.conf, et major, minor et build dans /etc.defaults/VERSION
Le format des icons, c'est du PNG, avec transparence, taille 72x72.
Un nouveau dossier fait son apparition au sein des SPK: WIZARD_UIFILES. Ce sont des elements d'interface Ext/Sencha (éléments de GUI Web codé en JSON). Il semble que ces éléments soient nommée de la même manière que les scripts, et que les valeurs soient passé dans une variable dont le nom est key dans le uifile. Ce sont là des suppositions en démontant le package wordpress.
Par contre, comme la réponse dépend du type de NAS (champ arch), se baser sur un fichier statique n'est pas possible, sauf pour les packages indépendant de l'architecture.
Le script python suivant download et sauve la liste de packages, extrait les icons et les sauve dans un fichier au nom du package. En décommentant les deux dernipères lignes, les spk seront sauver en local.
import urllib
import urllib2
import json
import base64
url = "http://update.synology.com/packageupdate/getpackages.php"
data = {'unique' : "synology_ppc854x_408",
'timezone' : 'Brussels',
'language' : '123',
'arch' : 'ppc854x',
'major' : '3',
'minor' : '2',
'build' : '1922'}
resp = urllib2.urlopen (url, urllib.urlencode (data))
packages = json.load (resp)
json.dump (packages, open ('packages.json', 'wt'), indent=4)
for pkg in packages :
name = pkg['package']
icon = base64.b64decode (pkg['icon'])
open (name+'.png', 'w').write (icon)
#spk = urllib2.urlopen (pkg['link'])
#open (name+'.spk', 'w').writelines (spk.readlines ())