标签: android-shell

从命令行(adb shell)查询Android内容提供程序

有一个命令可以根据意图启动一个活动:am start.还发送广播:am broadcast.

我想可能应该有一个shell命令来查询内容提供者,可能是这样的:

query content://com.myapp.authority/path --where 'column=?' --arg 1 --order 'column desc'
Run Code Online (Sandbox Code Playgroud)

或类似的.

有吗?

android adb android-contentprovider android-shell

21
推荐指数
1
解决办法
2万
查看次数

adb shell dumpsys窗口窗口输出描述

我正在使用appuim进行Android设备和java代码之间的交互.我遇到问题,在按下Home按钮后某些设备(包括模拟器)上,appium返回不正确的当前活动(它返回当前必须最小化的previuos活动).我发现使用了appium dumpsys window windows 与抓mFocusedApp用于获取当前的应用价值.我读关于获取Android当前活动的另一个答案,并且大多数建议使用:

adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"
Run Code Online (Sandbox Code Playgroud)

这是问题的根源,因为在按下Home按钮mCurrentFocusmFocusedApp链接到不同的活动之后.但我找不到任何解释这些领域之间的区别.为什么appuim只mFocusedApp用它呢?

android adb appium dumpsys android-shell

6
推荐指数
1
解决办法
8511
查看次数

Android获取GPU型号

从终端运行以下命令时:

adb shell dumpsys | adb shell dumpsys | adb shell dumpsys | adb shell dumpsys | adb shell dumpsys 查询 GLES

输出是:

GLES:高通、Adreno (TM) 330、OpenGL ES 3.0 V@53.0 AU@ (CL@)

但是,以编程方式运行时我无法获得输出。

String GPUModel = "";
String command = "adb shell dumpsys | grep GLES";

try {

    InputStream inputStream = Runtime.getRuntime()
                                         .exec(command)
                                         .getInputStream();

    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

    GPUModel = bufferedReader.readLine();

} catch (IOException e) {
        e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

GPUModel 为空。

android opengl-es android-runtime android-shell

5
推荐指数
1
解决办法
5903
查看次数

如何在安装后使用其他应用程序或运行时通过从 api 获取响应来修改/编辑清单文件或应用程序图标

我很想知道如何通过编辑应用程序的清单文件向活动和广播接收器添加其他标志。更改应用程序的启动器图标和快捷方式图标。

并生成新的 apk 以安装此更改或完成此更改而无需重新安装任何应用程序。

这可以由应用程序本身完成,通过从服务器获取通知,例如某些谷歌应用程序更改其应用程序图标运行时而无需重新安装,或者只是其他应用程序在已安装的应用程序上执行此操作。像这样一个:-> apkpermremover

请帮助我学习这个。所有的答案都表示赞赏。谢谢你。

有没有人可以帮助我?!

java android android-manifest apk android-shell

5
推荐指数
0
解决办法
1291
查看次数

清除编辑文字-ADB

如何使用shell命令清除焦点编辑文本。

我试过了

adb shell input keyevent KEYCODE_CLEAR // Not worked 
adb shell input keyevent KEYCODE_DEL // Delete only one char
adb shell input keyevent KEYCODE_FORWARD_DEL // Not worked
Run Code Online (Sandbox Code Playgroud)

这样,我只能删除最多一个字符,有什么办法可以删除/清除重点突出的“编辑”文本。

android adb android-framework android-shell

5
推荐指数
3
解决办法
6083
查看次数

Android tmpfs可由用户写入

在已 root 的 Android 6.0.1 设备上,我希望用户可以写入 tmpfs。我愿意:

mkdir /sdcard/test
su
mount -t tmpfs -o size=512m tmpfs /sdcard/test
#Note that the permissions of /sdcard/test have changed
chmod 0771 /sdcard/test
chown root:sdcard_rw /sdcard/test
exit
touch /sdcard/test/aa
Run Code Online (Sandbox Code Playgroud)

安装报告:

tmpfs /storage/emulated/0/test tmpfs rw,seclabel,relatime,size=524288k 0 0
Run Code Online (Sandbox Code Playgroud)

但我得到:

touch: '/sdcard/test/aa': Permission denied
Run Code Online (Sandbox Code Playgroud)

所以我无法以标准用户身份写入 /sdcard/test (通过 shell 或应用程序)。我究竟做错了什么?我也尝试在 /data/ 中创建安装,这是同样的问题。

编辑1:

我已经在 Android 4.4 设备上尝试过并且可以正常工作。因此,某些内容发生了变化,并且在更高版本中受到了限制。我想知道 5.x 是否也受到影响。

编辑2:

奇怪的是, mount 报告了两次挂载点:

tmpfs /mnt/runtime/default/emulated/0/test tmpfs rw,seclabel,relatime,size=524288k 0 0
tmpfs /storage/emulated/0/test tmpfs rw,seclabel,relatime,size=524288k 0 0
Run Code Online (Sandbox Code Playgroud)

编辑3:

当我以用户身份执行文件触摸时,内核报告以下内容:

[54484.588865] type=1400 …
Run Code Online (Sandbox Code Playgroud)

android android-shell

5
推荐指数
1
解决办法
5654
查看次数