Petite introduction à android : "retour aux sources..."

Quelques conseils indispensables pour vos premiers pas avec votre Samsung Galaxy sur le forum
#1

Petite introduction à android : "retour aux sources..."

Messagepar franck_29 » 14 Août 2010, 19:34

Android, les systèmes d’exploitation, un peu d’histoire.
Android est comme chacun sait le système d’exploitation installé sur nos smartphones (mais il ne leur est pas réservé, on peut par exemple le trouver sur certaines tablettes internet). Alors qu’est ce qu’un système d’exploitation au juste ? Et d’où vient android ?

Système d’exploitation : c’est quoi ?
Le système d’exploitation (ou OS comme operating System) est un ensemble de composants logiciels installés sur un ordinateur (pour faire simple) qui vont s’interfacer entre l’utilisateur (vous et moi) et le matériels sur lequel il est installé.
Son objectif à la base c’est donc de vous faciliter la vie, en gérant pour vous tous les composants matériels :
 unité centrale, le micro-processeur,
 mémoire centrale, celle dans laquelle s’exécutent nos applications
 mémoire de masse, les disques durs ou les cartes SD,
 périphériques, l’écran tactile, les touches physiques etc.

Et pour que ce soit encore un peu plus facile, ils gèrent les fichiers (ça on connaît bien) et les processus (on les voit avec Task Manager par exemple) (en réalité plein d’autres mais on les passe sous silence)

Alors voilà pour la description un peu rébarbative.

Pour aller plus loin, il faut savoir qu’il existe plusieurs familles d’OS, les monotâches (qui ne savent exécuter les programmes que l’un après l’autre), les multitâches (qui gèrent l’exécution simultanée de plusieurs programmes), ceux qui gèrent la mémoire virtuelle ou pas etc...

Alors comme nos smartphones sont depuis longtemps de vrais ordinateurs ils en contiennent tous les composants), il leur faut un système d’exploitation. Le notre c’est Android !

Android : et remontée dans l’histoire
Vous le savez, Android est un OS basé sur LINUX qui n’est autre qu’une implémentation libre du système UNIX créé en 1969 (on n’a rien inventé de mieux depuis !) Il hérite donc de toutes ses qualités :
 véritable multitâche, gestion de la mémoire virtuelle, communication inter-processus
 doué pour la connectivité réseau, etc...

Rendez-vous compte, à l’époque UNIX était utilisé sur des serveurs auxquels se connectaient simultanément des dizaines d’utilisateurs. Et aujourd’hui nos smartphones sont plus puissants que ces serveurs d’alors !!!

Alors bien sûr, aujourd’hui, toutes ces qualités (comprendre : fonctionnalités de l’OS) sont accessibles au travers d’applications graphiques toutes plus ergonomiques les unes que les autres, mais cela n’a bien sûr pas toujours été le cas.

Et surtout, aujourd’hui encore, nombre d’administrateurs UNIX continuent de paramétrer leur OS à l’aide de commande en ligne de commande (saisies en mode texte ! yeah), avec des éditeurs de texte pour modifier des fichiers systèmes (dans lesquels il n’y a pas de menu  promis : vous connaissez peut être l’éditeur « vi ».
Mais pourquoi me direz vous ?
Ce n’est pas par snobisme, c’est tout simplement car c’est plus puissant, et quand on sait faire, c’est plus simple et plus rapide...

Alors comme notre Android, c’est de l’UNIX, nous allons pouvoir aller y jeter un œil de plus près et regarder ensemble quelques commandes comme les vrais professionnels de l’administration système ;)

Introduction aux commandes Android
Mais avant de les essayer, il est important de présenter quelques notions importantes :

L’ensemble des fonctions du système d’exploitation, que l’on peut classer en plusieurs catégories :
 Gestion de la mémoire et des processus
 Gestion des périphériques (disques par exemple)
 Gestion des fichiers
 Gestion du réseau
 Etc...
Sont codées et regroupées dans le noyau du système. On appelle ce noyau le Kernel

Pour accéder à ces fonctions, il faut passer par des outils particuliers (des commandes ou des programmes) qui vont invoquer les fonctions du Kernel.
Ces commandes ou programmes particuliers sont regroupés au sein d’un Shell (comprendre la coquille qui entoure le noyau). Il existe tout un tas de shells avec des fonctions différentes d’un shell à l’autre.

Autre chose importante : les niveaux de privilège - la notion de root.

