mercredi 5 octobre 2011

Introduction au développement d'applications Qt sur terminaux Nokia

Cet article est le premier d'une longue série sur l'écosystème des applications mobiles pour terminaux Nokia ; une attention particulière sera mise sur la technologie de développement Qt. Aujourd'hui l'offre de Nokia se compose d'un ensemble de terminaux équipés de différents systèmes d'exploitation (OS) et exécutant des applications développées avec différentes technologies.

Les systèmes d'exploitation mobiles équipant les terminaux Nokia sont au nombre de quatre :
- Symbian
- Maemo
- Meego
- Windows Phone 7.1
La technologie de développement applicative Qt permet de cibler les terminaux Symbian et les terminaux Linux (Maemo / Meego). Il n'est pas possible et il n'est pas prévu de rendre les applications Qt compatibles avec Windows Phone 7.1, ce dernier disposant des ses propres technologies de programmation interprétées (Silverlight, XNA).

Nokia met gratuitement à disposition des développeurs un certain nombre de ressources techniques (outils, documentation, exemples de code, forum, wikis) sur le site http://www.developer.nokia.com et vous invite à créer un compte de développeur afin de vous tenir au courant des dernières nouveautés et événements techniques. La création d'un compte développeur Nokia est gratuite.

























Attention : un compte développeur Nokia ne permet pas de publier une application sur le Nokia store. Pour débuter le développement d'application Qt, vous devrez télécharger la dernière version du SDK Qt accessible depuis le site.

Pour publier une application sur le Nokia store, Nokia vous invite à créer un compte de publication (publisher en anglais) sur le site http://info.publish.ovi.com/ (bouton « Register now »). Le coût est de 1€ symbolique et vous pouvez publier autant d’applications gratuites ou payantes que vous le désirez, et ce, sans aucune limite dans le temps.

La procédure de publication est décrite sur le site suivant :


 http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml

Je vous invite à suivre la rubrique « Symbian and Qt apps ».

En résumé, il vous faut :
1. Créer un compte « publisher » : http://info.publish.ovi.com/
2. Envoyer un email à publishtoovi.support@nokia.com qui contiendra une liste d’IMEIs (jusqu’à 5) pour vos téléphones de tests.
Voici un exemple de mail type :

Hi
I have a publisher OVI account with the following login : "mylogin" and I have accepted the Terms and conditions. The name of my company is "My Company".
Can you please send to me :
  1. the developer certificate/key files
  2. the root certificate installer file
  3. a list of 5 UIDs
The IMEI of testing devices are listed below:
IMEI 1 : 3xxxxxxxxxxxxxxxxxxxxxx
IMEI 2 : 3xxxxxxxxxxxxxxxxxxxxxx
etc


Best regards

En retour, le support PublishToOVI vous renverra :
- Une paire de fichiers clef/certificat de signature numérique
- Un fichier sis d’installation de certificat root
- 5 UIDs

Notes :
  1. Pour éviter tout stress, pensez à envoyer cet email en début de projet car le temps de traitement de votre demande peut prendre quelques jours
  2. Il est tout à fait possible de démarrer son projet sans disposer des UID, certificats etc ; vous pouvez utiliser un UID de test généré par Qt Creator et une signature auto-générée ("self-signed package" en anglais)
Qu'est-ce qu'un UID ?

Chaque application Nokia possède un identifiant unique dénommé UID représenté par un nombre hexadécimal sur 4 octets. L'unicité est garantie par Nokia ce qui explique pourquoi Nokia vous renvoie une liste de 5 UIDs. Ces identifiants sont donc des identifiants à utiliser pour les versions de prodution.
Lorsque de la création de votre projet sous Qt Creator, le wizard vous proposera une valeur de UID de test (ici la valeur est 0xE7752B1C) :


Vous pouvez remplacer cette valeur avec l'un des 5 UIDs fournis par Nokia à ce stade de création de projet ou le faire plus tard en éditant la valeur symbian:TARGET.UID3 du fichier projet (extension .pro)

