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.
Il existe aujourd'hui plusieurs initiatives qui consiste à développer des systèmes d'exploitation basés sur Android sans les composantes google :
Qui ne soient pas iOS ni Win$ ! Voir une liste d'OS et téléphones alternatifs ici
Voir la page dédiée à l'installation de LineageOS sur sur téléphone à la place de l'Android fabricant
On peut tout à fait utiliser un téléphone Android sans avoir de compte google :
Magasins alternatifs mais gare aux malwares et virus …
Depuis son ordinateur :
Depuis son téléphone :
Pour copier des fichiers du téléphone vers l'ordi, connexion en wifi
./adb pull /sdcard/DCIM/Camera/ /home/b01/Documents/photostels/
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 :
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
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
lsusb
sudo gedit /etc/udev/rules.d/09-android.rules
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
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é !!!
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)
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
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
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
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
adb shell pm list packages
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
Voir la page dédiée au Fairphone