A la base, Unix est un système multi-utilisateurs et il fallait protéger les données d’un utilisateur des autres. Aussi UNIX gère-t-il des droits d’accès sur les fichiers en fonction de leurs auteurs. A la base un utilisateur A ne pourra donc pas modifier les fichiers d’un utilisateur B (je n’entre pas dans les détails). Cependant il existe un utilisateur qui lui a les droits sur tous les fichiers, il prend le pas sur tous les autres, c’est l’utilisateur Root (ou super utilisateur)
(A savoir : si votre téléphone n’est pas rooté, vous êtes considéré par le système comme un utilisateur lambda, et donc plein de choses vous sont interdites ! bon, à la base, c’est une mesure de protection du système ! et c’est vrai ! mais avouez que c’est rageant :geek: )

Concrètement : comment accéder au shell de notre Android ?
Maintenant qu’on a bien compris les notions exposées plus haut, la suite va être facile :

Nous avons donc besoin d’accéder au shell, pour ce faire plusieurs possibilités, la principale c’est une application dite « émulateur de terminal » qui va nous offrir un accès au shell et nous permettre d’y saisir des commandes, pour voir ce que le système a dans le ventre...
(Dans la rubrique logiciels du forum, on trouvera un test de l’application « Android terminal emulator » c’est de ce type d’application donc nous avons besoin.)

Il va nous falloir également la BusyBox, disponible sur le market, la BusyBox regroupe au sein d’une même application, l’ensemble des commandes usuelles sont je parle par la suite.

Dans le cœur du sujet : quelques commandes utiles
Tout d’abord nous n’allons pas toutes les faire, il y faudrait un livre complet mais en survoler quelques unes. L’idée est juste de dire globalement ce que fait la commande. Il existe plein de tutoriaux détaillés sur le net.
Dans la suite le caractère $ signifie taper la commande qui suit (il ne faut pas saisir le caractère « $ ») c’est aussi la traditionnelle invite de commande sur le shell, quand il apparaît, il signifie que l’on peut saisir une commande.

