फोन से ऐप इंस्टॉल करने की कमांड?


14

मैं अपने फोन में एसएसएच करना चाहता हूं, एक एपीके डाउनलोड करता हूं, और इसे दूरस्थ रूप से स्थापित करता हूं। क्या फोन पर कोई कमांड उपलब्ध है जो मुझे ऐसा करने की अनुमति देगा?

ईजी:

wget localhost/file.apk 
android_install file.apk

एक संस्थापन को स्वचालित करने की आवश्यकता है, क्योंकि मैंने अभी गलती से अपना एसडी कार्ड और उस पर सब कुछ मिटा दिया था। :(


जवाबों:


12

Adb शेल या टर्मिनल एमुलेटर (और SSH पर सबसे अधिक संभावना है) में आप pmऐप्स को इंस्टॉल करने के लिए यूटिलिटी का उपयोग कर सकते हैं । आदेश है:

pm स्थापित / ssdcard/app1.apk

निम्नलिखित स्विच हैं 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

उदाहरण के लिए, आप ऐप्स को सीधे बाहरी स्टोरेज (Froyo / Gingerbread स्टाइल) में इंस्टॉल करने के लिए बाध्य कर सकते हैं।

PS wgetउपयोगिता उपयोगिता CM7 पर बिजीबॉक्स के माध्यम से उपलब्ध होनी चाहिए। यदि नहीं, तो आप इसे हमेशा Android Market के माध्यम से इंस्टॉल कर सकते हैं ।


यह वही है जो मैं देख रहा हूँ। pmपर मौजूद है /system/bin/pm, लेकिन दुर्भाग्य से SSH (रूट के रूप में भी) यह कुछ भी नहीं करता है। किसी भी pmकमांड को चलाने से कोई आउटपुट नहीं मिलता है। क्या मैं कुछ गलत कर रहा हूँ? यह टर्मिनल एमुलेटर में काम करता है, बस किसी कारण से SSH से अधिक नहीं है :(
Naftuli Kay

मेरे पास CM6 में adb से रूट के रूप में PM काम है; इससे परे कि मैं अनिश्चित हूं।
ब्राम

1
क्या मैं पूछ सकता हूं कि एडीबी शेल पर एसएसएच को प्राथमिकता देने का क्या कारण है?
15

1
@ कॉच: adbकेवल USB केबल के माध्यम से काम करता है, है ना? और SSH एक वायरलेस नेटवर्क पर हो सकता है। इसके अलावा, sshवहाँ हर जगह है, लेकिन adbस्थापित किया जाना है।
इम्ज़ - इवान ज़खरीशेव

त्रुटि: java.lang.SecurityException: अनुमति अस्वीकृत: runInstallCreate दोपहर से कमांड उपयोगकर्ता -1 के रूप में चलाने के लिए कहता है, लेकिन उपयोगकर्ता 11 से कॉल कर रहा है; इसके लिए android.permission.INTERACT_ACROSS_USERS_FULL

6

मेरा सुझाव है कि आप अपने फ़ोन को sdk (या कम से कम adb) स्थापित और डीबगिंग मोड के साथ एक पीसी में प्लग करें। इसके बाद, एक स्क्रिप्ट लिखें जो आपके ऐप्स के माध्यम से जाती है और उन्हें adb, उदा adb install x:\path\to\app1.apk


ऐसा करने के लिए फोन पर कोई मूल उपयोगिता नहीं है?
Naftuli Kay

1
नहीं, चूँकि अधिकांश एप्स अपनी .apk फाइल / डाटा / एप को कॉपी कर लेते हैं। आप वहां अपने सभी एप्स को कॉपी करने की कोशिश कर सकते हैं और फिर रिबूट कर सकते हैं (ध्यान दें कि यह रूट की जरूरत है, लेकिन मैं cyanogenMod टैग से लगता हूं कि आप रूट किए गए हैं)।
Onik

अब वह कुछ ऐसा है जिसे मैं SSH के ऊपर कर सकता हूं,cp * /data/app && reboot
Naftuli Kay

1
ध्यान दें कि cp कमांड स्टॉक एंड्रॉइड (यानी नॉन-कस्टम रोम) में उपलब्ध नहीं है, इसलिए यदि आप Cyanogen का उपयोग नहीं कर रहे हैं तो आपको catकमांड का उपयोग करने की आवश्यकता हो सकती है ।
लायन रयान

2
दरअसल, फोन पर ऐसी कमांड होती है। pm install /sdcard/app1.apkके रूप में एक ही काम करेंगे adb installऔर एडीबी शेल, टर्मिनल एमुलेटर में निष्पादित किया जा सकता है, और एसएसएच पर सबसे अधिक संभावना है। pmअधिक विकल्पों के आउटपुट पर एक नज़र डालें । यहां तक ​​कि ऐप को बाहरी स्टोरेज (जिंजरब्रेड स्टाइल) में सीधे इंस्टॉल करने के लिए बाध्य करने के लिए एक स्विच भी है।
13

2

मैं उसी विधि का उपयोग कर रहा हूं और हां एसएसएच महान है! लेकिन ऐसा लगता है जब आप एंड्रॉइड के लिए एसएसएच करते हैं, तो यह श की तुलना में एक अलग शेल हो जाता है, इसलिए यदि आप कमांड के सामने श को लगाते हैं तो यह काम करना चाहिए।

यहाँ एक उदाहरण है: sh /system/bin/pm install app1.apk

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.