14 votes

Commande pour installer l'application à partir du téléphone ?

J'aimerais pouvoir accéder à mon téléphone par SSH, télécharger un APK et l'installer à distance. Y a-t-il une commande disponible sur le téléphone qui me permettrait de faire cela ?

EG :

wget localhost/file.apk 
android_install file.apk

J'ai besoin d'automatiser une installation, car je viens d'effacer accidentellement ma carte SD et tout ce qu'elle contenait :(

12voto

Chahk Points 19297

Dans le shell adb ou l'émulateur de terminal (et très probablement via SSH), vous pouvez utiliser la commande pm pour installer des applications. La commande est :

pm install /sdcard/app1.apk

Voici les interrupteurs de pm :

usage: pm [list|path|install|uninstall]
       pm list packages [-f] [-d] [-e] [-u] [FILTER]
       pm list permission-groups
       pm list permissions [-g] [-f] [-d] [-u] [GROUP]
       pm list instrumentation [-f] [TARGET-PACKAGE]
       pm list features
       pm list libraries
       pm path PACKAGE
       pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH
       pm uninstall [-k] PACKAGE
       pm clear PACKAGE
       pm enable PACKAGE_OR_COMPONENT
       pm disable PACKAGE_OR_COMPONENT
       pm setInstallLocation [0/auto] [1/internal] [2/external]

The list packages command prints all packages, optionally only
those whose package name contains the text in FILTER.  Options:
  -f: see their associated file.
  -d: filter to include disbled packages.
  -e: filter to include enabled packages.
  -u: also include uninstalled packages.

The list permission-groups command prints all known
permission groups.

The list permissions command prints all known
permissions, optionally only those in GROUP.  Options:
  -g: organize by group.
  -f: print all information.
  -s: short summary.
  -d: only list dangerous permissions.
  -u: list only the permissions users will see.

The list instrumentation command prints all instrumentations,
or only those that target a specified package.  Options:
  -f: see their associated file.

The list features command prints all features of the system.

The path command prints the path to the .apk of a package.

The install command installs a package to the system.  Options:
  -l: install the package with FORWARD_LOCK.
  -r: reinstall an exisiting app, keeping its data.
  -t: allow test .apks to be installed.
  -i: specify the installer package name.
  -s: install package on sdcard.
  -f: install package on internal flash.

The uninstall command removes a package from the system. Options:
  -k: keep the data and cache directories around.
after the package removal.

The clear command deletes all data associated with a package.

The enable and disable commands change the enabled state of
a given package or component (written as "package/class").

The getInstallLocation command gets the current install location
  0 [auto]: Let system decide the best location
  1 [internal]: Install on internal device storage
  2 [external]: Install on external media

The setInstallLocation command changes the default install location
  0 [auto]: Let system decide the best location
  1 [internal]: Install on internal device storage
  2 [external]: Install on external media

Par exemple, vous pouvez forcer l'application à s'installer directement sur le stockage externe (style Froyo/Gingerbread).

P.S. Le wget devrait être disponible via BusyBox sur CM7. Si ce n'est pas le cas, vous pouvez toujours l'installer via Marché Android .

6voto

Chris Roberts Points 7543

Je vous suggère de brancher votre téléphone sur un PC avec le sdk (ou au moins adb) installé et en mode débogage. Après cela, écrivez un script qui passe par vos applications et les installe via adb, par ex. adb install x:\path\to\app1.apk .

2voto

mehellra Points 21

J'utilise la même méthode et oui SSH est génial ! Mais il semble que lorsque vous SSH à Android, il obtient un shell différent de sh, donc si vous mettez sh devant la commande, cela devrait fonctionner.

Voici un exemple : sh /system/bin/pm install app1.apk

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X