La manipulation des fichiers et des répertoires :
$pwd (print working directory) retourne le répertoire courant (dans lequel on se trouve) on est toujours dans un répertoire courant !
$cd (change directory) pour aller dans le répertoire de votre choix, les sous répertoires sont séparés par « / » exemple : cd /sdcard/sd
$mkdir (make directory) pour créer un répertoire exemple mkdir sauvegarde
$du –k (disk usage) pour connaître la taille qu’occupe les fichiers d’un répertoire (-k pour que le résultat soit en KO sinon il sera en blocs)
$ls (list) pour afficher une liste des fichiers contenus dans un répertoire
$mv (move) pour déplacer un répertoire (attention, ne fonctionne qu’au sein d’un même file system (partition) ex : mv xymox.mp3 /sdcard/sd/sauvegarde. Attention, ça sert aussi à le renommer ex : mv xymox.mp3 xumox.mp3.old
$cp (copy) pour copier un fichier d’un endroit à un autre, ex : cp xymox.mp3 /sdcard/sd/sauvegarde
$ln (link) pour créer un lien vers un fichier (une sorte de raccourci) ex : ln xymox.mp3 monMorceauPrefere.mp3

Manipulation des droits
$su (super user) pour devenir l’utilisateur root, le prompt passe de $ à # (sauf paramétrage contraire) et dès lors (cf plus haut) on a tout les droits, c’est hyper puissant ... et dangereux
$chmod, pour changer les droits d’accès sur un fichier ou un répertoire, ex : chmod 777 sauvegarde (pour rendre accessible à tous le répertoire sauvegarde), le chiffre 7 qui correspond en fait à 111 en binaire, précise qu’on donne les droits rwx (read, write execute) à une catégorie d’utilisateurs

Manipulation des disques
$df affiche des informations sur les différentes partitions disques (file system) présentes sur le système
$mount affiche les partitions et leur point de montage (ainsi que diverses autres informations) le point de montage, c’est le répertoire où il faut aller pour accéder à la partition montée (on en parle dans l’exemple plus bas)

Manipulation des processus
$ps (process status) pour afficher la liste des processus actif en mémoire, la commande retourne notamment le PID de chaque processus, c'est-à-dire le numéro unique qui va nous permettre de l’identifier.
$kill pour envoyer un signal à un processus (on lui passe en paramètre le PID du processus à cibler). Contrairement à ce que l’on pourrait croire cette commande ne sert pas qu’à tuer les processus, autrement dit, le signal n’est pas forcément un signal de « mort ». Ce mécanisme permet a plusieurs processus de se synchroniser (le processus A peut dire via ces signaux, au processus B : "je suis prêt")

Par la pratique : le script lagfix.sh décortiqué
Quoi de mieux qu’un exemple ? J’ai choisi pour vous un extrait du fichier lagfix.sh du boost RyanZA
Vous allez voir, c’est plutôt simple.

Code : Tout sélectionner
mkdir /data/ext2data
(on crée le répertoire ext2data dans le répertoire /data)

Code : Tout sélectionner
mount -t ext2 -o noatime,nodiratime,errors=continue /dev/loop0 /data/ext2data
(on monte la partition /dev/loop0 sur le répertoire /data/ext2data, ext2data est un point de montage)

Code : Tout sélectionner
cp -rp /data/data /data/ext2data/
(on copie l’ensemble des fichiers contenus dans /data/data dans /data/ext2data soit dans la nouvelle partition)

Code : Tout sélectionner
cp -rp /data/system /data/ext2data/
(on copie l’ensemble des fichiers contenus dans /data/system dans /data/ext2data soit dans la nouvelle partition)

Code : Tout sélectionner
cp -rp /data/dalvik-cache /data/ext2data/
(on copie l’ensemble des fichiers contenus dans /data/dalvik-cache dans /data/ext2data soit dans la nouvelle partition)


Code : Tout sélectionner
rm -rf /data/data.bak
(on efface un éventuel fichier ou répertoire data.bak)

Code : Tout sélectionner
rm -rf /data/system.bak
(on efface un éventuel fichier ou répertoire system.bak)

Code : Tout sélectionner
rm -rf /data/dalvik-cache.bak
(on efface un éventuel fichier ou répertoire dalvik-cache.bak)

Code : Tout sélectionner
mv /data/data /data/data.bak
(on renomme le répertoire data en data.bak)
Code : Tout sélectionner
mv /data/system /data/system.bak
(on renomme le répertoire system en system.bak)
Code : Tout sélectionner
mv /data/dalvik-cache /data/dalvik-cache.bak
(on renomme le répertoire dalvik-cache en dalvik-cache.bak)
A ce stade les repertoires /data/data /data/system et /data/dalvik-cache n’existent plus ! On va les recréer dans la foulée en les faisant pointer vers les répertoires du même nom créés plus haut, dans le répertoire /data/ext2data
Code : Tout sélectionner
ln -s /data/ext2data/data /data/data;
ln -s /data/ext2data/system /data/system;
ln -s /data/ext2data/dalvik-cache /data/dalvik-cache;
Au final, le système de fichiers ne se rendra compte de rien.

PS: article également publié sur : notre blog
Pour bien débuter sur le forum : la charte, FAQ, Comment faire ?
Les points essentiels en quelques clics : Notre Blog
Modèle Galaxy S (GT-I9000) | Galaxy S II (GT-I9100) | Galaxy Note II (GT-N7100) | Galaxy Note 3 (SM-N9005)
Firmware CyanogenMod 10.2 | Stock XWLSD | Stock N7100XXUFNE1 | stock XXUDMK2
Modifications ROOT
Réseau B&You
Mon péché mignon développement de l'appli NokyART
Avatar de l’utilisateur
franck_29
Ancien du Staff
Ancien du Staff
 
Message(s) : 9030
Inscription : 20 Juil 2010, 14:31
Localisation : France, Paris, Cléder

#2

Re: Petit guide android et ses commandes.

Messagepar abel » 14 Août 2010, 19:43

Ouh là! Merci pour ce super post historico-technique. Très intéressant!
samsung galaxy s2
huawei honor 6
Orange Open Jet fibre
Avatar de l’utilisateur
abel
Ancien du Staff
Ancien du Staff
 
Message(s) : 3771
Inscription : 22 Juil 2010, 17:58

#3

Re: Petit guide android et ses commandes.

Messagepar scoony » 14 Août 2010, 20:12

Bonsoir, joli travail... tout à leur je relirais pour te mettre ce que je j'en pense précisément ;)

Là j'ai juste survoler...
Nous avons besoin de vous pour évoluer: Cliquez ici pour plus d'informations
Smartphone: Samsung Galaxy S7 Edge (SM-G935F)
Firmware: J'ai toujours la dernière version
Google TV: Logitech Revue version 3.2 (Honeycomb)
Réseau : Bouygues Sensation 5h
Ordinateur : Core i7 et Windows 10 Entreprise x64
Avatar de l’utilisateur
scoony
Administrateur
Administrateur
 
Message(s) : 5606
Inscription : 19 Juil 2010, 20:45
Localisation : Centre France

#4

Re: Petit guide android et ses commandes.

Messagepar ultrasdu19 » 15 Août 2010, 12:31

wahou !!! merci pour ce super post tres utile :D
Samsung Galaxy S4 + HTC One
Avatar de l’utilisateur
ultrasdu19
Ancien du Staff
Ancien du Staff
 
Message(s) : 1360
Inscription : 19 Juil 2010, 21:14

#5

Re: Petite introduction à android : "retour aux sources..."

Messagepar divingrabbit » 17 Août 2010, 14:40

abel a écrit:Ouh là! Merci pour ce super post historico-technique. Très intéressant!


je n'aurais pas dis mieux.
Vraiment intéressant
franck a encore frappé ;)
Image
Avatar de l’utilisateur
divingrabbit
Ancien du Staff
Ancien du Staff
 
