Archives par étiquette : Linux

Installer Google Play sur un smartphone Auchan du type Lazer X40i

Avant de brancher le téléphone lister les périphériques USB connectés à votre PC.

Exemple sur ma machine :

jylenhof@portable-jylenhof:~$ lsusb
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 002: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse (M-BT58)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0408:2fb1 Quanta Computer, Inc.
jylenhof@portable-jylenhof:~$

Branchez votre smartphone sur votre ordinateur, normalement une ligne supplémentaire devrait apparaître (ici en rouge italique gras) :

jylenhof@portable-jylenhof:~$ lsusb
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 002: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse (M-BT58)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0408:2fb1 Quanta Computer, Inc.
Bus 002 Device 010: ID 0a5c:e681 Broadcom Corp.
jylenhof@portable-jylenhof:~$

Vérifiez que le package « android-tools-adb » est installé sur votre PC Linux, sinon installez le.

Passons maintenant en root sur votre PC (vous pourriez avoir à taper votre password) :

jylenhof@portable-jylenhof:~$ sudo su –
root@portable-jylenhof:~#

Lancez alors la commande « adb devices » pour lister les appareils reconnus par ADB…

root@portable-jylenhof:~# adb devices
List of devices attached

root@portable-jylenhof:~#

Le téléphone n’est pas vu. Pour qu’il soit vu il faut ajouter un fichier /root/.android/adb_usb.ini

root@portable-jylenhof:~# cd .android/
root@portable-jylenhof:~/.android# ls
adbkey  adbkey.pub
root@portable-jylenhof:~/.android# vi adb_usb.ini

Le fichier doit contenir la ligne suivante :

0x0a5c

 

Le téléphone est vu désormais :

root@portable-jylenhof:~/.android# adb kill-server

 

root@portable-jylenhof:~# adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
0123456789ABCDE    device

root@portable-jylenhof:~#

Télécharger le fichier gapps-ics-20120429-signed.zip du site http://goo.im/gapps/gapps-ics-20120317-signed.zip

Le dézipper… dans un répertoire temporaire créé pour l’occasion :

root@portable-jylenhof:/home/jylenhof/Téléchargements# mkdir toto
root@portable-jylenhof:/home/jylenhof/Téléchargements# cd toto/
root@portable-jylenhof:/home/jylenhof/Téléchargements/toto# unzip ../gapps-ics-20120429-signed.zip

