Au revoir Android. Bonjour Cyanogen!

Novembre 2012

En lisant la Newsletter de Novembre 2012 de la FSFE, je suis tombé sur un article qui clarifie les choses du côté de la garantie en cas de modification  du logiciel présent sur le téléphone. Celui-ci explique donc que si vous avez acheté votre appareil dans l’Union Européenne, vous conservez la garantie constructeur de 2 ans même si vous modifiez le côté logiciel. Une bonne nouvelle donc, qui me pousse à ne pas attendre la fin de ma garantie et à installer Cyanogen sur mon téléphone.

Après avoir assister à la conférence Libérez votre Android! de la FSFE lors des Journées du Logiciel Libre de Lyon, je me lance dans l’aventure le soir même. L’installation des logiciels nécessaires se passent plutôt bien, puis vient le premier problème: impossible de démarrer le téléphone en mode fastboot. En effet, l’opérateur a semble-t-il désactivé ce mode… Fin de l’histoire donc; pour l’instant, jusqu’à ce que je trouve une solution.

Juillet 2013

Après différentes recherches complémentaires et diverses lectures pendant ces quelques mois, j’ai fini par trouver une solution à mon problème. Seul petit bémol, celle-ci est payante mais a le mérite de fonctionner: WotanServer. Ce site propose différents services allant du désimlockage à la mise à jour du système. Dans mon cas, l’opération de désimlockage a également pour effet de débloquer le mode fastboot et donc de me permettre de commencer l’aventure Cyanogen.

Je commence donc par l’installation de l’environnement nécessaire sous Arch Linux grâce aux dépôts: yaourt -S fastboot  android-sdk-platform-tools android-udev  android-sdk-build-tools .

Je décide de choisir la version Nightly de Cyanogen pour être sûr de bénéficier de la correction de la faille Master Key touchant toutes les versions d’Android.

Pour la suite, il est donc nécessaire de passer en mode fastboot sur le téléphone, dans mon cas, pour un Xperia Mango SK17:

    • Éteindre le téléphone.
    • Maintenir le bouton volume haut.
    • Connecter le cable USB au téléphone après l’avoir connecter à l’ordinateur au préalable.

Le téléphone devrait avoir démarrer en mode fastboot et la led en haut à gauche s’allumer en bleue.

Enfin, il suffit de suivre le tuto d’installation sur le wiki. Celui-ci est bien détaillé et complet. Simplement, ne pas oublier d’utiliser sudo pour fastboot si besoin. La page Sony pour obtenir le code de déverrouillage du bootloader (Pas nécessaire avec la procédure WotanServer).

J’utilise donc Cyanogen depuis quelques jours maintenant, pas de difficulté particulière pour s’habituer au système. De nouvelles fonctionnalités intéressantes. Enfin, ajout du dépôt d’applications F-Droïd pour avoir accès à un choix d’applications libres.

Multiplicité des préférences

S’il y a bien une chose commune aux différents systèmes d’exploitation que j’utilise, c’est entre autres mon navigateur: Firefox. Lorsque l’on passe d’un OS à un autre, d’un PC à autre, les marques pages, eux par contre changent. Pas énormément, chacune de mes instances de navigateur possèdant les sites incontournables que je consulte régulièrement. Seulement plus le temps passe, plus les différences apparaissent… Le site consulté la veille en plein déplacement, n’est pas présent dans les marque-pages du PC de bureau qui vous attends chez vous.

Il arrive donc un moment où le besoin de synchronisation se fait sentir. Firefox possède en outre un système pour retrouver ses marque-pages depuis n’importe quel navigateur Firefox, mais cela implique de stocker ses données dans le cloud, les nuages. Je fais évidemment davantage confiance à Mozilla qu’aux autres pour la gestion des données personnelles, mais tout de même… Une partie de moi reste réticente à cette idée. Dans ce cas, pourquoi ne pas gérer le système de synchronisation soi-même?

La solution est relativement simple, installer son propre serveur de synchronisation de marque-pages. Par chance, Mozilla met à disposition les sources de son serveur de synchronisation ainsi qu’une documentation relativement complète. Les prérequis sont clairement identifiés et l’installation s’effectue aisément. Reste ensuite à effectuer la configuration minimale nécessaire au bon fonctionnement du service.

Le point qui m’a posé le plus de problème fut le paramètre:

[nodes]
fallback_node = http://localhost:5000/

La mauvaise configuration de celui-ci empêchait le service de fonctionner correctement. Après quelques recherches et plusieurs semaines à m’occuper d’autres choses, j’ai fini par trouver le paramètre correct dans ma situation. Ainsi, pour fonctionner normalement, ce paramètre doit absolument correspondre à l’adresse publique de votre service. Adresse que vous allez utiliser dans la configuration du service au niveau de Firefox. Une valeur correcte peut donc être http://www.nomdedomaine.fr:5000 par exemple, ou dans notre cas: http://www.unicoda.com:5000. Ajouter à cela un petit script pour démarrer automatiquement le serveur Sync au démarrage et le tour est joué.

 

Voir aussi:

http://www.docgreen.fr/2011/12/06/installer-son-propre-serveur-mozilla-sync-pour-firefox-saison-03-episode-final/

mt-daapd on Arch Linux

I’ve first discovered mt-daapd on an Ubuntu OS. Installation was really easy, same for configuration and I was able to stream my music to my Rhythmbox player. It was fine. But recently, I changed the OS and the server is now running Arch Linux. So I tried to reconfigure mt-daapd.

On Arch, mt-daapd can be found in the Arch User Repository (AUR). First we need to install it using yaourt:

yaourt -S mt-daapd

