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
I can’t install google play on mobilr. Why?
J’ai réussi à le faire sous windows ^^
Il serait intéressant alors de partager l’information :
* Quels drivers ont été utilisés ?
* Trouvés où ?
Avec Le sdk de google
Etant sous ubuntu 12.04 , j’ai éssayé ton tuto , sauf que mème en ayant crée adb_usb.ini dans le bon dossier mon x40i n’est toujours pas détecter , je dois faire quoi ?
Il faut le mettre sous le compte « root » sinon tu auras des pbs de droits…
Ok ce n’est pas grave je vous remercie quand même ^^
Pourrao-je avoir plus de detailles ainsi qu’une version pour windows de ce tuto ??
Je ne vois pas bien ce que je peux donner comme détail supplémentaire…
Pour la version windows, ce n’est pas possible sauf si vous avez les drivers windows (Linux reconnait directement le téléphone).
A ce jour sous Windows j’avais même essayé des « universal drivers » sans succès.
et aussi un peux plus de detailles
Pourai je avoir une version windows de ce tuto ?