Main menu:

Site search

Categories

mai 2013
L Ma Me J V S D
« avr    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Archive

Rooter le Samsung Galaxy S2 sous ICS

Rooter un smartphone comme le Samsung Galaxy S2, c’est lui adjoindre des droits root, des droits d’administration. Mais à quoi cela peut-il servir sur un smartphone ? Cela permet d’installer tout un tas d’applications qui ont besoin de ces droits root pour fonctionner (par exemple Titanium Backup qui fait un backup complet du mobile, icônes et positions comprises). C’est aussi nécessaire pour modifier le thème affiché et en règle générale pour toute modification agissant sur le file système.

Etant donné que mon Samsung Galaxy S2 est utilisé de manière professionnelle, je voulais une méthode permettant de le rooter qui ne soit pas trop intrusive. Pas question d’installer une ROM comme CyanogenMod par exemple. Il fallait aussi qu’elle soit sûre et simple avec possibilité de faire machine arrière dans le cas où je devrais supprimer les droits root.
Autant le dire tout de suite, il existe plein de méthodes différentes. Certaines très simples, d’autres nécessitant l’installation de nouveaux kernels au moyen d’un programme spécialisé. Dans les plus simples, il y a par exemple l’application UnlockRoot qui en un click vous promet de rooter votre smartphone. La seule chose qui me pose problème avec cette application est qu’elle impose l’installation des drivers USB, autrement dit l’installation de Samsung Kies et qu’elle ne fonctionne que sous Windows. Comme je suis sous linux, ça me pose évidemment un gros problème.

J’ai finalement opté pour la méthode décrite ici. Elle ne nécessite que le téléchargement de deux fichiers. Le reste du travail est fait par le Galaxy S2:

  1. Téléchargez CMW.zip et SU-Busybox-Installer.zip
  2. Connectez le Galaxy S2 via USB au PC en tant que stockage de masse. Menu Paramètres/Plus…/Utilitaires USB/ et cliquez sur le bouton Connecter le stockage au PC. Ensuite branchez le cordon USB.
  3. Placez ensuite les fichiers téléchargés ci-dessus sur la sdcard.
  4. Eteignez votre smartphone et rallumez-le en mode Eecovery en appuyant simultanément sur les touches Home + Volume Up + Power.
  5. Lorsque le menu apparaît, choisissez Apply update from external storage et sélectionnez le fichier CWM.zip. Un nouveau menu doit apparaître après quelques instants.
  6. Dans le menu de CWM recovery, choisissez Install zip from sdcard. De nouveau, sélectionnez dans la liste le fichier SU-Busybox-Installer.zip
  7. Il suffit ensuite de rebooter le smartphone pour terminer l’installation en choisissant dans le menu Reboot Device.

Une fois votre Galaxy S2 rebooté, il est rooté. Pour vous en convaincre, installez une application comme par exemple Solid Explorer qui est un file Manager et qui vous donne accès, quand le smartphone est rooté, à tout le file système.

Il est possible de supprimer l’accès root en téléchargeant le fichier SU-Uninstaller-Signed.zip et en l’installant comme ci-dessus. Refaites toute la procédure et remplacez au point 6 le fichier SU-Busybox-Installer.zip par SU-Uninstaller-Signed.zip.

Update du 13 janvier 2013:

Un des contributeurs au forum XDA vient de publier un petit soft qui permet de rooter le Galaxy S2 et qui est compatible avec toutes les versions d’Android, de la 2.2 à la 4.1. Seul inconvénient, il n’est disponible que pour Windows. Son nom: Unlock Root 3. Voir le tutoriel ici. Le soft est téléchargeable à cette adresse.

Python: les itérateurs et générateurs

Pour une petite application que j’avais décidé d’écrire en Python, j’avais besoin de parcourir des chaînes de caractères en prenant les caractères 3 par 3. En tant qu’amateur de C++, ma première idée était forcément de créer une boucle for du genre de celle qu’on écrit en C++:

