Skip to content
This repository has been archived by the owner on May 27, 2024. It is now read-only.

权限问题 #11

Open
DevineLiu opened this issue Jul 4, 2018 · 8 comments
Open

权限问题 #11

DevineLiu opened this issue Jul 4, 2018 · 8 comments

Comments

@DevineLiu
Copy link

DevineLiu commented Jul 4, 2018

当我意图用 atx-gent 中shell 去启动 uiautomator2 的service时出现了权限不够的问题 ,adb的权限高于应用,在用adb shell 中可以正常拉起的服务,在atx-gent 的shell中却不能拉起

希望作者提供可以无线拉起 uiautomator服务的方法 ,因为可能需要在 手机中运行 自动化脚本

或许在手机端提供一个 adbserver 是一个方案 ,以下项目是adb协议的python 实现
https://github.com/google/python-adb/blob/master/adb/adb_protocol.py

log:

curl -X POST -d command="am startservice -n com.github.uiautomator/.Service" http://10.0.100.228:7912/shell

{"error":{"Stderr":null},"exitCode":255,"output":"Starting service: Intent { cmp=com.github.uiautomator/.Service }\nSecurity exception: 

Permission Denial: service asks to run as user -2 but is calling from user 0; 

this requires android.permission.INTERACT_ACROSS_USERS_FULL or android.permission.INTERACT_ACROSS_USERS\n\njava.lang.SecurityException: Permission Denial: service asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL or android.permission.INTERACT_ACROSS_USERS\n\tat com.android.server.am.UserController.handleIncomingUser(Unknown Source:232)\n\tat com.android.server.am.ActiveServices.retrieveServiceLocked(Unknown Source:83)\n\tat com.android.server.am.ActiveServices.startServiceLocked(Unknown Source:172)\n\tat com.android.server.am.ActivityManagerService.startService(Unknown Source:124)\n\tat com.android.server.am.ActivityManagerShellCommand.runStartService(Unknown Source:81)\n\tat com.android.server.am.ActivityManagerShellCommand.onCommand(Unknown Source:47)\n\tat android.os.ShellCommand.exec(Unknown Source:35)\n\tat com.android.server.am.ActivityManagerService.onShellCommand(Unknown Source:13)\n\tat android.os.Binder.shellCommand(Unknown Source:0)\n\tat android.os.Binder.onTransact(Unknown Source:127)\n\tat android.app.IActivityManager$Stub.onTransact(Unknown Source:5)\n\tat com.android.server.am.ActivityManagerService.onTransact(Unknown Source:129)\n\tat android.os.Binder.transact(Unknown Source:6)\n\tat com.daniu.O0OO0.OO00.OO0.onTransact(SourceFile:128)\n\tat android.os.Binder.execTransact(Unknown Source:63)\n"}

@codeskyblue
Copy link
Member

codeskyblue commented Jul 5, 2018

你这样试试 am startservice --user -2 -n com.github.uiautomator/.Service

@DevineLiu
Copy link
Author

出现 同样的问题 应该是权限不顾

@codeskyblue
Copy link
Member

atx-agent理论上是有shell权限的,你这是什么手机

@DevineLiu
Copy link
Author

一加3 8.0 原生

@DevineLiu
Copy link
Author

在pixel上是可以拉起的

@mingyuan-xia
Copy link
Member

这个问题还存在么?用atx-agent无线拉起uiautomator我经常这么做,通常通过atxagent关闭uiautomator放出uiautomator控制权,完成后用atx-agent来重新拉起

@emptywalker
Copy link

我追加一个安装apk的问题,机型:

"version":"9", "brand":"google","model":"Pixel 2 XL"

执行脚本:

emptywalker$ curl -X POST -d url="http//skypict.alicdn.com/1-resource-folder/SKY_PICT_SYS/1555338216261/skypict-uiautomator2-server-v1.0.0.apk" http://30.5.59.214:7912/install
emptywalker$ curl -X GET http://30.5.59.214:7912/install/1

得到错误信息:

{"message":"error install","error":"avc:  denied  { read } for  scontext=u:r:system_server:s0 tcontext=u:object_r:sdcardfs:s0 tclass=file permissive=0\nSystem server has no access to read file context u:object_r:sdcardfs:s0 (from path /sdcard/tmp/613e9e30414a12c49059dfe427ac2d4c.apk, context u:r:system_server:s0)\nError: Unable to open file: /sdcard/tmp/613e9e30414a12c49059dfe427ac2d4c.apk\nConsider using a file under /data/local/tmp/\nError: Can't open file: /sdcard/tmp/613e9e30414a12c49059dfe427ac2d4c.apk\n\nException occurred while executing:\njava.lang.IllegalArgumentException: Error: Can't open file: /sdcard/tmp/613e9e30414a12c49059dfe427ac2d4c.apk\n\tat com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:328)\n\tat com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:906)\n\tat com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:158)\n\tat android.os.ShellCommand.exec(ShellCommand.java:103)\n\tat com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:21260)\n\tat android.os.Binder.shellCommand(Binder.java:634)\n\tat android.os.Binder.onTransact(Binder.java:532)\n\tat android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2796)\n\tat com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3856)\n\tat android.os.Binder.execTransact(Binder.java:731)\n: exit status 255","progress":{"totalSize":7293274,"copiedSize":7293274},"status":"failure"}

应该是没有读取本地文件的权限,想知道这个该如何解决?
另外 通过什么办法检测 atx-agent 是否开启?

@codeskyblue
Copy link
Member

curl -X GET 127.0.0.1:7912/version 有返回值,就说明开启了

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants