【问题标题】:Use Adb programmatically [closed]以编程方式使用 Adb [关闭]
【发布时间】:2013-01-16 18:33:26
【问题描述】:

如何使用 Rooted 设备以编程方式使用 Runtime.getRuntime().exe 将我的 apk 从数据文件夹推送到系统/应用文件夹。

我应该使用 Pull、Push 还是 Cat 命令以及如何使用?

它会影响共享首选项或其他什么吗?

【问题讨论】:

  • 以上都不是 - adb 用于连接的开发机器,而不是设备本身。应该强烈劝阻您尝试做的事情,但可能会使用您自己的复制代码来实现,或者使用 shell 来启动 cat 的实例并重定向输出。但请不要追求这个项目 - 它需要由具有 Android 智慧和你的问题表明你没有的 unix 专业知识的人详细审查它的安全性和稳定性。
  • 感谢您的回答,我只知道系统应用程序,我的意思是系统文件夹中的 apk 是 100% 受保护的,这对我来说已经足够了,因为我的应用程序不是病毒或不是恶意的,还有很多应用程序在 Google Play 中有这个功能
  • 你大错特错了——系统应用程序没有受到保护,除了在很小程度上覆盖其代码的琐碎且很少被利用的方式。相反,它们往往成为攻击设备的容易打开的门。新手尝试编写它们几乎肯定会引入严重的安全漏洞,使设备上的所有内容都处于危险之中 - 如果安装它们的业余尝试没有首先破坏它。
  • 是的,没错,我很在意这个...
  • 这是一个真实且非常具体的问题,因此就 SO 而言,它不应该被关闭。但是,如果没有更多数量级的专业知识,发布者不应该尝试这样做。

标签: android adb root


【解决方案1】:

试试

Runtime.getRuntime().exec("pm install -r "/path/to/yourfilename.apk";)

用法 pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] [--algo --key --iv ] 路径

选项:

-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.

根据您对 -r 参数的使用情况,它会影响共享首选项 xml 文件(用于不丢失)。

【讨论】:

  • 这只会作为常规应用程序安装,除非证书匹配(在这种情况下,发帖人不会在这里询问)。考虑到拼写错误,它也不会编译。
  • 谢谢,但我需要源路径>>目标路径吗?
  • @Chris,请解释为什么它如此危险,我的应用程序,就像在系统文件夹中放置一个空白文件,它不是安全漏洞......
  • 源路径是您的 apk 文件捆绑或下载到的任何位置。
  • @forgive 我的 apk 目前在 /data/app 中,所以 pm install 命令会将 'itself'(my apk) 推送到目标路径,因此不需要源路径,因为没有源路径作为参数
【解决方案2】:

您需要提取实际的 apk,而不是 /data 中的应用程序文件夹
但是拿到APK后,可以使用命令:
adb push myapp.apk /system/app
将其推送到/system/app 文件夹。当您将 apk 推送到 /data/app 时,它会将其安装为系统应用
不要这样做adb install myapp.apk,否则它将作为普通应用程序安装
为此,请将上述命令与Runtime.exec() 配对或查看如何使用ProcessBuilder

【讨论】:

  • 谢谢,但我的意思是程序化
  • 没错,您可以将其与Runtime.exec() 配对完成。
  • 所以命令应该是 "su , -c , adb? push /data/app/xxxx.apk /system/app/xxxxx.apk
  • 等等,我误会了。您是从设备本身还是从计算机运行此命令?
  • 来自设备本身!
猜你喜欢
  • 1970-01-01
  • 2013-07-07
  • 1970-01-01
  • 2013-08-08
  • 2015-03-17
  • 1970-01-01
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多