Archive:  ../gapps-ics-20120429-signed.zip
signed by SignApk
inflating: META-INF/MANIFEST.MF
inflating: META-INF/CERT.SF
inflating: META-INF/CERT.RSA
inflating: META-INF/com/google/android/update-binary
inflating: META-INF/com/google/android/updater-script
inflating: install-optional.sh
inflating: optional/face/addon.d/71-gapps-faceunlock.sh
inflating: optional/face/app/FaceLock.apk
inflating: optional/face/lib/libfacelock_jni.so
inflating: optional/face/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/left_eye-y0-yi45-p0-pi45-r0-ri20.2d_n2/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/left_eye-y0-yi45-p0-pi45-rn7-ri20.2d_n2/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/left_eye-y0-yi45-p0-pi45-rp7-ri20.2d_n2/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/nose_base-y0-yi45-p0-pi45-r0-ri20.2d_n2/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/nose_base-y0-yi45-p0-pi45-rn7-ri20.2d_n2/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/nose_base-y0-yi45-p0-pi45-rp7-ri20.2d_n2/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/right_eye-y0-yi45-p0-pi45-r0-ri20.2d_n2/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/right_eye-y0-yi45-p0-pi45-rn7-ri20.2d_n2/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/right_eye-y0-yi45-p0-pi45-rp7-ri20.2d_n2/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/yaw_roll_face_detectors.3/head-y0-yi45-p0-pi45-r0-ri30.4a/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/yaw_roll_face_detectors.3/head-y0-yi45-p0-pi45-rn30-ri30.5/full_model.bin
inflating: optional/face/vendor/pittpatt/models/detection/yaw_roll_face_detectors.3/head-y0-yi45-p0-pi45-rp30-ri30.5/full_model.bin
inflating: optional/face/vendor/pittpatt/models/recognition/face.face.y0-y0-22-b-N/full_model.bin
inflating: optional/noneon/lib/libfacelock_jni.so
inflating: optional/noneon/lib/libflint_engine_jni_api.so
inflating: optional/noneon/lib/libfrsdk.so
inflating: optional/noneon/lib/libgcomm_jni.so
inflating: optional/noneon/lib/libpicowrapper.so
inflating: optional/noneon/lib/libspeexwrapper.so
inflating: optional/noneon/lib/libvideochat_jni.so
inflating: optional/noneon/lib/libvideochat_stabilize.so
inflating: optional/noneon/lib/libvoicesearch.so
inflating: system/addon.d/70-gapps.sh
inflating: system/app/ChromeBookmarksSyncAdapter.apk
inflating: system/app/GalleryGoogle.apk
inflating: system/app/GenieWidget.apk
inflating: system/app/GoogleBackupTransport.apk
inflating: system/app/GoogleCalendarSyncAdapter.apk
inflating: system/app/GoogleContactsSyncAdapter.apk
inflating: system/app/GoogleFeedback.apk
inflating: system/app/GoogleLoginService.apk
inflating: system/app/GooglePartnerSetup.apk
inflating: system/app/GoogleQuickSearchBox.apk
inflating: system/app/GoogleServicesFramework.apk
inflating: system/app/GoogleTTS.apk
inflating: system/app/MarketUpdater.apk
inflating: system/app/MediaUploader.apk
inflating: system/app/NetworkLocation.apk
inflating: system/app/OneTimeInitializer.apk
inflating: system/app/Phonesky.apk
inflating: system/app/SetupWizard.apk
inflating: system/app/Talk.apk
inflating: system/app/VoiceSearch.apk
inflating: system/etc/g.prop
inflating: system/etc/permissions/com.google.android.maps.xml
inflating: system/etc/permissions/com.google.android.media.effects.xml
inflating: system/etc/permissions/com.google.widevine.software.drm.xml
inflating: system/etc/permissions/features.xml
inflating: system/framework/com.google.android.maps.jar
inflating: system/framework/com.google.android.media.effects.jar
inflating: system/framework/com.google.widevine.software.drm.jar
inflating: system/lib/libfilterpack_facedetect.so
inflating: system/lib/libflint_engine_jni_api.so
inflating: system/lib/libfrsdk.so
inflating: system/lib/libgcomm_jni.so
inflating: system/lib/libpicowrapper.so
inflating: system/lib/libspeexwrapper.so
inflating: system/lib/libvideochat_jni.so
inflating: system/lib/libvideochat_stabilize.so
inflating: system/lib/libvoicesearch.so
inflating: system/tts/lang_pico/de-DE_gl0_sg.bin
inflating: system/tts/lang_pico/de-DE_ta.bin
inflating: system/tts/lang_pico/es-ES_ta.bin
inflating: system/tts/lang_pico/es-ES_zl0_sg.bin
inflating: system/tts/lang_pico/fr-FR_nk0_sg.bin
inflating: system/tts/lang_pico/fr-FR_ta.bin
inflating: system/tts/lang_pico/it-IT_cm0_sg.bin
inflating: system/tts/lang_pico/it-IT_ta.bin
root@portable-jylenhof:/home/jylenhof/Téléchargements/toto#

Les apk installables sont alors visibles :

