如何在不root设备的情况下授予ADB Shell权限

7

我在命令提示符中运行以下命令,但出现了“权限被拒绝”的错误提示。请问有人能够解释如何授予权限吗?

C:\android\tools>adb push asl-native /data/local/asl-native
failed to copy 'asl-native' to '/data/local/asl-native': Permission denied

@dtmilano 推送到SD卡已经可以工作了,但在推送后我们必须运行它,而在运行时也会出现相同的“权限被拒绝”消息。 - raju
大多数设备都会使用noexec选项挂载SD卡 - 如果是这种情况,您将无法从卡上运行应用程序。 - Alex P.
1
这正是为什么adb shell没有被授予root访问权限的原因,以避免加载和执行存在安全风险的内容。 - Diego Torres Milano
3个回答

2

如果你的手机没有root权限并且无法以root身份运行adb shell,那么你将无法写入/data目录。

通过查看asl的运行脚本,你可能可以将其更改为将其安装到sd卡中。我还没有测试过,但它可能类似于这样:

# Install service
echo "Installing native service..."
$adb push ./asl-native /sdcard/asl-native
$adb shell /system/bin/chmod 0777 /sdcard/asl-native

# Start the service
echo "Starting service..."
$adb shell "/sdcard/asl-native /sdcard/asl-native.log" &
echo "Service started successfully."

虽然我不确定您是否被允许运行chmod并使某些内容可执行。您可能需要先在本地计算机上运行chmod 0777。


在运行此命令时,它显示权限被拒绝的消息:$adb shell "/sdcard/asl-native /sdcard/asl-native.log" & - raju

1

0

在您的手机上找到一个既可写(对于shell用户),又没有noexec选项的分区,并将您的可执行文件推送到该分区。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接