======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. * **** {{media_02:android_logo.png|fig:Android_logo.png}} ===== 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 : * [[https://www.lineageos.org/|LineageOS]] qui remplace désormais Cyanogenmod * L'initiative [[https://e.foundation/|/e/ de la e.foundation]] * [[https://iode.tech/|Iodé]] : une initiative française orienté préservation de la vie privée * [[https://divestos.org/|Divestos]] : tellement sécurisé que captcha download ! ==== Des téléphones sans Android ==== Qui ne soient pas iOS ni Win$ ! Voir [[https://ressources.labomedia.org/telephone_mobile_smartphone#utiliser_des_telephones_qui_tournent_avec_d_autres_os|une liste d'OS et téléphones alternatifs ici]] {{::home-iode_fr.png|}} ===== Système d'exploitation, réinstallation ===== Voir [[liberer_telephone_android_de_google|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 ==== * http://forum.frandroid.com/topic/53176-tuto-desimlockez-votre-spica-vous-meme/ * 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/ {{ media_04:fdroid.png?direct |}} ===== Magasins d'application Android alternatifs ===== **Magasins alternatifs mais gare aux malwares et virus ...** * https://www.aptoide.com * https://apkpure.com * http://www.appbrain.com =====Télécharger des applis du google store sans compte google ===== Depuis son ordinateur : * https://apps.evozi.com/apk-downloader/ * 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/ * Ou Yalp https://github.com/yeriomin/YalpStore/releases **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 : * Phoenix OS dans VM https://bidouilledebian.wordpress.com/2018/06/08/embarquer-un-os-android-dans-son-os-debian/ * 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 {{ media_02:anboxappmanager.png?direct |}} ===== 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 * https://www.technobezz.com/phone-says-no-signal-android-samsung/ === Lister les applications installées === adb shell pm list packages === Désactiver le service NFC en carafe === * https://forum.xda-developers.com/galaxy-nexus/help/seriously-how-kill-nfc-service-t1747701 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 === * [[Liens_ressources_tutoriaux_Mobile_Processing|Processing sur Android]] : voir la page dédiée === Installer /e/ système sur Fairphone 3 === Voir la page dédiée au [[fairphone|Fairphone]] {{tag>bj système_exploitation android}}