Ceci est une ancienne révision du document !
Table des matières
Android
Généralités
Android est un système d'exploitation Open Source pour smartphones et tablettes développé par la société Google. Ce nom “Android” provient du nom de la start-up que Google a racheté en 2005 qui développait à l'époque des OS pour mobiles.
Système d'exploitation, réinstallation
Libérer son téléphone ; le smartphone sans google
Ce système d'exploitation basé sur Android enlève toutes les dépendances à Google. Le marché d'application libre F-Droid permet d'installer des apllis sans compte google et on y trouve plein de bonheurs !
Commencer par faire une sauvegarde !
- Ses contacts
- Ses SMS
- Signets / Bookmarks + profil firefox
- Applications payantes (TouchOSC)
- Conversations dans what's app
- Billets de train dans appli
- Ses photos, vidéos, musiques et autres fichiers
- Ses clefs éventuelles (Riot par exemple)
- Clef authentification à 2 facteurs (Steam, google, ubisoft origin, github)
Installer LineageOS sur son téléphone à la place de l'Android constructeur
Le projet LineageOS remplace Cyanogenmod désormais obsolète
- La page d'accueil du projet https://www.lineageos.org/
- Les appareils supportés https://wiki.lineageos.org/devices/
- Télécharger la distribution correspondante à son appareil https://download.lineageos.org/
Installer un custom Recovery TWRP
- La méthode facile : installer l'application TWRP https://apkpure.com/official-twrp-app/me.twrp.twrpapp
- L'installer “à la main” :
adb install Official TWRP App_v1.15_apkpure.com.apk
- Cela va permettre d'installer ensuite une ROM custom https://www.xda-developers.com/how-to-install-twrp/
- Voir le custom recovery en fonction de son appareil https://twrp.me/Devices/
Installer un custom Recovery TWRP à la main avec fastboot
- télécharger l'image TWRP corresponte à l'appareil et à la ROM voulue https://twrp.me/Devices/
- éteindre la tablette / téléphone
- redémarrer en mode recovery (volume up + power > lacher pôwer quand logo)
- en mode recovery, choisir “reboot to bootloader” > le logo reste fixe
- executer ensuite :
fastboot oem unlock fastboot flash recovery twrp-tb2-x30f.img fastboot reboot-bootloader
Pour redémarrer en mode TWRP recovery : volume up + power, lacher power quand logo
**Installer ensuite la ROM custom**
- Un HowTo pour installer une ROM custom http://www.lineageosrom.com/2016/12/how-to-install-lineage-os-rom.html
- Download and transfer the Lineageos ROM and Gapps for linage os you wish to flash to your device’s storage.
- Boot your device into TWRP recovery.
- Select “Wipe” from TWRP main menu and do a “Swipe to Factory Reset” on the bottom of screen.
- └ Note: This will factory reset your device. If your custom ROM doesn’t require a factory reset, then simply skip this step.
- Go back to TWRP main menu, tap on “Install” and select the Lineage os ROM .zip file and gapps for lineage os that you transferred to your device in Step 1.
- After selecting the .zip file, do “Swipe to Confirm Flash” on the bottom of screen to begin the custom ROM installation process. This may take some time.
- Once your ROM is successfully flashed, you’ll see “Wipe cache/dalvik” option, select it and then do “Swipe to wipe” on bottom of screen.
- Once cache & dalvik wipe completes, hit the “Back” button on-screen and then select “Reboot System” button.
Troubleshouting
- Il faut installer AVANT le recovery correspondant à la ROM sinon “set_metadata_recursive: some changes failed”
- Si l'USB ne se connecte plus, aller dans les paramètres > stockage et switcher de stockage de masse à PPT et revenir sur stockage de masse
- Si adb n'est plus autorisé à se connecter au device, il faut reseter les clefs, voir http://stackoverflow.com/questions/26213954/how-to-solve-adb-device-unauthorized-in-android-adb-host-device
Desimlocker son téléphone soit même
- Numéros d'assistance des opérateurs non surtaxés : http://mountainview.frandroid.com/topic/23758-numeros-operateurs-non-surtaxe/
Utiliser, configurer, libérer son téléphone au quotidien
On peut tout à fait utiliser un téléphone Android sans avoir de compte google :
- Utiliser le market d'application libres ou open source f-droid : http://f-droid.org/
- Pour avoir des avis sur les logiciels, voir : http://fossdroid.com/
Magasins d'application Android alternatifs
Magasins alternatifs mais gare aux malwares et virus …
Télécharger des applis du google store sans compte google
Depuis son ordinateur :
- voir également Raccoon https://raccoon.onyxbits.de/ et DummyDroid - Pour identifier son appareil auprès de Google http://www.onyxbits.de/dummydroid
Depuis son téléphone :
- Voir le logiciel Android (>5) http://auroraoss.com/
Pour copier des fichiers du téléphone vers l'ordi, connexion en wifi
./adb pull /sdcard/DCIM/Camera/ /home/b01/Documents/photostels/
Émuler Android sous Linux
Il y a plusieurs options : os dans machine virtuelle, Android Studio “officiel” et des émulateurs, après passage en revue rapide, utilisation de Anbox https://anbox.io/ qui permet d'utiliser des applications à installer “à la main” via adb en ayant préalablement téléchargé le fichier .apk …
Quelques références :
- ARChon Runtime for Chrome Run Android Apps in Chrome in OS X, Linux and Windows https://archon-runtime.github.io/
Installation sous Linux debian 9
- Il faut tout d'abord installer les modules du noyau : https://docs.anbox.io/userguide/install_kernel_modules.htm voir aussi https://github.com/anbox/anbox-modules
- puis installer Anbox via snap, outils de gestion d'application Ubuntu https://docs.anbox.io/userguide/install.html#install-the-anbox-snap
donc d'abord installer snap :
sudo apt install snapd sudo snap install --devmode --beta anbox
Tester
snap info anbox
Lancer le app manager et anbox en même temps
/snap/bin$./anbox.appmgr adb devices
Installer une appli
adb install ../Weather\ forecast_v1.62.238_apkpure.com.apk
Au final ça marche avec des applications simples, pas sur que pour des jeux et applis qui ont recours aux périphériques ça tourne bien …
Pour désactiver l'application anbox :
snap disable anbox snap enable anbox
Backup SMS applications préférences wifi et navigateur sans gmail
- Via e-mail et un compte IMAP en utilisant l'application SMS Backup+ https://f-droid.org/repository/browse/?fdfilter=backup&fdcategory=Phone+%26+SMS&fdid=com.zegoggles.smssync
- Via Owncloud et l'application ocsms coté serveur https://github.com/nerzhul/ocsms et l'application Android pour le téléphone https://github.com/nerzhul/ownCloud-SMS-App
- En utilisant adb : http://jonwestfall.com/2009/08/backup-restore-android-apps-using-adb/
cd ~/sketchbook/modes/AndroidMode/sdk/platform-tools ./adb devices
liste les devices
mkdir backupb01 ./adb root ./adb remount ./adb pull /data/app backupb01/ (applications) ./adb pull /data/data/com.android.providers.telephony/databases/mmssms.db backupb01/ (sms and mms) ./adb pull /storage/sdcard0/00001.vcf backupb01/ (export carnet d'adresses) + Browser settings: /data/data/com.android/browser + System WiFi Settings: /data/misc/wifi
Restauration
./adb install *.apk (applications) ./adb push backupb01/mmssms.db /data/data/com.android.providers.telephony/databases/mmssms.db
Connexion via wifi (si port usb défaillant) > régler adb via ip dans le téléphone
./adb connect ipdutéléphone
Développement
Communiquer en USB avec son Android sous linux
- Pour communiquer en USB avec son téléphone, régler sous Linux les règles udev :
- Pour lister les périphériques usb et voir les références de son téléphone
lsusb
- Créer un fichier de règles pour les téléphones android
sudo gedit /etc/udev/rules.d/09-android.rules
- Ajouter ces lignes en adaptant à votre téléphone (selon ce qu'indique la commande “lsusb”)
SUBSYSTEMS="usb", SYSFS{idVendor}="04e8", SYSFS{idProduct}="681d", MODE="0666", OWNER="VOTRE_NOM_de_USER" #pas normal SUBSYSTEMS="usb", SYSFS{idVendor}="04e8", SYSFS{idProduct}="681e", MODE="0666", OWNER="VOTRE_NOM_de_USER" #normal SUBSYSTEMS="usb", SYSFS{idVendor}="04e8", SYSFS{idProduct}="681c", MODE="0666", OWNER="VOTRE_NOM_de_USER" #recovery SUBSYSTEMS="usb", SYSFS{idVendor}="04e8", MODE="0666", OWNER="VOTRE_NOM_de_USER" #tout_type_d-android
- la dernière ligne doit être suffisante
Régler les problèmes de connexion USB sur Samsung Nexus S Crespo
Il arrive que le téléphone ou la tablette perde la capacité à se connecter en USB (rien dans le lsusb pourtant le téléphone se charge)
Après moutles investigations, des codes secrets permettent de faire afficher un menu secret qui permet de switcher l'USB et le modem dans un autre mode et de rétablir ensuite ce qui arrenge le problème : voir https://blog.vacs.fr/vacs/blogs/post.html?post=2010/12/24/How-to-repair-the-USB-not-detected-problem-on-Android-Samsung-phones
Dial *#7284# or *#0808# and set MTP+ADB USB Setting
ça n'a bien évidemment pas marché sur mon tél, je suis passé par un shell via adb sur tcp/ip (voir plus bas), je me loggue ainsi en root sur le téléphone et tape ensuite :
root@crespo:/ # cat /sys/class/android_usb/android0/functions mass_storage root@crespo:/ # echo 0 > /sys/class/android_usb/android0/enable root@crespo:/ # echo 1 > /sys/class/android_usb/android0/f_acm/instances root@crespo:/ # echo mtp,acm,adb > /sys/class/android_usb/android0/functions root@crespo:/ # echo 1 > /sys/class/android_usb/android0/enable root@crespo:/ # start adbd root@crespo:/ # echo 0 > /sys/class/android_usb/android0/enable root@crespo:/ # cat /sys/class/android_usb/android0/functions mtp,acm,adb root@crespo:/ # echo mass_storage > /sys/class/android_usb/android0/functions root@crespo:/ # echo 1 > /sys/class/android_usb/android0/enable root@crespo:/ # start adbd root@crespo:/ # reboot
Là, miracle, ça a marché !!!
Installer et utiliser ADB
ADB signifie Android Debug Bridge. C'est un outil qui permet l'accès a la console du téléphone (car Android ressemble fortement à un Linux)
- Télécharger ADB là : http://developer.android.com/sdk/index.html
pour lister les appareils
cd ~/sketchbook/modes/AndroidMode/sdk/platform-tools/ ./adb devices
pour ouvrir un terminal sur le téléphone
./adb shell
Backup & Restore Android Apps en utilisant ADB : http://jonwestfall.com/2009/08/backup-restore-android-apps-using-adb/ se connecter en wifi (voir réglages développeur pour activer l'option), il faut mettre l'ordi et le tél sur le même réseau wifi
./adb connect 172.31.23.242 ./adb root ./adb remount ./adb shell
Copier des fichiers système avec ADB
Il fut déjà générer une paire de clef :
./adb keygen b01key ./adb kill-server
Le téléphone doit demander de valider la clef proposée soit temporairement soit pour tjs
Exécuter adb en tant que root, remonter la partion :
./adb root ./adb remount ./adb push busybox /system/bin
I run into some devices that you need to remount with mount -o remount,rw /system and not with adb remount.
Ensuite copier les fichiers :
./adb push source destination
Log avec ADB
adb logcat adb logcat -d > androilog.txt
Plus d'options : https://logmatic.io/blog/a-how-to-guide-to-debugging-with-android-logcat/ https://forum.xda-developers.com/showthread.php?t=1726238 et https://developer.android.com/studio/command-line/logcat.html
Debug
- Open the dialer of your phone and type *#*#4636#*#*
- Dial this number and wait for the results.
- You will get a testing menu on your device screen, Click on phone/device information from this menu.
- Run the ping test and then select GSM Auto (PRL) from the drop down list.
- Tap on Turn Off Radio
Lister les applications installées
adb shell pm list packages
Désactiver le service NFC en carafe
Pas nécessaire ? :
ls -al /data/data/com.android.nfc lrwxrwxrwx install install 2018-03-25 16:37 lib -> /data/app-lib/com.android.nfc rm /data/data/com.android.nfc/lib
Développer des programmes avec Processing Android
- Processing sur Android : voir la page dédiée