Android

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.

  • fig:Android_logo.png

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

fig:Flash lineage.jpg fig:Demmarage lineage.png fig:Flask ok sita.jpg

Le projet LineageOS remplace Cyanogenmod désormais obsolète

Installer un custom Recovery TWRP
adb install Official TWRP App_v1.15_apkpure.com.apk

TWRP-Tablet-Home-Screenb01.png TWRP-Tablet-Home-Screenb01.png

Installer un custom Recovery TWRP à la main avec fastboot

  1. télécharger l'image TWRP corresponte à l'appareil et à la ROM voulue https://twrp.me/Devices/
  2. éteindre la tablette / téléphone
  3. redémarrer en mode recovery (volume up + power > lacher pôwer quand logo)
  4. en mode recovery, choisir “reboot to bootloader” > le logo reste fixe
  5. 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**
  1. Download and transfer the Lineageos ROM and Gapps for linage os you wish to flash to your device’s storage.
  2. Boot your device into TWRP recovery.
  3. Select “Wipe” from TWRP main menu and do a “Swipe to Factory Reset” on the bottom of screen.
    1. └ Note: This will factory reset your device. If your custom ROM doesn’t require a factory reset, then simply skip this step.

wipe9.png wipe9.png

  1. 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.
  2. 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.

wipe10.png wipe10.png

  1. 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.
  2.  Once cache & dalvik wipe completes, hit the “Back” button on-screen and then select “Reboot System” button.
Troubleshouting

Cid-wink.png Cid-wink.png

ROM Replicant

Les drivers wifi et gps n'étant pas libres, ils ne sont pas intégrer, pour les installer néanmoins, copie des drivers de la CynagenMod 11 pour le Nexus sur le téléphone via les commandes adb (voir plus bas)

en recopiant tous les fichiers, ça a bizarrement marché

qui au final ne marche pas :

./adb root
./adb remount
./adb shell
cd /system/vendor/lib/hw/                                     
nsmod gps.s5pc110.so                                                          <
insmod: init_module 'gps.s5pc110.so' failed (Exec format error)

possible que cela vienne de là http://www.linuxquestions.org/questions/linux-kernel-70/insmod-error-version-magic-4175424366/ soit l'appellation de la CM11 qui est indiquée à la compil …

dmesg

indique des erreurs / gpsd

Flasher sa ROM

Sous Linux

Sous windows

“Flasher sa ROM” cela signifie réinstaller son système d'exploitation sur son téléphone, en résumé :

  1. sauvegarder ses données personnelles :
    • Pour les numéros de téléphone, aller dans “contacts”, Menu “importer / exporter”, Exporter les contacts sous forme “.vcf” et copier ce fichier de la carte SD du téléphone vers votre ordi (via cable USB, montage de volume, ou lecture directe de la carte SD sur votre ordi (avec éventuel adaptateur minisd > sd))
    • logiciel SMSBackup pour les SMS
    • logiciel Titaniumbackup pour les applications
  2. rootkiter son téléphone en installant un noyau custom via le logiciel ONDIN sous windows, ce nouveau noyau va vous donner accès à un mode “RECOVERY”
  3. démarrer le téléphone en mode “RECOVERY” (bouton volume bas + appel + allumer maintenus qques secondes sur le Spica)
  4. formater éventuellement sa carte SD avec une partition ext2 de 512 Mo (via le mode recovery) pour y installer les applications, en ayant préalablement sauvegardé ses données
  5. rebooter le téléphone
  6. mettre la ROM choisie sur la carte SD (fichier .zip)
  7. redémarrer le téléphone en mode RECOVERY, choisir le fichier .zip de la ROM sur la carte SD
  8. faire un “Wipe data/cache” + les 2 autres Wipe
  9. redemarrer le téléphone, attendre …

Le système Android est proche d'un système linux : noyau, pilotes, arborescence, …

Ici le téléphone Samsung Galaxy Spica sera pris en exemple, mais les techniques sont partiellement transposables aux autres téléphone sous Android

Des ressources issues du très prolifique forum http://forum.frandroid.com

Optimiser son système

Optimiser son téléphone : /!\ certains scripts proposés sur le forum français sont parfois obsolètes, se référer à la source soit le forum anglais http://forum.samdroid.net/f9/

Desimlocker son téléphone soit même

Installer Ubuntu sur son téléphone

On peut tout à fait utiliser un téléphone Android sans avoir de compte google :

Backup SMS applications préférences wifi et navigateur sans gmail

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

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)

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

  1. Open the dialer of your phone and type *#*#4636#*#*
  2. Dial this number and wait for the results.
  3. You will get a testing menu on your device screen, Click on phone/device information from this menu.
  4. Run the ping test and then select GSM Auto (PRL) from the drop down list.
  5. 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

Magasins alternatifs mais gare aux malwares et virus …

Télécharger des applis du google store sans compte google

Pour copier des fichiers du téléphone vers l'ordi, connexion en wifi

./adb pull /sdcard/DCIM/Camera/ /home/b01/Documents/photostels/

Développer des programmes avec Processing Android

  • android.txt
  • Dernière modification: 2019/03/28 23:20
  • par Benjamin Labomedia