问题标签 [android-shell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1487 浏览

android-ndk - 无法使用使用 android ndk 的预构建共享库运行可执行文件

我正在尝试构建一个可执行文件,该可执行文件依赖于 C 中用于 android 的共享库。我想在 android shell 上运行可执行文件。我首先使用 android ndk 构建可执行文件(我使用的是 android-ndk-r16b),然后使用adb push将 ndk 生成的文件放在我的 android 设备上,然后使用adb shell我尝试运行可执行文件。

我在 Ubuntu 14.04 上构建。我使用以下方法安装了 android arm 工具链apt-get

这是我的文件:

共享库:libcal.so

计算:

卡路里:

生成文件:

所以这就是我生成共享库的方式。然后在一个名为 jni 的文件夹中,我有以下文件:

测试.c:

安卓.mk

应用程序.mk

然后运行$ndk-build这是我的输出

因此,我的 android 兼容文件位于 libs 文件夹中

注意:如果我不使用 Application.mk,则构建失败并显示以下输出

无论如何,现在我将共享库和可执行文件放在 android 设备上并运行可执行文件后,我收到以下错误:

为什么它链接到关于我的笔记本电脑的路径?

如果有人能告诉我我做错了什么或就他们如何做类似的事情给我建议,我将不胜感激。

我的实际任务需要我链接更复杂的共享库并在 android shell 上运行可执行文件。如果我能得到一个简单的 .so 工作,我不知道该怎么做。

0 投票
1 回答
2779 浏览

android - ADB:如何自动化完整的 BT 扫描、配对和连接

我正在寻找使用 ADB 自动化以下活动。

蓝牙设置 -> TunrnOn BT -> 配对(到我可以设置的 BT mac 地址) -> 在某些配置文件(如 A2DP/HFP)上连接到 BT 设备。

我已经在这里这里找到了如何使用 ADB 打开并将 BT 设置为可发现。但是我仍然坚持如何使用 ADB 再次发出连接请求。

有没有办法完全自动化这些步骤。

感谢您的宝贵意见。

0 投票
3 回答
2556 浏览

android - 检测设备是否无系统植根

由于无系统 root 可以使用几年,因此检测设备是否已 root 变得“更难”。我开始寻找一种可能的解决方案来检测设备是否无系统地植根,但我仍然无法找出解决方案。检查文件是否存在于给定路径(在 /system 中)是没有意义的,因为如果设备无系统地植根,它就不会存在。同样寻找管理 root 访问的应用程序可能没有意义,因为用户可能没有安装它们/或者只是使用其他的,不如 Magisk、SuperSu 等流行。

所以,我的想法是执行“su”命令,然后检查 shell 是否在 root 模式下运行(“#”)或不(“$”)。但是我如何检查它以哪种模式运行?据我所知,在简单地执行命令后:

由于不再使用“SU 用户”(?),进程被终止。

简单查看我对 adb 用法的含义:

如果执行此命令后变为:

将知道设备是否已植根,如果返回“权限被拒绝”将知道设备未植根。我可以在 Android 应用程序中实现类似的功能吗?

0 投票
1 回答
541 浏览

android - ADB Shell Android 如何删除联系人组?

我正在使用 adb shell 从手机中删除联系人。例如,如果我有 50 个联系人,如何删除前 10 个?

我用这个来一一删除,有没有办法通过一个命令一次删除更多联系人,以加快处理速度?

我不是要清除所有联系人,而是要删除一些并留下其余的联系人。

0 投票
0 回答
42 浏览

android - 使用系统证书签署 Apk

我正在为特定设备进行开发,并且我已在此设备上安装了系统证书。我的任务是下载另一个应用程序并在没有用户交互的情况下安装它

我尝试使用系统证书对我的应用程序进行签名,并使用此方法使用“Su”程序安装它如何使用系统签名密钥对我的应用程序进行签名? 但它抛出异常:无法运行“su”程序

这是完成任务的正确方法吗?还有其他选择吗?

0 投票
0 回答
225 浏览

android - 在 Android 4.2.2 上运行可执行文件“Permission denied”

我尝试ssserver使用 Android 4.2.2 在 Nexus4 上运行,但不能。结果是“权限被拒绝”。文件权限似乎正常:

我尝试了以下但没有奏效:

  • 重启设备
  • 禁用 selinux
  • 在同一目录中创建 test.sh 并设置执行权限运行但得到相同的提示“权限被拒绝”
  • 创建 android 4.2.2 模拟器

该问题似乎只有在Android 5.0 下才会发生。我尝试创建 Android 4.2.2 模拟器并执行ssserver它就可以了!

为什么我不能ssserver在安卓设备上运行?

0 投票
1 回答
359 浏览

android - 是否有 Android `adb shell dumpsys [service]` 命令的通用手册页或文档?

问题

是否有 Androidadb shell dumpsys [service]命令的通用手册页或文档?我不是这个意思,因为这似乎没有给出关于特定服务输出的细节,例如adb shell dumpsys backup

背景

我已经通读了这个关于 dumpsys 命令的问题,但似乎没有任何通用文档或手册页的链接。这个答案源于用户阅读源 C 代码并描述他们的观察结果,而这个答案似乎只是用户发现有用的一些特定用例。一条评论甚至问

这是来自某处的文档还是只是您自己的实验?

没有回复。

特别是,我基于我不确定从adb shell dumpsys backup.

Android 文档状态:

要查找备份令牌,请运行adb shell dumpsys backup. 标记是标签 Ancestral: 和 Current: 之后的十六进制字符串。祖先令牌是指在设备初始设置时用于恢复设备的备份数据集(使用设备设置向导)。当前令牌是指设备的当前备份数据集(设备当前将其备份数据发送到的数据集)。

我的输出的截断版本是:

上面引用的文本中提到的部分似乎是有道理的,但是还有大量的附加信息我不知道该怎么处理。特别是,我正在寻找一种方法来验证备份的内容和未备份的内容,但标题为“参与者、祖先包、曾经备份、等待键/值备份、完整备份队列”,我不确定备份和未备份的内容。

我试过adb shell dumpsys backup -h了,但这没有任何帮助:

概括

我正在寻求对输出adb shell dumpsys backup及其所有标题的解释。另外,是否有任何文档更详细地讨论这个问题?也许没有,这就是为什么人们求助于阅读源代码的原因?

0 投票
0 回答
265 浏览

command - 是否有任何命令可以使用 adb 在 android 的文件管理器中启动目录?

我想使用 adb 在我的 android 手机中打开下载文件夹。我有示例: start . /path/to/that/folder命令提示符和nautilus /path/to/that/folderubuntu 终端的命令。

0 投票
2 回答
1659 浏览

android - Android 10 - netstat 执行无法正常工作

我正在尝试shell在我的 Android 应用程序中运行一个命令,以检查是否tcp port打开了一个命令:

在 Android 版本 < 10 中运行此命令可以正常工作。如果使用了给定的端口,它将进行完整扫描并返回条目。

但在 Android 10 中,它不再工作了。进程 exec 将返回:

Process[pid=9534 ,hasExited=true, exitcode=1]

当读取inputStream进程时它总是null,而netstat -tulpn | grep :8080从终端执行时将返回一个条目,如预期的那样。

跑步

单独,并解析输出,只会显示:

并且根本没有其他数据。

我只在 Android 10 中遇到这个问题,因为对于旧版本它可以工作。

Android 10 关于 shell 命令有什么变化吗?我有必要运行这个命令。任何帮助,将不胜感激...

0 投票
1 回答
360 浏览

android - 如何通过脚本与安卓设备交互?

我需要在这里朝着正确的方向前进。

我想编写一个向上或向下滚动的脚本,也许每 30 分钟左右解锁一次屏幕(没有设置锁屏安全设置)。另外,如果可能的话,我希望它按我的 YouTube 应用程序上的下一个按钮,因为音乐每隔一小时左右就会停止一次,而且由于我在我的工作室,我不喜欢我的工作流程被打断只是按下一个。现在我对android不太了解,所以我不知道从哪里开始。也许是一个 cron 工作?一个shell脚本?