如何从命令行(终端)安装应用程序?


10

如何从命令行(终端)安装应用程序?

我想启动一个终端窗口并从命令行(shell脚本)进行apk安装

EDIT1:在手机内。还可以通过URL从Google Play安装,而不仅仅是本地路径吗?

我没有得到有关如何从命令行安装Google Play应用的答案。

Answers:


11

如果有足够的特权(ADB,root,系统应用程序),则可以使用简单的终端命令来安装应用程序:

在PC上:

运行简单的命令

adb install <path to .apk file>

并会安装该应用。
这需要adb安装并启用调试模式。
该文件必须位于PC上。

在设备中adb shell或设备上的终端中:

pm install <path to .apk file>

这基本上与PC方法相同,但是需要将文件放在手机上。
此外,还需要安装应用程序的特权(ADB Shell从系统继承它们,其他终端应用程序需要root


2
有时,使用pm install <package.apk>不能从设备安装失败Failure [INSTALL_FAILED_INVALID_URI]。如果在CM12.1上或以其他方式具有root权限并且在adb电话上具有客户端,则可以通过使电话自行连接来解决此问题。要做到这一点,你需要执行setprop service.adb.tcp.port 5555的话adb start-server,那么adb connect 127.0.0.1:5555,最后adb shell "pm install <apk_path>"。所有命令都将以root用户身份执行。
Grimoire

2
最后,如果您使用我的上述方法,有时adb将emulator-5554在下报告一个虚拟对象adb devices。通过杀死它adb emu kill是行不通的,但是setprop service.adb.tcp.port 5555再次发行将使虚拟模拟器消失。当adb服务器正在运行时,必须执行setprop命令,否则虚拟模拟器不会消失。
Grimoire17年

@DeathMaskSalesman,您好,我在CM13上,但收到INVALID_URI错误。由于我能够将apk与adb和笔记本电脑一起安装,因此我真的很想让您的解决方案能够正常工作,因此我不需要PC就可以做到。只是一个问题...您如何在手机中安装adb?find / -name'adb'只给了我三个文件夹...在网上看,我找不到任何东西
Giacomo Tecya Pigani

@GiacomoTecyaPigani您可以使用从CM12.1系统中提取的ADB版本尝试运气。从下载后在这里,重新挂载/系统在读写模式,复制二进制/系统/斌,问题chown root.shell /system/bin/adbchmod 755 /system/bin/adbchcon u:object_r:system_file:s0 /system/bin/adb看看它是否工作。
Grimoire17年

1
感谢@DeathMaskSalesman,但遗憾的是它没有用。我解决了将其降级到以前的CM13版本的问题(因为我使用的是我设备的最新版本)
Giacomo Tecya Pigani
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.