Message(s) : 280
Inscription : 23 Juil 2010, 12:40

#6

Re: Petite introduction à android : "retour aux sources..."

Messagepar KidKihl » 20 Août 2010, 22:30

Il est pas mal de savoir les mot magique d'android :D
Modéle : Galaxy S5 16 Giga
Firmware : G900FXXU1ANCE
Recovery : ...
Opérateur : SFR
Kernel : ...
Forfait : Carré 5G
Image
Modéle : Iconia A500 16go + 16go
Firmware : 4.0.4
ROM : Tegraowners ICS ROM v170
Avatar de l’utilisateur
KidKihl
Ancien du Staff
Ancien du Staff
 
Message(s) : 938
Inscription : 04 Août 2010, 09:45

#7

Re: Petite introduction à android : "retour aux sources..."

Messagepar galaXYoung » 28 Août 2010, 12:00

pourquoi moi jai rien compris???
Parceque cest trop compliqué pour moi... Jai pas compris où cà voulait en venir... Je ne suis vraiment pas doué... Snif sniff snifff
Modèle : Samsung Galaxy S (GT-I9000)
Version du micrologiciel : 2.3.3. gingerbread.xwjvh enfin!!!!! 12/10/2011
Version de la bande de base : I9000XXJV0
Modifications : nada
Réseau : Bouygues tout en un ideo 3h + illimités le soir...
PC : (un PC en kit!!!) Windows XP tout pourri!!!
galaXYoung
Andro-parleur
 
Message(s) : 38
Inscription : 28 Août 2010, 11:08
Localisation : elbeuf, 76

#8

Re: Petite introduction à android : "retour aux sources..."

Messagepar myrmey » 02 Sep 2010, 19:22

Très intéressant pour qui découvre androïd et utilisait UNIX à la fac, il y a plus de 15 ans déjà :lol:
ORANGE OPEN ILLIMITÉ
[N4][Android 4.4]
[KERNEL]STOCK

ImageJe veux ce bootanimation !
Image<< lien >>
Avatar de l’utilisateur
myrmey
Ancien du Staff
Ancien du Staff
 
Message(s) : 2128
Inscription : 02 Sep 2010, 12:32

#9

Re: Petite introduction à android : "retour aux sources..."

Messagepar cisco008 » 08 Sep 2010, 13:33

merci pour ce super post tres utile :D
SGS GT-I9000 16GO
Firmware: I9000XXJVO
Opérateur: Proximus
Msn cisco008@hotmail.com Gtalk cisco008@gmail.com
PC: Core i7 et Windows 7 Ultimate x64

tous ensemble essayons d'écraser la dictature de la pomme prenez vos SGS car la bataille est imminente
Avatar de l’utilisateur
cisco008
Andro-communicant
 
Message(s) : 58
Inscription : 08 Sep 2010, 00:21
Localisation : Bruxelles

#10

Re: Petite introduction à android : "retour aux sources..."

Messagepar breakolami » 12 Sep 2010, 23:11

Les possesseurs de téléphone sous Android auront peut-être un jour l'envie d'essayer Linux sur leur ordinateur et ça c'est une bonne chose. ;)
Téléphone : Asus Zenfone 2 ZE551ML
Opérateur : Virgin
PC : Kubuntu 15.04 64bit
Avatar de l’utilisateur
breakolami
Andro-communicant
 
Message(s) : 192
Inscription : 12 Sep 2010, 16:35
Localisation : Val de Marne

Suivant

Retour vers Pour bien débuter sur le forum

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)