Certificat et signature - Symbian

Afin de garantir l'intégrité et la non malveillance des applications, Nokia impose aux développeurs de signer numériquement leurs applications ; autrement dit une application non signée (i.e. non certifiée) ne peut pas s'installer sur un terminal Nokia. La signature peut être effectuée depuis Qt Creator ou depuis la ligne de commande. Il existe différents types de certification basés sur le modèle de sécurité SymbianSigned : un jeu de permissions est associé à chaque type de certification:


1. Self-signed

Cette certification est gérée automatiquement par Qt Creator ; une application Qt "self-signed" peut accéder aux permissions suivantes :
  • SurroundingsDD : accès aux driver audio
  • Read/WriteUserData : accès aux données privées de l'utilisateur (calendrier, contacts, etc
  • NetworkServices : réseau, téléphonie, messagerie
  • LocalServices : connectivité locale (Bluetooth, infrarougen NFC etc)
  • UserEnvironment : capture d'information de l'utilisateur et son environnement ( Caméra, audio par exemple)
  • Location : service de localisation (GPS)
Une telle application n'est pas considéré comme fiable par le terminal Symbian ce qui explique pourquoi un message d'avertissement est affiché à l'utilisateur lors de l'installation
 
2. Express signed

Cette certification correspond au niveau de sécurité octroyé par la certification PublishToOvi (et les certificat/clef de développement). Elle couvre, en plus des permissions précédentes, les permissions suivantes :
  • SwEvent : permet de simuler des événements de type saisie clavier ou tactile, d'envoyer des messages
  • ProtServ : execution en mode prioritaire
  • PowerMgmt : permet de tuer des process, de passer le terminal en standby
  • ReadDeviceData : accès en lecture aux préférences systèmes, aux données de réseaux (cellID), IMEI
  • WriteDeviceData : accès en écriture des préférences systèmes
  • TrustedUI : affichage en mode "trusted"
3. Certified signed

Cette certification correspond  à un niveau de sécurité encore plus important nécessitant des tests de effectués par une société tierce de confiance (on parle de Testing House). Elle couvre les permissions additionnelles suivantes :
  • NetworkControl : permet d'accéder à des fonctions réseaux avancées (VoIP, device management, VPN, etc)
  • MultimediaDD
  • CommDD
  • DiskAdmin
Le certificat de développement délivré par OVI est un certificat de type "Express Signed". Ce certificat est valable 3 mois. Au bout de trois mois, il devient inutilisable : il vous faut alors contacter le support OVI pour un renouvellement. Si pour une raison x ou y, vous avez besoin en urgence d'un certificat et que vous ne pouvez pas attendre le délai de réponse OVI, il est possible de récûpérer un certificat par le biais du site https://www.symbiansigned.com/ ; au préalable vous devrez créer un compte (c'est gratuit). Vous pourrez alors générer un certificat et y associer un nombre limité d'IMEIs de test (jusqu'à 10 IMEIs).

Penser également à choisir un UID de test et à le reporter dans votre fichier .pro (onlget Manage UIDs) :

Ci-dessous les UIDs de test seront compris entre 0xA00118DA et 0xA00118DE.

Certificat et signature - Meego / Maemo

Aucune signature n'est requise pour les applications Qt ciblant ces OS

Format de binaire

Votre application symbian est représentée par un fichier d'extension ".sis" que vous devrez uploader sur l'interface web de publication ovi. Les applications ciblant Maemo et Meego sont packagées au format debian (.deb)

Conclusion

Pour développer une appli Qt sur téléphone Nokia, rien de plus simple :
  1. Vous créez un compte "Developer Nokia"
  2. Vous installez le sdk Qt et vous pouvez commencer le développement
  3. Vous créez un compte "Publisher" pour un 1€ et vous soumettez votre application