Articles of shell

无法从adb shell运行可执行文件

我已经使用此命令将tcpdump二进制文件添加到我的Android设备中 ./adb push ~/tcpdump-4.2.1/tcpdump /data/local 二进制文件成功添加到Android设备。 但是,当我尝试从adb shell执行tcpdump文件时,使用以下命令 ./adb shell cd data/local ./tcpdump 它给了我这个错误 /system/bin/sh: ./tcpdump: not executable: magic 7F45 我也尝试使用chmod 777 tcpdump更改权限但是徒劳无功。 我该如何克服这个问题? 谢谢。

adb shell screencap – “权限被拒绝”

我在三星Galaxy Young Duos手机上创建截图有问题 – Android 2.3.6。 我将此代码用于其他设备: adb -s $devi shell screencap -p | perl -pe ‘s/\x0D\x0A/\x0A/g’ > $devi/Screen.png 这是在其他设备上正常工作(三星Galaxy S3,华硕Nexus 7,华硕ME371MG – Android 4.X) 我尝试了此页面中的其他变体但未成功。 三星Young有错误“许可被拒绝”。 调试模式已设置,并且此设备上的Testdroid测试能够进行屏幕截图。 并且SDCard已插入此手机。

无法使用Runtime.exec()在Android Java代码中执行shell命令“echo”

我可以使用Runtime.exec()来执行像“ getprop ”和“ ls system ”这样的shell命令,它们工作正常。 但是,当我使用“ echo $BOOTCLASSPATH ”,“ echo \\$BOOTCLASSPATH ”或“ echo HelloWorld ”时,它不会在stdout中显示它。 logcat显示: I/AndroidRuntime( 4453): VM exiting with result code -1. 这是我的代码: try { java.lang.Process proc = Runtime.getRuntime().exec(“echo -e \\$BOOTCLASSPATH”); String line = null; InputStream stderr = proc.getErrorStream(); InputStreamReader esr = new InputStreamReader (stderr); BufferedReader ebr = new BufferedReader (esr); while […]

使用adb隐藏软键盘

我想使用adb shell命令隐藏软键盘。 是否有任何特定的命令可以这样做或以任何方式我可以获得当前焦点窗口对象在adb上我可以隐藏键盘,如果显示?

如何使用ADB终止所有活动任务/应用程序?

是否可以使用ADB杀死任务管理器中的所有活动任务/应用程序? 这相当于打开任务管理器并逐个查杀每个任务…… 我尝试使用以下adb shell命令,但这并没有杀死所有任务。 adb shell am kill-all 我不能使用adb shell am force-stop 命令,因为它需要我知道哪个包/ app正在运行。 我想杀死所有正在运行的用户应用程序任务。 与使用任务管理器并逐个查杀每个任务类似。 根据命令描述, kill-all杀死所有后台进程。 后台流程是否等同于“服务”,任务是否等同于“活动”? 此外,是否可以在保留用户数据的同时使用ADB清除应用程序缓存? 我似乎adb shell pm clear清除了所有用户数据。 我只想清除缓存。 我问的原因是因为我正在对几个用户应用程序进行一些性能测试。 为了使每个测试有效,我想确保没有任何用户应用程序在后台已经有任何任务,活动,服务和缓存。

更改用户和组的Android应用程序文件以复制问题用户正在使用

我在市场上有一个Android应用程序,我的一个用户报告了一个其他人没有的问题(至少据我所知)。 他们告诉我他们做了什么以及他们使用了什么设置以及他们正在使用的Android版本,所以我试图尽可能地复制它。 我在更新之前安装了原始应用程序(当一切正常时),并按照用户所说的相同方式进行设置。 然后我进入shell并进入/data/data/com.mycompany.myapp/并检查databases和shared_prefs文件夹以检查所有权,并且两个文件都已设置为并且用户和组都设置为是app_36 。 然后我将所有内容都拉到我的开发PC上,这样我就拥有了数据库和prefs文件。 然后我使用adb install com.mycompany.myapp卸载原始版本并安装新版本的应用程序I then upload the databases and prefs file using adb push“ I then upload the databases and prefs file using ,然后使用adb shell查看文件的权限看到它们现在由root拥有,因此应用程序无法访问这些文件。 然后我尝试从adb shell执行以下操作: adb shell cd com.mycompany.myapp/shared_prefs chown app_36:app_36 prefs.xml 这可以在正常的linux中将用户和组更改为app_36但是它说没有用户app_36:app_36。 但是,如果我知道app_36 prefs.xml它然后更改所有者,但我无法更改组。 要更改组,我使用chgrp app_36 prefs.xml但是它说没有findchgrp。 如何更改用户和组,以便我可以复制文件并复制用户遇到的问题。 感谢您的任何帮助,您可以提供。

为什么fork炸弹没有崩溃android?

这是最简单的叉炸弹 :() { :|: & }; : 我在许多Linux发行版上执行它,所有这些都崩溃了。 但是当我在Android终端中执行此操作时,即使在授予超级用户权限后也没有任何效果。 任何解释为什么它没有崩溃Android系统?

Android:/ data / local / tmp / *的权限被拒绝

我试图通过Android应用程序运行shell脚本。 该脚本有一个命令,它只在设备上运行一个jar。 当我使用adb直接在shell上运行此命令时,一切正常。 但是当我使用Android应用程序通过脚本运行它时,我获得了在/ data / local / tmp文件夹中创建的文件的权限被拒绝exception(打开失败:EACCES(Permission denied))。 谁能指导如何解决这个问题? 这就是我的清单的样子 … … … 谢谢。

Android Shell EOF

我在为Android制作的脚本中遇到了一个小问题。 我不能缝合’EOF’在’mksh‘中工作。 它在’sh’和’bash’中工作得很好,但是因为’mksh’是Android中最常用的,所以我真的需要它才能工作。 cat <<EOF … lines here … EOF 此示例将导致延迟错误 无法创建临时文件/sqlite_stmt_journals/mksh.(random):没有这样的文件或目录 我见过其他人有这个问题,但没有真正的解决方案。

adb:从adb shell中查找PID

我正在尝试获取进程INSIDE adb shell的PID。 所以,我正在做adb shell,它让我进入了android shell。 现在,如果我使用常规shell获取PID,我会使用 adb shell ps | grep android.process.acore | sed ‘s/\s\s*/ /g’ | cut -d ‘ ‘ -f 2 要么 adb shell ps | grep android.process.acore | awk ‘{ print $2 }’ 我得到PID(数字编号 – ps | grep android.process.acore第2个字段)输出。 但是,如果我在android shell中运行上面的命令(在执行adb shell ),我得到/system/bin/sh: sed: not found和/system/bin/sh: awk: not found分别/system/bin/sh: awk: not […]