root@portable-jylenhof:/home/jylenhof/Téléchargements/toto/system/app# ls
ChromeBookmarksSyncAdapter.apk  GoogleServicesFramework.apk
GalleryGoogle.apk               GoogleTTS.apk
GenieWidget.apk                 MarketUpdater.apk
GoogleBackupTransport.apk       MediaUploader.apk
GoogleCalendarSyncAdapter.apk   NetworkLocation.apk
GoogleContactsSyncAdapter.apk   OneTimeInitializer.apk
GoogleFeedback.apk              Phonesky.apk
GoogleLoginService.apk          SetupWizard.apk
GooglePartnerSetup.apk          Talk.apk
GoogleQuickSearchBox.apk        VoiceSearch.apk
root@portable-jylenhof:/home/jylenhof/Téléchargements/toto/system/app#

Poussez les packages sur le téléphone portable :

root@portable-jylenhof:/home/jylenhof/Téléchargements/toto# adb push system/app/ /data/local/tmp/
push: system/app/GoogleFeedback.apk -> /data/local/tmp/GoogleFeedback.apk
push: system/app/VoiceSearch.apk -> /data/local/tmp/VoiceSearch.apk
push: system/app/GalleryGoogle.apk -> /data/local/tmp/GalleryGoogle.apk
push: system/app/MediaUploader.apk -> /data/local/tmp/MediaUploader.apk
push: system/app/GenieWidget.apk -> /data/local/tmp/GenieWidget.apk
push: system/app/SetupWizard.apk -> /data/local/tmp/SetupWizard.apk
push: system/app/ChromeBookmarksSyncAdapter.apk -> /data/local/tmp/ChromeBookmarksSyncAdapter.apk
push: system/app/GoogleQuickSearchBox.apk -> /data/local/tmp/GoogleQuickSearchBox.apk
push: system/app/GoogleTTS.apk -> /data/local/tmp/GoogleTTS.apk
push: system/app/OneTimeInitializer.apk -> /data/local/tmp/OneTimeInitializer.apk
push: system/app/NetworkLocation.apk -> /data/local/tmp/NetworkLocation.apk
push: system/app/GoogleLoginService.apk -> /data/local/tmp/GoogleLoginService.apk
push: system/app/Talk.apk -> /data/local/tmp/Talk.apk
push: system/app/GoogleCalendarSyncAdapter.apk -> /data/local/tmp/GoogleCalendarSyncAdapter.apk
push: system/app/GoogleContactsSyncAdapter.apk -> /data/local/tmp/GoogleContactsSyncAdapter.apk
push: system/app/Phonesky.apk -> /data/local/tmp/Phonesky.apk
push: system/app/GoogleServicesFramework.apk -> /data/local/tmp/GoogleServicesFramework.apk
push: system/app/GoogleBackupTransport.apk -> /data/local/tmp/GoogleBackupTransport.apk
push: system/app/GooglePartnerSetup.apk -> /data/local/tmp/GooglePartnerSetup.apk
push: system/app/MarketUpdater.apk -> /data/local/tmp/MarketUpdater.apk
20 files pushed. 0 files skipped.
3285 KB/s (23496313 bytes in 6.983s)
root@portable-jylenhof:/home/jylenhof/Téléchargements/toto#

Et il suffit juste d’une commande pour passer root sur le téléphone (et oui sans rootage nécessaire)

root@portable-jylenhof:/home/jylenhof/Téléchargements/toto# adb root
restarting adbd as root
root@portable-jylenhof:/home/jylenhof/Téléchargements/toto# adb shell

root@android:/ #

Pour le vérifier il suffit de faire un « id » :
root@android:/ # id
uid=0(root) gid=0(root)
root@android:/ # ls /
acct
cache
config
d
data
default.prop
dev
etc
init
init.common.rc
init.goldfish.rc
init.log.rc
init.rc
init.rheastone.rc
init.rheastone_base.rc
init.usb.rc
mnt
proc
root
sbin
sdcard
sys
system
ueventd.goldfish.rc
ueventd.rc
ueventd.rheastone.rc
vendor

Maintenant déplaçons les fichiers apk au bon endroit :
root@android:/ # mount -o remount,rw /system                                  
root@android:/ # busybox cp /data/local/tmp/*.apk /system/app