std::string my_string("azertyuiop");
for(unsigned int i  = 0; i < my_string.length(); i+=3)
{
  std::cout << my_string.substr(i, 3) << std::endl;
}

Cette façon d’écrire une boucle n’est pas très compliquée à transcrire en Python. On peut utiliser la fonction range() à laquelle on peut passer des paramètres dont le début, la fin et le ‘pas’ (step) de la boucle. Cela donne quelque chose comme:

my_string = "azertyuiop"
for i in range(0, len(my_string), 3):
  print i, t[i:i + 3]

C’est considéré comme une méthode pas très pythonique. On préférera utiliser un itérateur ou un générateur.
Voyons brièvement et basiquement de quoi il s’agit.

Les itérateurs

Les itérateurs sont des objets permettant de parcourir facilement des containers que ce soient des strings – qui ne sont que des containers de caractères – des listes ou des containers d’objets. Par exemple, pour récupérer tous les caractères constituant une chaîne de caractères, on procède comme ceci:

for c in my_string:
  print c

C’est très simple à utiliser.

Il est très facile aussi de créer soi-même un itérateur de façon à ce qu’il se plie à ce que l’on veut faire. Pour cela, il suffit de créer un objet qui contient deux méthodes: __iter__() et next().
__iter__() est appelé implicitement au début de la boucle et doit renvoyer un objet itérateur.
next() doit lever une exception StopIteration quand on est à la fin de la boucle et qu’il n’y a plus d’éléments à traiter.

Dans le cas d’un itérateur qui renvoie les caractères trois par trois, l’itérateur ressemblerait à ceci:

class triplet:
  def __init__(self, data):
    self.data = data
    self.count = 0
    self.length = len(data)
  
  def __iter__(self):
    return self
    
  def next(self):
    if self.count > len(self.length):
      raise StopIteration
    else:
      result = self.data[self.count:self.count+3]
      self.count += 3
      return result

Et on peut l’utiliser dans une boucle de cette façon:

test = triplet("azertyuiop")
     for item in test:
       print item

Les générateurs

Cette méthode utilisant un objet itérateur me plaît bien. C’est clair, efficace et très OOP.
Il existe une autre méthode qui est très simple et qui utilise les principes de l’itérateur même si c’est bien caché. Il s’agit des fonctions générateurs. Il s’agit en fait d’une fonction qui retourne un itérateur qui, lui-même, peut être utilisé pour contrôler une boucle par exemple.
Le simple fait d’utiliser le mot-clef yield fait de la fonction une fonction générateur. Lorsque ce mot clef est rencontré, il retourne la valeur en argument et l’execution est suspendue jusqu’à la prochaine itération.

Dans notre cas, cela donne ceci:

def triplet(str):
  current=0
  while current <= len(str):
    yield str[current:current+3]
    current += 3

Et on l’utilise dans une boucle comme d’habitude:

for t in triplet("azertyuiop"):
  print t

Comme on l’a vu brièvement ici, les itérateurs et les générateurs sont très simple d’emploi et on les retrouve très fréquemment dans les codes écrits en Python. Je vous renvoie à la documentation si vous voulez en savoir plus.

ACTA suite et fin

Aujourd’hui, le mercredi 4 juillet 2012 est un grand jour. Le parlement européen a définitivement enterré ACTA par un vote sans appel: 478 voix contre, seulement 39 pour. C’est sans appel.
Merci à tout ceux qui ont, avec leur faible moyen, fait pression sur les élus pour qu’ils votent contre ACTA. A petite échelle, le pouvoir a été rendu au peuple tant je suis persuadé que sans la mobilisation sur internet, le résultat eut été tout autre.

J’avais attiré votre attention dans un autre article sur le peu de réponses obtenues lors de l’interrogation par email des élus belges au parlement. Je n’avais reçu à l’époque que deux réponses dont une franchement favorable au décret.
Aujourd’hui, un des députés (Bart Staes – Groene (écolo)) m’a fait parvenir le mail suivant:

