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.
Des systèmes Android sans Google
Il existe aujourd'hui plusieurs initiatives qui consiste à développer des systèmes d'exploitation basés sur Android sans les composantes google :
- LineageOS qui remplace désormais Cyanogenmod
- L'initiative /e/ de la e.foundation
- Iodé : une initiative française orienté préservation de la vie privée
- Divestos : tellement sécurisé que captcha download !
Des téléphones sans Android
Qui ne soient pas iOS ni Win$ ! Voir une liste d'OS et téléphones alternatifs ici
Système d'exploitation, réinstallation
Voir la page dédiée à l'installation de LineageOS sur sur téléphone à la place de l'Android fabricant
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
- La documentation est là : https://developer.android.com/tools/adb?hl=fr
pour lister les appareils
cd ~/sketchbook/modes/AndroidMode/sdk/platform-tools/ ./adb devices
pour ouvrir un terminal sur le téléphone
./adb shell
adb en wifi
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
Il faut déjà connecter une fois son téléphone en USB à son ordi pour autoriser cet ordi à se connecter au téléphone, ensuite
adb tcpip 5555 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
Installer /e/ système sur Fairphone 3
Voir la page dédiée au Fairphone