root@android:/system/app # exit
root@portable-jylenhof:/home/jylenhof/Téléchargements/toto#

Et ensuite rebootez votre téléphone… il devrait installer de lui même les Google Apps

 

Share

ubuntu sur une tablette avec un caribou avec un pipe qui fonctionne

Lorsque j’avais installé ma tablette WinPad100 sous Ubuntu, j’avais eu quelques misères en testant le clavier virtuel caribou… et voilà qu’en me repenchant aujourd’hui sur le problème, je pense avoir résolu les problèmes et donc met tout ça à dispo ici :

En fait j’avais deux problèmes :

Le premier est que je n’avais pas toutes les touches visibles (la touche TAB, CTRL et ALT ça peut être sympa), ça se corrige assez vite juste en tapant :

« gsettings set org.gnome.shell.keyboard keyboard-type fullscale » dans un terminal

Le second hic c’est à l’utilisation justement d’un clavier on s’aperçoit que le pipe ne fonctionne pas…. et c’est particulièrement ennuyeux lorsque l’on veut taper des lignes de commandes sur Linux.

J’avais donc confirmé le bug report upstream il y a un moment déjà (d’ailleurs j’avais pas forcément tilter qu’un patch était fourni) :

https://bugzilla.gnome.org/show_bug.cgi?id=673579

Voyant que le bug est confirmé et qu’un patch est bien appliqué upstream, je me dis qu’il pourrait être sympa d’en profiter… mais comme je n’aime pas trop installer du brin sur mon système, j’ai fait des beaux packages grâce à ce lien : http://raphaelhertzog.com/2011/07/04/how-to-prepare-patches-for-debian-packages/

Et voilà le résultat pour la partie sources :

http://www.lenhof.eu.org/ubuntu_caribou/caribou_0.4.4-0ubuntu2.debian.tar.gz

http://www.lenhof.eu.org/ubuntu_caribou/caribou_0.4.4-0ubuntu2.dsc

http://www.lenhof.eu.org/ubuntu_caribou/caribou_0.4.4-0ubuntu2_i386.changes

http://www.lenhof.eu.org/ubuntu_caribou/caribou_0.4.4.orig.tar.xz

Et pour la partie binaires :

http://www.lenhof.eu.org/ubuntu_caribou/caribou_0.4.4-0ubuntu2_all.deb

http://www.lenhof.eu.org/ubuntu_caribou/caribou-antler_0.4.4-0ubuntu2_all.deb

http://www.lenhof.eu.org/ubuntu_caribou/gir1.2-caribou-1.0_0.4.4-0ubuntu2_i386.deb

http://www.lenhof.eu.org/ubuntu_caribou/libcaribou0_0.4.4-0ubuntu2_i386.deb

http://www.lenhof.eu.org/ubuntu_caribou/libcaribou-common_0.4.4-0ubuntu2_all.deb

http://www.lenhof.eu.org/ubuntu_caribou/libcaribou-dbg_0.4.4-0ubuntu2_i386.deb

http://www.lenhof.eu.org/ubuntu_caribou/libcaribou-dev_0.4.4-0ubuntu2_i386.deb

http://www.lenhof.eu.org/ubuntu_caribou/libcaribou-gtk3-module_0.4.4-0ubuntu2_i386.deb

http://www.lenhof.eu.org/ubuntu_caribou/libcaribou-gtk3-module-dbg_0.4.4-0ubuntu2_i386.deb

http://www.lenhof.eu.org/ubuntu_caribou/libcaribou-gtk-module_0.4.4-0ubuntu2_i386.deb

http://www.lenhof.eu.org/ubuntu_caribou/libcaribou-gtk-module-dbg_0.4.4-0ubuntu2_i386.deb

 

Les paquets ne sont pas signés… je n’ai plus de clef GPG

Share

Télécharger un morceau d’une émission de France2 disponible sur pluzz.fr

