run-as:无法设置功能:不允许操作

时间:2016-05-24 12:31:40

标签: android adb

在Android 6.0.1上的

我在尝试使用run-as时遇到此错误。

⋊> ~ adb shell                                                          14:29:01
shell@trlte:/ $ run-as org.ligi.passandroid                                    
run-as: Could not set capabilities: Operation not permitted

我真的很喜欢run-as命令 - 有没有办法让它在6.0.1上运行?

7 个答案:

答案 0 :(得分:60)

如果你有一个三星设备,请不要打扰 - 三星broke run-as删掉setuid标志(所以run-as没有机会切换到不同的身份)。

也不用费心去尝试Smart Switch"重新初始化设备"解决方法,它不会工作,直到SAMSUNG将其修复到固件中(因此值得更新到最新版本)。

使用其他方法访问您应用的数据,例如adb backup

adb backup -f data.ab <my.package>
dd if=data.ab  bs=24 skip=1 | openssl zlib -d > data.tar

您可以使用abe工具代替dd,也可以编写.ab文件。

答案 1 :(得分:3)

我的解决方案是参数字段中项目的调试器配置中的参数-autolaunch。

我将Delphi 10.2与S7 Edge Android 7一起使用

答案 2 :(得分:1)

与此处的另一个答案不同,我还尝试使用智能开关和放大器。硬设备重置,但不幸的是,这种方法对我不起作用(浪费额外一小时只是为了尝试这种方法)。除了不工作之外,它可能会产生额外的问题“三星帐户:会话已过期” - 问题,只有在您拥有对设备的超级用户访问权限时才能解决此问题。

我自己使用过这里的说明: https://www.youtube.com/watch?v=Sy4FWLHxGYs

然后从这里: https://www.tomsguide.com/us/samsung-galaxy-s6-guide,review-2856-3.html

用于获取对设备的root访问权限,并且在运行之后 - 可以使用附加命令“su -c”执行以获取root用户。所以整个命令看起来像这样:

su -c run-as org.ligi.passandroid

警告:如果您有任何遗失,则获取设备的超级用户访问权限很可能会使设备保修失效。

除此之外,我希望能够在Samsung Galaxy S6中调试我的应用程序,所以我改变了Visual Studio组件,可以在这里找到更多说明:

https://issuetracker.google.com/issues/37093233#comment53

如果您碰巧拥有基于三星的Android设备 - 我已经向三星报告了该错误,但我无法获得任何时间安排如果何时以及他们是否会解决此问题。如果您拥有其他一些Android设备 - 将此问题报告给制造商是有意义的。

答案 3 :(得分:0)

@RustyX回答部分地帮助了我。 zlib在我的Mac上无法正常工作。因此,我必须使用 Android备份提取程序 .ab 文件转换为 .tar 文件。您可以下载here

完整的分步说明,refer here

答案 4 :(得分:0)

在Visual Studio中,App属性,Android选项,将调试器从C ++更改为.Net(Xamarin)似乎解决了混合C ++ / C#应用程序的问题。

答案 5 :(得分:-1)

我之前在这里发布了一个被删除的答案,可能是因为它是另一个stackoverflow问题的链接,指的是我在那里给出的答案,而不是包含完整的答案。

https://stackoverflow.com/a/43242739/7823460

重新发布其内容

我在三星Galaxy S6 Edge上有一个非常类似的问题,试图在VS2015上开始调试,我得到了一个不同的错误,比附带的屏幕截图简洁得多:

run-as:无法设置功能:不允许操作

根据上面附带屏幕截图的内容,我尝试使用Samsung's Smart Switch“初始化”/出厂重置设备,它实际上修复了我遇到的“run-as”问题。

这是唯一有效并且不涉及设备生根的解决方案,所以我认为它必须是公开的。当然,尝试这一点的人应该记住,工厂重置意味着数据将丢失,除非它已备份。相同的三星软件可以帮助您备份数据。

答案 6 :(得分:-1)

我在Delphi 10.1柏林工作。 我也遇到了同样的问题,我的解决方案是将sdk配置为以前的版本。 我使用的是Android SDK 25.2.5.32位,并降级为android SDK 24.3.3 32位。要配置:

  

工具->环境选项-> SDK管理器

然后,添加必要的sdk,在本例中为android SDK 24.3.3 32位。