STAES Bart bart.staes@europarl.europa.eu via leunen.com
16:04 (4 hours ago)

to michel

Dear,

Thank you very much for your email expressing your concerns about ACTA.
Today the European Parliament voted on this agreement and I am one of the 478 that voted against!

Cela ressemble fort à de la récupération mais ne gâchons pas notre plaisir quand même.

ACTA n’est plus mais gardons à l’esprit que ceux qui veulent restreindre nos libertés vont revenir à la charge avec un autre décret . Restons vigilants.

Ubuntu 12.04

Ubuntu 12.04 est sortie il y a quelques jours. Je l’ai installée de façon à pouvoir la tester. Après l’avoir utilisée pendant 4 ou 5 jours, voici mon opinion.

Tout d’abord, voyons quelles sont les nouveautés de cette release:

  • Plus grande stabilité d’Unity
  • Mise à jour des logiciels
  • HUD (Head Up Display)

Quoi ? C’est tout ? Ben oui. Pas de grandes différences avec la version 11.10.
On remarque quand même qu’Unity est mieux fini. Mais il n’y a toujours presque pas de possibilités de configurer Unity sans devoir passer par un programme externe. Toujours pas d’options pour se débarrasser de cet horrible menu global tant décrié ni de ces overlay scrollbars que je trouve fort peu pratiques ni esthétiques. D’ailleurs, dans l’ensemble, Unity est toujours aussi peu esthétique.
Le HUD me semblait au départ une bonne idée. J’étais enthousiaste lors de l’annonce faite par Mark Shuttleworth. Mais à l’usage, il semble bien que beaucoup de travail soit encore nécessaire avant que ce ne soit réellement utilisable.
Signalons, quand même, que Gnome-Shell est bien mieux intégré que dans la version 11.10.

Du côté des points négatifs, j’ai l’impression que cette version se charge moins rapidement que la précédente.
Le module WiFi Intel présent sur mon PC n’a jamais été bien supporté mais avec cette nouvelle version du Kernel, les déconnexions sont encore plus fréquentes et j’ai dû désactivé, dans mon routeur wifi, l’usage de la norme 802.11n qui empêchait mon PC de se connecter.
J’utilise Conky pour afficher en permanence certains paramètres de mon PC sur le bureau. Avec Ubuntu 12.10, Conky segfaulte au démarrage:

$ dmesg | grep -i conky
[   94.587959] conky[2865]: segfault at 0 ip b70f1b84 sp bff6f228 error 4 in libc-2.15.so[b6fac000+19f000]

Donc, pas non plus de points négatifs marquants. On a l’impression qu’on aurait pu se passer de cette version.

Customisation d’Unity

Si vous voulez modifier Unity manuellement, vous devrez jouer avec les options dans gconf ou dconf. Pas simple pour un débutant à qui s’adresse, en principe, la distribution. Heureusement, il existe essentiellement 3 programmes, utilisant une interface graphique, permettant de modifier Unity. Il s’agit de Ubuntu-Tweak, MyUnity et Unsettings. Ce dernier porte particulièrement bien son nom. Ils sont tous disponibles sous forme de PPA.
Voici les commandes pour les installer:

sudo add-apt-repository ppa:diesch/testing
sudo apt-get update
sudo apt-get install unsettings

sudo add-apt-repository ppa:myunity/ppa
sudo apt-get update
sudo apt-get install myunity

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

Si comme moi, l’orange commence à vous indisposer, je vous donne, ci-dessous, la commande nécessaire pour modifier la couleur de sélection. Cette couleur est celle qui apparaît quand vous cliquez sur un fichier dans Nautilus ou quand vous sélectionnez un élément dans un menu par exemple:

gsettings set org.gnome.desktop.interface gtk-color-scheme 'selected_bg_color:#77746c;'

Remplacez la couleur par celle qui vous agrée.

En conclusion, cette version n’apporte rien de définitif par rapport à la version précédente. On a l’impression que seuls des bugs ont été corrigés.
Canonical n’a-t-il pas peur que les utilisateurs perdent patience à force d’attendre une version réellement utilisable, agréable et configurable ?

Treading on Python – Volume 1: foundations

Treading on Python
Ca faisait longtemps que je ne vous avais pas présenté un livre. Celui-ci traite du langage de programmation Python et est écrit par Matt Harisson, personnage bien connu dans la sphère des utilisateurs de Python.
Quand je dis que je vous présente un livre, je dois préciser qu’il s’agit en fait d’un ebook Kindle Edition vendu par Amazon.

Le livre présente aux lecteurs les bases du langage Python. Il s’adresse en ce sens aux débutants, à ceux qui ont peu ou pas de connaissance de la programmation. Pour les autres, il reste très agréable à lire car écrit dans un style très clair et facile à appréhender et je gage que même ceux qui ont une certaine pratique de Python y trouveront encore quelques points intéressants.
Les sujets abordés dans ce livre vont de la création de variables aux classes en passant par les exceptions, les listes, les itérateurs, les dictionnaires etc… Il présente aussi les librairies, les modules et les packages.
Je ne retranscris pas ici la table des matières parce que c’est inutile. on retrouve dans ce livre tout ce qui est nécessaire pour écrire un programme en Python.

Vu le sous-titre du livre, je suppose qu’il y aura dans le futur un second volume et c’est tant mieux parce que non seulement ce livre nous donne les bases du langage mais il est aussi truffés de « tips » (astuces en anglais) pour faire les choses directement de la bonne façon. J’ai trouvé ces « tips » très pertinents pour partir directement du bon pied dans l’apprentissage du langage.

En conclusion, même si, vous l’aurez deviné, ce livre est écrit en anglais, il n’est pas difficile à comprendre et tout à fait recommandable. Si vous voulez apprendre Python, achetez-le, vous ne le regretterez pas. De plus, le format ebook permet de le lire depuis un Kindle, une tablette ou un smartphone n’importe où. Pour ma part, je l’ai lu lors de mes trajets en train sur mon Samsung Galaxy S2 et je ne sais pas pourquoi mais ceux-ci m’ont paru plus court… J’attends le volume suivant avec impatience.

ACTA: nos eurodéputés aux abonnés absents

Une fois n’est pas coutume, ceci est un billet d’humeur et même de mauvaise humeur. Et de plus, c’est un billet politique sur ACTA. Mais rassurez-vous, je ne vais pas énumérer en détail tous les défauts de cet accord, juste les rappeler brièvement.

Pour ceux qui reviennent d’un croisière sur Mars et qui n’auraient pas entendu parler d’ACTA, il s’agit d’un accord commercial anti-contrefaçon négocié en secret depuis 5 ans et qui est discuté pour le moment au parlement européen. Ce dernier devra ensuite être soumis au vote et si cet accord est accepté, chaque état membre devra encore le ratifier avant qu’il ne puisse être appliqué. La route est encore longue mais il ne faut pas baisser les bras et c’est maintenant qu’il faut manifester son refus de cet accord.
En gros, voici les points qui dans cet accord posent problème:

  • Il a été négocié en secret sans possibilité d’en analyser le contenu. C’est une fuite qui l’a rendu public.
  • Il est anti-démocratique dans le sens où des mesures de contrôle et de censure peuvent être prises sans passer par une décision de justice. Il tend aussi à limiter la liberté d’expression et il échappe à tout contrôle démocratique a postériori.
  • Il est un danger pour le domaine de la santé en ce sens que les médicaments génériques pourraient se voir traités comme des contrefaçons.
  • Cet accord bypasse les organismes officiels qui sont chargés actuellement des problèmes de copyright et de propriété intellectuelle.
  • Il est un danger pour l’open source et en général pour la neutralité du Net.

Il y a plusieurs façons de manifester son désaccord avec ACTA: en parler sur son blog en est une. Se joindre aux manifestations qui ont eu lieu et qui seront encore organisées en est une autre. Vous pouvez aussi écrire à vos élus pour leur signaler vos craintes. C’est ce que j’ai fait. Ce que j’ai tenté de faire devrais-je dire plutôt. Et c’est l’objet de ma mauvaise humeur.

J’ai contacté tous les eurodéputés belges, ceux qui font partie d’une des commissions et qui doivent donner leur avis sur cet accord. J’ai contacté les autres aussi. J’ai contacté les partis politiques belges pour connaître leur position sur ACTA. Au moins ceux pour lesquels celle-ci n’était pas claire. Il est evident que le MR – parti de droite – n’est pas opposé à ACTA. De même, ECOLO, lui, y est clairement opposé.
J’ai également contacté le premier ministre Elio di Rupo pour avoir des éclaircissements sur la position du gouvernement.

J’ai contacté dans le désordre:

  • Louis Michel – MR (droite)
  • Ivo Belet – CD & V (centre)
  • Philippe Lamberts – ECOLO
  • Frédérique Ries – MR (droite)
  • Kathleen Van Brempt – Sp.A. (gauche)
  • Véronique De Keyser – PS (gauche)
  • Bart Staes – Groene (écolo)
  • Frank Vanhecke – Vlaams Belang (extrème droite)
  • Elio di Rupo – PS (gauche)
  • Marc Tarabella – PS (gauche)
  • Frédéric Daerden – PS (gauche)
  • Anne Delvaux – CDH (centre)
  • Mathieu Grosh – CSP (centre)

Il s’agit donc d’un échantillonnage assez complet de la scène politique belge.
Ce qui motive ma mauvaise humeur, c’est le peu de réponses reçues. Seul deux des eurodéputés m’ont répondu. Elio di Rupo, lui, m’a envoyé une réponse de pure politesse:

« …C’est avec attention que j’ai pris connaissance de votre message.
Je le transmets aussitôt à mon équipe pour examen et suivi… »

Inutile de dire que je n’ai plus eu de nouvelles…

Les deux eurodéputés qui m’ont répondu sont Louis Michel Et Anne Delvaux.
Louis Michel, comme je m’y attendais de la part d’un membre d’un parti de droite est favorable à ACTA. Il m’écrit d’ailleurs:

« …Je respecte votre point de vue même si je crois que certains de vos arguments sont excessifs. Je ne partage pas vos conclusions et je pense que je voterai en faveur du projet… »

Ca a le mérite d’être clair!

Anne Delvaux m’a envoyé un mail détaillé où elle explique que mes inquiétudes sont sans doute non-fondées mais elle ajoute:

« …je déplore la façon dont se sont déroulées les négociations de l’accord et je suis d’avis qu’il serait constructif de mener une évaluation plus complète des effets que l’ACAC pourrait avoir sur les droits fondamentaux, notamment la liberté d’expression et le droit à la vie privée dans l’Union européenne et au-delà… »

C’est un bon début. Depuis, la Commission Européenne a demandé l’avis de la Cour de Justice de l’Union Européenne sur ACTA et les libertés fondamentales.

Je remercie donc les personnes qui ont pris la peine de me répondre ne fut-ce que par politesse. Mais dix sur treize qui ne prennent même pas la peine de m’envoyer un accusé de réception, je trouve que c’est une proportion énorme. Aurait-on raison de croire qu’il y a un gouffre béant entre les préoccupations des citoyens et celles des élus ?

Mais comme je le disais au début de ce billet, ce n’est pas parce que je n’ai pas reçu de réponse de tous que je vais abandonner. SOPA au états-Unis, Hadopi, ACTA font partie du même mouvement qui vise à limiter nos libertés. Je suis persuadé, à voir les attaques que la liberté d’expression doit endurer ou que la neutalité du Net doit subir, qu’il est important de réagir dès maintenant.

Et pour terminer, je vous invite à lire les articles consacrés à ACTA par la quadrature du Net, à lire l’avis de Jacques Attali et ce qui est un bon résumé des risques d’ACTA.