运行-as:无法设置功能:不允许操作
run-as: Could not set capabilities: Operation not permitted
on android 6.0.1 我在尝试使用 运行-as.
时遇到此错误
⋊> ~ adb shell 14:29:01
shell@trlte:/ $ run-as org.ligi.passandroid
run-as: Could not set capabilities: Operation not permitted
我真的很喜欢 运行-as 命令 - 有没有办法让它在 6.0.1 上运行?
我之前在这里发布了一个答案,但已被删除,可能是因为它是另一个 Whosebug 问题的 link,指的是我在那里给出的答案,而不是包含完整答案。
从这里重新发布其内容:
我在 Samsung Galaxy S6 Edge 上遇到了一个非常相似的问题,试图在 VS2015 上开始调试,我得到了一个不同的错误,比所附屏幕截图中的更详细:
运行-as:无法设置功能:不允许操作
根据上面所附屏幕截图的内容,我尝试使用 Samsung's Smart Switch 'initializing' / 恢复出厂设置,它实际上解决了我遇到的 'run-as' 问题。
这是唯一有效且不涉及对设备进行 root 操作的解决方案,因此我相信它一定是公开可用的。当然,尝试这样做的人应该记住,恢复出厂设置意味着数据将会丢失,除非对其进行备份。相同的三星软件有助于备份您的数据。
与这里的另一个答案不同,我也尝试过使用智能开关和硬设备重置,但不幸的是这种方法对我不起作用(浪费了额外的一个小时来尝试这种方法)。除了不起作用之外,它可能会产生其他问题 "samsung account: session expired" - 问题,只有当您对设备具有 root 访问权限时才能解决。
我自己使用了这里的说明:
https://www.youtube.com/watch?v=Sy4FWLHxGYs
然后从这里:
https://www.tomsguide.com/us/samsung-galaxy-s6-guide,review-2856-3.html
获取对您设备的 root 访问权限,然后 运行-as 可以使用其他命令执行 "su -c" 获取 root 用户。所以整个命令将如下所示:
su -c run-as org.ligi.passandroid
警告:获得对您设备的根访问权限很可能会使您的设备保修失效(如果您还有任何剩余的话)。
除此之外,我希望能够在 Samsung Galaxy S6 中调试我的应用程序,因此我更改了 Visual studio 组件,更多说明可在此处找到:
https://issuetracker.google.com/issues/37093233#comment53
如果您碰巧拥有基于三星的 android 设备 - 我已经向三星报告了该错误,但我无法获得任何时间表,如果他们何时以及是否会修复此问题问题。如果您拥有其他 Android 设备 - 向制造商报告此问题是有意义的。
如果您有 SAMSUNG 设备,请不要打扰 - SAMSUNG broke run-as
通过删除 setuid 标志(所以 run-as
没有机会切换到不同的身份)。
也不要费心尝试 Smart Switch "reinitialize device" 解决方法,它不会工作,直到三星在固件中修复它(因此值得更新到最新版本)。
使用其他方法访问您应用的数据,例如 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 文件。
我的解决方案是在项目的调试器配置中的参数字段中的参数 -autolaunch。
我使用 Delphi 10.2 和 S7 Edge Android 7
@RustyX 的回答部分帮助了我。 zlib
在我的 Mac 中不起作用。所以我不得不使用 Android Backup Extractor 将 .ab 文件转换为 .tar 文件。可以下载here.
对于完整的分步说明,refer here。
在 Visual Studio、应用程序属性、Android 选项中,将调试器从 C++ 更改为 .Net(Xamarin) 似乎已经解决了混合 C++/C# 应用程序的问题。
我在 Delphi 10.1 柏林工作。
我遇到了同样的问题,我的解决方案是将 sdk 配置为以前的版本。
我使用的是 Android SDK 25.2.5.32 位并降级为 android SDK 24.3.3 32 位。配置:
Tools->Environment Options -> SDK Manager
然后,添加必要的 sdk,在本例中为 android SDK 24.3.3 32 位。
对我来说,它是这样的。我正在使用 Samsung s6 API 24。错误列表日志的详细信息与问题中提到的相同。但是当我检查构建日志时,我发现解决方案写在那里。设置 MSBuild.所以我按照以下步骤成功解决了这个问题和应用 运行。
要纠正这个问题,我必须
从解决方案资源管理器卸载 Android 项目
右键单击卸载的项目和“编辑项目文件”
搜索代码“EmbedAssembliesIntoApk”
在项目文件中找到出现
<EmbedAssembliesIntoApk>false</EmbedAssembliesIntoApk>
将其更改为 true 并重新加载项目。
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
运行 应用程序和应用程序在 Samsung s6运行 上启动
今天当我尝试在 Samsung Xcover 3 运行 Android 6 上 deploy/debug 我的应用程序时也遇到了这个错误。
我通过将项目 属性“Android 选项/使用快速部署”更改为 false 来解决它。
这是 MS Visual Studio 2022 的解决方案。
https://www.youtube.com/watch?v=_r9GLm0k55o
只需取消选中“使用快速部署”即可。
on android 6.0.1 我在尝试使用 运行-as.
时遇到此错误⋊> ~ adb shell 14:29:01
shell@trlte:/ $ run-as org.ligi.passandroid
run-as: Could not set capabilities: Operation not permitted
我真的很喜欢 运行-as 命令 - 有没有办法让它在 6.0.1 上运行?
我之前在这里发布了一个答案,但已被删除,可能是因为它是另一个 Whosebug 问题的 link,指的是我在那里给出的答案,而不是包含完整答案。
从这里重新发布其内容:
我在 Samsung Galaxy S6 Edge 上遇到了一个非常相似的问题,试图在 VS2015 上开始调试,我得到了一个不同的错误,比所附屏幕截图中的更详细:
运行-as:无法设置功能:不允许操作
根据上面所附屏幕截图的内容,我尝试使用 Samsung's Smart Switch 'initializing' / 恢复出厂设置,它实际上解决了我遇到的 'run-as' 问题。
这是唯一有效且不涉及对设备进行 root 操作的解决方案,因此我相信它一定是公开可用的。当然,尝试这样做的人应该记住,恢复出厂设置意味着数据将会丢失,除非对其进行备份。相同的三星软件有助于备份您的数据。
与这里的另一个答案不同,我也尝试过使用智能开关和硬设备重置,但不幸的是这种方法对我不起作用(浪费了额外的一个小时来尝试这种方法)。除了不起作用之外,它可能会产生其他问题 "samsung account: session expired" - 问题,只有当您对设备具有 root 访问权限时才能解决。
我自己使用了这里的说明: https://www.youtube.com/watch?v=Sy4FWLHxGYs
然后从这里: https://www.tomsguide.com/us/samsung-galaxy-s6-guide,review-2856-3.html
获取对您设备的 root 访问权限,然后 运行-as 可以使用其他命令执行 "su -c" 获取 root 用户。所以整个命令将如下所示:
su -c run-as org.ligi.passandroid
警告:获得对您设备的根访问权限很可能会使您的设备保修失效(如果您还有任何剩余的话)。
除此之外,我希望能够在 Samsung Galaxy S6 中调试我的应用程序,因此我更改了 Visual studio 组件,更多说明可在此处找到:
https://issuetracker.google.com/issues/37093233#comment53
如果您碰巧拥有基于三星的 android 设备 - 我已经向三星报告了该错误,但我无法获得任何时间表,如果他们何时以及是否会修复此问题问题。如果您拥有其他 Android 设备 - 向制造商报告此问题是有意义的。
如果您有 SAMSUNG 设备,请不要打扰 - SAMSUNG broke run-as
通过删除 setuid 标志(所以 run-as
没有机会切换到不同的身份)。
也不要费心尝试 Smart Switch "reinitialize device" 解决方法,它不会工作,直到三星在固件中修复它(因此值得更新到最新版本)。
使用其他方法访问您应用的数据,例如 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 文件。
我的解决方案是在项目的调试器配置中的参数字段中的参数 -autolaunch。
我使用 Delphi 10.2 和 S7 Edge Android 7
@RustyX 的回答部分帮助了我。 zlib
在我的 Mac 中不起作用。所以我不得不使用 Android Backup Extractor 将 .ab 文件转换为 .tar 文件。可以下载here.
对于完整的分步说明,refer here。
在 Visual Studio、应用程序属性、Android 选项中,将调试器从 C++ 更改为 .Net(Xamarin) 似乎已经解决了混合 C++/C# 应用程序的问题。
我在 Delphi 10.1 柏林工作。 我遇到了同样的问题,我的解决方案是将 sdk 配置为以前的版本。 我使用的是 Android SDK 25.2.5.32 位并降级为 android SDK 24.3.3 32 位。配置:
Tools->Environment Options -> SDK Manager
然后,添加必要的 sdk,在本例中为 android SDK 24.3.3 32 位。
对我来说,它是这样的。我正在使用 Samsung s6 API 24。错误列表日志的详细信息与问题中提到的相同。但是当我检查构建日志时,我发现解决方案写在那里。设置 MSBuild.所以我按照以下步骤成功解决了这个问题和应用 运行。 要纠正这个问题,我必须
从解决方案资源管理器卸载 Android 项目 右键单击卸载的项目和“编辑项目文件” 搜索代码“EmbedAssembliesIntoApk” 在项目文件中找到出现
<EmbedAssembliesIntoApk>false</EmbedAssembliesIntoApk>
将其更改为 true 并重新加载项目。
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
运行 应用程序和应用程序在 Samsung s6运行 上启动
今天当我尝试在 Samsung Xcover 3 运行 Android 6 上 deploy/debug 我的应用程序时也遇到了这个错误。 我通过将项目 属性“Android 选项/使用快速部署”更改为 false 来解决它。
这是 MS Visual Studio 2022 的解决方案。
https://www.youtube.com/watch?v=_r9GLm0k55o
只需取消选中“使用快速部署”即可。