If everything goes right, mt-daapd should now be installed. I then created /etc/avahi/services/mt-daapd.service (maybe not needed, haven’t tried without):

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>

<name replace-wildcards="yes">%h</name>

<service>
<type>_daap._tcp</type>
<port>3689</port>
<txt-record>txtvers=1 iTShVersion=131073 Version=196610</txt-record>
</service>

<service>
<type>_rsp._tcp</type>
<port>3689</port>
<txt-record>txtvers=1 iTShVersion=131073 Version=196610</txt-record>
</service>

</service-group>

Restart avahi daemon:

systemctl restart avahi-daemon

Edit mt-daapd configuration file:

# $Id: mt-daapd.conf.templ 1660 2007-09-12 13:08:04Z rpedde $
#
# This is the mt-daapd config file.

<...>

#
# admin_pw (required)
#
# This is the password to the administrative pages
#

admin_pw = mt-daapd

<...>

#
# mp3_dir (required)
#
# Location of the mp3 files to share. Note that because the
# files are stored in the database by inode, these must be
# in the same physical filesystem.
#

mp3_dir = /path/to/music

#
# servername (required)
#
# This is both the name of the server as advertised
# via rendezvous, and the name of the database
# exported via DAAP. Also know as "What shows up in iTunes".
#

servername = MyServerName

<...>

Finally start mt-daapd:

systemctl start mt-daapd

And enable auto start:

systemctl enable mt-daapd

Web interface is now available at http://yourServerNameOrIp:3689.

Gitolite: Installation

Pour pouvoir travailler à plusieurs sur un projet, ou même tout seul, mais avec un gestionnaire de version et pas un Dropbox inutile, je me suis penché sur l’installation d’un serveur Git, associé à Gitolite pour la gestion des utilisateurs.
Alors, pourquoi se faire son propre serveur, quel intérêt? Bien sûr, Github nous propose déjà ses services, mais pour héberger ses projets persos, pas encore près pour Github car trop jeune, ou ses projets d’école, rien de tel que son installation à soi. Rajoutons à cela la satisfaction d’héberger les données sur son propre serveur, en sachant que nous les contrôlons.

Trêve de bavardage, on va tout d’abord générer une clé rsa avec:
ssh-keygen -t rsa
Donner à la clé votre nom d’utilisateur.

On envoie la clé sur le serveur:
scp ~/.ssh/id_rsa.pub user@serveur.exemple.org:/tmp/user.pub

On se connecte au serveur via ssh et on obtient les droits root:
ssh user@serveur.exemple.org
sudo su –

On commence par installer tous les paquets nécessaires:
aptitude install  git-all perl openssh-server gitolite

On ajoute un utilisateur gitolite avec:
adduser gitolite

On passe à l’utilisateur gitolite:
su – gitolite

Et on exécute le script d’installation de Gitolite:
gl-setup /tmp/user.pub

Retour sur le poste client.
On va récupérer le dépot gitolite-admin qui va nous permettre de donner des droits et d’ajouter des utilisateurs via Git:
git clone gitolite@serveur.exemple.org:gitolite-admin

A ce stade, si un message vous indique que le dépot n’est pas valable, une opération s’impose pour forcer l’utilisation de la clé précédemment générée lors de la connexion.
Dans le fichier .ssh/config sur le poste client:

Host gitolite
User gitolite
HostName 37.26.241.58
IdentityFile ~/.ssh/user
IdentitiesOnly yes

Cela devrait régler le problème, sinon une recherche sur le net s’impose.

On se place dans le dossier:
cd gitolite-admin

On édite le fichier de conf pour ajouter un dépot, par exemple test:
vim conf/gitolite.conf

repo    test
RW+    =   user

On commit:
git commit -a -m « Add test repository »

On peut ensuite cloner le dépôt test:
git clone gitolite@serveur.exemple.org:test

Ajouter un readme à celui-ci:
echo « Test Repo » > README

Faire un commit:
git commit -a -m « Initial commit »

Et faire le premier push:
git push origin master

Voilà, à ce stade, le serveur Git fonctionne parfaitement et je suis en mesure de créer des dépôts, ajouter des utilisateurs, faire des commits, des push, des pull, etc…
Une seule contrainte, paramétrer les clefs sur chacun des postes de développement.
Autre point à éclaircir, le paramétrage des clefs sous Windows (Beurk), pour ceux qui développent sur cette plateforme avec des outils propres à cet OS (Dev Ps Vita).
Prochaines étapes donc: documenter ce point pour les éventuels utilisateurs et étudier l’installation du Etherpad-Lite modifié de Framasoft pour compléter les outils disponibles.
Et bien sûr, proposer ces outils aux amis et connaissances ;).

J’allais oublier les liens qui peuvent servir:
Gitolite sur Github
Gitolite dans la doc Ubuntu
Concernant le problème de dépôts/clefs:
http://serverfault.com/questions/270688/gitolite-clone-not-working-as-intended
http://www.dotkam.com/2010/08/22/gitolite-does-not-appear-to-be-a-git-repository/

Git: Configuration

Les commandes utiles pour configurer Git lors de la première utilisation.

Activation des couleurs dans la console:

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

Configuration du pseudo et du mail:

git config --global user.name "pseudo"
git config --global user.email pseudo@exemple.org

Modification du fichier .gitconfig pour l’ajout d’alias:
vim ~/.gitconfig

[color]
diff = auto
status = auto
branch = auto
[user]
name = pseudo
email = pseudo@exemple.org
[alias]
ci = commit
co = checkout
st = status
br = branch

Pour voir tous les réglages de Git:

git config --list