> For the complete documentation index, see [llms.txt](https://sansong.gitbook.io/cyber/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sansong.gitbook.io/cyber/rev/android/adb/execution-de-commande.md).

# Exécution de commande

L'ordinateur doit déjà être connecté au téléphone (voir [Connexion au téléphone](/cyber/rev/android/adb/connexion-au-telephone.md)).

La commande `shell` sert à exécuter des commandes sur le téléphone. Android étant basé sur un noyau Linux, les commandes standard sont disponibles.

Par défaut, on est connecté en tant que l'utilisateur `shell` avec cette commande.

{% hint style="warning" %}
Il est possible d'exécuter des commandes depuis un shell persistant ou non. Dans la suite de ce guide, j'utilise la syntaxe `adb shell <command>` qui suppose un shell non persistant. **Mais toutes les commandes peuvent être exécutées sans `adb shell` après s'être connecté une première fois**.
{% endhint %}

## Obtenir un shell sur le téléphone

```
adb shell
```

{% hint style="info" %}

## Avec un shell persistant

```
$ adb shell
ocean:/ $ whoami
shell
ocean:/ $
```

Ici `ocean` est le nom du téléphone.
{% endhint %}

## Exécuter une commande sans shell persistant

```
adb shell <command>
```

{% hint style="info" %}

## Sans shell persistant

```
$ adb shell whoami
shell
$
```

{% endhint %}

## Exécuter en tant qu'un utilisateur spécifique

Parfois, il est nécessaire d'exécuter une commande en tant qu'un utilisateur spécifique. La commande `runs-as` sert à ça.

```
adb shell run-as <package> <command>
```

{% hint style="success" %}
Par exemple, pour accéder au répertoire privé d'une application sur un appareil non rooté (*l'application installée doit être en mode debug dans ce cas*).
{% endhint %}