Il suffit d’utiliser le petit programme python disponible ici :

http://code.google.com/p/tvdownloader/wiki/pluzzdl

Et si comme moi vous n’avez besoin que d’une partie et de transcoder la vidéo obtenue en un autre format, vous pouvez par exemple utiliser openshot

Share

Week-end de mise à jour du serveur de mail….

Avec quelques opérations encore ce week-end, je commence à m’approcher du but…

L’empilage de postfixadmin + postfix + mysql + dovecot + sympa + IMAPS + SMTPS +…. fonctionne pas trop mal désormais… il me reste la couche DSPAM que j’envisage d’ajouter.

Outre le deb de postfixadmin qu’il faut télécharger et installer, les trois liens suivants m’ont permis de m’en sortir :

http://linux.efrei.fr/tutoriaux/postfix_dovecot_sympa_dspam_clamav

http://www.vgsi.fr/files/Tutoriel-Sympa-Ubuntu.pdf

http://wiki.alpinelinux.org/wiki/ISP_Mail_Server_2.x_HowTo#Relay_for_Authenticated_Users

Il faudrait que j’arrive à faire une synthèse complète un jour…mais c’est le genre d’installation où il faut prévoir un peu de temps et de merdouillage pour que tout fonctionne.

J’utilise roundcube pour pouvoir lire mes mails depuis n’importe où, mais là aussi il y a de quoi dire…

Share

Recopier ses mails entre deux serveurs IMAP

Modification du 07/08/2014 : Ajout des informations sur la partie stunnel…

Une petite entrée pour un problème bien précis :  migrer ses mails d’un serveur IMAP à un autre serveur IMAP.

J’avais commencé par réaliser cette migration à la main dans thunderbird en déclarant les deux serveurs et en copiant les données de l’un vers l’autre…. C’est très très long, il faut créer soit même les répertoires sur le serveur cible et lancer une copie par dossier, pas pratique du tout quand on a plein de dossiers différents comme moi…. bref au bout de 30mn, clairement j’ai cherché une autre solution.

Et la solution s’appelle imapcopy, disponible de base sur une debian par un apt-get 😉

Le seul hic, c’est qu’il ne gère pas le IMAP sécurisé ou IMAPS…

Et donc pour s’en sortir il suffit de lancer un tunnel ssl entre le serveur distant et localement…. Deux stunnels plus loin

stunnel -c -p /etc/ssl/certs/padawanlenhofeuorg.pem -d 1143 -r www.lenhof.eu.org:993
stunnel -c -p /etc/ssl/certs/padawanlenhofeuorg.pem -d 2143 -r imap.gmail.com:993

il suffit ensuite de créer un fichier ImapCopy du type :

#############################################################
# imapcopy config
# all lines beginning with # are comments and will be ignored
#############################################################

##############
# Sourceserver
##############
SourceServer localhost
SourcePort 1143

###################
# Destinationserver
###################
DestServer localhost
DestPort 2143

##############################################################
# Timezone conversion
# The imap rfc is not clear on what kind of time offsets
# can be used. +XXXX -XXXX will be supported on all servers
# You can add as many entries as needed in the form
# converttimezone SRC DST
# to convert zones that your target server rejects
##############################################################
converttimezone « UTC » « +0000 »
converttimezone « UT »  « +0000 »

#############################
# List of users and passwords
#############################
#       SourceUser    SourcePassword   DestinationUser DestinationPassword
Copy    « jylenhof »         « passwordsupersecret »       « jean-yves@lenhof.eu.org »           « autrepasswordsupersecret »

 

Il faut modifier les ports 1143 et 2143 par les ports que vous avez utilisé au niveau de vos deux stunnel qui tournent….

Mettre vos users & password

Et ensuite lancer imapcopy (depuis le répertoire où vous avez créé votre fichier de configuration) et aller boire un café ou deux…  voir le thermos complet

Share